@tarojs/runtime 4.0.0-beta.92 → 4.0.0-beta.94

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/LICENSE +8 -8
  2. package/dist/bom/URL.d.ts +3 -6
  3. package/dist/bom/URL.js.map +1 -1
  4. package/dist/bom/URLSearchParams.d.ts +1 -2
  5. package/dist/bom/URLSearchParams.js.map +1 -1
  6. package/dist/bom/document.d.ts +2 -3
  7. package/dist/bom/getComputedStyle.d.ts +4 -5
  8. package/dist/bom/history.d.ts +5 -7
  9. package/dist/bom/history.js.map +1 -1
  10. package/dist/bom/location.d.ts +3 -5
  11. package/dist/bom/location.js.map +1 -1
  12. package/dist/bom/navigator.d.ts +1 -2
  13. package/dist/bom/raf.d.ts +3 -2
  14. package/dist/bom/raf.js.map +1 -1
  15. package/dist/bom/window.d.ts +9 -9
  16. package/dist/bom/window.js.map +1 -1
  17. package/dist/constants/index.d.ts +51 -52
  18. package/dist/current.d.ts +5 -5
  19. package/dist/dom/anchor-element.d.ts +2 -3
  20. package/dist/dom/anchor-element.js.map +1 -1
  21. package/dist/dom/class-list.d.ts +2 -3
  22. package/dist/dom/class-list.js.map +1 -1
  23. package/dist/dom/document.d.ts +6 -10
  24. package/dist/dom/document.js.map +1 -1
  25. package/dist/dom/element.d.ts +6 -7
  26. package/dist/dom/element.js.map +1 -1
  27. package/dist/dom/event-source.d.ts +3 -3
  28. package/dist/dom/event-target.d.ts +2 -3
  29. package/dist/dom/event-target.js.map +1 -1
  30. package/dist/dom/event.d.ts +5 -6
  31. package/dist/dom/event.js.map +1 -1
  32. package/dist/dom/form.d.ts +3 -4
  33. package/dist/dom/form.js +1 -1
  34. package/dist/dom/form.js.map +1 -1
  35. package/dist/dom/node.d.ts +8 -39
  36. package/dist/dom/node.js +2 -2
  37. package/dist/dom/node.js.map +1 -1
  38. package/dist/{node_types-9ac5b4dd.d.ts → dom/node_types.d.ts} +1 -2
  39. package/dist/dom/root.d.ts +3 -4
  40. package/dist/dom/root.js.map +1 -1
  41. package/dist/dom/style.d.ts +2 -3
  42. package/dist/dom/style.js.map +1 -1
  43. package/dist/dom/style_properties.js.map +1 -1
  44. package/dist/dom/svg.d.ts +2 -3
  45. package/dist/dom/text.d.ts +3 -4
  46. package/dist/dom/transfer.d.ts +2 -3
  47. package/dist/dom/tree.d.ts +3 -3
  48. package/dist/dom/tree.js.map +1 -1
  49. package/dist/dom-external/element.d.ts +3 -4
  50. package/dist/dom-external/element.js.map +1 -1
  51. package/dist/dom-external/index.js.map +1 -1
  52. package/dist/dom-external/inner-html/html.d.ts +2 -3
  53. package/dist/dom-external/inner-html/html.js.map +1 -1
  54. package/dist/dom-external/inner-html/parser.d.ts +7 -7
  55. package/dist/dom-external/inner-html/parser.js.map +1 -1
  56. package/dist/dom-external/inner-html/scaner.d.ts +3 -3
  57. package/dist/dom-external/inner-html/scaner.js.map +1 -1
  58. package/dist/dom-external/inner-html/style.d.ts +3 -3
  59. package/dist/dom-external/inner-html/style.js.map +1 -1
  60. package/dist/dom-external/inner-html/tags.d.ts +5 -6
  61. package/dist/dom-external/inner-html/tags.js +4 -4
  62. package/dist/dom-external/inner-html/tags.js.map +1 -1
  63. package/dist/dom-external/inner-html/utils.d.ts +1 -2
  64. package/dist/dom-external/inner-html/utils.js.map +1 -1
  65. package/dist/dom-external/mutation-observer/implements.d.ts +6 -25
  66. package/dist/dom-external/mutation-observer/implements.js.map +1 -1
  67. package/dist/dom-external/mutation-observer/index.d.ts +6 -5
  68. package/dist/dom-external/mutation-observer/index.js.map +1 -1
  69. package/dist/{record-32b054d8.d.ts → dom-external/mutation-observer/record.d.ts} +3 -4
  70. package/dist/dom-external/node.d.ts +5 -6
  71. package/dist/dom-external/node.js.map +1 -1
  72. package/dist/dsl/common.d.ts +15 -15
  73. package/dist/dsl/common.js.map +1 -1
  74. package/dist/{instance-4c64b022.d.ts → dsl/instance.d.ts} +15 -26
  75. package/dist/emitter/emitter.d.ts +2 -2
  76. package/dist/env.d.ts +2 -2
  77. package/dist/hydrate.d.ts +4 -5
  78. package/dist/hydrate.js.map +1 -1
  79. package/dist/index.cjs.js +14 -14
  80. package/dist/index.cjs.js.map +1 -1
  81. package/dist/index.d.ts +33 -32
  82. package/dist/interface/element.d.ts +4 -0
  83. package/dist/interface/event-target.d.ts +11 -0
  84. package/dist/interface/event.d.ts +15 -0
  85. package/dist/interface/hydrate.d.ts +29 -0
  86. package/dist/interface/index.d.ts +7 -0
  87. package/dist/interface/node.d.ts +7 -0
  88. package/dist/{options-4c64b022.d.ts → interface/options.d.ts} +4 -5
  89. package/dist/interface/utils.d.ts +2 -0
  90. package/dist/next-tick.d.ts +2 -3
  91. package/dist/next-tick.js.map +1 -1
  92. package/dist/options.d.ts +2 -3
  93. package/dist/perf.d.ts +2 -2
  94. package/dist/perf.js +3 -1
  95. package/dist/perf.js.map +1 -1
  96. package/dist/polyfill/array.d.ts +2 -3
  97. package/dist/polyfill/array.js.map +1 -1
  98. package/dist/polyfill/index.js.map +1 -1
  99. package/dist/polyfill/intersection-observer.d.ts +1 -2
  100. package/dist/polyfill/intersection-observer.js +4 -3
  101. package/dist/polyfill/intersection-observer.js.map +1 -1
  102. package/dist/polyfill/object.d.ts +3 -4
  103. package/dist/polyfill/object.js.map +1 -1
  104. package/dist/runtime.esm.js +8 -8
  105. package/dist/runtime.esm.js.map +1 -1
  106. package/dist/utils/cache.d.ts +1 -2
  107. package/dist/utils/cache.js.map +1 -1
  108. package/dist/utils/index.d.ts +17 -18
  109. package/dist/utils/index.js.map +1 -1
  110. package/dist/utils/lodash.d.ts +2 -3
  111. package/dist/utils/lodash.js.map +1 -1
  112. package/dist/utils/router.d.ts +7 -8
  113. package/package.json +14 -23
  114. package/dist/index-26658829.d.ts +0 -23
  115. package/dist/index.cjs.d.ts +0 -815
  116. package/dist/runtime.esm.d.ts +0 -815
