@tarojs/react 3.8.0-canary.0 → 4.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -291,10 +291,24 @@ function updateValueIfChanged(node, nextValue) {
291
291
  return false;
292
292
  }
293
293
 
294
+ var isHarmony = process.env.TARO_PLATFORM === 'harmony';
295
+ var IS_NON_DIMENSIONAL = /max|aspect|acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;
294
296
  function isEventName(s) {
295
297
  return s[0] === 'o' && s[1] === 'n';
296
298
  }
297
- var IS_NON_DIMENSIONAL = /aspect|acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;
299
+ function isEqual(obj1, obj2) {
300
+ return JSON.stringify(obj1) === JSON.stringify(obj2);
301
+ }
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
+ }
298
312
  function updateProps(dom, oldProps, newProps) {
299
313
  var updatePayload = getUpdatePayload(dom, oldProps, newProps);
300
314
  if (updatePayload) {
@@ -337,16 +351,16 @@ function setEvent(dom, name, value, oldValue) {
337
351
  eventName = eventName.slice(0, -7);
338
352
  }
339
353
  var compName = shared.capitalize(shared.toCamelCase(dom.tagName.toLowerCase()));
340
- if (eventName === 'click' && compName in shared.internalComponents) {
354
+ if (eventName === 'click' && !isHarmony && compName in shared.internalComponents) {
341
355
  eventName = 'tap';
342
356
  }
343
357
  if (shared.isFunction(value)) {
344
358
  if (oldValue) {
345
- dom.removeEventListener(eventName, oldValue, false);
346
- dom.addEventListener(eventName, value, { isCapture: isCapture, sideEffect: false });
359
+ dom.removeEventListener(eventName, oldValue, !isHarmony ? false : undefined);
360
+ dom.addEventListener(eventName, value, !isHarmony ? { isCapture: isCapture, sideEffect: false } : undefined);
347
361
  }
348
362
  else {
349
- dom.addEventListener(eventName, value, isCapture);
363
+ dom.addEventListener(eventName, value, !isHarmony ? isCapture : undefined);
350
364
  }
351
365
  }
352
366
  else {
@@ -355,16 +369,28 @@ function setEvent(dom, name, value, oldValue) {
355
369
  }
356
370
  function setStyle(style, key, value) {
357
371
  if (key[0] === '-') {
358
- style.setProperty(key, value.toString());
372
+ // 适配鸿蒙
373
+ if (isHarmony) {
374
+ style.setProperty(key, value);
375
+ }
376
+ else {
377
+ style.setProperty(key, value.toString());
378
+ }
359
379
  // css variables need not further judgment
360
380
  return;
361
381
  }
362
- style[key] =
363
- shared.isNumber(value) && IS_NON_DIMENSIONAL.test(key) === false
364
- ? value + 'px'
365
- : value == null
366
- ? ''
367
- : value;
382
+ if (isHarmony && key.startsWith('_')) {
383
+ // harmony样式已处理
384
+ style[key] = value == null ? '' : value;
385
+ }
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;
393
+ }
368
394
  }
369
395
  function setProperty(dom, name, value, oldValue) {
370
396
  var _a, _b;
@@ -382,17 +408,25 @@ function setProperty(dom, name, value, oldValue) {
382
408
  style.cssText = '';
383
409
  oldValue = null;
384
410
  }
411
+ var needUpdateAfterMoved = false;
385
412
  if (shared.isObject(oldValue)) {
386
413
  for (var i in oldValue) {
387
414
  if (!(value && i in value)) {
388
415
  setStyle(style, i, '');
416
+ if (shared.isObject(value) && !value[i]) {
417
+ needUpdateAfterMoved = true;
418
+ }
389
419
  }
390
420
  }
421
+ if (needUpdateAfterMoved) {
422
+ updateDOMInstance(dom);
423
+ }
391
424
  }
392
425
  if (shared.isObject(value)) {
393
426
  for (var i$1 in value) {
394
- if (!oldValue || value[i$1] !== oldValue[i$1]) {
427
+ if (!oldValue || !isEqual(value[i$1], oldValue[i$1])) {
395
428
  setStyle(style, i$1, value[i$1]);
429
+ updateDOMInstance(dom);
396
430
  }
397
431
  }
398
432
  }
@@ -413,9 +447,11 @@ function setProperty(dom, name, value, oldValue) {
413
447
  else if (!shared.isFunction(value)) {
414
448
  if (value == null) {
415
449
  dom.removeAttribute(name);
450
+ updateDOMInstance(dom, name);
416
451
  }
417
452
  else {
418
453
  dom.setAttribute(name, value);
454
+ updateDOMInstance(dom, name);
419
455
  }
420
456
  }
421
457
  }
@@ -489,7 +525,8 @@ var hostConfig = {
489
525
  // Microtasks
490
526
  // (optional)
491
527
  // -------------------
492
- supportsMicrotasks: true,
528
+ // 鸿蒙平台不支持微任务
529
+ supportsMicrotasks: process.env.TARO_PLATFORM !== 'harmony',
493
530
  scheduleMicrotask: shared.isUndefined(Promise)
494
531
  ? setTimeout
495
532
  : function (callback) { return Promise.resolve(null)
@@ -715,14 +752,14 @@ function createRoot(domContainer, options) {
715
752
  var root = new Root(TaroReconciler, domContainer, options);
716
753
  ContainerMap.set(domContainer, root);
717
754
  markContainerAsRoot((_a = root === null || root === void 0 ? void 0 : root.internalRoot) === null || _a === void 0 ? void 0 : _a.current, domContainer);
718
- runtime.hooks.tap('dispatchTaroEvent', function (e, node) {
755
+ shared.hooks.tap('dispatchTaroEvent', function (e, node) {
719
756
  var eventPriority = getEventPriority(e.type);
720
757
  TaroReconciler.runWithPriority(eventPriority, function () {
721
758
  node.dispatchEvent(e);
722
759
  });
723
760
  });
724
761
  // 对比 event.detail.value 和 node.tracker.value,判断 value 值是否有变动,存在变动则塞入队列中
725
- runtime.hooks.tap('modifyTaroEvent', function (e, node) {
762
+ shared.hooks.tap('modifyTaroEvent', function (e, node) {
726
763
  var _a, _b;
727
764
  var inst = getTargetInstForInputOrChangeEvent(e, node);
728
765
  if (!inst)
@@ -736,6 +773,7 @@ function createRoot(domContainer, options) {
736
773
  return root;
737
774
  }
738
775
 
776
+ /* eslint-disable @typescript-eslint/no-unused-vars */
739
777
  var isInsideEventHandler = false;
740
778
  // 重新包裹 batchedUpdates,使其可以在触发事件后执行 finishEventHandler
741
779
  var unstable_batchedUpdates = function (fn, a) {
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*/\n\nimport { TaroElement } from '@tarojs/runtime'\nimport { Fiber } from 'react-reconciler'\n\nimport { internalContainerInstanceKey, internalInstanceKey, internalPropsKey } from './constant'\nimport { Props } from './props'\nimport { HostComponent, HostRoot, HostText, SuspenseComponent } from './workTags'\n\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 { 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 { 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 { FormElement, Style, TaroElement } from '@tarojs/runtime'\nimport { capitalize, internalComponents, isFunction, isNumber, isObject, isString, toCamelCase } from '@tarojs/shared'\n\nexport type Props = Record<string, unknown>\n\nfunction isEventName (s: string) {\n return s[0] === 'o' && s[1] === 'n'\n}\n\nconst IS_NON_DIMENSIONAL = /aspect|acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i\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' && compName in internalComponents) {\n eventName = 'tap'\n }\n\n if (isFunction(value)) {\n if (oldValue) {\n dom.removeEventListener(eventName, oldValue as any, false)\n dom.addEventListener(eventName, value, { isCapture, sideEffect: false })\n } else {\n dom.addEventListener(eventName, value, isCapture)\n }\n } else {\n dom.removeEventListener(eventName, oldValue as any)\n }\n}\n\nfunction setStyle (style: Style, key: string, value: string | number) {\n if (key[0] === '-') {\n style.setProperty(key, value.toString())\n // css variables need not further judgment\n return\n }\n\n style[key] =\n isNumber(value) && IS_NON_DIMENSIONAL.test(key) === false\n ? value + 'px'\n : value == null\n ? ''\n : value\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 if (isObject<StyleValue>(oldValue)) {\n for (const i in oldValue) {\n if (!(value && i in (value as StyleValue))) {\n setStyle(style, i, '')\n }\n }\n }\n\n if (isObject<StyleValue>(value)) {\n for (const i in value) {\n if (!oldValue || 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","/* 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 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'\nimport { Fiber } from 'react-reconciler'\n\nimport { getFiberCurrentPropsFromNode, getInstanceFromNode, getNodeFromInstance } from './componentTree'\nimport { isTextInputElement, ReactDOMInputRestoreControlledState, ReactDOMTextareaRestoreControlledState, toString } from './domInput'\nimport { updateValueIfChanged } from './inputValueTracking'\nimport { Props } from './props'\nimport { TaroReconciler } from './reconciler' \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, TaroElement, TaroEvent } from '@tarojs/runtime'\nimport { ReactNode } from 'react'\nimport { OpaqueRoot } from 'react-reconciler'\n\nimport { markContainerAsRoot } from './componentTree'\nimport { getEventPriority } from './constant'\nimport { enqueueStateRestore, getTargetInstForInputOrChangeEvent, RestoreType } from './event'\nimport { TaroReconciler } from './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 { TaroElement } from '@tarojs/runtime'\nimport { ensure, isFunction } from '@tarojs/shared'\nimport { ReactNode } from 'react'\n\nimport { finishEventHandler } from './event'\nimport { TaroReconciler } from './reconciler'\nimport { ContainerMap, createRoot, render } from './render'\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","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\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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"}
package/dist/react.esm.js CHANGED
@@ -1,5 +1,5 @@
1
- import { isString, isObject, isFunction, capitalize, toCamelCase, internalComponents, isNumber, noop, isUndefined, isBoolean, ensure } from '@tarojs/shared';
2
- import { FormElement, document, hooks } from '@tarojs/runtime';
1
+ import { isString, isObject, isFunction, capitalize, toCamelCase, internalComponents, isNumber, noop, isUndefined, isBoolean, hooks, ensure } from '@tarojs/shared';
2
+ import { FormElement, convertNumber2PX, document } from '@tarojs/runtime';
3
3
  import Reconciler from 'react-reconciler';
4
4
  import { DefaultEventPriority as DefaultEventPriority$1 } from 'react-reconciler/constants';
5
5
 
@@ -280,10 +280,24 @@ function updateValueIfChanged(node, nextValue) {
280
280
  return false;
281
281
  }
282
282
 
283
+ const isHarmony = process.env.TARO_PLATFORM === 'harmony';
284
+ const IS_NON_DIMENSIONAL = /max|aspect|acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;
283
285
  function isEventName(s) {
284
286
  return s[0] === 'o' && s[1] === 'n';
285
287
  }
286
- const IS_NON_DIMENSIONAL = /aspect|acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;
288
+ function isEqual(obj1, obj2) {
289
+ return JSON.stringify(obj1) === JSON.stringify(obj2);
290
+ }
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
+ }
287
301
  function updateProps(dom, oldProps, newProps) {
288
302
  const updatePayload = getUpdatePayload(dom, oldProps, newProps);
289
303
  if (updatePayload) {
@@ -326,16 +340,16 @@ function setEvent(dom, name, value, oldValue) {
326
340
  eventName = eventName.slice(0, -7);
327
341
  }
328
342
  const compName = capitalize(toCamelCase(dom.tagName.toLowerCase()));
329
- if (eventName === 'click' && compName in internalComponents) {
343
+ if (eventName === 'click' && !isHarmony && compName in internalComponents) {
330
344
  eventName = 'tap';
331
345
  }
332
346
  if (isFunction(value)) {
333
347
  if (oldValue) {
334
- dom.removeEventListener(eventName, oldValue, false);
335
- dom.addEventListener(eventName, value, { isCapture, sideEffect: false });
348
+ dom.removeEventListener(eventName, oldValue, !isHarmony ? false : undefined);
349
+ dom.addEventListener(eventName, value, !isHarmony ? { isCapture, sideEffect: false } : undefined);
336
350
  }
337
351
  else {
338
- dom.addEventListener(eventName, value, isCapture);
352
+ dom.addEventListener(eventName, value, !isHarmony ? isCapture : undefined);
339
353
  }
340
354
  }
341
355
  else {
@@ -344,16 +358,28 @@ function setEvent(dom, name, value, oldValue) {
344
358
  }
345
359
  function setStyle(style, key, value) {
346
360
  if (key[0] === '-') {
347
- style.setProperty(key, value.toString());
361
+ // 适配鸿蒙
362
+ if (isHarmony) {
363
+ style.setProperty(key, value);
364
+ }
365
+ else {
366
+ style.setProperty(key, value.toString());
367
+ }
348
368
  // css variables need not further judgment
349
369
  return;
350
370
  }
351
- style[key] =
352
- isNumber(value) && IS_NON_DIMENSIONAL.test(key) === false
353
- ? value + 'px'
354
- : value == null
355
- ? ''
356
- : value;
371
+ if (isHarmony && key.startsWith('_')) {
372
+ // harmony样式已处理
373
+ style[key] = value == null ? '' : value;
374
+ }
375
+ else {
376
+ style[key] =
377
+ isNumber(value) && IS_NON_DIMENSIONAL.test(key) === false
378
+ ? convertNumber2PX(value)
379
+ : value == null
380
+ ? ''
381
+ : value;
382
+ }
357
383
  }
358
384
  function setProperty(dom, name, value, oldValue) {
359
385
  var _a, _b;
@@ -371,17 +397,25 @@ function setProperty(dom, name, value, oldValue) {
371
397
  style.cssText = '';
372
398
  oldValue = null;
373
399
  }
400
+ let needUpdateAfterMoved = false;
374
401
  if (isObject(oldValue)) {
375
402
  for (const i in oldValue) {
376
403
  if (!(value && i in value)) {
377
404
  setStyle(style, i, '');
405
+ if (isObject(value) && !value[i]) {
406
+ needUpdateAfterMoved = true;
407
+ }
378
408
  }
379
409
  }
410
+ if (needUpdateAfterMoved) {
411
+ updateDOMInstance(dom);
412
+ }
380
413
  }
381
414
  if (isObject(value)) {
382
415
  for (const i in value) {
383
- if (!oldValue || value[i] !== oldValue[i]) {
416
+ if (!oldValue || !isEqual(value[i], oldValue[i])) {
384
417
  setStyle(style, i, value[i]);
418
+ updateDOMInstance(dom);
385
419
  }
386
420
  }
387
421
  }
@@ -402,9 +436,11 @@ function setProperty(dom, name, value, oldValue) {
402
436
  else if (!isFunction(value)) {
403
437
  if (value == null) {
404
438
  dom.removeAttribute(name);
439
+ updateDOMInstance(dom, name);
405
440
  }
406
441
  else {
407
442
  dom.setAttribute(name, value);
443
+ updateDOMInstance(dom, name);
408
444
  }
409
445
  }
410
446
  }
@@ -477,7 +513,8 @@ const hostConfig = {
477
513
  // Microtasks
478
514
  // (optional)
479
515
  // -------------------
480
- supportsMicrotasks: true,
516
+ // 鸿蒙平台不支持微任务
517
+ supportsMicrotasks: process.env.TARO_PLATFORM !== 'harmony',
481
518
  scheduleMicrotask: isUndefined(Promise)
482
519
  ? setTimeout
483
520
  : (callback) => Promise.resolve(null)
@@ -721,6 +758,7 @@ function createRoot(domContainer, options = {}) {
721
758
  return root;
722
759
  }
723
760
 
761
+ /* eslint-disable @typescript-eslint/no-unused-vars */
724
762
  let isInsideEventHandler = false;
725
763
  // 重新包裹 batchedUpdates,使其可以在触发事件后执行 finishEventHandler
726
764
  const unstable_batchedUpdates = (fn, a) => {
@@ -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*/\n\nimport { TaroElement } from '@tarojs/runtime'\nimport { Fiber } from 'react-reconciler'\n\nimport { internalContainerInstanceKey, internalInstanceKey, internalPropsKey } from './constant'\nimport { Props } from './props'\nimport { HostComponent, HostRoot, HostText, SuspenseComponent } from './workTags'\n\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 { 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 { 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 { FormElement, Style, TaroElement } from '@tarojs/runtime'\nimport { capitalize, internalComponents, isFunction, isNumber, isObject, isString, toCamelCase } from '@tarojs/shared'\n\nexport type Props = Record<string, unknown>\n\nfunction isEventName (s: string) {\n return s[0] === 'o' && s[1] === 'n'\n}\n\nconst IS_NON_DIMENSIONAL = /aspect|acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i\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' && compName in internalComponents) {\n eventName = 'tap'\n }\n\n if (isFunction(value)) {\n if (oldValue) {\n dom.removeEventListener(eventName, oldValue as any, false)\n dom.addEventListener(eventName, value, { isCapture, sideEffect: false })\n } else {\n dom.addEventListener(eventName, value, isCapture)\n }\n } else {\n dom.removeEventListener(eventName, oldValue as any)\n }\n}\n\nfunction setStyle (style: Style, key: string, value: string | number) {\n if (key[0] === '-') {\n style.setProperty(key, value.toString())\n // css variables need not further judgment\n return\n }\n\n style[key] =\n isNumber(value) && IS_NON_DIMENSIONAL.test(key) === false\n ? value + 'px'\n : value == null\n ? ''\n : value\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 if (isObject<StyleValue>(oldValue)) {\n for (const i in oldValue) {\n if (!(value && i in (value as StyleValue))) {\n setStyle(style, i, '')\n }\n }\n }\n\n if (isObject<StyleValue>(value)) {\n for (const i in value) {\n if (!oldValue || 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","/* 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 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'\nimport { Fiber } from 'react-reconciler'\n\nimport { getFiberCurrentPropsFromNode, getInstanceFromNode, getNodeFromInstance } from './componentTree'\nimport { isTextInputElement, ReactDOMInputRestoreControlledState, ReactDOMTextareaRestoreControlledState, toString } from './domInput'\nimport { updateValueIfChanged } from './inputValueTracking'\nimport { Props } from './props'\nimport { TaroReconciler } from './reconciler' \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, TaroElement, TaroEvent } from '@tarojs/runtime'\nimport { ReactNode } from 'react'\nimport { OpaqueRoot } from 'react-reconciler'\n\nimport { markContainerAsRoot } from './componentTree'\nimport { getEventPriority } from './constant'\nimport { enqueueStateRestore, getTargetInstForInputOrChangeEvent, RestoreType } from './event'\nimport { TaroReconciler } from './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 { TaroElement } from '@tarojs/runtime'\nimport { ensure, isFunction } from '@tarojs/shared'\nimport { ReactNode } from 'react'\n\nimport { finishEventHandler } from './event'\nimport { TaroReconciler } from './reconciler'\nimport { ContainerMap, createRoot, render } from './render'\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\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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tarojs/react",
3
- "version": "3.8.0-canary.0",
3
+ "version": "4.0.0-beta.0",
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",
@@ -19,11 +19,11 @@
19
19
  },
20
20
  "dependencies": {
21
21
  "react-reconciler": "0.27.0",
22
- "@tarojs/runtime": "3.8.0-canary.0",
23
- "@tarojs/shared": "3.8.0-canary.0"
22
+ "@tarojs/runtime": "4.0.0-beta.0",
23
+ "@tarojs/shared": "4.0.0-beta.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@rollup/plugin-buble": "^0.21.3",
26
+ "@rollup/plugin-buble": "^1.0.3",
27
27
  "jest": "^29.3.1",
28
28
  "jest-cli": "^29.3.1",
29
29
  "jest-environment-node": "^29.5.0",