@@ -1,5 +1,5 @@
1
- import { TaroElement } from "./element.js";
2
- declare class AnchorElement extends TaroElement {
1
+ import { TaroElement } from './element';
2
+ export declare class AnchorElement extends TaroElement {
3
3
  get href(): string;
4
4
  set href(val: string);
5
5
  get protocol(): any;
@@ -11,4 +11,3 @@ declare class AnchorElement extends TaroElement {
11
11
  get pathname(): any;
12
12
  setAttribute(qualifiedName: string, value: any): void;
13
13
  }
14
- export { AnchorElement };
@@ -1 +1 @@
1
- {"version":3,"file":"anchor-element.js","sources":["../../src/dom/anchor-element.ts"],"sourcesContent":["import { parseUrl } from '../bom/URL'\nimport { TaroElement } from './element'\n\nconst enum AnchorElementAttrs {\n HREF = 'href',\n PROTOCOL = 'protocol',\n HOST = 'host',\n SEARCH = 'search',\n HASH = 'hash',\n HOSTNAME = 'hostname',\n PORT = 'port',\n PATHNAME = 'pathname'\n}\n\nexport class AnchorElement extends TaroElement {\n public get href () {\n return this.props[AnchorElementAttrs.HREF] ?? ''\n }\n\n public set href (val: string) {\n this.setAttribute(AnchorElementAttrs.HREF, val)\n }\n\n get protocol () {\n return this.props[AnchorElementAttrs.PROTOCOL] ?? ''\n }\n\n get host () {\n return this.props[AnchorElementAttrs.HOST] ?? ''\n }\n\n get search () {\n return this.props[AnchorElementAttrs.SEARCH] ?? ''\n }\n\n get hash () {\n return this.props[AnchorElementAttrs.HASH] ?? ''\n }\n\n get hostname () {\n return this.props[AnchorElementAttrs.HOSTNAME] ?? ''\n }\n\n get port () {\n return this.props[AnchorElementAttrs.PORT] ?? ''\n }\n\n get pathname () {\n return this.props[AnchorElementAttrs.PATHNAME] ?? ''\n }\n\n public setAttribute (qualifiedName: string, value: any): void {\n if (qualifiedName === AnchorElementAttrs.HREF) {\n const willSetAttr = parseUrl(value)\n for (const k in willSetAttr) {\n super.setAttribute(k, willSetAttr[k])\n }\n } else {\n super.setAttribute(qualifiedName, value)\n }\n }\n}\n"],"names":[],"mappings":";;;AAcM,MAAO,aAAc,SAAQ,WAAW,CAAA;AAC5C,IAAA,IAAW,IAAI,GAAA;;AACb,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAAyB,MAAA,+BAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACjD;IAED,IAAW,IAAI,CAAE,GAAW,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,CAA0B,MAAA,gCAAA,GAAG,CAAC,CAAA;KAChD;AAED,IAAA,IAAI,QAAQ,GAAA;;AACV,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAA6B,UAAA,mCAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACrD;AAED,IAAA,IAAI,IAAI,GAAA;;AACN,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAAyB,MAAA,+BAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACjD;AAED,IAAA,IAAI,MAAM,GAAA;;AACR,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAA2B,QAAA,iCAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACnD;AAED,IAAA,IAAI,IAAI,GAAA;;AACN,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAAyB,MAAA,+BAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACjD;AAED,IAAA,IAAI,QAAQ,GAAA;;AACV,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAA6B,UAAA,mCAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACrD;AAED,IAAA,IAAI,IAAI,GAAA;;AACN,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAAyB,MAAA,+BAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACjD;AAED,IAAA,IAAI,QAAQ,GAAA;;AACV,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAA6B,UAAA,mCAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACrD;IAEM,YAAY,CAAE,aAAqB,EAAE,KAAU,EAAA;QACpD,IAAI,aAAa,2CAA8B;AAC7C,YAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;AACnC,YAAA,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE;gBAC3B,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;AACtC,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;AACzC,SAAA;KACF;AACF;;;;"}
1
+ {"version":3,"file":"anchor-element.js","sources":["../../src/dom/anchor-element.ts"],"sourcesContent":["import { parseUrl } from '../bom/URL'\nimport { TaroElement } from './element'\n\nconst enum AnchorElementAttrs {\n HREF = 'href',\n PROTOCOL = 'protocol',\n HOST = 'host',\n SEARCH = 'search',\n HASH = 'hash',\n HOSTNAME = 'hostname',\n PORT = 'port',\n PATHNAME = 'pathname'\n}\n\nexport class AnchorElement extends TaroElement {\n public get href () {\n return this.props[AnchorElementAttrs.HREF] ?? ''\n }\n\n public set href (val: string) {\n this.setAttribute(AnchorElementAttrs.HREF, val)\n }\n\n get protocol () {\n return this.props[AnchorElementAttrs.PROTOCOL] ?? ''\n }\n\n get host () {\n return this.props[AnchorElementAttrs.HOST] ?? ''\n }\n\n get search () {\n return this.props[AnchorElementAttrs.SEARCH] ?? ''\n }\n\n get hash () {\n return this.props[AnchorElementAttrs.HASH] ?? ''\n }\n\n get hostname () {\n return this.props[AnchorElementAttrs.HOSTNAME] ?? ''\n }\n\n get port () {\n return this.props[AnchorElementAttrs.PORT] ?? ''\n }\n\n get pathname () {\n return this.props[AnchorElementAttrs.PATHNAME] ?? ''\n }\n\n public setAttribute (qualifiedName: string, value: any): void {\n if (qualifiedName === AnchorElementAttrs.HREF) {\n const willSetAttr = parseUrl(value)\n for (const k in willSetAttr) {\n super.setAttribute(k, willSetAttr[k])\n }\n } else {\n super.setAttribute(qualifiedName, value)\n }\n }\n}\n"],"names":[],"mappings":";;;AAcM,MAAO,aAAc,SAAQ,WAAW,CAAA;AAC5C,IAAA,IAAW,IAAI,GAAA;;AACb,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAAyB,MAAA,+BAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACjD;IAED,IAAW,IAAI,CAAE,GAAW,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,CAA0B,MAAA,gCAAA,GAAG,CAAC,CAAA;KAChD;AAED,IAAA,IAAI,QAAQ,GAAA;;AACV,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAA6B,UAAA,mCAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACrD;AAED,IAAA,IAAI,IAAI,GAAA;;AACN,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAAyB,MAAA,+BAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACjD;AAED,IAAA,IAAI,MAAM,GAAA;;AACR,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAA2B,QAAA,iCAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACnD;AAED,IAAA,IAAI,IAAI,GAAA;;AACN,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAAyB,MAAA,+BAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACjD;AAED,IAAA,IAAI,QAAQ,GAAA;;AACV,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAA6B,UAAA,mCAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACrD;AAED,IAAA,IAAI,IAAI,GAAA;;AACN,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAAyB,MAAA,+BAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACjD;AAED,IAAA,IAAI,QAAQ,GAAA;;AACV,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAA6B,UAAA,mCAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACrD;IAEM,YAAY,CAAE,aAAqB,EAAE,KAAU,EAAA;QACpD,IAAI,aAAa,KAA4B,MAAA,gCAAE;AAC7C,YAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;AACnC,YAAA,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE;gBAC3B,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;aACtC;SACF;aAAM;AACL,YAAA,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;SACzC;KACF;AACF;;;;"}
@@ -1,5 +1,5 @@
1
- import { TaroElement } from "./element.js";
2
- declare class ClassList {
1
+ import type { TaroElement } from './element';
2
+ export declare class ClassList {
3
3
  private el;
4
4
  private tokenList;
5
5
  constructor(className: string, el: TaroElement);
@@ -14,4 +14,3 @@ declare class ClassList {
14
14
  private checkTokenIsValid;
15
15
  private _update;
16
16
  }
17
- export { ClassList };
@@ -1 +1 @@
1
- {"version":3,"file":"class-list.js","sources":["../../src/dom/class-list.ts"],"sourcesContent":["import type { TaroElement } from './element'\n\nexport class ClassList {\n private el: TaroElement\n\n private tokenList: string[] = []\n\n constructor (className: string, el: TaroElement) {\n this.el = el\n className.trim().split(/\\s+/).forEach(token => this.tokenList.push(token))\n }\n\n public get value () {\n return this.toString()\n }\n\n public get length () {\n return this.tokenList.length\n }\n\n add () {\n let index = 0\n let updated = false\n\n const tokens = arguments\n const length = tokens.length\n const tokenList = this.tokenList\n\n do {\n const token: string = tokens[index]\n\n if (this.checkTokenIsValid(token) && !~tokenList.indexOf(token)) {\n tokenList.push(token)\n\n updated = true\n }\n } while (++index < length)\n\n if (updated) {\n this._update()\n }\n }\n\n remove () {\n let i = 0\n let updated = false\n\n const tokens = arguments\n const length = tokens.length\n const tokenList = this.tokenList\n\n do {\n const token = tokens[i] + ''\n\n if (!this.checkTokenIsValid(token)) continue\n\n const index = tokenList.indexOf(token)\n\n if (~tokenList.indexOf(token)) {\n tokenList.splice(index, 1)\n\n updated = true\n }\n } while (++i < length)\n\n if (updated) {\n this._update()\n }\n }\n\n contains (token: string) {\n if (!this.checkTokenIsValid(token)) return false\n\n return !!~this.tokenList.indexOf(token)\n }\n\n toggle (token: string, force: boolean) {\n const result = this.contains(token)\n const method = result ? force !== true && 'remove' : force !== false && 'add'\n\n if (method) {\n // @ts-ignore\n this[method](token)\n }\n\n if (force === true || force === false) {\n return force\n } else {\n return !result\n }\n }\n\n replace (token: string, replacement_token: string) {\n if (!this.checkTokenIsValid(token) || !this.checkTokenIsValid(replacement_token)) return\n\n const index = this.tokenList.indexOf(token)\n\n if (~index) {\n this.tokenList.splice(index, 1, replacement_token)\n this._update()\n }\n }\n\n toString () {\n return this.tokenList.filter(v => v !== '').join(' ')\n }\n\n private checkTokenIsValid (token: string) {\n if (token === '' || /\\s/.test(token)) return false\n\n return true\n }\n\n private _update () {\n this.el.className = this.value\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"class-list.js","sources":["../../src/dom/class-list.ts"],"sourcesContent":["import type { TaroElement } from './element'\n\nexport class ClassList {\n private el: TaroElement\n\n private tokenList: string[] = []\n\n constructor (className: string, el: TaroElement) {\n this.el = el\n className.trim().split(/\\s+/).forEach(token => this.tokenList.push(token))\n }\n\n public get value () {\n return this.toString()\n }\n\n public get length () {\n return this.tokenList.length\n }\n\n add () {\n let index = 0\n let updated = false\n\n const tokens = arguments\n const length = tokens.length\n const tokenList = this.tokenList\n\n do {\n const token: string = tokens[index]\n\n if (this.checkTokenIsValid(token) && !~tokenList.indexOf(token)) {\n tokenList.push(token)\n\n updated = true\n }\n } while (++index < length)\n\n if (updated) {\n this._update()\n }\n }\n\n remove () {\n let i = 0\n let updated = false\n\n const tokens = arguments\n const length = tokens.length\n const tokenList = this.tokenList\n\n do {\n const token = tokens[i] + ''\n\n if (!this.checkTokenIsValid(token)) continue\n\n const index = tokenList.indexOf(token)\n\n if (~tokenList.indexOf(token)) {\n tokenList.splice(index, 1)\n\n updated = true\n }\n } while (++i < length)\n\n if (updated) {\n this._update()\n }\n }\n\n contains (token: string) {\n if (!this.checkTokenIsValid(token)) return false\n\n return !!~this.tokenList.indexOf(token)\n }\n\n toggle (token: string, force: boolean) {\n const result = this.contains(token)\n const method = result ? force !== true && 'remove' : force !== false && 'add'\n\n if (method) {\n // @ts-ignore\n this[method](token)\n }\n\n if (force === true || force === false) {\n return force\n } else {\n return !result\n }\n }\n\n replace (token: string, replacement_token: string) {\n if (!this.checkTokenIsValid(token) || !this.checkTokenIsValid(replacement_token)) return\n\n const index = this.tokenList.indexOf(token)\n\n if (~index) {\n this.tokenList.splice(index, 1, replacement_token)\n this._update()\n }\n }\n\n toString () {\n return this.tokenList.filter(v => v !== '').join(' ')\n }\n\n private checkTokenIsValid (token: string) {\n if (token === '' || /\\s/.test(token)) return false\n\n return true\n }\n\n private _update () {\n this.el.className = this.value\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { TaroElement } from "./element.js";
2
- import { createEvent } from "./event.js";
3
- import { FormElement } from "./form.js";
4
- import { TaroRootElement } from "./root.js";
5
- import { TaroText } from "./text.js";
6
- declare class TaroDocument extends TaroElement {
1
+ import { TaroElement } from '../dom/element';
2
+ import { createEvent } from '../dom/event';
3
+ import { FormElement } from '../dom/form';
4
+ import { TaroRootElement } from '../dom/root';
5
+ import { TaroText } from '../dom/text';
6
+ export declare class TaroDocument extends TaroElement {
7
7
  documentElement: TaroElement;
8
8
  head: TaroElement;
9
9
  body: TaroElement;
@@ -11,15 +11,11 @@ declare class TaroDocument extends TaroElement {
11
11
  cookie?: string;
12
12
  constructor();
13
13
  createElement(type: string): TaroElement | TaroRootElement | FormElement;
14
- // an ugly fake createElementNS to deal with @vue/runtime-dom's
15
- // support mounting app to svg container since vue@3.0.8
16
14
  createElementNS(_svgNS: string, type: string): TaroElement | TaroRootElement | FormElement;
17
15
  createTextNode(text: string): TaroText;
18
16
  getElementById<T extends TaroElement>(id: string | undefined | null): T | null;
19
17
  querySelector<T extends TaroElement>(query: string): T | null;
20
18
  querySelectorAll(): never[];
21
- // @TODO: @PERF: 在 hydrate 移除掉空的 node
22
19
  createComment(): TaroText;
23
20
  get defaultView(): any;
24
21
  }
25
- export { TaroDocument };
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sources":["../../src/dom/document.ts"],"sourcesContent":["import { controlledComponent, isUndefined, toCamelCase } from '@tarojs/shared'\n\nimport {\n A,\n COMMENT,\n DOCUMENT_ELEMENT_NAME,\n ROOT_STR\n} from '../constants'\nimport { TaroElement } from '../dom/element'\nimport { createEvent } from '../dom/event'\nimport { eventSource } from '../dom/event-source'\nimport { FormElement } from '../dom/form'\nimport { NodeType } from '../dom/node_types'\nimport { TaroRootElement } from '../dom/root'\nimport { TaroText } from '../dom/text'\nimport env from '../env'\nimport { AnchorElement } from './anchor-element'\nimport { TransferElement } from './transfer'\n\nexport class TaroDocument extends TaroElement {\n public documentElement: TaroElement\n public head: TaroElement\n public body: TaroElement\n public createEvent = createEvent\n cookie?: string\n\n public constructor () {\n super()\n this.nodeType = NodeType.DOCUMENT_NODE\n this.nodeName = DOCUMENT_ELEMENT_NAME\n }\n\n public createElement (type: string): TaroElement | TaroRootElement | FormElement {\n const nodeName = type.toLowerCase()\n\n let element: TaroElement\n switch (true) {\n case nodeName === ROOT_STR:\n element = new TaroRootElement()\n return element\n case controlledComponent.has(nodeName):\n element = new FormElement()\n break\n case nodeName === A:\n element = new AnchorElement()\n break\n case nodeName === 'page-meta':\n case nodeName === 'navigation-bar':\n element = new TransferElement(toCamelCase(nodeName))\n break\n default:\n element = new TaroElement()\n break\n }\n\n element.nodeName = nodeName\n element.tagName = type.toUpperCase()\n\n return element\n }\n\n // an ugly fake createElementNS to deal with @vue/runtime-dom's\n // support mounting app to svg container since vue@3.0.8\n public createElementNS (_svgNS: string, type: string): TaroElement | TaroRootElement | FormElement {\n return this.createElement(type)\n }\n\n public createTextNode (text: string): TaroText {\n return new TaroText(text)\n }\n\n public getElementById<T extends TaroElement> (id: string | undefined | null): T | null {\n const el = eventSource.get(id)\n return isUndefined(el) ? null : el as T\n }\n\n public querySelector<T extends TaroElement> (query: string): T | null {\n // 为了 Vue3 的乞丐版实现\n if (/^#/.test(query)) {\n return this.getElementById<T>(query.slice(1))\n }\n return null\n }\n\n public querySelectorAll () {\n // fake hack\n return []\n }\n\n // @TODO: @PERF: 在 hydrate 移除掉空的 node\n public createComment (): TaroText {\n const textnode = new TaroText('')\n textnode.nodeName = COMMENT\n return textnode\n }\n\n get defaultView () {\n return env.window\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAmBM,MAAO,YAAa,SAAQ,WAAW,CAAA;AAO3C,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAA;QAJF,IAAW,CAAA,WAAA,GAAG,WAAW,CAAA;QAK9B,IAAI,CAAC,QAAQ,GAAA,CAAA,8BAAyB;AACtC,QAAA,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAA;KACtC;AAEM,IAAA,aAAa,CAAE,IAAY,EAAA;AAChC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;AAEnC,QAAA,IAAI,OAAoB,CAAA;AACxB,QAAA,QAAQ,IAAI;YACV,KAAK,QAAQ,KAAK,QAAQ;AACxB,gBAAA,OAAO,GAAG,IAAI,eAAe,EAAE,CAAA;AAC/B,gBAAA,OAAO,OAAO,CAAA;AAChB,YAAA,KAAK,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC;AACpC,gBAAA,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;gBAC3B,MAAK;YACP,KAAK,QAAQ,KAAK,CAAC;AACjB,gBAAA,OAAO,GAAG,IAAI,aAAa,EAAE,CAAA;gBAC7B,MAAK;YACP,KAAK,QAAQ,KAAK,WAAW,CAAC;YAC9B,KAAK,QAAQ,KAAK,gBAAgB;gBAChC,OAAO,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAA;gBACpD,MAAK;AACP,YAAA;AACE,gBAAA,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;gBAC3B,MAAK;AACR,SAAA;AAED,QAAA,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;AAC3B,QAAA,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;AAEpC,QAAA,OAAO,OAAO,CAAA;KACf;;;IAIM,eAAe,CAAE,MAAc,EAAE,IAAY,EAAA;AAClD,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;KAChC;AAEM,IAAA,cAAc,CAAE,IAAY,EAAA;AACjC,QAAA,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAA;KAC1B;AAEM,IAAA,cAAc,CAAyB,EAA6B,EAAA;QACzE,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAC9B,QAAA,OAAO,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAO,CAAA;KACxC;AAEM,IAAA,aAAa,CAAyB,KAAa,EAAA;;AAExD,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC,cAAc,CAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9C,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;IAEM,gBAAgB,GAAA;;AAErB,QAAA,OAAO,EAAE,CAAA;KACV;;IAGM,aAAa,GAAA;AAClB,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAA;AACjC,QAAA,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAA;AAC3B,QAAA,OAAO,QAAQ,CAAA;KAChB;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,GAAG,CAAC,MAAM,CAAA;KAClB;AACF;;;;"}
1
+ {"version":3,"file":"document.js","sources":["../../src/dom/document.ts"],"sourcesContent":["import { controlledComponent, isUndefined, toCamelCase } from '@tarojs/shared'\n\nimport {\n A,\n COMMENT,\n DOCUMENT_ELEMENT_NAME,\n ROOT_STR\n} from '../constants'\nimport { TaroElement } from '../dom/element'\nimport { createEvent } from '../dom/event'\nimport { eventSource } from '../dom/event-source'\nimport { FormElement } from '../dom/form'\nimport { NodeType } from '../dom/node_types'\nimport { TaroRootElement } from '../dom/root'\nimport { TaroText } from '../dom/text'\nimport env from '../env'\nimport { AnchorElement } from './anchor-element'\nimport { TransferElement } from './transfer'\n\nexport class TaroDocument extends TaroElement {\n public documentElement: TaroElement\n public head: TaroElement\n public body: TaroElement\n public createEvent = createEvent\n cookie?: string\n\n public constructor () {\n super()\n this.nodeType = NodeType.DOCUMENT_NODE\n this.nodeName = DOCUMENT_ELEMENT_NAME\n }\n\n public createElement (type: string): TaroElement | TaroRootElement | FormElement {\n const nodeName = type.toLowerCase()\n\n let element: TaroElement\n switch (true) {\n case nodeName === ROOT_STR:\n element = new TaroRootElement()\n return element\n case controlledComponent.has(nodeName):\n element = new FormElement()\n break\n case nodeName === A:\n element = new AnchorElement()\n break\n case nodeName === 'page-meta':\n case nodeName === 'navigation-bar':\n element = new TransferElement(toCamelCase(nodeName))\n break\n default:\n element = new TaroElement()\n break\n }\n\n element.nodeName = nodeName\n element.tagName = type.toUpperCase()\n\n return element\n }\n\n // an ugly fake createElementNS to deal with @vue/runtime-dom's\n // support mounting app to svg container since vue@3.0.8\n public createElementNS (_svgNS: string, type: string): TaroElement | TaroRootElement | FormElement {\n return this.createElement(type)\n }\n\n public createTextNode (text: string): TaroText {\n return new TaroText(text)\n }\n\n public getElementById<T extends TaroElement> (id: string | undefined | null): T | null {\n const el = eventSource.get(id)\n return isUndefined(el) ? null : el as T\n }\n\n public querySelector<T extends TaroElement> (query: string): T | null {\n // 为了 Vue3 的乞丐版实现\n if (/^#/.test(query)) {\n return this.getElementById<T>(query.slice(1))\n }\n return null\n }\n\n public querySelectorAll () {\n // fake hack\n return []\n }\n\n // @TODO: @PERF: 在 hydrate 移除掉空的 node\n public createComment (): TaroText {\n const textnode = new TaroText('')\n textnode.nodeName = COMMENT\n return textnode\n }\n\n get defaultView () {\n return env.window\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAmBM,MAAO,YAAa,SAAQ,WAAW,CAAA;AAO3C,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAA;QAJF,IAAW,CAAA,WAAA,GAAG,WAAW,CAAA;QAK9B,IAAI,CAAC,QAAQ,GAAA,CAAA,8BAAyB;AACtC,QAAA,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAA;KACtC;AAEM,IAAA,aAAa,CAAE,IAAY,EAAA;AAChC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;AAEnC,QAAA,IAAI,OAAoB,CAAA;QACxB,QAAQ,IAAI;YACV,KAAK,QAAQ,KAAK,QAAQ;AACxB,gBAAA,OAAO,GAAG,IAAI,eAAe,EAAE,CAAA;AAC/B,gBAAA,OAAO,OAAO,CAAA;AAChB,YAAA,KAAK,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC;AACpC,gBAAA,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;gBAC3B,MAAK;YACP,KAAK,QAAQ,KAAK,CAAC;AACjB,gBAAA,OAAO,GAAG,IAAI,aAAa,EAAE,CAAA;gBAC7B,MAAK;YACP,KAAK,QAAQ,KAAK,WAAW,CAAC;YAC9B,KAAK,QAAQ,KAAK,gBAAgB;gBAChC,OAAO,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAA;gBACpD,MAAK;AACP,YAAA;AACE,gBAAA,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;gBAC3B,MAAK;SACR;AAED,QAAA,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;AAC3B,QAAA,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;AAEpC,QAAA,OAAO,OAAO,CAAA;KACf;;;IAIM,eAAe,CAAE,MAAc,EAAE,IAAY,EAAA;AAClD,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;KAChC;AAEM,IAAA,cAAc,CAAE,IAAY,EAAA;AACjC,QAAA,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAA;KAC1B;AAEM,IAAA,cAAc,CAAyB,EAA6B,EAAA;QACzE,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAC9B,QAAA,OAAO,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAO,CAAA;KACxC;AAEM,IAAA,aAAa,CAAyB,KAAa,EAAA;;AAExD,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC,cAAc,CAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;SAC9C;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;IAEM,gBAAgB,GAAA;;AAErB,QAAA,OAAO,EAAE,CAAA;KACV;;IAGM,aAAa,GAAA;AAClB,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAA;AACjC,QAAA,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAA;AAC3B,QAAA,OAAO,QAAQ,CAAA;KAChB;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,GAAG,CAAC,MAAM,CAAA;KAClB;AACF;;;;"}
@@ -1,9 +1,9 @@
1
- import { ClassList } from "./class-list.js";
2
- import { TaroNode } from "./node.js";
3
- import { Style } from "./style.js";
4
- import { Attributes, TFunc } from "../index-26658829.js";
5
- import { TaroEvent } from "./event.js";
6
- declare class TaroElement extends TaroNode {
1
+ import { ClassList } from './class-list';
2
+ import { TaroNode } from './node';
3
+ import { Style } from './style';
4
+ import type { Attributes, TFunc } from '../interface';
5
+ import type { TaroEvent } from './event';
6
+ export declare class TaroElement extends TaroNode {
7
7
  ctx?: any;
8
8
  tagName: string;
9
9
  props: Record<string, any>;
@@ -37,4 +37,3 @@ declare class TaroElement extends TaroNode {
37
37
  removeEventListener(type: any, handler: any, sideEffect?: boolean): void;
38
38
  static extend(methodName: string, options: TFunc | Record<string, any>): void;
39
39
  }
40
- export { TaroElement };
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","sources":["../../src/dom/element.ts"],"sourcesContent":["import { EMPTY_OBJ, hooks, isArray, isFunction, isObject, isString, isUndefined, Shortcuts, toCamelCase, warn } from '@tarojs/shared'\n\nimport {\n CATCH_VIEW,\n CATCHMOVE,\n CLASS,\n EVENT_CALLBACK_RESULT,\n FOCUS,\n ID,\n PROPERTY_THRESHOLD,\n PURE_VIEW,\n STATIC_VIEW,\n STYLE,\n VIEW\n} from '../constants'\nimport { MutationObserver, MutationRecordType } from '../dom-external/mutation-observer'\nimport { extend, getComponentsAlias, isElement, isHasExtractProp, shortcutAttr } from '../utils'\nimport { ClassList } from './class-list'\nimport { eventSource } from './event-source'\nimport { TaroNode } from './node'\nimport { NodeType } from './node_types'\nimport { Style } from './style'\nimport { treeToArray } from './tree'\n\nimport type { Attributes, TFunc } from '../interface'\nimport type { TaroEvent } from './event'\n\nexport class TaroElement extends TaroNode {\n public ctx?\n public tagName: string\n public props: Record<string, any> = {}\n public style: Style\n public dataset: Record<string, unknown> = EMPTY_OBJ\n public innerHTML: string\n\n public constructor () {\n super()\n this.nodeType = NodeType.ELEMENT_NODE\n this.style = new Style(this)\n hooks.call('patchElement', this)\n }\n\n private _stopPropagation (event: TaroEvent) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let target = this\n // eslint-disable-next-line no-cond-assign\n while ((target = target.parentNode as this)) {\n const listeners = target.__handlers[event.type]\n\n if (!isArray(listeners)) {\n continue\n }\n\n for (let i = listeners.length; i--;) {\n const l = listeners[i]\n l._stop = true\n }\n }\n }\n\n public get id (): string {\n return this.getAttribute(ID)!\n }\n\n public set id (val: string) {\n this.setAttribute(ID, val)\n }\n\n public get className (): string {\n return this.getAttribute(CLASS) || ''\n }\n\n public set className (val: string) {\n this.setAttribute(CLASS, val)\n }\n\n public get cssText (): string {\n return this.getAttribute(STYLE) || ''\n }\n\n public get classList (): ClassList {\n return new ClassList(this.className, this)\n }\n\n public get children (): TaroElement[] {\n return this.childNodes.filter(isElement)\n }\n\n public get attributes (): Attributes[] {\n const props = this.props\n const propKeys = Object.keys(props)\n const style = this.style.cssText\n const attrs = propKeys.map(key => ({ name: key, value: props[key] }))\n return attrs.concat(style ? { name: STYLE, value: style } : [])\n }\n\n public get textContent (): string {\n let text = ''\n const childNodes = this.childNodes\n\n for (let i = 0; i < childNodes.length; i++) {\n text += childNodes[i].textContent\n }\n\n return text\n }\n\n public set textContent (text: string) {\n super.textContent = text\n }\n\n public hasAttribute (qualifiedName: string): boolean {\n return !isUndefined(this.props[qualifiedName])\n }\n\n public hasAttributes (): boolean {\n return this.attributes.length > 0\n }\n\n public get focus () {\n return function () {\n this.setAttribute(FOCUS, true)\n }\n }\n\n // 兼容 Vue3,详情请见:https://github.com/NervJS/taro/issues/10579\n public set focus (value) {\n this.setAttribute(FOCUS, value)\n }\n\n public blur () {\n this.setAttribute(FOCUS, false)\n }\n\n public setAttribute (qualifiedName: string, value: any): void {\n process.env.NODE_ENV !== 'production' && warn(\n isString(value) && value.length > PROPERTY_THRESHOLD,\n `元素 ${this.nodeName} 的 ${qualifiedName} 属性值数据量过大,可能会影响渲染性能。考虑降低图片转为 base64 的阈值或在 CSS 中使用 base64。`\n )\n\n const isPureView = this.nodeName === VIEW && !isHasExtractProp(this) && !this.isAnyEventBinded()\n\n if (qualifiedName !== STYLE) {\n MutationObserver.record({\n target: this,\n type: MutationRecordType.ATTRIBUTES,\n attributeName: qualifiedName,\n oldValue: this.getAttribute(qualifiedName)\n })\n }\n\n switch (qualifiedName) {\n case STYLE:\n this.style.cssText = value as string\n break\n case ID:\n if (this.uid !== this.sid) {\n // eventSource[sid] 永远保留,直到组件卸载\n // eventSource[uid] 可变\n eventSource.delete(this.uid)\n }\n value = String(value)\n this.props[qualifiedName] = this.uid = value\n eventSource.set(value, this)\n break\n default:\n this.props[qualifiedName] = value as string\n\n if (qualifiedName.startsWith('data-')) {\n if (this.dataset === EMPTY_OBJ) {\n this.dataset = Object.create(null)\n }\n this.dataset[toCamelCase(qualifiedName.replace(/^data-/, ''))] = value\n }\n break\n }\n\n // Serialization\n if (!this._root) return\n\n const componentsAlias = getComponentsAlias()\n const _alias = componentsAlias[this.nodeName]\n const viewAlias = componentsAlias[VIEW]._num\n const staticViewAlias = componentsAlias[STATIC_VIEW]._num\n const catchViewAlias = componentsAlias[CATCH_VIEW]._num\n const _path = this._path\n\n qualifiedName = shortcutAttr(qualifiedName)\n\n const qualifiedNameInCamelCase = toCamelCase(qualifiedName)\n const payload = {\n path: `${_path}.${qualifiedNameInCamelCase}`,\n value: isFunction(value) ? () => value : value\n }\n\n hooks.call('modifySetAttrPayload', this, qualifiedName, payload, componentsAlias)\n\n if (_alias) {\n const qualifiedNameAlias = _alias[qualifiedNameInCamelCase] || qualifiedName\n payload.path = `${_path}.${toCamelCase(qualifiedNameAlias)}`\n }\n\n this.enqueueUpdate(payload)\n\n if (this.nodeName === VIEW) {\n if (qualifiedNameInCamelCase === CATCHMOVE) {\n // catchMove = true: catch-view\n // catchMove = false: view or static-view\n this.enqueueUpdate({\n path: `${_path}.${Shortcuts.NodeName}`,\n value: value ? catchViewAlias : (\n this.isAnyEventBinded() ? viewAlias : staticViewAlias\n )\n })\n } else if (isPureView && isHasExtractProp(this)) {\n // pure-view => static-view\n this.enqueueUpdate({\n path: `${_path}.${Shortcuts.NodeName}`,\n value: staticViewAlias\n })\n }\n }\n }\n\n public removeAttribute (qualifiedName: string) {\n const isStaticView = this.nodeName === VIEW && isHasExtractProp(this) && !this.isAnyEventBinded()\n\n MutationObserver.record({\n target: this,\n type: MutationRecordType.ATTRIBUTES,\n attributeName: qualifiedName,\n oldValue: this.getAttribute(qualifiedName)\n })\n\n if (qualifiedName === STYLE) {\n this.style.cssText = ''\n } else {\n const isInterrupt = hooks.call('onRemoveAttribute', this, qualifiedName)\n if (isInterrupt) {\n return\n }\n\n if (!this.props.hasOwnProperty(qualifiedName)) {\n return\n }\n delete this.props[qualifiedName]\n }\n\n // Serialization\n if (!this._root) return\n\n const componentsAlias = getComponentsAlias()\n const _alias = componentsAlias[this.nodeName]\n const viewAlias = componentsAlias[VIEW]._num\n const staticViewAlias = componentsAlias[STATIC_VIEW]._num\n const pureViewAlias = componentsAlias[PURE_VIEW]._num\n const _path = this._path\n\n qualifiedName = shortcutAttr(qualifiedName)\n\n const qualifiedNameInCamelCase = toCamelCase(qualifiedName)\n const payload = {\n path: `${_path}.${qualifiedNameInCamelCase}`,\n value: ''\n }\n\n hooks.call('modifyRmAttrPayload', this, qualifiedName, payload, componentsAlias)\n\n if (_alias) {\n const qualifiedNameAlias = _alias[qualifiedNameInCamelCase] || qualifiedName\n payload.path = `${_path}.${toCamelCase(qualifiedNameAlias)}`\n }\n\n this.enqueueUpdate(payload)\n\n if (this.nodeName === VIEW) {\n if (qualifiedNameInCamelCase === CATCHMOVE) {\n // catch-view => view or static-view or pure-view\n this.enqueueUpdate({\n path: `${_path}.${Shortcuts.NodeName}`,\n value: this.isAnyEventBinded() ? viewAlias : (isHasExtractProp(this) ? staticViewAlias : pureViewAlias)\n })\n } else if (isStaticView && !isHasExtractProp(this)) {\n // static-view => pure-view\n this.enqueueUpdate({\n path: `${_path}.${Shortcuts.NodeName}`,\n value: pureViewAlias\n })\n }\n }\n }\n\n public getAttribute (qualifiedName: string): string {\n const attr = qualifiedName === STYLE ? this.style.cssText : this.props[qualifiedName]\n return attr ?? ''\n }\n\n public getElementsByTagName (tagName: string): TaroElement[] {\n return treeToArray(this, (el) => {\n return el.nodeName === tagName || (tagName === '*' && this !== el)\n })\n }\n\n public getElementsByClassName (className: string): TaroElement[] {\n const classNames = className.trim().split(/\\s+/)\n\n return treeToArray(this, (el) => {\n const classList = el.classList\n return classNames.every(c => classList.contains(c))\n })\n }\n\n public dispatchEvent (event: TaroEvent): boolean {\n const cancelable = event.cancelable\n\n const listeners = this.__handlers[event.type]\n\n if (!isArray(listeners)) {\n return false\n }\n\n for (let i = listeners.length; i--;) {\n const listener = listeners[i]\n let result: unknown\n if (listener._stop) {\n listener._stop = false\n } else {\n hooks.call('modifyDispatchEvent', event, this)\n result = listener.call(this, event)\n }\n if ((result === false || event._end) && cancelable) {\n event.defaultPrevented = true\n }\n\n if (!isUndefined(result) && event.mpEvent) {\n const res = hooks.call('modifyTaroEventReturn', this, event, result)\n if (res) { event.mpEvent[EVENT_CALLBACK_RESULT] = result }\n }\n\n if (event._end && event._stop) {\n break\n }\n }\n\n if (event._stop) {\n this._stopPropagation(event)\n }\n\n return listeners != null\n }\n\n public addEventListener (type, handler, options) {\n const name = this.nodeName\n const SPECIAL_NODES = hooks.call('getSpecialNodes')!\n\n let sideEffect = true\n if (isObject<Record<string, any>>(options) && options.sideEffect === false) {\n sideEffect = false\n delete options.sideEffect\n }\n\n hooks.call('modifyAddEventListener', this, sideEffect, getComponentsAlias)\n\n if (sideEffect !== false && !this.isAnyEventBinded() && SPECIAL_NODES.indexOf(name) > -1) {\n const componentsAlias = getComponentsAlias()\n const alias = componentsAlias[name]._num\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.NodeName}`,\n value: alias\n })\n }\n\n super.addEventListener(type, handler, options)\n }\n\n public removeEventListener (type, handler, sideEffect = true) {\n super.removeEventListener(type, handler)\n\n const name = this.nodeName\n const SPECIAL_NODES = hooks.call('getSpecialNodes')!\n\n hooks.call('modifyRemoveEventListener', this, sideEffect, getComponentsAlias)\n\n if (sideEffect !== false && !this.isAnyEventBinded() && SPECIAL_NODES.indexOf(name) > -1) {\n const componentsAlias = getComponentsAlias()\n const value = isHasExtractProp(this) ? `static-${name}` : `pure-${name}`\n const valueAlias = componentsAlias[value]._num\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.NodeName}`,\n value: valueAlias\n })\n }\n }\n\n static extend (methodName: string, options: TFunc | Record<string, any>) {\n extend(TaroElement, methodName, options)\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"element.js","sources":["../../src/dom/element.ts"],"sourcesContent":["import { EMPTY_OBJ, hooks, isArray, isFunction, isObject, isString, isUndefined, Shortcuts, toCamelCase, warn } from '@tarojs/shared'\n\nimport {\n CATCH_VIEW,\n CATCHMOVE,\n CLASS,\n EVENT_CALLBACK_RESULT,\n FOCUS,\n ID,\n PROPERTY_THRESHOLD,\n PURE_VIEW,\n STATIC_VIEW,\n STYLE,\n VIEW\n} from '../constants'\nimport { MutationObserver, MutationRecordType } from '../dom-external/mutation-observer'\nimport { extend, getComponentsAlias, isElement, isHasExtractProp, shortcutAttr } from '../utils'\nimport { ClassList } from './class-list'\nimport { eventSource } from './event-source'\nimport { TaroNode } from './node'\nimport { NodeType } from './node_types'\nimport { Style } from './style'\nimport { treeToArray } from './tree'\n\nimport type { Attributes, TFunc } from '../interface'\nimport type { TaroEvent } from './event'\n\nexport class TaroElement extends TaroNode {\n public ctx?\n public tagName: string\n public props: Record<string, any> = {}\n public style: Style\n public dataset: Record<string, unknown> = EMPTY_OBJ\n public innerHTML: string\n\n public constructor () {\n super()\n this.nodeType = NodeType.ELEMENT_NODE\n this.style = new Style(this)\n hooks.call('patchElement', this)\n }\n\n private _stopPropagation (event: TaroEvent) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let target = this\n // eslint-disable-next-line no-cond-assign\n while ((target = target.parentNode as this)) {\n const listeners = target.__handlers[event.type]\n\n if (!isArray(listeners)) {\n continue\n }\n\n for (let i = listeners.length; i--;) {\n const l = listeners[i]\n l._stop = true\n }\n }\n }\n\n public get id (): string {\n return this.getAttribute(ID)!\n }\n\n public set id (val: string) {\n this.setAttribute(ID, val)\n }\n\n public get className (): string {\n return this.getAttribute(CLASS) || ''\n }\n\n public set className (val: string) {\n this.setAttribute(CLASS, val)\n }\n\n public get cssText (): string {\n return this.getAttribute(STYLE) || ''\n }\n\n public get classList (): ClassList {\n return new ClassList(this.className, this)\n }\n\n public get children (): TaroElement[] {\n return this.childNodes.filter(isElement)\n }\n\n public get attributes (): Attributes[] {\n const props = this.props\n const propKeys = Object.keys(props)\n const style = this.style.cssText\n const attrs = propKeys.map(key => ({ name: key, value: props[key] }))\n return attrs.concat(style ? { name: STYLE, value: style } : [])\n }\n\n public get textContent (): string {\n let text = ''\n const childNodes = this.childNodes\n\n for (let i = 0; i < childNodes.length; i++) {\n text += childNodes[i].textContent\n }\n\n return text\n }\n\n public set textContent (text: string) {\n super.textContent = text\n }\n\n public hasAttribute (qualifiedName: string): boolean {\n return !isUndefined(this.props[qualifiedName])\n }\n\n public hasAttributes (): boolean {\n return this.attributes.length > 0\n }\n\n public get focus () {\n return function () {\n this.setAttribute(FOCUS, true)\n }\n }\n\n // 兼容 Vue3,详情请见:https://github.com/NervJS/taro/issues/10579\n public set focus (value) {\n this.setAttribute(FOCUS, value)\n }\n\n public blur () {\n this.setAttribute(FOCUS, false)\n }\n\n public setAttribute (qualifiedName: string, value: any): void {\n process.env.NODE_ENV !== 'production' && warn(\n isString(value) && value.length > PROPERTY_THRESHOLD,\n `元素 ${this.nodeName} 的 ${qualifiedName} 属性值数据量过大,可能会影响渲染性能。考虑降低图片转为 base64 的阈值或在 CSS 中使用 base64。`\n )\n\n const isPureView = this.nodeName === VIEW && !isHasExtractProp(this) && !this.isAnyEventBinded()\n\n if (qualifiedName !== STYLE) {\n MutationObserver.record({\n target: this,\n type: MutationRecordType.ATTRIBUTES,\n attributeName: qualifiedName,\n oldValue: this.getAttribute(qualifiedName)\n })\n }\n\n switch (qualifiedName) {\n case STYLE:\n this.style.cssText = value as string\n break\n case ID:\n if (this.uid !== this.sid) {\n // eventSource[sid] 永远保留,直到组件卸载\n // eventSource[uid] 可变\n eventSource.delete(this.uid)\n }\n value = String(value)\n this.props[qualifiedName] = this.uid = value\n eventSource.set(value, this)\n break\n default:\n this.props[qualifiedName] = value as string\n\n if (qualifiedName.startsWith('data-')) {\n if (this.dataset === EMPTY_OBJ) {\n this.dataset = Object.create(null)\n }\n this.dataset[toCamelCase(qualifiedName.replace(/^data-/, ''))] = value\n }\n break\n }\n\n // Serialization\n if (!this._root) return\n\n const componentsAlias = getComponentsAlias()\n const _alias = componentsAlias[this.nodeName]\n const viewAlias = componentsAlias[VIEW]._num\n const staticViewAlias = componentsAlias[STATIC_VIEW]._num\n const catchViewAlias = componentsAlias[CATCH_VIEW]._num\n const _path = this._path\n\n qualifiedName = shortcutAttr(qualifiedName)\n\n const qualifiedNameInCamelCase = toCamelCase(qualifiedName)\n const payload = {\n path: `${_path}.${qualifiedNameInCamelCase}`,\n value: isFunction(value) ? () => value : value\n }\n\n hooks.call('modifySetAttrPayload', this, qualifiedName, payload, componentsAlias)\n\n if (_alias) {\n const qualifiedNameAlias = _alias[qualifiedNameInCamelCase] || qualifiedName\n payload.path = `${_path}.${toCamelCase(qualifiedNameAlias)}`\n }\n\n this.enqueueUpdate(payload)\n\n if (this.nodeName === VIEW) {\n if (qualifiedNameInCamelCase === CATCHMOVE) {\n // catchMove = true: catch-view\n // catchMove = false: view or static-view\n this.enqueueUpdate({\n path: `${_path}.${Shortcuts.NodeName}`,\n value: value ? catchViewAlias : (\n this.isAnyEventBinded() ? viewAlias : staticViewAlias\n )\n })\n } else if (isPureView && isHasExtractProp(this)) {\n // pure-view => static-view\n this.enqueueUpdate({\n path: `${_path}.${Shortcuts.NodeName}`,\n value: staticViewAlias\n })\n }\n }\n }\n\n public removeAttribute (qualifiedName: string) {\n const isStaticView = this.nodeName === VIEW && isHasExtractProp(this) && !this.isAnyEventBinded()\n\n MutationObserver.record({\n target: this,\n type: MutationRecordType.ATTRIBUTES,\n attributeName: qualifiedName,\n oldValue: this.getAttribute(qualifiedName)\n })\n\n if (qualifiedName === STYLE) {\n this.style.cssText = ''\n } else {\n const isInterrupt = hooks.call('onRemoveAttribute', this, qualifiedName)\n if (isInterrupt) {\n return\n }\n\n if (!this.props.hasOwnProperty(qualifiedName)) {\n return\n }\n delete this.props[qualifiedName]\n }\n\n // Serialization\n if (!this._root) return\n\n const componentsAlias = getComponentsAlias()\n const _alias = componentsAlias[this.nodeName]\n const viewAlias = componentsAlias[VIEW]._num\n const staticViewAlias = componentsAlias[STATIC_VIEW]._num\n const pureViewAlias = componentsAlias[PURE_VIEW]._num\n const _path = this._path\n\n qualifiedName = shortcutAttr(qualifiedName)\n\n const qualifiedNameInCamelCase = toCamelCase(qualifiedName)\n const payload = {\n path: `${_path}.${qualifiedNameInCamelCase}`,\n value: ''\n }\n\n hooks.call('modifyRmAttrPayload', this, qualifiedName, payload, componentsAlias)\n\n if (_alias) {\n const qualifiedNameAlias = _alias[qualifiedNameInCamelCase] || qualifiedName\n payload.path = `${_path}.${toCamelCase(qualifiedNameAlias)}`\n }\n\n this.enqueueUpdate(payload)\n\n if (this.nodeName === VIEW) {\n if (qualifiedNameInCamelCase === CATCHMOVE) {\n // catch-view => view or static-view or pure-view\n this.enqueueUpdate({\n path: `${_path}.${Shortcuts.NodeName}`,\n value: this.isAnyEventBinded() ? viewAlias : (isHasExtractProp(this) ? staticViewAlias : pureViewAlias)\n })\n } else if (isStaticView && !isHasExtractProp(this)) {\n // static-view => pure-view\n this.enqueueUpdate({\n path: `${_path}.${Shortcuts.NodeName}`,\n value: pureViewAlias\n })\n }\n }\n }\n\n public getAttribute (qualifiedName: string): string {\n const attr = qualifiedName === STYLE ? this.style.cssText : this.props[qualifiedName]\n return attr ?? ''\n }\n\n public getElementsByTagName (tagName: string): TaroElement[] {\n return treeToArray(this, (el) => {\n return el.nodeName === tagName || (tagName === '*' && this !== el)\n })\n }\n\n public getElementsByClassName (className: string): TaroElement[] {\n const classNames = className.trim().split(/\\s+/)\n\n return treeToArray(this, (el) => {\n const classList = el.classList\n return classNames.every(c => classList.contains(c))\n })\n }\n\n public dispatchEvent (event: TaroEvent): boolean {\n const cancelable = event.cancelable\n\n const listeners = this.__handlers[event.type]\n\n if (!isArray(listeners)) {\n return false\n }\n\n for (let i = listeners.length; i--;) {\n const listener = listeners[i]\n let result: unknown\n if (listener._stop) {\n listener._stop = false\n } else {\n hooks.call('modifyDispatchEvent', event, this)\n result = listener.call(this, event)\n }\n if ((result === false || event._end) && cancelable) {\n event.defaultPrevented = true\n }\n\n if (!isUndefined(result) && event.mpEvent) {\n const res = hooks.call('modifyTaroEventReturn', this, event, result)\n if (res) { event.mpEvent[EVENT_CALLBACK_RESULT] = result }\n }\n\n if (event._end && event._stop) {\n break\n }\n }\n\n if (event._stop) {\n this._stopPropagation(event)\n }\n\n return listeners != null\n }\n\n public addEventListener (type, handler, options) {\n const name = this.nodeName\n const SPECIAL_NODES = hooks.call('getSpecialNodes')!\n\n let sideEffect = true\n if (isObject<Record<string, any>>(options) && options.sideEffect === false) {\n sideEffect = false\n delete options.sideEffect\n }\n\n hooks.call('modifyAddEventListener', this, sideEffect, getComponentsAlias)\n\n if (sideEffect !== false && !this.isAnyEventBinded() && SPECIAL_NODES.indexOf(name) > -1) {\n const componentsAlias = getComponentsAlias()\n const alias = componentsAlias[name]._num\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.NodeName}`,\n value: alias\n })\n }\n\n super.addEventListener(type, handler, options)\n }\n\n public removeEventListener (type, handler, sideEffect = true) {\n super.removeEventListener(type, handler)\n\n const name = this.nodeName\n const SPECIAL_NODES = hooks.call('getSpecialNodes')!\n\n hooks.call('modifyRemoveEventListener', this, sideEffect, getComponentsAlias)\n\n if (sideEffect !== false && !this.isAnyEventBinded() && SPECIAL_NODES.indexOf(name) > -1) {\n const componentsAlias = getComponentsAlias()\n const value = isHasExtractProp(this) ? `static-${name}` : `pure-${name}`\n const valueAlias = componentsAlias[value]._num\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.NodeName}`,\n value: valueAlias\n })\n }\n }\n\n static extend (methodName: string, options: TFunc | Record<string, any>) {\n extend(TaroElement, methodName, options)\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { TaroNode } from "./node.js";
1
+ import type { TaroNode } from './node';
2
2
  interface IEventSource extends Map<string | undefined | null, TaroNode> {
3
3
  removeNode(child: TaroNode): void;
4
4
  removeNodeTree(child: TaroNode): void;
5
5
  }
6
- declare const eventSource: IEventSource;
7
- export { eventSource };
6
+ export declare const eventSource: IEventSource;
7
+ export {};
@@ -1,8 +1,7 @@
1
- import { AddEventListenerOptions, EventHandler } from "../index-26658829.js";
2
- declare class TaroEventTarget {
1
+ import type { AddEventListenerOptions, EventHandler } from '../interface';
2
+ export declare class TaroEventTarget {
3
3
  __handlers: Record<string, EventHandler[]>;
4
4
  addEventListener(type: string, handler: EventHandler, options?: boolean | AddEventListenerOptions): void;
5
5
  removeEventListener(type: string, handler: EventHandler): void;
6
6
  isAnyEventBinded(): boolean;
7
7
  }
8
- export { TaroEventTarget };
@@ -1 +1 @@
1
- {"version":3,"file":"event-target.js","sources":["../../src/dom/event-target.ts"],"sourcesContent":["import { hooks, isArray, isObject, warn } from '@tarojs/shared'\n\nimport type { AddEventListenerOptions, EventHandler } from '../interface'\n\nexport class TaroEventTarget {\n public __handlers: Record<string, EventHandler[]> = {}\n\n public addEventListener (type: string, handler: EventHandler, options?: boolean | AddEventListenerOptions) {\n type = type.toLowerCase()\n\n hooks.call('onAddEvent', type, handler, options, this)\n\n if (type === 'regionchange') {\n // map 组件的 regionchange 事件非常特殊,详情:https://github.com/NervJS/taro/issues/5766\n this.addEventListener('begin', handler, options)\n this.addEventListener('end', handler, options)\n return\n }\n\n let isCapture = Boolean(options)\n let isOnce = false\n if (isObject<AddEventListenerOptions>(options)) {\n isCapture = Boolean(options.capture)\n isOnce = Boolean(options.once)\n }\n\n if (isOnce) {\n const wrapper = function () {\n handler.apply(this, arguments) // this 指向 Element\n this.removeEventListener(type, wrapper)\n }\n this.addEventListener(type, wrapper, {\n ...(options as AddEventListenerOptions),\n once: false\n })\n return\n }\n\n process.env.NODE_ENV !== 'production' && warn(isCapture, 'Taro 暂未实现 event 的 capture 特性。')\n\n // 某些框架,如 PReact 有委托的机制,handler 始终是同一个函数\n // 这会导致多层停止冒泡失败:view -> view(handler.stop = false) -> view(handler.stop = true)\n // 这样解决:view -> view(handlerA.stop = false) -> view(handlerB.stop = false)\n // 因此每次绑定事件都新建一个函数,如果带来了性能问题,可以把这段逻辑抽取到 PReact 插件中。\n const oldHandler = handler\n handler = function () {\n return oldHandler.apply(this, arguments) // this 指向 Element\n }\n ;(handler as any).oldHandler = oldHandler\n\n const handlers = this.__handlers[type]\n if (isArray(handlers)) {\n handlers.push(handler)\n } else {\n this.__handlers[type] = [handler]\n }\n }\n\n public removeEventListener (type: string, handler: EventHandler) {\n type = type.toLowerCase()\n\n if (type === 'regionchange') {\n // map 组件的 regionchange 事件非常特殊,详情:https://github.com/NervJS/taro/issues/5766\n this.removeEventListener('begin', handler)\n this.removeEventListener('end', handler)\n return\n }\n\n if (!handler) {\n return\n }\n\n const handlers = this.__handlers[type]\n if (!isArray(handlers)) {\n return\n }\n\n const index = handlers.findIndex(item => {\n if (item === handler || (item as any).oldHandler === handler) return true\n })\n\n process.env.NODE_ENV !== 'production' && warn(index === -1, `事件: '${type}' 没有注册在 DOM 中,因此不会被移除。`)\n\n handlers.splice(index, 1)\n }\n\n public isAnyEventBinded (): boolean {\n const handlers = this.__handlers\n const isAnyEventBinded = Object.keys(handlers).find(key => handlers[key].length)\n return Boolean(isAnyEventBinded)\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-target.js","sources":["../../src/dom/event-target.ts"],"sourcesContent":["import { hooks, isArray, isObject, warn } from '@tarojs/shared'\n\nimport type { AddEventListenerOptions, EventHandler } from '../interface'\n\nexport class TaroEventTarget {\n public __handlers: Record<string, EventHandler[]> = {}\n\n public addEventListener (type: string, handler: EventHandler, options?: boolean | AddEventListenerOptions) {\n type = type.toLowerCase()\n\n hooks.call('onAddEvent', type, handler, options, this)\n\n if (type === 'regionchange') {\n // map 组件的 regionchange 事件非常特殊,详情:https://github.com/NervJS/taro/issues/5766\n this.addEventListener('begin', handler, options)\n this.addEventListener('end', handler, options)\n return\n }\n\n let isCapture = Boolean(options)\n let isOnce = false\n if (isObject<AddEventListenerOptions>(options)) {\n isCapture = Boolean(options.capture)\n isOnce = Boolean(options.once)\n }\n\n if (isOnce) {\n const wrapper = function () {\n handler.apply(this, arguments) // this 指向 Element\n this.removeEventListener(type, wrapper)\n }\n this.addEventListener(type, wrapper, {\n ...(options as AddEventListenerOptions),\n once: false\n })\n return\n }\n\n process.env.NODE_ENV !== 'production' && warn(isCapture, 'Taro 暂未实现 event 的 capture 特性。')\n\n // 某些框架,如 PReact 有委托的机制,handler 始终是同一个函数\n // 这会导致多层停止冒泡失败:view -> view(handler.stop = false) -> view(handler.stop = true)\n // 这样解决:view -> view(handlerA.stop = false) -> view(handlerB.stop = false)\n // 因此每次绑定事件都新建一个函数,如果带来了性能问题,可以把这段逻辑抽取到 PReact 插件中。\n const oldHandler = handler\n handler = function () {\n return oldHandler.apply(this, arguments) // this 指向 Element\n }\n ;(handler as any).oldHandler = oldHandler\n\n const handlers = this.__handlers[type]\n if (isArray(handlers)) {\n handlers.push(handler)\n } else {\n this.__handlers[type] = [handler]\n }\n }\n\n public removeEventListener (type: string, handler: EventHandler) {\n type = type.toLowerCase()\n\n if (type === 'regionchange') {\n // map 组件的 regionchange 事件非常特殊,详情:https://github.com/NervJS/taro/issues/5766\n this.removeEventListener('begin', handler)\n this.removeEventListener('end', handler)\n return\n }\n\n if (!handler) {\n return\n }\n\n const handlers = this.__handlers[type]\n if (!isArray(handlers)) {\n return\n }\n\n const index = handlers.findIndex(item => {\n if (item === handler || (item as any).oldHandler === handler) return true\n })\n\n process.env.NODE_ENV !== 'production' && warn(index === -1, `事件: '${type}' 没有注册在 DOM 中,因此不会被移除。`)\n\n handlers.splice(index, 1)\n }\n\n public isAnyEventBinded (): boolean {\n const handlers = this.__handlers\n const isAnyEventBinded = Object.keys(handlers).find(key => handlers[key].length)\n return Boolean(isAnyEventBinded)\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { EventOptions, MpEvent } from "../index-26658829.js";
2
- import { TaroElement } from "./element.js";
3
- declare class TaroEvent {
1
+ import type { EventOptions, MpEvent } from '../interface';
2
+ import type { TaroElement } from './element';
3
+ export declare class TaroEvent {
4
4
  private cacheTarget;
5
5
  private cacheCurrentTarget;
6
6
  type: string;
@@ -19,6 +19,5 @@ declare class TaroEvent {
19
19
  get target(): any;
20
20
  get currentTarget(): any;
21
21
  }
22
- declare function createEvent(event: MpEvent | string, node?: TaroElement): TaroEvent;
23
- declare function eventHandler(event: MpEvent): any;
24
- export { TaroEvent, createEvent, eventHandler };
22
+ export declare function createEvent(event: MpEvent | string, node?: TaroElement): TaroEvent;
23
+ export declare function eventHandler(event: MpEvent): any;
@@ -1 +1 @@
1
- {"version":3,"file":"event.js","sources":["../../src/dom/event.ts"],"sourcesContent":["import { EMPTY_OBJ, hooks, isUndefined } from '@tarojs/shared'\n\nimport {\n CONFIRM,\n CURRENT_TARGET,\n EVENT_CALLBACK_RESULT,\n INPUT,\n KEY_CODE,\n TARGET,\n TIME_STAMP,\n TOUCHMOVE,\n TYPE\n} from '../constants'\nimport env from '../env'\nimport { isParentBinded } from '../utils'\n\nimport type { EventOptions, MpEvent } from '../interface'\nimport type { TaroElement } from './element'\n\n// Taro 事件对象。以 Web 标准的事件对象为基础,加入小程序事件对象中携带的部分信息,并模拟实现事件冒泡。\nexport class TaroEvent {\n private cacheTarget\n private cacheCurrentTarget\n\n public type: string\n\n public bubbles: boolean\n\n public cancelable: boolean\n\n public _stop = false\n\n public _end = false\n\n public defaultPrevented = false\n\n // Mouse Event botton property, it's used in 3rd lib, like react-router. default 0 in general\n public button = 0\n\n // timestamp can either be hi-res ( relative to page load) or low-res (relative to UNIX epoch)\n // here use hi-res timestamp\n public timeStamp = Date.now()\n\n public mpEvent: MpEvent | undefined\n\n public constructor (type: string, opts: EventOptions, event?: MpEvent) {\n this.type = type.toLowerCase()\n this.mpEvent = event\n this.bubbles = Boolean(opts && opts.bubbles)\n this.cancelable = Boolean(opts && opts.cancelable)\n }\n\n public stopPropagation () {\n this._stop = true\n }\n\n public stopImmediatePropagation () {\n this._end = this._stop = true\n }\n\n public preventDefault () {\n this.defaultPrevented = true\n }\n\n get target () {\n const cacheTarget = this.cacheTarget\n if (!cacheTarget) {\n const target = Object.create(this.mpEvent?.target || null)\n // Note:优先判断冒泡场景alipay的targetDataset的sid, 不然冒泡场景target属性吐出不对,其余拿取当前绑定id\n const element = env.document.getElementById(target.targetDataset?.sid || target.dataset?.sid || target.id || null)\n target.dataset = element !== null ? element.dataset : EMPTY_OBJ\n\n for (const key in this.mpEvent?.detail) {\n target[key] = this.mpEvent!.detail[key]\n }\n\n this.cacheTarget = target\n\n return target\n } else {\n return cacheTarget\n }\n }\n\n get currentTarget () {\n const cacheCurrentTarget = this.cacheCurrentTarget\n if (!cacheCurrentTarget) {\n const doc = env.document\n\n const currentTarget = Object.create(this.mpEvent?.currentTarget || null)\n\n const element = doc.getElementById(currentTarget.dataset?.sid || currentTarget.id || null)\n const targetElement = doc.getElementById(this.mpEvent?.target?.dataset?.sid as string || this.mpEvent?.target?.id as string || null)\n\n if (element === null || (element && element === targetElement)) {\n this.cacheCurrentTarget = this.target\n return this.target\n }\n\n currentTarget.dataset = element.dataset\n\n for (const key in this.mpEvent?.detail) {\n currentTarget[key] = this.mpEvent!.detail[key]\n }\n\n this.cacheCurrentTarget = currentTarget\n\n return currentTarget\n } else {\n return cacheCurrentTarget\n }\n }\n}\n\nexport function createEvent (event: MpEvent | string, node?: TaroElement) {\n if (typeof event === 'string') {\n // For Vue3 using document.createEvent\n return new TaroEvent(event, { bubbles: true, cancelable: true })\n }\n\n const domEv = new TaroEvent(event.type, { bubbles: true, cancelable: true }, event)\n\n for (const key in event) {\n if (key === CURRENT_TARGET || key === TARGET || key === TYPE || key === TIME_STAMP) {\n continue\n } else {\n domEv[key] = event[key]\n }\n }\n\n if (domEv.type === CONFIRM && node?.nodeName === INPUT) {\n // eslint-disable-next-line dot-notation\n domEv[KEY_CODE] = 13\n }\n\n return domEv\n}\n\nconst eventsBatch = {}\n\nfunction getEventCBResult (event: MpEvent) {\n const result = event[EVENT_CALLBACK_RESULT]\n if (!isUndefined(result)) {\n delete event[EVENT_CALLBACK_RESULT]\n }\n return result\n}\n\n// 小程序的事件代理回调函数\nexport function eventHandler (event: MpEvent) {\n // Note: ohos 上事件没有设置 type、detail 类型 setter 方法,且部分事件(例如 load 等)缺失 target 导致事件错误\n event.type === undefined && Object.defineProperty(event, 'type', {\n value: (event as any)._type // ohos only\n })\n event.detail === undefined && Object.defineProperty(event, 'detail', {\n value: (event as any)._detail || { ...event } // ohos only\n })\n event.currentTarget = event.currentTarget || event.target || { ...event }\n hooks.call('modifyMpEventImpl', event)\n\n const currentTarget = event.currentTarget\n const id = currentTarget.dataset?.sid as string /** sid */ || currentTarget.id /** uid */ || event.detail?.id as string || ''\n\n const node = env.document.getElementById(id)\n if (node) {\n const dispatch = () => {\n const e = createEvent(event, node)\n\n hooks.call('modifyTaroEvent', e, node)\n hooks.call('dispatchTaroEvent', e, node)\n hooks.call('dispatchTaroEventFinish', e, node)\n }\n if (hooks.isExist('batchedEventUpdates')) {\n const type = event.type\n\n if (\n !hooks.call('isBubbleEvents', type) ||\n !isParentBinded(node, type) ||\n (type === TOUCHMOVE && !!node.props.catchMove)\n ) {\n // 最上层组件统一 batchUpdate\n hooks.call('batchedEventUpdates', () => {\n if (eventsBatch[type]) {\n eventsBatch[type].forEach(fn => fn())\n delete eventsBatch[type]\n }\n dispatch()\n })\n return getEventCBResult(event)\n } else {\n // 如果上层组件也有绑定同类型的组件,委托给上层组件调用事件回调\n (eventsBatch[type] ||= []).push(dispatch)\n }\n } else {\n dispatch()\n return getEventCBResult(event)\n }\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event.js","sources":["../../src/dom/event.ts"],"sourcesContent":["import { EMPTY_OBJ, hooks, isUndefined } from '@tarojs/shared'\n\nimport {\n CONFIRM,\n CURRENT_TARGET,\n EVENT_CALLBACK_RESULT,\n INPUT,\n KEY_CODE,\n TARGET,\n TIME_STAMP,\n TOUCHMOVE,\n TYPE\n} from '../constants'\nimport env from '../env'\nimport { isParentBinded } from '../utils'\n\nimport type { EventOptions, MpEvent } from '../interface'\nimport type { TaroElement } from './element'\n\n// Taro 事件对象。以 Web 标准的事件对象为基础,加入小程序事件对象中携带的部分信息,并模拟实现事件冒泡。\nexport class TaroEvent {\n private cacheTarget\n private cacheCurrentTarget\n\n public type: string\n\n public bubbles: boolean\n\n public cancelable: boolean\n\n public _stop = false\n\n public _end = false\n\n public defaultPrevented = false\n\n // Mouse Event botton property, it's used in 3rd lib, like react-router. default 0 in general\n public button = 0\n\n // timestamp can either be hi-res ( relative to page load) or low-res (relative to UNIX epoch)\n // here use hi-res timestamp\n public timeStamp = Date.now()\n\n public mpEvent: MpEvent | undefined\n\n public constructor (type: string, opts: EventOptions, event?: MpEvent) {\n this.type = type.toLowerCase()\n this.mpEvent = event\n this.bubbles = Boolean(opts && opts.bubbles)\n this.cancelable = Boolean(opts && opts.cancelable)\n }\n\n public stopPropagation () {\n this._stop = true\n }\n\n public stopImmediatePropagation () {\n this._end = this._stop = true\n }\n\n public preventDefault () {\n this.defaultPrevented = true\n }\n\n get target () {\n const cacheTarget = this.cacheTarget\n if (!cacheTarget) {\n const target = Object.create(this.mpEvent?.target || null)\n // Note:优先判断冒泡场景alipay的targetDataset的sid, 不然冒泡场景target属性吐出不对,其余拿取当前绑定id\n const element = env.document.getElementById(target.targetDataset?.sid || target.dataset?.sid || target.id || null)\n target.dataset = element !== null ? element.dataset : EMPTY_OBJ\n\n for (const key in this.mpEvent?.detail) {\n target[key] = this.mpEvent!.detail[key]\n }\n\n this.cacheTarget = target\n\n return target\n } else {\n return cacheTarget\n }\n }\n\n get currentTarget () {\n const cacheCurrentTarget = this.cacheCurrentTarget\n if (!cacheCurrentTarget) {\n const doc = env.document\n\n const currentTarget = Object.create(this.mpEvent?.currentTarget || null)\n\n const element = doc.getElementById(currentTarget.dataset?.sid || currentTarget.id || null)\n const targetElement = doc.getElementById(this.mpEvent?.target?.dataset?.sid as string || this.mpEvent?.target?.id as string || null)\n\n if (element === null || (element && element === targetElement)) {\n this.cacheCurrentTarget = this.target\n return this.target\n }\n\n currentTarget.dataset = element.dataset\n\n for (const key in this.mpEvent?.detail) {\n currentTarget[key] = this.mpEvent!.detail[key]\n }\n\n this.cacheCurrentTarget = currentTarget\n\n return currentTarget\n } else {\n return cacheCurrentTarget\n }\n }\n}\n\nexport function createEvent (event: MpEvent | string, node?: TaroElement) {\n if (typeof event === 'string') {\n // For Vue3 using document.createEvent\n return new TaroEvent(event, { bubbles: true, cancelable: true })\n }\n\n const domEv = new TaroEvent(event.type, { bubbles: true, cancelable: true }, event)\n\n for (const key in event) {\n if (key === CURRENT_TARGET || key === TARGET || key === TYPE || key === TIME_STAMP) {\n continue\n } else {\n domEv[key] = event[key]\n }\n }\n\n if (domEv.type === CONFIRM && node?.nodeName === INPUT) {\n // eslint-disable-next-line dot-notation\n domEv[KEY_CODE] = 13\n }\n\n return domEv\n}\n\nconst eventsBatch = {}\n\nfunction getEventCBResult (event: MpEvent) {\n const result = event[EVENT_CALLBACK_RESULT]\n if (!isUndefined(result)) {\n delete event[EVENT_CALLBACK_RESULT]\n }\n return result\n}\n\n// 小程序的事件代理回调函数\nexport function eventHandler (event: MpEvent) {\n // Note: ohos 上事件没有设置 type、detail 类型 setter 方法,且部分事件(例如 load 等)缺失 target 导致事件错误\n event.type === undefined && Object.defineProperty(event, 'type', {\n value: (event as any)._type // ohos only\n })\n event.detail === undefined && Object.defineProperty(event, 'detail', {\n value: (event as any)._detail || { ...event } // ohos only\n })\n event.currentTarget = event.currentTarget || event.target || { ...event }\n hooks.call('modifyMpEventImpl', event)\n\n const currentTarget = event.currentTarget\n const id = currentTarget.dataset?.sid as string /** sid */ || currentTarget.id /** uid */ || event.detail?.id as string || ''\n\n const node = env.document.getElementById(id)\n if (node) {\n const dispatch = () => {\n const e = createEvent(event, node)\n\n hooks.call('modifyTaroEvent', e, node)\n hooks.call('dispatchTaroEvent', e, node)\n hooks.call('dispatchTaroEventFinish', e, node)\n }\n if (hooks.isExist('batchedEventUpdates')) {\n const type = event.type\n\n if (\n !hooks.call('isBubbleEvents', type) ||\n !isParentBinded(node, type) ||\n (type === TOUCHMOVE && !!node.props.catchMove)\n ) {\n // 最上层组件统一 batchUpdate\n hooks.call('batchedEventUpdates', () => {\n if (eventsBatch[type]) {\n eventsBatch[type].forEach(fn => fn())\n delete eventsBatch[type]\n }\n dispatch()\n })\n return getEventCBResult(event)\n } else {\n // 如果上层组件也有绑定同类型的组件,委托给上层组件调用事件回调\n (eventsBatch[type] ||= []).push(dispatch)\n }\n } else {\n dispatch()\n return getEventCBResult(event)\n }\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
- import { TaroElement } from "./element.js";
2
- import { TaroEvent } from "./event.js";
3
- declare class FormElement extends TaroElement {
1
+ import { TaroElement } from './element';
2
+ import type { TaroEvent } from './event';
3
+ export declare class FormElement extends TaroElement {
4
4
  get type(): string;
5
5
  set type(val: string);
6
6
  get value(): string | boolean | number | any[];
7
7
  set value(val: string | boolean | number | any[]);
8
8
  dispatchEvent(event: TaroEvent): boolean;
9
9
  }
10
- export { FormElement };
package/dist/dom/form.js CHANGED
@@ -26,7 +26,7 @@ class FormElement extends TaroElement {
26
26
  else if (event.type === INPUT) {
27
27
  // Web 规范中表单组件的 value 应该跟着输入改变
28
28
  // 只是改 this.props.value 的话不会进行 setData,因此这里修改 this.value。
29
- // 只测试了 React、Vue、Vue3 input 组件的 onInput 事件,onChange 事件不确定有没有副作用,所以暂不修改。
29
+ // 只测试了 React、Vue3 input 组件的 onInput 事件,onChange 事件不确定有没有副作用,所以暂不修改。
30
30
  this.value = val;
31
31
  }
32
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"form.js","sources":["../../src/dom/form.ts"],"sourcesContent":["import {\n CHANGE,\n INPUT,\n TYPE,\n VALUE\n} from '../constants'\nimport { TaroElement } from './element'\n\nimport type { TaroEvent } from './event'\n\nexport class FormElement extends TaroElement {\n public get type () {\n return this.props[TYPE] ?? ''\n }\n\n public set type (val: string) {\n this.setAttribute(TYPE, val)\n }\n\n public get value () {\n // eslint-disable-next-line dot-notation\n const val = this.props[VALUE]\n return val == null ? '' : val\n }\n\n public set value (val: string | boolean | number | any[]) {\n this.setAttribute(VALUE, val)\n }\n\n public dispatchEvent (event: TaroEvent) {\n if (event.mpEvent) {\n const val = event.mpEvent.detail.value\n if (event.type === CHANGE) {\n this.props.value = val as string\n } else if (event.type === INPUT) {\n // Web 规范中表单组件的 value 应该跟着输入改变\n // 只是改 this.props.value 的话不会进行 setData,因此这里修改 this.value。\n // 只测试了 React、Vue、Vue3 input 组件的 onInput 事件,onChange 事件不确定有没有副作用,所以暂不修改。\n this.value = val as string\n }\n }\n\n return super.dispatchEvent(event)\n }\n}\n"],"names":[],"mappings":";;;AAUM,MAAO,WAAY,SAAQ,WAAW,CAAA;AAC1C,IAAA,IAAW,IAAI,GAAA;;QACb,OAAO,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAA;KAC9B;IAED,IAAW,IAAI,CAAE,GAAW,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;KAC7B;AAED,IAAA,IAAW,KAAK,GAAA;;QAEd,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC7B,OAAO,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,CAAA;KAC9B;IAED,IAAW,KAAK,CAAE,GAAsC,EAAA;AACtD,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;KAC9B;AAEM,IAAA,aAAa,CAAE,KAAgB,EAAA;QACpC,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAA;AACtC,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AACzB,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAa,CAAA;AACjC,aAAA;AAAM,iBAAA,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;;;;AAI/B,gBAAA,IAAI,CAAC,KAAK,GAAG,GAAa,CAAA;AAC3B,aAAA;AACF,SAAA;AAED,QAAA,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;KAClC;AACF;;;;"}
1
+ {"version":3,"file":"form.js","sources":["../../src/dom/form.ts"],"sourcesContent":["import {\n CHANGE,\n INPUT,\n TYPE,\n VALUE\n} from '../constants'\nimport { TaroElement } from './element'\n\nimport type { TaroEvent } from './event'\n\nexport class FormElement extends TaroElement {\n public get type () {\n return this.props[TYPE] ?? ''\n }\n\n public set type (val: string) {\n this.setAttribute(TYPE, val)\n }\n\n public get value () {\n // eslint-disable-next-line dot-notation\n const val = this.props[VALUE]\n return val == null ? '' : val\n }\n\n public set value (val: string | boolean | number | any[]) {\n this.setAttribute(VALUE, val)\n }\n\n public dispatchEvent (event: TaroEvent) {\n if (event.mpEvent) {\n const val = event.mpEvent.detail.value\n if (event.type === CHANGE) {\n this.props.value = val as string\n } else if (event.type === INPUT) {\n // Web 规范中表单组件的 value 应该跟着输入改变\n // 只是改 this.props.value 的话不会进行 setData,因此这里修改 this.value。\n // 只测试了 React、Vue3 input 组件的 onInput 事件,onChange 事件不确定有没有副作用,所以暂不修改。\n this.value = val as string\n }\n }\n\n return super.dispatchEvent(event)\n }\n}\n"],"names":[],"mappings":";;;AAUM,MAAO,WAAY,SAAQ,WAAW,CAAA;AAC1C,IAAA,IAAW,IAAI,GAAA;;QACb,OAAO,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAA;KAC9B;IAED,IAAW,IAAI,CAAE,GAAW,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;KAC7B;AAED,IAAA,IAAW,KAAK,GAAA;;QAEd,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC7B,OAAO,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,CAAA;KAC9B;IAED,IAAW,KAAK,CAAE,GAAsC,EAAA;AACtD,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;KAC9B;AAEM,IAAA,aAAa,CAAE,KAAgB,EAAA;AACpC,QAAA,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAA;AACtC,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AACzB,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAa,CAAA;aACjC;AAAM,iBAAA,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;;;;AAI/B,gBAAA,IAAI,CAAC,KAAK,GAAG,GAAa,CAAA;aAC3B;SACF;AAED,QAAA,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;KAClC;AACF;;;;"}
@@ -1,14 +1,14 @@
1
- import { TaroEventTarget } from "./event-target.js";
2
- import { NodeType } from "../node_types-9ac5b4dd.js";
3
- import { TFunc, UpdatePayload } from "../index-26658829.js";
4
- import { TaroDocument } from "./document.js";
5
- import { TaroElement } from "./element.js";
6
- import { TaroRootElement } from "./root.js";
1
+ import { TaroEventTarget } from './event-target';
2
+ import { NodeType } from './node_types';
3
+ import type { TFunc, UpdatePayload } from '../interface';
4
+ import type { TaroDocument } from './document';
5
+ import type { TaroElement } from './element';
6
+ import type { TaroRootElement } from './root';
7
7
  interface RemoveChildOptions {
8
8
  cleanRef?: boolean;
9
9
  doUpdate?: boolean;
10
10
  }
11
- declare class TaroNode extends TaroEventTarget {
11
+ export declare class TaroNode extends TaroEventTarget {
12
12
  uid: string;
13
13
  sid: string;
14
14
  nodeType: NodeType;
@@ -32,14 +32,6 @@ declare class TaroNode extends TaroEventTarget {
32
32
  * @TODO 等待完整 innerHTML 实现
33
33
  */
34
34
  set textContent(text: string);
35
- /**
36
- * @doc https://developer.mozilla.org/zh-CN/docs/Web/API/Node/insertBefore
37
- * @scenario
38
- * [A,B,C]
39
- * 1. insert D before C, D has no parent
40
- * 2. insert D before C, D has the same parent of C
41
- * 3. insert D before C, D has the different parent of C
42
- */
43
35
  /**
44
36
  * @doc https://developer.mozilla.org/zh-CN/docs/Web/API/Node/insertBefore
45
37
  * @scenario
@@ -49,14 +41,6 @@ declare class TaroNode extends TaroEventTarget {
49
41
  * 3. insert D before C, D has the different parent of C
50
42
  */
51
43
  insertBefore<T extends TaroNode>(newChild: T, refChild?: TaroNode | null, isReplace?: boolean): T;
52
- /**
53
- * @doc https://developer.mozilla.org/zh-CN/docs/Web/API/Node/appendChild
54
- * @scenario
55
- * [A,B,C]
56
- * 1. append C, C has no parent
57
- * 2. append C, C has the same parent of B
58
- * 3. append C, C has the different parent of B
59
- */
60
44
  /**
61
45
  * @doc https://developer.mozilla.org/zh-CN/docs/Web/API/Node/appendChild
62
46
  * @scenario
@@ -66,14 +50,6 @@ declare class TaroNode extends TaroEventTarget {
66
50
  * 3. append C, C has the different parent of B
67
51
  */
68
52
  appendChild(newChild: TaroNode): TaroNode;
69
- /**
70
- * @doc https://developer.mozilla.org/zh-CN/docs/Web/API/Node/replaceChild
71
- * @scenario
72
- * [A,B,C]
73
- * 1. replace B with C, C has no parent
74
- * 2. replace B with C, C has no parent, C has the same parent of B
75
- * 3. replace B with C, C has no parent, C has the different parent of B
76
- */
77
53
  /**
78
54
  * @doc https://developer.mozilla.org/zh-CN/docs/Web/API/Node/replaceChild
79
55
  * @scenario
@@ -83,13 +59,6 @@ declare class TaroNode extends TaroEventTarget {
83
59
  * 3. replace B with C, C has no parent, C has the different parent of B
84
60
  */
85
61
  replaceChild(newChild: TaroNode, oldChild: TaroNode): TaroNode | undefined;
86
- /**
87
- * @doc https://developer.mozilla.org/zh-CN/docs/Web/API/Node/removeChild
88
- * @scenario
89
- * [A,B,C]
90
- * 1. remove A or B
91
- * 2. remove C
92
- */
93
62
  /**
94
63
  * @doc https://developer.mozilla.org/zh-CN/docs/Web/API/Node/removeChild
95
64
  * @scenario
@@ -104,4 +73,4 @@ declare class TaroNode extends TaroEventTarget {
104
73
  get ownerDocument(): TaroDocument;
105
74
  static extend(methodName: string, options: TFunc | Record<string, any>): void;
106
75
  }
107
- export { TaroNode };
76
+ export {};
package/dist/dom/node.js CHANGED
@@ -3,7 +3,7 @@ import { DOCUMENT_FRAGMENT } from '../constants/index.js';
3
3
  import { MutationObserver } from '../dom-external/mutation-observer/index.js';
4
4
  import env from '../env.js';
5
5
  import { hydrate } from '../hydrate.js';
6
- import { isComment, extend, incrementId } from '../utils/index.js';
6
+ import { incrementId, isComment, extend } from '../utils/index.js';
7
7
  import { eventSource } from './event-source.js';
8
8
  import { TaroEventTarget } from './event-target.js';
9
9
 
@@ -200,7 +200,7 @@ class TaroNode extends TaroEventTarget {
200
200
  : [],
201
201
  nextSibling: isReplace
202
202
  ? refChild.nextSibling /** replaceChild */
203
- : (refChild || null),
203
+ : (refChild || null), /** insertBefore & appendChild */
204
204
  previousSibling: newChild.previousSibling
205
205
  });
206
206
  return newChild;