@tarojs/runtime 3.3.14 → 3.5.0-canary.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.
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.esm.js","sources":["../src/polyfill/reflect-metadata.js","../src/constants/identifiers.ts","../src/constants/index.ts","../src/utils/index.ts","../src/dom/event-target.ts","../src/hydrate.ts","../src/dom/event-source.ts","../src/interface/container.ts","../src/dom/node.ts","../src/dom/text.ts","../src/dom/style_properties.ts","../src/dom/style.ts","../src/dom/tree.ts","../src/dom/class-list.ts","../src/dom/element.ts","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/_isKey.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/_castPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseGet.js","../node_modules/lodash-es/get.js","../src/options.ts","../src/perf.ts","../src/dom/root.ts","../src/dom/form.ts","../src/dom/svg.ts","../src/dom-external/inner-html/scaner.ts","../src/dom-external/inner-html/tags.ts","../src/dom-external/inner-html/utils.ts","../src/dom-external/inner-html/style.ts","../src/dom-external/inner-html/parser.ts","../src/dom-external/inner-html/html.ts","../src/dom-external/node.ts","../src/dom-external/node-impl.ts","../src/dom-external/element.ts","../src/dom-external/element-impl.ts","../src/dom/document.ts","../src/hooks.ts","../src/constants/events.ts","../src/container/default-hooks.ts","../src/container/plugin-hooks.ts","../src/container/index.ts","../src/dom/event.ts","../src/env.ts","../src/bom/document.ts","../src/bom/navigator.ts","../src/bom/raf.ts","../src/bom/getComputedStyle.ts","../src/bom/window.ts","../src/current.ts","../src/emitter/emitter.ts","../src/dsl/common.ts","../src/dsl/react.ts","../src/dsl/vue.ts","../src/dsl/vue3.ts","../src/dsl/hooks.ts","../src/next-tick.ts"],"sourcesContent":["/*! *****************************************************************************\nCopyright (C) Microsoft. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n/** https://github.com/rbuckton/reflect-metadata */\n\nif (process.env.TARO_ENV === 'h5') {\n require('reflect-metadata')\n} else {\n // var Reflect;\n (function (Reflect) {\n // Metadata Proposal\n // https://rbuckton.github.io/reflect-metadata/\n (function (factory) {\n // var root = typeof global === \"object\" ? global :\n // typeof self === \"object\" ? self :\n // typeof this === \"object\" ? this :\n // Function(\"return this;\")();\n var exporter = makeExporter(Reflect);\n // if (typeof root.Reflect === \"undefined\") {\n // root.Reflect = Reflect;\n // }\n // else {\n // exporter = makeExporter(root.Reflect, exporter);\n // }\n factory(exporter);\n function makeExporter(target, previous) {\n return function (key, value) {\n if (typeof target[key] !== \"function\") {\n Object.defineProperty(target, key, { configurable: true, writable: true, value: value });\n }\n if (previous)\n previous(key, value);\n };\n }\n })(function (exporter) {\n var hasOwn = Object.prototype.hasOwnProperty;\n // feature test for Symbol support\n var supportsSymbol = typeof Symbol === \"function\";\n var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== \"undefined\" ? Symbol.toPrimitive : \"@@toPrimitive\";\n var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== \"undefined\" ? Symbol.iterator : \"@@iterator\";\n var supportsCreate = typeof Object.create === \"function\"; // feature test for Object.create support\n var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support\n var downLevel = !supportsCreate && !supportsProto;\n var HashMap = {\n // create an object in dictionary mode (a.k.a. \"slow\" mode in v8)\n create: supportsCreate\n ? function () { return MakeDictionary(Object.create(null)); }\n : supportsProto\n ? function () { return MakeDictionary({ __proto__: null }); }\n : function () { return MakeDictionary({}); },\n has: downLevel\n ? function (map, key) { return hasOwn.call(map, key); }\n : function (map, key) { return key in map; },\n get: downLevel\n ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }\n : function (map, key) { return map[key]; },\n };\n // Load global or shim versions of Map, Set, and WeakMap\n var functionPrototype = Object.getPrototypeOf(Function);\n var usePolyfill = typeof process === \"object\" && process.env && process.env[\"REFLECT_METADATA_USE_MAP_POLYFILL\"] === \"true\";\n var _Map = !usePolyfill && typeof Map === \"function\" && typeof Map.prototype.entries === \"function\" ? Map : CreateMapPolyfill();\n var _Set = !usePolyfill && typeof Set === \"function\" && typeof Set.prototype.entries === \"function\" ? Set : CreateSetPolyfill();\n var _WeakMap = !usePolyfill && typeof WeakMap === \"function\" ? WeakMap : CreateWeakMapPolyfill();\n // [[Metadata]] internal slot\n // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots\n var Metadata = new _WeakMap();\n /**\n * Applies a set of decorators to a property of a target object.\n * @param decorators An array of decorators.\n * @param target The target object.\n * @param propertyKey (Optional) The property key to decorate.\n * @param attributes (Optional) The property descriptor for the target key.\n * @remarks Decorators are applied in reverse order.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Example = Reflect.decorate(decoratorsArray, Example);\n *\n * // property (on constructor)\n * Reflect.decorate(decoratorsArray, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.decorate(decoratorsArray, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Object.defineProperty(Example, \"staticMethod\",\n * Reflect.decorate(decoratorsArray, Example, \"staticMethod\",\n * Object.getOwnPropertyDescriptor(Example, \"staticMethod\")));\n *\n * // method (on prototype)\n * Object.defineProperty(Example.prototype, \"method\",\n * Reflect.decorate(decoratorsArray, Example.prototype, \"method\",\n * Object.getOwnPropertyDescriptor(Example.prototype, \"method\")));\n *\n */\n function decorate(decorators, target, propertyKey, attributes) {\n if (!IsUndefined(propertyKey)) {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsObject(target))\n throw new TypeError();\n if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))\n throw new TypeError();\n if (IsNull(attributes))\n attributes = undefined;\n propertyKey = ToPropertyKey(propertyKey);\n return DecorateProperty(decorators, target, propertyKey, attributes);\n }\n else {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsConstructor(target))\n throw new TypeError();\n return DecorateConstructor(decorators, target);\n }\n }\n exporter(\"decorate\", decorate);\n // 4.1.2 Reflect.metadata(metadataKey, metadataValue)\n // https://rbuckton.github.io/reflect-metadata/#reflect.metadata\n /**\n * A default metadata decorator factory that can be used on a class, class member, or parameter.\n * @param metadataKey The key for the metadata entry.\n * @param metadataValue The value for the metadata entry.\n * @returns A decorator function.\n * @remarks\n * If `metadataKey` is already defined for the target and target key, the\n * metadataValue for that key will be overwritten.\n * @example\n *\n * // constructor\n * @Reflect.metadata(key, value)\n * class Example {\n * }\n *\n * // property (on constructor, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticProperty;\n * }\n *\n * // property (on prototype, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * property;\n * }\n *\n * // method (on constructor)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticMethod() { }\n * }\n *\n * // method (on prototype)\n * class Example {\n * @Reflect.metadata(key, value)\n * method() { }\n * }\n *\n */\n function metadata(metadataKey, metadataValue) {\n function decorator(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))\n throw new TypeError();\n OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n return decorator;\n }\n exporter(\"metadata\", metadata);\n /**\n * Define a unique metadata entry on the target.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param metadataValue A value that contains attached metadata.\n * @param target The target object on which to define metadata.\n * @param propertyKey (Optional) The property key for the target.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Reflect.defineMetadata(\"custom:annotation\", options, Example);\n *\n * // property (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticMethod\");\n *\n * // method (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"method\");\n *\n * // decorator factory as metadata-producing annotation.\n * function MyAnnotation(options): Decorator {\n * return (target, key?) => Reflect.defineMetadata(\"custom:annotation\", options, target, key);\n * }\n *\n */\n function defineMetadata(metadataKey, metadataValue, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n exporter(\"defineMetadata\", defineMetadata);\n /**\n * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasMetadata\", hasMetadata);\n /**\n * Gets a value indicating whether the target object has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasOwnMetadata\", hasOwnMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object or its prototype chain.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getMetadata\", getMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getOwnMetadata\", getOwnMetadata);\n /**\n * Gets the metadata keys defined on the target object or its prototype chain.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryMetadataKeys(target, propertyKey);\n }\n exporter(\"getMetadataKeys\", getMetadataKeys);\n /**\n * Gets the unique metadata keys defined on the target object.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getOwnMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryOwnMetadataKeys(target, propertyKey);\n }\n exporter(\"getOwnMetadataKeys\", getOwnMetadataKeys);\n /**\n * Deletes the metadata entry from the target object with the provided key.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata entry was found and deleted; otherwise, false.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function deleteMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n if (!metadataMap.delete(metadataKey))\n return false;\n if (metadataMap.size > 0)\n return true;\n var targetMetadata = Metadata.get(target);\n targetMetadata.delete(propertyKey);\n if (targetMetadata.size > 0)\n return true;\n Metadata.delete(target);\n return true;\n }\n exporter(\"deleteMetadata\", deleteMetadata);\n function DecorateConstructor(decorators, target) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsConstructor(decorated))\n throw new TypeError();\n target = decorated;\n }\n }\n return target;\n }\n function DecorateProperty(decorators, target, propertyKey, descriptor) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target, propertyKey, descriptor);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsObject(decorated))\n throw new TypeError();\n descriptor = decorated;\n }\n }\n return descriptor;\n }\n function GetOrCreateMetadataMap(O, P, Create) {\n var targetMetadata = Metadata.get(O);\n if (IsUndefined(targetMetadata)) {\n if (!Create)\n return undefined;\n targetMetadata = new _Map();\n Metadata.set(O, targetMetadata);\n }\n var metadataMap = targetMetadata.get(P);\n if (IsUndefined(metadataMap)) {\n if (!Create)\n return undefined;\n metadataMap = new _Map();\n targetMetadata.set(P, metadataMap);\n }\n return metadataMap;\n }\n // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata\n function OrdinaryHasMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return true;\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryHasMetadata(MetadataKey, parent, P);\n return false;\n }\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n return ToBoolean(metadataMap.has(MetadataKey));\n }\n // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata\n function OrdinaryGetMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return OrdinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryGetMetadata(MetadataKey, parent, P);\n return undefined;\n }\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return undefined;\n return metadataMap.get(MetadataKey);\n }\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);\n metadataMap.set(MetadataKey, MetadataValue);\n }\n // 3.1.6.1 OrdinaryMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys\n function OrdinaryMetadataKeys(O, P) {\n var ownKeys = OrdinaryOwnMetadataKeys(O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (parent === null)\n return ownKeys;\n var parentKeys = OrdinaryMetadataKeys(parent, P);\n if (parentKeys.length <= 0)\n return ownKeys;\n if (ownKeys.length <= 0)\n return parentKeys;\n var set = new _Set();\n var keys = [];\n for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {\n var key = ownKeys_1[_i];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {\n var key = parentKeys_1[_a];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n return keys;\n }\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\n function OrdinaryOwnMetadataKeys(O, P) {\n var keys = [];\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return keys;\n var keysObj = metadataMap.keys();\n var iterator = GetIterator(keysObj);\n var k = 0;\n while (true) {\n var next = IteratorStep(iterator);\n if (!next) {\n keys.length = k;\n return keys;\n }\n var nextValue = IteratorValue(next);\n try {\n keys[k] = nextValue;\n }\n catch (e) {\n try {\n IteratorClose(iterator);\n }\n finally {\n throw e;\n }\n }\n k++;\n }\n }\n // 6 ECMAScript Data Typ0es and Values\n // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values\n function Type(x) {\n if (x === null)\n return 1 /* Null */;\n switch (typeof x) {\n case \"undefined\": return 0 /* Undefined */;\n case \"boolean\": return 2 /* Boolean */;\n case \"string\": return 3 /* String */;\n case \"symbol\": return 4 /* Symbol */;\n case \"number\": return 5 /* Number */;\n case \"object\": return x === null ? 1 /* Null */ : 6 /* Object */;\n default: return 6 /* Object */;\n }\n }\n // 6.1.1 The Undefined Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type\n function IsUndefined(x) {\n return x === undefined;\n }\n // 6.1.2 The Null Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type\n function IsNull(x) {\n return x === null;\n }\n // 6.1.5 The Symbol Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type\n function IsSymbol(x) {\n return typeof x === \"symbol\";\n }\n // 6.1.7 The Object Type\n // https://tc39.github.io/ecma262/#sec-object-type\n function IsObject(x) {\n return typeof x === \"object\" ? x !== null : typeof x === \"function\";\n }\n // 7.1 Type Conversion\n // https://tc39.github.io/ecma262/#sec-type-conversion\n // 7.1.1 ToPrimitive(input [, PreferredType])\n // https://tc39.github.io/ecma262/#sec-toprimitive\n function ToPrimitive(input, PreferredType) {\n switch (Type(input)) {\n case 0 /* Undefined */: return input;\n case 1 /* Null */: return input;\n case 2 /* Boolean */: return input;\n case 3 /* String */: return input;\n case 4 /* Symbol */: return input;\n case 5 /* Number */: return input;\n }\n var hint = PreferredType === 3 /* String */ ? \"string\" : PreferredType === 5 /* Number */ ? \"number\" : \"default\";\n var exoticToPrim = GetMethod(input, toPrimitiveSymbol);\n if (exoticToPrim !== undefined) {\n var result = exoticToPrim.call(input, hint);\n if (IsObject(result))\n throw new TypeError();\n return result;\n }\n return OrdinaryToPrimitive(input, hint === \"default\" ? \"number\" : hint);\n }\n // 7.1.1.1 OrdinaryToPrimitive(O, hint)\n // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive\n function OrdinaryToPrimitive(O, hint) {\n if (hint === \"string\") {\n var toString_1 = O.toString;\n if (IsCallable(toString_1)) {\n var result = toString_1.call(O);\n if (!IsObject(result))\n return result;\n }\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n else {\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n var toString_2 = O.toString;\n if (IsCallable(toString_2)) {\n var result = toString_2.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n throw new TypeError();\n }\n // 7.1.2 ToBoolean(argument)\n // https://tc39.github.io/ecma262/2016/#sec-toboolean\n function ToBoolean(argument) {\n return !!argument;\n }\n // 7.1.12 ToString(argument)\n // https://tc39.github.io/ecma262/#sec-tostring\n function ToString(argument) {\n return \"\" + argument;\n }\n // 7.1.14 ToPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-topropertykey\n function ToPropertyKey(argument) {\n var key = ToPrimitive(argument, 3 /* String */);\n if (IsSymbol(key))\n return key;\n return ToString(key);\n }\n // 7.2 Testing and Comparison Operations\n // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations\n // 7.2.2 IsArray(argument)\n // https://tc39.github.io/ecma262/#sec-isarray\n function IsArray(argument) {\n return Array.isArray\n ? Array.isArray(argument)\n : argument instanceof Object\n ? argument instanceof Array\n : Object.prototype.toString.call(argument) === \"[object Array]\";\n }\n // 7.2.3 IsCallable(argument)\n // https://tc39.github.io/ecma262/#sec-iscallable\n function IsCallable(argument) {\n // NOTE: This is an approximation as we cannot check for [[Call]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.4 IsConstructor(argument)\n // https://tc39.github.io/ecma262/#sec-isconstructor\n function IsConstructor(argument) {\n // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.7 IsPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-ispropertykey\n function IsPropertyKey(argument) {\n switch (Type(argument)) {\n case 3 /* String */: return true;\n case 4 /* Symbol */: return true;\n default: return false;\n }\n }\n // 7.3 Operations on Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-objects\n // 7.3.9 GetMethod(V, P)\n // https://tc39.github.io/ecma262/#sec-getmethod\n function GetMethod(V, P) {\n var func = V[P];\n if (func === undefined || func === null)\n return undefined;\n if (!IsCallable(func))\n throw new TypeError();\n return func;\n }\n // 7.4 Operations on Iterator Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects\n function GetIterator(obj) {\n var method = GetMethod(obj, iteratorSymbol);\n if (!IsCallable(method))\n throw new TypeError(); // from Call\n var iterator = method.call(obj);\n if (!IsObject(iterator))\n throw new TypeError();\n return iterator;\n }\n // 7.4.4 IteratorValue(iterResult)\n // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue\n function IteratorValue(iterResult) {\n return iterResult.value;\n }\n // 7.4.5 IteratorStep(iterator)\n // https://tc39.github.io/ecma262/#sec-iteratorstep\n function IteratorStep(iterator) {\n var result = iterator.next();\n return result.done ? false : result;\n }\n // 7.4.6 IteratorClose(iterator, completion)\n // https://tc39.github.io/ecma262/#sec-iteratorclose\n function IteratorClose(iterator) {\n var f = iterator[\"return\"];\n if (f)\n f.call(iterator);\n }\n // 9.1 Ordinary Object Internal Methods and Internal Slots\n // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots\n // 9.1.1.1 OrdinaryGetPrototypeOf(O)\n // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof\n function OrdinaryGetPrototypeOf(O) {\n var proto = Object.getPrototypeOf(O);\n if (typeof O !== \"function\" || O === functionPrototype)\n return proto;\n // TypeScript doesn't set __proto__ in ES5, as it's non-standard.\n // Try to determine the superclass constructor. Compatible implementations\n // must either set __proto__ on a subclass constructor to the superclass constructor,\n // or ensure each class has a valid `constructor` property on its prototype that\n // points back to the constructor.\n // If this is not the same as Function.[[Prototype]], then this is definately inherited.\n // This is the case when in ES6 or when using __proto__ in a compatible browser.\n if (proto !== functionPrototype)\n return proto;\n // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.\n var prototype = O.prototype;\n var prototypeProto = prototype && Object.getPrototypeOf(prototype);\n if (prototypeProto == null || prototypeProto === Object.prototype)\n return proto;\n // If the constructor was not a function, then we cannot determine the heritage.\n var constructor = prototypeProto.constructor;\n if (typeof constructor !== \"function\")\n return proto;\n // If we have some kind of self-reference, then we cannot determine the heritage.\n if (constructor === O)\n return proto;\n // we have a pretty good guess at the heritage.\n return constructor;\n }\n // naive Map shim\n function CreateMapPolyfill() {\n var cacheSentinel = {};\n var arraySentinel = [];\n var MapIterator = /** @class */ (function () {\n function MapIterator(keys, values, selector) {\n this._index = 0;\n this._keys = keys;\n this._values = values;\n this._selector = selector;\n }\n MapIterator.prototype[\"@@iterator\"] = function () { return this; };\n MapIterator.prototype[iteratorSymbol] = function () { return this; };\n MapIterator.prototype.next = function () {\n var index = this._index;\n if (index >= 0 && index < this._keys.length) {\n var result = this._selector(this._keys[index], this._values[index]);\n if (index + 1 >= this._keys.length) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n else {\n this._index++;\n }\n return { value: result, done: false };\n }\n return { value: undefined, done: true };\n };\n MapIterator.prototype.throw = function (error) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n throw error;\n };\n MapIterator.prototype.return = function (value) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n return { value: value, done: true };\n };\n return MapIterator;\n }());\n return /** @class */ (function () {\n function Map() {\n this._keys = [];\n this._values = [];\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n Object.defineProperty(Map.prototype, \"size\", {\n get: function () { return this._keys.length; },\n enumerable: true,\n configurable: true\n });\n Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };\n Map.prototype.get = function (key) {\n var index = this._find(key, /*insert*/ false);\n return index >= 0 ? this._values[index] : undefined;\n };\n Map.prototype.set = function (key, value) {\n var index = this._find(key, /*insert*/ true);\n this._values[index] = value;\n return this;\n };\n Map.prototype.delete = function (key) {\n var index = this._find(key, /*insert*/ false);\n if (index >= 0) {\n var size = this._keys.length;\n for (var i = index + 1; i < size; i++) {\n this._keys[i - 1] = this._keys[i];\n this._values[i - 1] = this._values[i];\n }\n this._keys.length--;\n this._values.length--;\n if (key === this._cacheKey) {\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n return true;\n }\n return false;\n };\n Map.prototype.clear = function () {\n this._keys.length = 0;\n this._values.length = 0;\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n };\n Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };\n Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };\n Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };\n Map.prototype[\"@@iterator\"] = function () { return this.entries(); };\n Map.prototype[iteratorSymbol] = function () { return this.entries(); };\n Map.prototype._find = function (key, insert) {\n if (this._cacheKey !== key) {\n this._cacheIndex = this._keys.indexOf(this._cacheKey = key);\n }\n if (this._cacheIndex < 0 && insert) {\n this._cacheIndex = this._keys.length;\n this._keys.push(key);\n this._values.push(undefined);\n }\n return this._cacheIndex;\n };\n return Map;\n }());\n function getKey(key, _) {\n return key;\n }\n function getValue(_, value) {\n return value;\n }\n function getEntry(key, value) {\n return [key, value];\n }\n }\n // naive Set shim\n function CreateSetPolyfill() {\n return /** @class */ (function () {\n function Set() {\n this._map = new _Map();\n }\n Object.defineProperty(Set.prototype, \"size\", {\n get: function () { return this._map.size; },\n enumerable: true,\n configurable: true\n });\n Set.prototype.has = function (value) { return this._map.has(value); };\n Set.prototype.add = function (value) { return this._map.set(value, value), this; };\n Set.prototype.delete = function (value) { return this._map.delete(value); };\n Set.prototype.clear = function () { this._map.clear(); };\n Set.prototype.keys = function () { return this._map.keys(); };\n Set.prototype.values = function () { return this._map.values(); };\n Set.prototype.entries = function () { return this._map.entries(); };\n Set.prototype[\"@@iterator\"] = function () { return this.keys(); };\n Set.prototype[iteratorSymbol] = function () { return this.keys(); };\n return Set;\n }());\n }\n // naive WeakMap shim\n function CreateWeakMapPolyfill() {\n var UUID_SIZE = 16;\n var keys = HashMap.create();\n var rootKey = CreateUniqueKey();\n return /** @class */ (function () {\n function WeakMap() {\n this._key = CreateUniqueKey();\n }\n WeakMap.prototype.has = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.has(table, this._key) : false;\n };\n WeakMap.prototype.get = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.get(table, this._key) : undefined;\n };\n WeakMap.prototype.set = function (target, value) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ true);\n table[this._key] = value;\n return this;\n };\n WeakMap.prototype.delete = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? delete table[this._key] : false;\n };\n WeakMap.prototype.clear = function () {\n // NOTE: not a real clear, just makes the previous data unreachable\n this._key = CreateUniqueKey();\n };\n return WeakMap;\n }());\n function CreateUniqueKey() {\n var key;\n do\n key = \"@@WeakMap@@\" + CreateUUID();\n while (HashMap.has(keys, key));\n keys[key] = true;\n return key;\n }\n function GetOrCreateWeakMapTable(target, create) {\n if (!hasOwn.call(target, rootKey)) {\n if (!create)\n return undefined;\n Object.defineProperty(target, rootKey, { value: HashMap.create() });\n }\n return target[rootKey];\n }\n function FillRandomBytes(buffer, size) {\n for (var i = 0; i < size; ++i)\n buffer[i] = Math.random() * 0xff | 0;\n return buffer;\n }\n function GenRandomBytes(size) {\n if (typeof Uint8Array === \"function\") {\n if (typeof crypto !== \"undefined\")\n return crypto.getRandomValues(new Uint8Array(size));\n if (typeof msCrypto !== \"undefined\")\n return msCrypto.getRandomValues(new Uint8Array(size));\n return FillRandomBytes(new Uint8Array(size), size);\n }\n return FillRandomBytes(new Array(size), size);\n }\n function CreateUUID() {\n var data = GenRandomBytes(UUID_SIZE);\n // mark as random - RFC 4122 § 4.4\n data[6] = data[6] & 0x4f | 0x40;\n data[8] = data[8] & 0xbf | 0x80;\n var result = \"\";\n for (var offset = 0; offset < UUID_SIZE; ++offset) {\n var byte = data[offset];\n if (offset === 4 || offset === 6 || offset === 8)\n result += \"-\";\n if (byte < 16)\n result += \"0\";\n result += byte.toString(16).toLowerCase();\n }\n return result;\n }\n }\n // uses a heuristic used by v8 and chakra to force an object into dictionary mode.\n function MakeDictionary(obj) {\n obj.__ = undefined;\n delete obj.__;\n return obj;\n }\n });\n })(Reflect || (Reflect = {}))\n}\n","const SERVICE_IDENTIFIER = {\n TaroElement: 'TaroElement',\n TaroElementFactory: 'Factory<TaroElement>',\n TaroText: 'TaroText',\n TaroTextFactory: 'Factory<TaroText>',\n TaroNodeImpl: 'TaroNodeImpl',\n TaroElementImpl: 'TaroElementImpl',\n Hooks: 'hooks',\n onRemoveAttribute: 'onRemoveAttribute',\n getLifecycle: 'getLifecycle',\n getPathIndex: 'getPathIndex',\n getEventCenter: 'getEventCenter',\n isBubbleEvents: 'isBubbleEvents',\n getSpecialNodes: 'getSpecialNodes',\n eventCenter: 'eventCenter',\n modifyMpEvent: 'modifyMpEvent',\n modifyTaroEvent: 'modifyTaroEvent',\n batchedEventUpdates: 'batchedEventUpdates',\n mergePageInstance: 'mergePageInstance',\n createPullDownComponent: 'createPullDownComponent',\n getDOMNode: 'getDOMNode',\n initNativeApi: 'initNativeApi',\n modifyHydrateData: 'modifyHydrateData',\n modifySetAttrPayload: 'modifySetAttrPayload',\n modifyRmAttrPayload: 'modifyRmAttrPayload',\n onAddEvent: 'onAddEvent',\n patchElement: 'patchElement'\n}\n\nexport default SERVICE_IDENTIFIER\n","export const PROPERTY_THRESHOLD = 2046\nexport const TARO_RUNTIME = 'Taro runtime'\nexport const HOOKS_APP_ID = 'taro-app'\nexport const SET_DATA = '小程序 setData'\nexport const PAGE_INIT = '页面初始化'\nexport const ROOT_STR = 'root'\nexport const HTML = 'html'\nexport const HEAD = 'head'\nexport const BODY = 'body'\nexport const APP = 'app'\nexport const CONTAINER = 'container'\nexport const DOCUMENT_ELEMENT_NAME = '#document'\nexport const DOCUMENT_FRAGMENT = 'document-fragment'\nexport const ID = 'id'\nexport const UID = 'uid'\nexport const CLASS = 'class'\nexport const STYLE = 'style'\nexport const FOCUS = 'focus'\nexport const VIEW = 'view'\nexport const STATIC_VIEW = 'static-view'\nexport const PURE_VIEW = 'pure-view'\nexport const PROPS = 'props'\nexport const DATASET = 'dataset'\nexport const OBJECT = 'object'\nexport const VALUE = 'value'\nexport const INPUT = 'input'\nexport const CHANGE = 'change'\nexport const CUSTOM_WRAPPER = 'custom-wrapper'\nexport const TARGET = 'target'\nexport const CURRENT_TARGET = 'currentTarget'\nexport const TYPE = 'type'\nexport const CONFIRM = 'confirm'\nexport const TIME_STAMP = 'timeStamp'\nexport const KEY_CODE = 'keyCode'\nexport const TOUCHMOVE = 'touchmove'\nexport const DATE = 'Date'\nexport const SET_TIMEOUT = 'setTimeout'\nexport const CATCHMOVE = 'catchMove'\nexport const CATCH_VIEW = 'catch-view'\nexport const COMMENT = 'comment'\n","import { Shortcuts } from '@tarojs/shared'\nimport { NodeType } from '../dom/node_types'\nimport {\n ROOT_STR,\n STYLE,\n ID,\n UID,\n CLASS,\n COMMENT\n} from '../constants'\n\nimport type { TaroElement } from '../dom/element'\nimport type { TaroText } from '../dom/text'\nimport type { TaroNode } from '../dom/node'\n\nexport const incrementId = () => {\n let id = 0\n return () => (id++).toString()\n}\n\nexport function isElement (node: TaroNode): node is TaroElement {\n return node.nodeType === NodeType.ELEMENT_NODE\n}\n\nexport function isText (node: TaroNode): node is TaroText {\n return node.nodeType === NodeType.TEXT_NODE\n}\n\nexport function isComment (node: TaroNode): boolean {\n return node.nodeName === COMMENT\n}\n\nexport function isHasExtractProp (el: TaroElement): boolean {\n const res = Object.keys(el.props).find(prop => {\n return !(/^(class|style|id)$/.test(prop) || prop.startsWith('data-'))\n })\n return Boolean(res)\n}\n\n/**\n * 往上寻找组件树直到 root,寻找是否有祖先组件绑定了同类型的事件\n * @param node 当前组件\n * @param type 事件类型\n */\nexport function isParentBinded (node: TaroElement | null, type: string): boolean {\n let res = false\n while (node?.parentElement && node.parentElement._path !== ROOT_STR) {\n if (node.parentElement.__handlers[type]?.length) {\n res = true\n break\n }\n node = node.parentElement\n }\n return res\n}\n\nexport function shortcutAttr (key: string): string {\n switch (key) {\n case STYLE:\n return Shortcuts.Style\n case ID:\n return UID\n case CLASS:\n return Shortcuts.Class\n default:\n return key\n }\n}\n","import { inject, injectable } from 'inversify'\nimport { isArray, isObject, warn } from '@tarojs/shared'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\n\nimport type { EventHandler, AddEventListenerOptions, IHooks } from '../interface'\n\n@injectable()\nexport class TaroEventTarget {\n public __handlers: Record<string, EventHandler[]> = {}\n public hooks: IHooks\n\n public constructor (// eslint-disable-next-line @typescript-eslint/indent\n @inject(SERVICE_IDENTIFIER.Hooks) hooks: IHooks\n ) {\n this.hooks = hooks\n }\n\n public addEventListener (type: string, handler: EventHandler, options?: boolean | AddEventListenerOptions) {\n this.hooks.onAddEvent?.(type, handler, options, this)\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 type = type.toLowerCase()\n const handlers = this.__handlers[type]\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 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 if (handler == null) {\n return\n }\n\n const handlers = this.__handlers[type]\n if (!isArray(handlers)) {\n return\n }\n\n const index = handlers.indexOf(handler)\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","import { Shortcuts, toCamelCase } from '@tarojs/shared'\nimport { isText, isHasExtractProp, isComment } from './utils'\nimport {\n VIEW,\n CLASS,\n STYLE,\n ID,\n PURE_VIEW,\n CATCHMOVE,\n CATCH_VIEW\n} from './constants'\n\nimport type { MiniData, MiniElementData } from './interface'\nimport type { TaroElement } from './dom/element'\nimport type { TaroText } from './dom/text'\n\n/**\n * React also has a fancy function's name for this: `hydrate()`.\n * You may have been heard `hydrate` as a SSR-related function,\n * actually, `hydrate` basicly do the `render()` thing, but ignore some properties,\n * it's a vnode traverser and modifier: that's exactly what Taro's doing in here.\n */\nexport function hydrate (node: TaroElement | TaroText): MiniData {\n const nodeName = node.nodeName\n\n if (isText(node)) {\n return {\n [Shortcuts.Text]: node.nodeValue,\n [Shortcuts.NodeName]: nodeName\n }\n }\n\n const data: MiniElementData = {\n [Shortcuts.NodeName]: nodeName,\n uid: node.uid\n }\n const { props } = node\n const SPECIAL_NODES = node.hooks.getSpecialNodes()\n\n if (!node.isAnyEventBinded() && SPECIAL_NODES.indexOf(nodeName) > -1) {\n data[Shortcuts.NodeName] = `static-${nodeName}`\n if (nodeName === VIEW && !isHasExtractProp(node)) {\n data[Shortcuts.NodeName] = PURE_VIEW\n }\n }\n\n for (const prop in props) {\n const propInCamelCase = toCamelCase(prop)\n if (\n !prop.startsWith('data-') && // 在 node.dataset 的数据\n prop !== CLASS &&\n prop !== STYLE &&\n prop !== ID &&\n propInCamelCase !== CATCHMOVE\n ) {\n data[propInCamelCase] = props[prop]\n }\n if (nodeName === VIEW && propInCamelCase === CATCHMOVE && props[prop] !== false) {\n data[Shortcuts.NodeName] = CATCH_VIEW\n }\n }\n\n let { childNodes } = node\n\n // 过滤 comment 节点\n childNodes = childNodes.filter(node => !isComment(node))\n\n if (childNodes.length > 0) {\n data[Shortcuts.Childnodes] = childNodes.map(hydrate)\n } else {\n data[Shortcuts.Childnodes] = []\n }\n\n if (node.className !== '') {\n data[Shortcuts.Class] = node.className\n }\n\n if (node.cssText !== '' && nodeName !== 'swiper-item') {\n data[Shortcuts.Style] = node.cssText\n }\n\n node.hooks.modifyHydrateData?.(data)\n\n return data\n}\n","import type { TaroNode } from './node'\nexport const eventSource = new Map<string | undefined | null, TaroNode>()\n","export enum ElementNames {\n Element = 'Element',\n Document = 'Document',\n RootElement = 'RootElement',\n FormElement = 'FormElement'\n}\n\nexport interface InstanceFactory<T> {\n (...args: any[]): T\n}\n\nexport interface InstanceNamedFactory {\n <T>(named: string): (...args: any[]) => T\n}\n","import { inject, injectable } from 'inversify'\nimport { Shortcuts, ensure } from '@tarojs/shared'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\nimport { NodeType } from './node_types'\nimport { incrementId, isComment } from '../utils'\nimport { TaroEventTarget } from './event-target'\nimport { hydrate } from '../hydrate'\nimport { eventSource } from './event-source'\nimport { ElementNames } from '../interface'\nimport {\n DOCUMENT_FRAGMENT\n} from '../constants'\n\nimport type { UpdatePayload, InstanceNamedFactory } from '../interface'\nimport type { TaroDocument } from './document'\nimport type { TaroRootElement } from './root'\nimport type { TaroElement } from './element'\nimport type { TaroNodeImpl } from '../dom-external/node-impl'\nimport type { Hooks } from '../hooks'\n\nconst nodeId = incrementId()\n\n@injectable()\nexport class TaroNode extends TaroEventTarget {\n public uid: string\n public nodeType: NodeType\n public nodeName: string\n public parentNode: TaroNode | null = null\n public childNodes: TaroNode[] = []\n\n protected _getElement: InstanceNamedFactory\n\n public constructor (// eslint-disable-next-line @typescript-eslint/indent\n @inject(SERVICE_IDENTIFIER.TaroNodeImpl) impl: TaroNodeImpl,\n @inject(SERVICE_IDENTIFIER.TaroElementFactory) getElement: InstanceNamedFactory,\n @inject(SERVICE_IDENTIFIER.Hooks) hooks: Hooks\n ) {\n super(hooks)\n impl.bind(this)\n this._getElement = getElement\n this.uid = `_n_${nodeId()}`\n eventSource.set(this.uid, this)\n }\n\n private hydrate = (node: TaroNode) => () => hydrate(node as TaroElement)\n\n /**\n * like jQuery's $.empty()\n */\n private _empty () {\n while (this.childNodes.length > 0) {\n const child = this.childNodes[0]\n child.parentNode = null\n eventSource.delete(child.uid)\n this.childNodes.shift()\n }\n }\n\n protected get _root (): TaroRootElement | null {\n return this.parentNode?._root || null\n }\n\n protected findIndex (refChild: TaroNode): number {\n const index = this.childNodes.indexOf(refChild)\n\n ensure(index !== -1, 'The node to be replaced is not a child of this node.')\n\n return index\n }\n\n public get _path (): string {\n const parentNode = this.parentNode\n\n if (parentNode) {\n // 计算路径时,先过滤掉 comment 节点\n const list = parentNode.childNodes.filter(node => !isComment(node))\n const indexOfNode = list.indexOf(this)\n const index = this.hooks.getPathIndex(indexOfNode)\n\n return `${parentNode._path}.${Shortcuts.Childnodes}.${index}`\n }\n\n return ''\n }\n\n public get nextSibling (): TaroNode | null {\n const parentNode = this.parentNode\n return parentNode?.childNodes[parentNode.findIndex(this) + 1] || null\n }\n\n public get previousSibling (): TaroNode | null {\n const parentNode = this.parentNode\n return parentNode?.childNodes[parentNode.findIndex(this) - 1] || null\n }\n\n public get parentElement (): TaroElement | null {\n const parentNode = this.parentNode\n if (parentNode?.nodeType === NodeType.ELEMENT_NODE) {\n return parentNode as TaroElement\n }\n return null\n }\n\n public get firstChild (): TaroNode | null {\n return this.childNodes[0] || null\n }\n\n public get lastChild (): TaroNode | null {\n const childNodes = this.childNodes\n return childNodes[childNodes.length - 1] || null\n }\n\n /**\n * @textContent 目前只能置空子元素\n * @TODO 等待完整 innerHTML 实现\n */\n public set textContent (text: string) {\n this._empty()\n if (text === '') {\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.Childnodes}`,\n value: () => []\n })\n } else {\n const document = this._getElement<TaroDocument>(ElementNames.Document)()\n this.appendChild(document.createTextNode(text))\n }\n }\n\n public insertBefore<T extends TaroNode> (newChild: T, refChild?: TaroNode | null, isReplace?: boolean): T {\n if (newChild.nodeName === DOCUMENT_FRAGMENT) {\n newChild.childNodes.reduceRight((previousValue, currentValue) => {\n this.insertBefore(currentValue, previousValue)\n return currentValue\n }, refChild)\n return newChild\n }\n\n newChild.remove()\n newChild.parentNode = this\n let payload: UpdatePayload\n\n if (refChild) {\n const index = this.findIndex(refChild)\n this.childNodes.splice(index, 0, newChild)\n if (isReplace) {\n payload = {\n path: newChild._path,\n value: this.hydrate(newChild)\n }\n } else {\n payload = {\n path: `${this._path}.${Shortcuts.Childnodes}`,\n value: () => {\n const childNodes = this.childNodes.filter(node => !isComment(node))\n return childNodes.map(hydrate)\n }\n }\n }\n } else {\n this.childNodes.push(newChild)\n payload = {\n path: newChild._path,\n value: this.hydrate(newChild)\n }\n }\n\n this.enqueueUpdate(payload)\n\n if (!eventSource.has(newChild.uid)) {\n eventSource.set(newChild.uid, newChild)\n }\n\n return newChild\n }\n\n public appendChild (child: TaroNode) {\n this.insertBefore(child)\n }\n\n public replaceChild (newChild: TaroNode, oldChild: TaroNode) {\n if (oldChild.parentNode === this) {\n this.insertBefore(newChild, oldChild, true)\n oldChild.remove(true)\n return oldChild\n }\n }\n\n public removeChild<T extends TaroNode> (child: T, isReplace?: boolean): T {\n const index = this.findIndex(child)\n this.childNodes.splice(index, 1)\n if (!isReplace) {\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.Childnodes}`,\n value: () => {\n const childNodes = this.childNodes.filter(node => !isComment(node))\n return childNodes.map(hydrate)\n }\n })\n }\n child.parentNode = null\n eventSource.delete(child.uid)\n // @TODO: eventSource memory overflow\n // child._empty()\n return child\n }\n\n public remove (isReplace?: boolean) {\n this.parentNode?.removeChild(this, isReplace)\n }\n\n public hasChildNodes () {\n return this.childNodes.length > 0\n }\n\n public enqueueUpdate (payload: UpdatePayload) {\n this._root?.enqueueUpdate(payload)\n }\n\n public contains (node: TaroNode & { id?: string }): boolean {\n let isContains = false\n this.childNodes.some(childNode => {\n const { uid } = childNode\n if (uid === node.uid || uid === node.id || childNode.contains(node)) {\n isContains = true\n return true\n }\n })\n return isContains\n }\n\n public get ownerDocument () {\n const document = this._getElement<TaroDocument>(ElementNames.Document)()\n return document\n }\n}\n","import { inject, injectable } from 'inversify'\nimport { Shortcuts } from '@tarojs/shared'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\nimport { TaroNode } from './node'\nimport { NodeType } from './node_types'\n\nimport type { TaroNodeImpl } from '../dom-external/node-impl'\nimport type { InstanceNamedFactory } from '../interface'\nimport type { Hooks } from '../hooks'\n\n@injectable()\nexport class TaroText extends TaroNode {\n public _value: string\n\n public constructor (// eslint-disable-next-line @typescript-eslint/indent\n @inject(SERVICE_IDENTIFIER.TaroNodeImpl) nodeImpl: TaroNodeImpl,\n @inject(SERVICE_IDENTIFIER.TaroElementFactory) getElement: InstanceNamedFactory,\n @inject(SERVICE_IDENTIFIER.Hooks) hooks: Hooks\n ) {\n super(nodeImpl, getElement, hooks)\n this.nodeType = NodeType.TEXT_NODE\n this.nodeName = '#text'\n }\n\n public set textContent (text: string) {\n this._value = text\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.Text}`,\n value: text\n })\n }\n\n public get textContent (): string {\n return this._value\n }\n\n public set nodeValue (text: string) {\n this.textContent = text\n }\n\n public get nodeValue (): string {\n return this._value\n }\n}\n","/*\n *\n * https://www.w3.org/Style/CSS/all-properties.en.html\n */\n\nconst styleProperties = [\n 'all',\n 'appearance',\n 'blockOverflow',\n 'blockSize',\n 'bottom',\n 'clear',\n 'contain',\n 'content',\n 'continue',\n 'cursor',\n 'direction',\n 'display',\n 'filter',\n 'float',\n 'gap',\n 'height',\n 'inset',\n 'isolation',\n 'left',\n 'letterSpacing',\n 'lightingColor',\n 'markerSide',\n 'mixBlendMode',\n 'opacity',\n 'order',\n 'position',\n 'quotes',\n 'resize',\n 'right',\n 'rowGap',\n 'tabSize',\n 'tableLayout',\n 'top',\n 'userSelect',\n 'verticalAlign',\n 'visibility',\n 'voiceFamily',\n 'volume',\n 'whiteSpace',\n 'widows',\n 'width',\n 'zIndex',\n 'pointerEvents'\n\n /** 非常用 style */\n // 'azimuth',\n // 'backfaceVisibility',\n // 'baselineShift',\n // 'captionSide',\n // 'chains',\n // 'dominantBaseline',\n // 'elevation',\n // 'emptyCells',\n // 'forcedColorAdjust',\n // 'glyphOrientationVertical',\n // 'hangingPunctuation',\n // 'hyphenateCharacter',\n // 'hyphens',\n // 'imageOrientation',\n // 'imageResolution',\n // 'orphans',\n // 'playDuring',\n // 'pointerEvents',\n // 'regionFragment',\n // 'richness',\n // 'running',\n // 'scrollBehavior',\n // 'speechRate',\n // 'stress',\n // 'stringSet',\n // 'unicodeBidi',\n // 'willChange',\n // 'writingMode',\n]\n\n// 减少文件体积\nfunction combine (prefix: string, list: string[], excludeSelf?: boolean) {\n !excludeSelf && styleProperties.push(prefix)\n list.forEach(item => {\n styleProperties.push(prefix + item)\n })\n}\n\nconst color = 'Color'\nconst style = 'Style'\nconst width = 'Width'\nconst image = 'Image'\nconst size = 'Size'\nconst color_style_width = [color, style, width]\nconst fitlength_fitwidth_image = ['FitLength', 'FitWidth', image]\nconst fitlength_fitwidth_image_radius = [...fitlength_fitwidth_image, 'Radius']\nconst color_style_width_fitlength_fitwidth_image = [...color_style_width, ...fitlength_fitwidth_image]\nconst endRadius_startRadius = ['EndRadius', 'StartRadius']\nconst bottom_left_right_top = ['Bottom', 'Left', 'Right', 'Top']\nconst end_start = ['End', 'Start']\nconst content_items_self = ['Content', 'Items', 'Self']\nconst blockSize_height_inlineSize_width = ['BlockSize', 'Height', 'InlineSize', width]\nconst after_before = ['After', 'Before']\n\ncombine('borderBlock', color_style_width)\ncombine('borderBlockEnd', color_style_width)\ncombine('borderBlockStart', color_style_width)\ncombine('outline', [...color_style_width, 'Offset'])\ncombine('border', [...color_style_width, 'Boundary', 'Break', 'Collapse', 'Radius', 'Spacing'])\ncombine('borderFit', ['Length', width])\ncombine('borderInline', color_style_width)\ncombine('borderInlineEnd', color_style_width)\ncombine('borderInlineStart', color_style_width)\ncombine('borderLeft', color_style_width_fitlength_fitwidth_image)\ncombine('borderRight', color_style_width_fitlength_fitwidth_image)\ncombine('borderTop', color_style_width_fitlength_fitwidth_image)\ncombine('borderBottom', color_style_width_fitlength_fitwidth_image)\ncombine('textDecoration', [color, style, 'Line'])\ncombine('textEmphasis', [color, style, 'Position'])\ncombine('scrollMargin', bottom_left_right_top)\ncombine('scrollPadding', bottom_left_right_top)\ncombine('padding', bottom_left_right_top)\ncombine('margin', [...bottom_left_right_top, 'Trim'])\ncombine('scrollMarginBlock', end_start)\ncombine('scrollMarginInline', end_start)\ncombine('scrollPaddingBlock', end_start)\ncombine('scrollPaddingInline', end_start)\ncombine('gridColumn', end_start)\ncombine('gridRow', end_start)\ncombine('insetBlock', end_start)\ncombine('insetInline', end_start)\ncombine('marginBlock', end_start)\ncombine('marginInline', end_start)\ncombine('paddingBlock', end_start)\ncombine('paddingInline', end_start)\ncombine('pause', after_before)\ncombine('cue', after_before)\ncombine('mask', ['Clip', 'Composite', image, 'Mode', 'Origin', 'Position', 'Repeat', size, 'Type'])\ncombine('borderImage', ['Outset', 'Repeat', 'Slice', 'Source', 'Transform', width])\ncombine('maskBorder', ['Mode', 'Outset', 'Repeat', 'Slice', 'Source', width])\ncombine('font', ['Family', 'FeatureSettings', 'Kerning', 'LanguageOverride', 'MaxSize', 'MinSize', 'OpticalSizing', 'Palette', size, 'SizeAdjust', 'Stretch', style, 'Weight', 'VariationSettings'])\ncombine('fontSynthesis', ['SmallCaps', style, 'Weight'])\ncombine('transform', ['Box', 'Origin', style])\ncombine('background', [color, image, 'Attachment', 'BlendMode', 'Clip', 'Origin', 'Position', 'Repeat', size])\ncombine('listStyle', [image, 'Position', 'Type'])\ncombine('scrollSnap', ['Align', 'Stop', 'Type'])\ncombine('grid', ['Area', 'AutoColumns', 'AutoFlow', 'AutoRows'])\ncombine('gridTemplate', ['Areas', 'Columns', 'Rows'])\ncombine('overflow', ['Block', 'Inline', 'Wrap', 'X', 'Y'])\ncombine('transition', ['Delay', 'Duration', 'Property', 'TimingFunction'])\ncombine('lineStacking', ['Ruby', 'Shift', 'Strategy'])\ncombine('color', ['Adjust', 'InterpolationFilters', 'Scheme'])\ncombine('textAlign', ['All', 'Last'])\ncombine('page', ['BreakAfter', 'BreakBefore', 'BreakInside'])\ncombine('speak', ['Header', 'Numeral', 'Punctuation'])\ncombine('animation', ['Delay', 'Direction', 'Duration', 'FillMode', 'IterationCount', 'Name', 'PlayState', 'TimingFunction'])\ncombine('flex', ['Basis', 'Direction', 'Flow', 'Grow', 'Shrink', 'Wrap'])\ncombine('offset', [...after_before, ...end_start, 'Anchor', 'Distance', 'Path', 'Position', 'Rotate'])\ncombine('fontVariant', ['Alternates', 'Caps', 'EastAsian', 'Emoji', 'Ligatures', 'Numeric', 'Position'])\ncombine('perspective', ['Origin'])\ncombine('pitch', ['Range'])\ncombine('clip', ['Path', 'Rule'])\ncombine('flow', ['From', 'Into'])\n\ncombine('align', ['Content', 'Items', 'Self'], true)\ncombine('alignment', ['Adjust', 'Baseline'], true)\ncombine('bookmark', ['Label', 'Level', 'State'], true)\ncombine('borderStart', endRadius_startRadius, true)\ncombine('borderEnd', endRadius_startRadius, true)\ncombine('borderCorner', ['Fit', image, 'ImageTransform'], true)\ncombine('borderTopLeft', fitlength_fitwidth_image_radius, true)\ncombine('borderTopRight', fitlength_fitwidth_image_radius, true)\ncombine('borderBottomLeft', fitlength_fitwidth_image_radius, true)\ncombine('borderBottomRight', fitlength_fitwidth_image_radius, true)\ncombine('column', ['s', 'Count', 'Fill', 'Gap', 'Rule', 'RuleColor', 'RuleStyle', 'RuleWidth', 'Span', width], true)\ncombine('break', [...after_before, 'Inside'], true)\ncombine('wrap', [...after_before, 'Flow', 'Inside', 'Through'], true)\ncombine('justify', content_items_self, true)\ncombine('place', content_items_self, true)\ncombine('max', [...blockSize_height_inlineSize_width, 'Lines'], true)\ncombine('min', blockSize_height_inlineSize_width, true)\ncombine('line', ['Break', 'Clamp', 'Grid', 'Height', 'Padding', 'Snap'], true)\ncombine('inline', ['BoxAlign', size, 'Sizing'], true)\ncombine('text', ['CombineUpright', 'GroupAlign', 'Height', 'Indent', 'Justify', 'Orientation', 'Overflow', 'Shadow', 'SpaceCollapse', 'SpaceTrim', 'Spacing', 'Transform', 'UnderlinePosition', 'Wrap'], true)\ncombine('shape', ['ImageThreshold', 'Inside', 'Margin', 'Outside'], true)\ncombine('word', ['Break', 'Spacing', 'Wrap'], true)\ncombine('nav', ['Down', 'Left', 'Right', 'Up'], true)\ncombine('object', ['Fit', 'Position'], true)\ncombine('box', ['DecorationBreak', 'Shadow', 'Sizing', 'Snap'], true)\n\n/** 非常用 style */\n// combine('caret', [color, 'Shape'])\n// combine('counter', ['Increment', 'Reset', 'Set'], true)\n// combine('dropInitial', ['AfterAdjust', 'AfterAlign', 'BeforeAdjust', 'BeforeAlign', size, 'Value'], true)\n// combine('flood', [color, 'Opacity'], true)\n// combine('footnote', ['Display', 'Policy'], true)\n// combine('hyphenateLimit', ['Chars', 'Last', 'Lines', 'Zone'], true)\n// combine('initialLetters', ['Align', 'Wrap'])\n// combine('ruby', ['Align', 'Merge', 'Position'], true)\n\nexport { styleProperties }\n","import { isUndefined, toCamelCase, toDashed, Shortcuts, warn, isString } from '@tarojs/shared'\nimport { styleProperties } from './style_properties'\nimport { TaroElement } from './element'\nimport { PROPERTY_THRESHOLD } from '../constants'\n\nfunction setStyle (this: Style, newVal: string, styleKey: string) {\n const old = this[styleKey]\n if (newVal) {\n this._usedStyleProp.add(styleKey)\n }\n\n process.env.NODE_ENV !== 'production' && warn(\n isString(newVal) && newVal.length > PROPERTY_THRESHOLD,\n `Style 属性 ${styleKey} 的值数据量过大,可能会影响渲染性能,考虑使用 CSS 类或其它方案替代。`\n )\n\n if (old !== newVal) {\n this._value[styleKey] = newVal\n this._element.enqueueUpdate({\n path: `${this._element._path}.${Shortcuts.Style}`,\n value: this.cssText\n })\n }\n}\n\nfunction initStyle (ctor: typeof Style) {\n const properties = {}\n\n for (let i = 0; i < styleProperties.length; i++) {\n const styleKey = styleProperties[i]\n properties[styleKey] = {\n get (this: Style) {\n return this._value[styleKey] || ''\n },\n set (this: Style, newVal: string) {\n setStyle.call(this, newVal, styleKey)\n }\n }\n }\n\n Object.defineProperties(ctor.prototype, properties)\n}\n\nfunction isCssVariable (propertyName) {\n return /^--/.test(propertyName)\n}\n\nexport class Style {\n public _usedStyleProp: Set<string>\n\n public _value: Partial<CSSStyleDeclaration>\n\n public _element: TaroElement\n\n public constructor (element: TaroElement) {\n this._element = element\n this._usedStyleProp = new Set()\n this._value = {}\n }\n\n private setCssVariables (styleKey: string) {\n this.hasOwnProperty(styleKey) || Object.defineProperty(this, styleKey, {\n enumerable: true,\n configurable: true,\n get: () => {\n return this._value[styleKey] || ''\n },\n set: (newVal: string) => {\n setStyle.call(this, newVal, styleKey)\n }\n })\n }\n\n public get cssText () {\n let text = ''\n this._usedStyleProp.forEach(key => {\n const val = this[key]\n if (!val) return\n const styleName = isCssVariable(key) ? key : toDashed(key)\n text += `${styleName}: ${val};`\n })\n return text\n }\n\n public set cssText (str: string) {\n if (str == null) {\n str = ''\n }\n\n this._usedStyleProp.forEach(prop => {\n this.removeProperty(prop)\n })\n\n if (str === '') {\n return\n }\n\n const rules = str.split(';')\n\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i].trim()\n if (rule === '') {\n continue\n }\n\n // 可能存在 'background: url(http:x/y/z)' 的情况\n const [propName, ...valList] = rule.split(':')\n const val = valList.join(':')\n\n if (isUndefined(val)) {\n continue\n }\n this.setProperty(propName.trim(), val.trim())\n }\n }\n\n public setProperty (propertyName: string, value?: string | null) {\n if (propertyName[0] === '-') {\n // 支持 webkit 属性或 css 变量\n this.setCssVariables(propertyName)\n } else {\n propertyName = toCamelCase(propertyName)\n }\n if (isUndefined(value)) {\n return\n }\n\n if (value === null || value === '') {\n this.removeProperty(propertyName)\n } else {\n this[propertyName] = value\n }\n }\n\n public removeProperty (propertyName: string): string {\n propertyName = toCamelCase(propertyName)\n if (!this._usedStyleProp.has(propertyName)) {\n return ''\n }\n\n const value = this[propertyName]\n this[propertyName] = ''\n this._usedStyleProp.delete(propertyName)\n return value\n }\n\n public getPropertyValue (propertyName: string) {\n propertyName = toCamelCase(propertyName)\n const value = this[propertyName]\n if (!value) {\n return ''\n }\n\n return value\n }\n}\n\ninitStyle(Style)\n","import { NodeType } from './node_types'\n\nimport type { TaroElement } from './element'\n\ntype Filter = (element: TaroElement) => boolean\n\nfunction returnTrue () {\n return true\n}\n\nexport function treeToArray (root: TaroElement, predict?: Filter): TaroElement[] {\n const array: TaroElement[] = []\n const filter = predict ?? returnTrue\n\n let object: TaroElement | null = root\n\n while (object) {\n if (object.nodeType === NodeType.ELEMENT_NODE && filter(object)) {\n array.push(object)\n }\n\n object = following(object, root)\n }\n\n return array\n}\n\nfunction following (el: TaroElement, root: TaroElement): TaroElement | null {\n const firstChild = el.firstChild\n\n if (firstChild) {\n return firstChild as TaroElement\n }\n\n let current: TaroElement | null = el\n\n do {\n if (current === root) {\n return null\n }\n\n const nextSibling = current.nextSibling\n\n if (nextSibling) {\n return nextSibling as TaroElement\n }\n current = current.parentElement\n } while (current)\n\n return null\n}\n","import type { TaroElement } from './element'\n\nexport class ClassList extends Set<string> {\n private el: TaroElement\n\n constructor (className: string, el: TaroElement) {\n super()\n className.trim().split(/\\s+/).forEach(super.add.bind(this))\n this.el = el\n }\n\n public get value () {\n return [...this].join(' ')\n }\n\n public add (s: string) {\n super.add(s)\n this._update()\n\n return this\n }\n\n public get length (): number {\n return this.size\n }\n\n public remove (s: string) {\n super.delete(s)\n this._update()\n }\n\n public toggle (s: string) {\n if (super.has(s)) {\n super.delete(s)\n } else {\n super.add(s)\n }\n\n this._update()\n }\n\n public replace (s1: string, s2: string) {\n super.delete(s1)\n super.add(s2)\n\n this._update()\n }\n\n public contains (s: string) {\n return super.has(s)\n }\n\n public toString () {\n return this.value\n }\n\n private _update () {\n this.el.className = this.value\n }\n}\n","import { inject, injectable } from 'inversify'\nimport { isArray, isUndefined, Shortcuts, EMPTY_OBJ, warn, isString, toCamelCase } from '@tarojs/shared'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\nimport { TaroNode } from './node'\nimport { NodeType } from './node_types'\nimport { eventSource } from './event-source'\nimport { isElement, isHasExtractProp, shortcutAttr } from '../utils'\nimport { Style } from './style'\nimport { treeToArray } from './tree'\nimport { ClassList } from './class-list'\nimport {\n ID,\n CLASS,\n STYLE,\n FOCUS,\n VIEW,\n STATIC_VIEW,\n PURE_VIEW,\n PROPERTY_THRESHOLD,\n CATCHMOVE,\n CATCH_VIEW\n} from '../constants'\n\nimport type { TaroEvent } from './event'\nimport type { Attributes, InstanceNamedFactory } from '../interface'\nimport type { TaroNodeImpl } from '../dom-external/node-impl'\nimport type { TaroElementImpl } from '../dom-external/element-impl'\nimport type { Hooks } from '../hooks'\n\n@injectable()\nexport class TaroElement extends TaroNode {\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 (// eslint-disable-next-line @typescript-eslint/indent\n @inject(SERVICE_IDENTIFIER.TaroNodeImpl) nodeImpl: TaroNodeImpl,\n @inject(SERVICE_IDENTIFIER.TaroElementFactory) getElement: InstanceNamedFactory,\n @inject(SERVICE_IDENTIFIER.Hooks) hooks: Hooks,\n @inject(SERVICE_IDENTIFIER.TaroElementImpl) elementImpl: TaroElementImpl\n ) {\n super(nodeImpl, getElement, hooks)\n elementImpl.bind(this)\n this.nodeType = NodeType.ELEMENT_NODE\n this.style = new Style(this)\n hooks.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 focus () {\n this.setAttribute(FOCUS, true)\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 switch (qualifiedName) {\n case STYLE:\n this.style.cssText = value as string\n break\n case ID:\n eventSource.delete(this.uid)\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 qualifiedName = shortcutAttr(qualifiedName)\n\n const payload = {\n path: `${this._path}.${toCamelCase(qualifiedName)}`,\n value\n }\n\n this.hooks.modifySetAttrPayload?.(this, qualifiedName, payload)\n\n this.enqueueUpdate(payload)\n\n if (this.nodeName === VIEW) {\n if (toCamelCase(qualifiedName) === CATCHMOVE) {\n // catchMove = true: catch-view\n // catchMove = false: view or static-view\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.NodeName}`,\n value: value ? CATCH_VIEW : (\n this.isAnyEventBinded() ? VIEW : STATIC_VIEW\n )\n })\n } else if (isPureView && isHasExtractProp(this)) {\n // pure-view => static-view\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.NodeName}`,\n value: STATIC_VIEW\n })\n }\n }\n }\n\n public removeAttribute (qualifiedName: string) {\n const isStaticView = this.nodeName === VIEW && isHasExtractProp(this) && !this.isAnyEventBinded()\n\n if (qualifiedName === STYLE) {\n this.style.cssText = ''\n } else {\n const isInterrupt = this.hooks.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 qualifiedName = shortcutAttr(qualifiedName)\n\n const payload = {\n path: `${this._path}.${toCamelCase(qualifiedName)}`,\n value: ''\n }\n\n this.hooks.modifyRmAttrPayload?.(this, qualifiedName, payload)\n\n this.enqueueUpdate(payload)\n\n if (this.nodeName === VIEW) {\n if (toCamelCase(qualifiedName) === CATCHMOVE) {\n // catch-view => view or static-view or pure-view\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.NodeName}`,\n value: this.isAnyEventBinded() ? VIEW : (isHasExtractProp(this) ? STATIC_VIEW : PURE_VIEW)\n })\n } else if (isStaticView && !isHasExtractProp(this)) {\n // static-view => pure-view\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.NodeName}`,\n value: PURE_VIEW\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 return treeToArray(this, (el) => {\n const classList = el.classList\n const classNames = className.trim().split(/\\s+/)\n return classNames.every(c => classList.has(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 result = listener.call(this, event)\n }\n if ((result === false || event._end) && cancelable) {\n event.defaultPrevented = true\n }\n\n if (event._end && event._stop) {\n break\n }\n }\n\n if (event._stop) {\n this._stopPropagation(event)\n } else {\n event._stop = true\n }\n\n return listeners != null\n }\n\n public addEventListener (type, handler, options) {\n const name = this.nodeName\n const SPECIAL_NODES = this.hooks.getSpecialNodes()\n\n if (!this.isAnyEventBinded() && SPECIAL_NODES.indexOf(name) > -1) {\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.NodeName}`,\n value: name\n })\n }\n\n super.addEventListener(type, handler, options)\n }\n\n public removeEventListener (type, handler) {\n super.removeEventListener(type, handler)\n\n const name = this.nodeName\n const SPECIAL_NODES = this.hooks.getSpecialNodes()\n\n if (!this.isAnyEventBinded() && SPECIAL_NODES.indexOf(name) > -1) {\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.NodeName}`,\n value: isHasExtractProp(this) ? `static-${name}` : `pure-${name}`\n })\n }\n }\n}\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","import type { Options } from './interface'\n\nexport const options: Options = {\n prerender: true,\n debug: false\n}\n","import { options } from './options'\n\nclass Performance {\n private recorder = new Map<string, number>()\n\n public start (id: string) {\n if (!options.debug) {\n return\n }\n this.recorder.set(id, Date.now())\n }\n\n public stop (id: string) {\n if (!options.debug) {\n return\n }\n const now = Date.now()\n const prev = this.recorder.get(id)!\n const time = now - prev\n // eslint-disable-next-line no-console\n console.log(`${id} 时长: ${time}ms`)\n }\n}\n\nexport const perf = new Performance()\n","import { inject, injectable } from 'inversify'\nimport { isFunction, Shortcuts } from '@tarojs/shared'\nimport get from 'lodash-es/get'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\nimport { TaroElement } from './element'\nimport { incrementId } from '../utils'\nimport { perf } from '../perf'\nimport { options } from '../options'\nimport {\n SET_DATA,\n PAGE_INIT,\n ROOT_STR,\n CUSTOM_WRAPPER\n} from '../constants'\n\nimport type { Func, UpdatePayload, UpdatePayloadValue, InstanceNamedFactory, MpInstance, HydratedData } from '../interface'\nimport type { TaroNodeImpl } from '../dom-external/node-impl'\nimport type { TaroElementImpl } from '../dom-external/element-impl'\nimport type { Hooks } from '../hooks'\nimport type { Events } from '../emitter/emitter'\n\nconst eventIncrementId = incrementId()\n\n@injectable()\nexport class TaroRootElement extends TaroElement {\n private pendingFlush = false\n\n private updatePayloads: UpdatePayload[] = []\n\n private updateCallbacks: Func[]= []\n\n private eventCenter: Events\n\n public pendingUpdate = false\n\n public ctx: null | MpInstance = null\n\n public constructor (// eslint-disable-next-line @typescript-eslint/indent\n @inject(SERVICE_IDENTIFIER.TaroNodeImpl) nodeImpl: TaroNodeImpl,\n @inject(SERVICE_IDENTIFIER.TaroElementFactory) getElement: InstanceNamedFactory,\n @inject(SERVICE_IDENTIFIER.Hooks) hooks: Hooks,\n @inject(SERVICE_IDENTIFIER.TaroElementImpl) elementImpl: TaroElementImpl,\n @inject(SERVICE_IDENTIFIER.eventCenter) eventCenter: Events\n ) {\n super(nodeImpl, getElement, hooks, elementImpl)\n this.nodeName = ROOT_STR\n this.eventCenter = eventCenter\n }\n\n public get _path (): string {\n return ROOT_STR\n }\n\n protected get _root (): TaroRootElement {\n return this\n }\n\n public enqueueUpdate (payload: UpdatePayload): void {\n this.updatePayloads.push(payload)\n\n if (!this.pendingUpdate && this.ctx !== null) {\n this.performUpdate()\n }\n }\n\n public performUpdate (initRender = false, prerender?: Func) {\n this.pendingUpdate = true\n\n const ctx = this.ctx!\n\n setTimeout(() => {\n perf.start(SET_DATA)\n const data: Record<string, UpdatePayloadValue | ReturnType<HydratedData>> = Object.create(null)\n const resetPaths = new Set<string>(\n initRender\n ? ['root.cn.[0]', 'root.cn[0]']\n : []\n )\n\n while (this.updatePayloads.length > 0) {\n const { path, value } = this.updatePayloads.shift()!\n if (path.endsWith(Shortcuts.Childnodes)) {\n resetPaths.add(path)\n }\n data[path] = value\n }\n\n for (const path in data) {\n resetPaths.forEach(p => {\n // 已经重置了数组,就不需要分别再设置了\n if (path.includes(p) && path !== p) {\n delete data[path]\n }\n })\n\n const value = data[path]\n if (isFunction(value)) {\n data[path] = value()\n }\n }\n\n if (isFunction(prerender)) {\n prerender(data)\n } else {\n this.pendingUpdate = false\n const customWrapperUpdate: { ctx: any, data: Record<string, any> }[] = []\n const customWrapperMap: Map<Record<any, any>, Record<string, any>> = new Map()\n const normalUpdate = {}\n if (!initRender) {\n for (const p in data) {\n const dataPathArr = p.split('.')\n let hasCustomWrapper = false\n for (let i = dataPathArr.length; i > 0; i--) {\n const allPath = dataPathArr.slice(0, i).join('.')\n const getData = get(ctx.__data__ || ctx.data, allPath)\n if (getData && getData.nn && getData.nn === CUSTOM_WRAPPER) {\n const customWrapperId = getData.uid\n const customWrapper = ctx.selectComponent(`#${customWrapperId}`)\n const splitedPath = dataPathArr.slice(i).join('.')\n if (customWrapper) {\n hasCustomWrapper = true\n customWrapperMap.set(customWrapper, { ...(customWrapperMap.get(customWrapper) || {}), [`i.${splitedPath}`]: data[p] })\n }\n break\n }\n }\n if (!hasCustomWrapper) {\n normalUpdate[p] = data[p]\n }\n }\n if (customWrapperMap.size > 0) {\n customWrapperMap.forEach((data, ctx) => {\n customWrapperUpdate.push({ ctx, data })\n })\n }\n }\n const updateArrLen = customWrapperUpdate.length\n if (updateArrLen) {\n const eventId = `${this._path}_update_${eventIncrementId()}`\n const eventCenter = this.eventCenter\n let executeTime = 0\n eventCenter.once(eventId, () => {\n executeTime++\n if (executeTime === updateArrLen + 1) {\n perf.stop(SET_DATA)\n if (!this.pendingFlush) {\n this.flushUpdateCallback()\n }\n if (initRender) {\n perf.stop(PAGE_INIT)\n }\n }\n }, eventCenter)\n customWrapperUpdate.forEach(item => {\n if (process.env.NODE_ENV !== 'production' && options.debug) {\n // eslint-disable-next-line no-console\n console.log('custom wrapper setData: ', item.data)\n }\n item.ctx.setData(item.data, () => {\n eventCenter.trigger(eventId)\n })\n })\n if (Object.keys(normalUpdate).length) {\n if (process.env.NODE_ENV !== 'production' && options.debug) {\n // eslint-disable-next-line no-console\n console.log('setData:', normalUpdate)\n }\n ctx.setData(normalUpdate, () => {\n eventCenter.trigger(eventId)\n })\n }\n } else {\n if (process.env.NODE_ENV !== 'production' && options.debug) {\n // eslint-disable-next-line no-console\n console.log('setData:', data)\n }\n ctx.setData(data, () => {\n perf.stop(SET_DATA)\n if (!this.pendingFlush) {\n this.flushUpdateCallback()\n }\n if (initRender) {\n perf.stop(PAGE_INIT)\n }\n })\n }\n }\n }, 0)\n }\n\n public enqueueUpdateCallback (cb: Func, ctx?: Record<string, any>) {\n this.updateCallbacks.push(() => {\n ctx ? cb.call(ctx) : cb()\n })\n }\n\n public flushUpdateCallback () {\n this.pendingFlush = false\n const copies = this.updateCallbacks.slice(0)\n this.updateCallbacks.length = 0\n for (let i = 0; i < copies.length; i++) {\n copies[i]()\n }\n }\n}\n","import { TaroElement } from './element'\nimport {\n VALUE,\n INPUT,\n CHANGE\n} from '../constants'\n\nimport type { TaroEvent } from './event'\n\nexport class FormElement extends TaroElement {\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","import { TaroElement } from './element'\n\n// for Vue3\nexport class SVGElement extends TaroElement {}\n","import { options } from '../../options'\n\ninterface Position {\n index: number\n column: number\n line: number\n}\n\nexport interface Token {\n type: string\n content?: string\n position?: {\n start?: Position\n end?: Position\n }\n close?: boolean\n}\n\nfunction initPosition (): Position {\n return {\n index: 0,\n column: 0,\n line: 0\n }\n}\n\nfunction feedPosition (position: Position, str: string, len: number) {\n const start = position.index\n const end = position.index = start + len\n for (let i = start; i < end; i++) {\n const char = str.charAt(i)\n if (char === '\\n') {\n position.line++\n position.column = 0\n } else {\n position.column++\n }\n }\n}\n\nfunction jumpPosition (position: Position, str: string, end: number) {\n const len = end - position.index\n return feedPosition(position, str, len)\n}\n\nfunction copyPosition (position: Position) {\n return {\n index: position.index,\n line: position.line,\n column: position.column\n }\n}\n\nconst whitespace = /\\s/\nfunction isWhitespaceChar (char: string) {\n return whitespace.test(char)\n}\n\nconst equalSign = /=/\nfunction isEqualSignChar (char: string) {\n return equalSign.test(char)\n}\n\nfunction shouldBeIgnore (tagName: string) {\n const name = tagName.toLowerCase()\n if (options.html!.skipElements.has(name)) {\n return true\n }\n return false\n}\n\nconst alphanumeric = /[A-Za-z0-9]/\n\nfunction findTextEnd (str: string, index: number) {\n while (true) {\n const textEnd = str.indexOf('<', index)\n if (textEnd === -1) {\n return textEnd\n }\n const char = str.charAt(textEnd + 1)\n if (char === '/' || char === '!' || alphanumeric.test(char)) {\n return textEnd\n }\n index = textEnd + 1\n }\n}\n\nfunction isWordEnd (cursor: number, wordBegin: number, html: string) {\n if (!isWhitespaceChar(html.charAt(cursor))) return false\n\n const len = html.length\n\n // backwrad\n for (let i = cursor - 1; i > wordBegin; i--) {\n const char = html.charAt(i)\n if (!isWhitespaceChar(char)) {\n if (isEqualSignChar(char)) return false\n break\n }\n }\n\n // forward\n for (let i = cursor + 1; i < len; i++) {\n const char = html.charAt(i)\n if (!isWhitespaceChar(char)) {\n if (isEqualSignChar(char)) return false\n return true\n }\n }\n}\n\nexport class Scaner {\n private tokens: Token[] = []\n\n private position: Position = initPosition()\n\n private html: string\n\n constructor (html: string) {\n this.html = html\n }\n\n public scan (): Token[] {\n const { html, position } = this\n const len = html.length\n\n while (position.index < len) {\n const start = position.index\n this.scanText()\n if (position.index === start) {\n const isComment = html.startsWith('!--', start + 1)\n if (isComment) {\n this.scanComment()\n } else {\n const tagName = this.scanTag()\n if (shouldBeIgnore(tagName)) {\n this.scanSkipTag(tagName)\n }\n }\n }\n }\n\n return this.tokens\n }\n\n private scanText () {\n const type = 'text'\n const { html, position } = this\n let textEnd = findTextEnd(html, position.index)\n if (textEnd === position.index) {\n return\n }\n if (textEnd === -1) {\n textEnd = html.length\n }\n\n const start = copyPosition(position)\n const content = html.slice(position.index, textEnd)\n jumpPosition(position, html, textEnd)\n const end = copyPosition(position)\n this.tokens.push({ type, content, position: { start, end } })\n }\n\n private scanComment () {\n const type = 'comment'\n const { html, position } = this\n const start = copyPosition(position)\n feedPosition(position, html, 4) // \"<!--\".length\n let contentEnd = html.indexOf('-->', position.index)\n let commentEnd = contentEnd + 3 // \"-->\".length\n if (contentEnd === -1) {\n contentEnd = commentEnd = html.length\n }\n\n const content = html.slice(position.index, contentEnd)\n jumpPosition(position, html, commentEnd)\n this.tokens.push({\n type,\n content,\n position: {\n start,\n end: copyPosition(position)\n }\n })\n }\n\n private scanTag () {\n this.scanTagStart()\n const tagName = this.scanTagName()\n this.scanAttrs()\n this.scanTagEnd()\n\n return tagName\n }\n\n private scanTagStart () {\n const type = 'tag-start'\n const { html, position } = this\n\n const secondChar = html.charAt(position.index + 1)\n const close = secondChar === '/'\n const start = copyPosition(position)\n feedPosition(position, html, close ? 2 : 1)\n this.tokens.push({ type, close, position: { start } })\n }\n\n private scanTagEnd () {\n const type = 'tag-end'\n const { html, position } = this\n\n const firstChar = html.charAt(position.index)\n const close = firstChar === '/'\n feedPosition(position, html, close ? 2 : 1)\n const end = copyPosition(position)\n this.tokens.push({ type, close, position: { end } })\n }\n\n private scanTagName (): string {\n const type = 'tag'\n const { html, position } = this\n const len = html.length\n let start = position.index\n while (start < len) {\n const char = html.charAt(start)\n const isTagChar = !(isWhitespaceChar(char) || char === '/' || char === '>')\n if (isTagChar) break\n start++\n }\n\n let end = start + 1\n while (end < len) {\n const char = html.charAt(end)\n const isTagChar = !(isWhitespaceChar(char) || char === '/' || char === '>')\n if (!isTagChar) break\n end++\n }\n\n jumpPosition(position, html, end)\n const tagName = html.slice(start, end)\n this.tokens.push({\n type,\n content: tagName\n })\n\n return tagName\n }\n\n private scanAttrs () {\n const { html, position, tokens } = this\n let cursor = position.index\n let quote: string | null = null // null, single-, or double-quote\n let wordBegin = cursor // index of word start\n const words: string[] = [] // \"key\", \"key=value\", \"key='value'\", etc\n const len = html.length\n while (cursor < len) {\n const char = html.charAt(cursor)\n if (quote) {\n const isQuoteEnd = char === quote\n if (isQuoteEnd) {\n quote = null\n }\n cursor++\n continue\n }\n\n const isTagEnd = char === '/' || char === '>'\n if (isTagEnd) {\n if (cursor !== wordBegin) {\n words.push(html.slice(wordBegin, cursor))\n }\n break\n }\n\n if (isWordEnd(cursor, wordBegin, html)) {\n if (cursor !== wordBegin) {\n words.push(html.slice(wordBegin, cursor))\n }\n wordBegin = cursor + 1\n cursor++\n continue\n }\n\n const isQuoteStart = char === '\\'' || char === '\"'\n if (isQuoteStart) {\n quote = char\n cursor++\n continue\n }\n\n cursor++\n }\n\n jumpPosition(position, html, cursor)\n\n const wLen = words.length\n const type = 'attribute'\n for (let i = 0; i < wLen; i++) {\n const word = words[i]\n const isNotPair = word.includes('=')\n if (isNotPair) {\n const secondWord = words[i + 1]\n if (secondWord && secondWord.startsWith('=')) {\n if (secondWord.length > 1) {\n const newWord = word + secondWord\n tokens.push({ type, content: newWord })\n i += 1\n continue\n }\n const thirdWord = words[i + 2]\n i += 1\n if (thirdWord) {\n const newWord = word + '=' + thirdWord\n tokens.push({ type, content: newWord })\n i += 1\n continue\n }\n }\n }\n if (word.endsWith('=')) {\n const secondWord = words[i + 1]\n if (secondWord && !secondWord.includes('=')) {\n const newWord = word + secondWord\n tokens.push({ type, content: newWord })\n i += 1\n continue\n }\n\n const newWord = word.slice(0, -1)\n tokens.push({ type, content: newWord })\n continue\n }\n\n tokens.push({ type, content: word })\n }\n }\n\n private scanSkipTag (tagName: string) {\n const { html, position } = this\n const safeTagName = tagName.toLowerCase()\n const len = html.length\n while (position.index < len) {\n const nextTag = html.indexOf('</', position.index)\n if (nextTag === -1) {\n this.scanText()\n break\n }\n\n jumpPosition(position, html, nextTag)\n const name = this.scanTag()\n if (safeTagName === name.toLowerCase()) {\n break\n }\n }\n }\n}\n","import { internalComponents } from '@tarojs/shared'\n\nexport function makeMap (\n str: string,\n expectsLowerCase?: boolean\n): (key: string) => boolean {\n const map: Record<string, boolean> = Object.create(null)\n const list: Array<string> = str.split(',')\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true\n }\n return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val]\n}\n\nexport const specialMiniElements = {\n img: 'image',\n iframe: 'web-view'\n}\n\nconst internalCompsList = Object.keys(internalComponents)\n .map(i => i.toLowerCase())\n .join(',')\n\n// https://developers.weixin.qq.com/miniprogram/dev/component\nexport const isMiniElements = makeMap(internalCompsList, true)\n\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Inline_elements\nexport const isInlineElements = makeMap('a,i,abbr,iframe,select,acronym,slot,small,span,bdi,kbd,strong,big,map,sub,sup,br,mark,mark,meter,template,canvas,textarea,cite,object,time,code,output,u,data,picture,tt,datalist,var,dfn,del,q,em,s,embed,samp,b', true)\n\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements\nexport const isBlockElements = makeMap('address,fieldset,li,article,figcaption,main,aside,figure,nav,blockquote,footer,ol,details,form,p,dialog,h1,h2,h3,h4,h5,h6,pre,dd,header,section,div,hgroup,table,dl,hr,ul,dt', true)\n","export function unquote (str: string): string {\n const car = str.charAt(0)\n const end = str.length - 1\n const isQuoteStart = car === '\"' || car === \"'\"\n if (isQuoteStart && car === str.charAt(end)) {\n return str.slice(1, end)\n }\n return str\n}\n","import { NodeType } from '../../dom/node_types'\nimport { unquote } from './utils'\n\nimport type { TaroNode } from '../../dom/node'\nimport type { ParsedTaroElement } from './parser'\n\nconst LEFT_BRACKET = '{'\nconst RIGHT_BRACKET = '}'\nconst CLASS_SELECTOR = '.'\nconst ID_SELECTOR = '#'\nconst CHILD_COMBINATOR = '>'\nconst GENERAL_SIBLING_COMBINATOR = '~'\nconst ADJACENT_SIBLING_COMBINATOR = '+'\n\ninterface ISelector {\n isChild: boolean\n isGeneralSibling: boolean\n isAdjacentSibling: boolean\n tag: string | null\n id: string | null\n class: string[]\n attrs: {\n all: boolean\n key: string\n value?: string | null\n }[]\n}\n\ninterface IStyle {\n content: string\n selectorList: ISelector[]\n}\n\nexport default class StyleTagParser {\n styles: IStyle[]= []\n\n extractStyle (src: string) {\n const REG_STYLE = /<style\\s?[^>]*>((.|\\n|\\s)+?)<\\/style>/g\n let html = src\n // let html = src.replace(/\\n/g, '')\n\n html = html.replace(REG_STYLE, (_, $1: string) => {\n const style = $1.trim()\n this.stringToSelector(style)\n return ''\n })\n\n return html.trim()\n }\n\n stringToSelector (style: string) {\n let lb = style.indexOf(LEFT_BRACKET)\n\n while (lb > -1) {\n const rb = style.indexOf(RIGHT_BRACKET)\n const selectors = style.slice(0, lb).trim()\n\n let content = style.slice(lb + 1, rb)\n content = content.replace(/:(.*);/g, function (_, $1) {\n const t = $1.trim().replace(/ +/g, '+++')\n return `:${t};`\n })\n content = content.replace(/ /g, '')\n content = content.replace(/\\+\\+\\+/g, ' ')\n\n if (!(/;$/.test(content))) {\n content += ';'\n }\n selectors.split(',').forEach(src => {\n const selectorList = this.parseSelector(src)\n this.styles.push({\n content,\n selectorList\n })\n })\n style = style.slice(rb + 1)\n lb = style.indexOf(LEFT_BRACKET)\n }\n // console.log('res this.styles: ', this.styles)\n }\n\n parseSelector (src: string) {\n // todo: 属性选择器里可以带空格:[a = \"b\"],这里的 split(' ') 需要作兼容\n const list = src.trim().replace(/ *([>~+]) */g, ' $1').replace(/ +/g, ' ').split(' ')\n const selectors = list.map(item => {\n const firstChar = item.charAt(0)\n const selector: ISelector = {\n isChild: firstChar === CHILD_COMBINATOR,\n isGeneralSibling: firstChar === GENERAL_SIBLING_COMBINATOR,\n isAdjacentSibling: firstChar === ADJACENT_SIBLING_COMBINATOR,\n tag: null,\n id: null,\n class: [],\n attrs: []\n }\n\n item = item.replace(/^[>~+]/, '')\n\n // 属性选择器\n item = item.replace(/\\[(.+?)\\]/g, function (_, $1: string) {\n const [key, value] = $1.split('=')\n const all = $1.indexOf('=') === -1\n\n const attr = {\n all,\n key,\n value: all ? null : value\n }\n selector.attrs.push(attr)\n return ''\n })\n\n item = item.replace(/([.#][A-Za-z0-9-_]+)/g, function (_, $1: string) {\n if ($1[0] === ID_SELECTOR) {\n // id 选择器\n selector.id = $1.substr(1)\n } else if ($1[0] === CLASS_SELECTOR) {\n // class 选择器\n selector.class.push($1.substr(1))\n }\n return ''\n })\n\n // 标签选择器\n if (item !== '') {\n selector.tag = item\n }\n\n return selector\n })\n return selectors\n }\n\n matchStyle (tagName: string, el: ParsedTaroElement, list: number[]): string {\n const res = sortStyles(this.styles).reduce((str, { content, selectorList }, i) => {\n let idx = list[i]\n let selector = selectorList[idx]\n const nextSelector = selectorList[idx + 1]\n\n if (nextSelector?.isGeneralSibling || nextSelector?.isAdjacentSibling) {\n selector = nextSelector\n idx += 1\n list[i] += 1\n }\n\n let isMatch = this.matchCurrent(tagName, el, selector)\n\n if (isMatch && selector.isGeneralSibling) {\n let prev: ParsedTaroElement = getPreviousElement(el)\n while (prev) {\n if (prev.h5tagName && this.matchCurrent(prev.h5tagName, prev, selectorList[idx - 1])) {\n isMatch = true\n break\n }\n prev = getPreviousElement(prev)\n isMatch = false\n }\n }\n if (isMatch && selector.isAdjacentSibling) {\n const prev: ParsedTaroElement = getPreviousElement(el)\n if (!prev || !prev.h5tagName) {\n isMatch = false\n } else {\n const isSiblingMatch = this.matchCurrent(prev.h5tagName, prev, selectorList[idx - 1])\n if (!isSiblingMatch) {\n isMatch = false\n }\n }\n }\n\n if (isMatch) {\n if (idx === selectorList.length - 1) {\n return str + content\n } else if (idx < selectorList.length - 1) {\n list[i] += 1\n }\n } else {\n // 直接子代组合器: >\n if (selector.isChild && idx > 0) {\n list[i] -= 1\n if (this.matchCurrent(tagName, el, selectorList[list[i]])) {\n list[i] += 1\n }\n }\n }\n\n return str\n }, '')\n return res\n }\n\n matchCurrent (tagName: string, el: ParsedTaroElement, selector: ISelector): boolean {\n // 标签选择器\n if (selector.tag && selector.tag !== tagName) return false\n\n // id 选择器\n if (selector.id && selector.id !== el.id) return false\n\n // class 选择器\n if (selector.class.length) {\n const classList = el.className.split(' ')\n for (let i = 0; i < selector.class.length; i++) {\n const cls = selector.class[i]\n if (classList.indexOf(cls) === -1) {\n return false\n }\n }\n }\n\n // 属性选择器\n if (selector.attrs.length) {\n for (let i = 0; i < selector.attrs.length; i++) {\n const { all, key, value } = selector.attrs[i]\n if (all && !el.hasAttribute(key)) {\n return false\n } else {\n const attr = el.getAttribute(key)\n if (attr !== unquote(value || '')) {\n return false\n }\n }\n }\n }\n\n return true\n }\n}\n\nfunction getPreviousElement (el: TaroNode) {\n const parent = el.parentElement\n if (!parent) return null\n\n const prev = el.previousSibling\n if (!prev) return null\n\n if (prev.nodeType === NodeType.ELEMENT_NODE) {\n return prev\n } else {\n return getPreviousElement(prev)\n }\n}\n\n// 根据 css selector 权重排序: 权重大的靠后\n// @WARN 不考虑伪类\n// https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance#specificity_2\nfunction sortStyles (styles: IStyle[]) {\n return styles.sort((s1, s2) => {\n const hundreds1 = getHundredsWeight(s1.selectorList)\n const hundreds2 = getHundredsWeight(s2.selectorList)\n\n if (hundreds1 !== hundreds2) return hundreds1 - hundreds2\n\n const tens1 = getTensWeight(s1.selectorList)\n const tens2 = getTensWeight(s2.selectorList)\n\n if (tens1 !== tens2) return tens1 - tens2\n\n const ones1 = getOnesWeight(s1.selectorList)\n const ones2 = getOnesWeight(s2.selectorList)\n\n return ones1 - ones2\n })\n}\n\nfunction getHundredsWeight (selectors: ISelector[]) {\n return selectors.reduce((pre, cur) => pre + (cur.id ? 1 : 0), 0)\n}\n\nfunction getTensWeight (selectors: ISelector[]) {\n return selectors.reduce((pre, cur) => pre + cur.class.length + cur.attrs.length, 0)\n}\n\nfunction getOnesWeight (selectors: ISelector[]) {\n return selectors.reduce((pre, cur) => pre + (cur.tag ? 1 : 0), 0)\n}\n","import { isFunction } from '@tarojs/shared'\nimport { Scaner, Token } from './scaner'\nimport { options } from '../../options'\nimport { specialMiniElements, isMiniElements, isBlockElements, isInlineElements } from './tags'\nimport StyleTagParser from './style'\nimport { unquote } from './utils'\n\nimport type { TaroElement } from '../../dom/element'\nimport type { TaroDocument } from '../../dom/document'\n\ninterface State {\n tokens: Token[]\n cursor: number\n stack: Element[]\n}\n\nconst closingTagAncestorBreakers = {\n li: ['ul', 'ol', 'menu'],\n dt: ['dl'],\n dd: ['dl'],\n tbody: ['table'],\n thead: ['table'],\n tfoot: ['table'],\n tr: ['table'],\n td: ['table']\n}\n\ninterface Node {\n type: string;\n}\n\ninterface Comment extends Node {\n type: 'comment'\n content: string\n}\n\nexport interface Text extends Node {\n type: 'text'\n content: string\n}\n\nexport interface Element extends Node {\n type: 'element'\n tagName: string\n children: ChildNode[]\n attributes: string[]\n}\n\nexport interface ParsedTaroElement extends TaroElement{\n h5tagName?: string\n}\n\ntype ChildNode = Comment | Text | Element\n\nfunction hasTerminalParent (tagName: string, stack: Element[]) {\n const tagParents: undefined | string[] = closingTagAncestorBreakers[tagName]\n if (tagParents) {\n let currentIndex = stack.length - 1\n while (currentIndex >= 0) {\n const parentTagName = stack[currentIndex].tagName\n if (parentTagName === tagName) {\n break\n }\n if (tagParents && tagParents.includes(parentTagName!)) {\n return true\n }\n currentIndex--\n }\n }\n return false\n}\n\nfunction getTagName (tag: string) {\n if (options.html!.renderHTMLTag) {\n return tag\n }\n\n if (specialMiniElements[tag]) {\n return specialMiniElements[tag]\n } else if (isMiniElements(tag)) {\n return tag\n } else if (isBlockElements(tag)) {\n return 'view'\n } else if (isInlineElements(tag)) {\n return 'text'\n }\n\n return 'view'\n}\n\nfunction splitEqual (str: string) {\n const sep = '='\n const idx = str.indexOf(sep)\n if (idx === -1) return [str]\n const key = str.slice(0, idx).trim()\n const value = str.slice(idx + sep.length).trim()\n return [key, value]\n}\n\nfunction format (\n children: ChildNode[],\n document: TaroDocument,\n styleOptions: {\n styleTagParser: StyleTagParser\n descendantList: number[]\n },\n parent?: TaroElement\n) {\n return children\n .filter(child => {\n // 过滤注释和空文本节点\n if (child.type === 'comment') {\n return false\n } else if (child.type === 'text') {\n return child.content !== ''\n }\n return true\n })\n .map((child: Text | Element) => {\n // 文本节点\n if (child.type === 'text') {\n let text = document.createTextNode(child.content)\n if (isFunction(options.html!.transformText)) {\n text = options.html!.transformText(text, child)\n }\n parent?.appendChild(text)\n return text\n }\n\n const el: ParsedTaroElement = document.createElement(getTagName(child.tagName))\n el.h5tagName = child.tagName\n\n parent?.appendChild(el)\n\n if (!options.html!.renderHTMLTag) {\n el.className = `h5-${child.tagName}`\n }\n\n for (let i = 0; i < child.attributes.length; i++) {\n const attr = child.attributes[i]\n const [key, value] = splitEqual(attr)\n if (key === 'class') {\n el.className += ' ' + unquote(value)\n } else if (key[0] === 'o' && key[1] === 'n') {\n continue\n } else {\n el.setAttribute(key, value == null ? true : unquote(value))\n }\n }\n\n const { styleTagParser, descendantList } = styleOptions\n const list = descendantList.slice()\n const style = styleTagParser.matchStyle(child.tagName, el, list)\n\n el.setAttribute('style', style + el.style.cssText)\n // console.log('style, ', style)\n\n format(child.children, document, {\n styleTagParser,\n descendantList: list\n }, el)\n\n if (isFunction(options.html!.transformElement)) {\n return options.html!.transformElement(el, child)\n }\n\n return el\n })\n}\n\nexport function parser (html: string, document: TaroDocument) {\n const styleTagParser = new StyleTagParser()\n html = styleTagParser.extractStyle(html)\n\n const tokens = new Scaner(html).scan()\n\n const root: Element = { tagName: '', children: [], type: 'element', attributes: [] }\n\n const state = { tokens, options, cursor: 0, stack: [root] }\n parse(state)\n\n return format(root.children, document, {\n styleTagParser,\n descendantList: Array(styleTagParser.styles.length).fill(0)\n })\n}\n\nfunction parse (state: State) {\n const { tokens, stack } = state\n let { cursor } = state\n\n const len = tokens.length\n\n let nodes = stack[stack.length - 1].children\n\n while (cursor < len) {\n const token = tokens[cursor]\n if (token.type !== 'tag-start') {\n // comment or text\n nodes.push(token as ChildNode)\n cursor++\n continue\n }\n\n const tagToken = tokens[++cursor]\n cursor++\n const tagName = tagToken.content!.toLowerCase()\n if (token.close) {\n let index = stack.length\n let shouldRewind = false\n while (--index > -1) {\n if (stack[index].tagName === tagName) {\n shouldRewind = true\n break\n }\n }\n while (cursor < len) {\n const endToken = tokens[cursor]\n if (endToken.type !== 'tag-end') break\n cursor++\n }\n if (shouldRewind) {\n stack.splice(index)\n break\n } else {\n continue\n }\n }\n\n const isClosingTag = options.html!.closingElements.has(tagName)\n let shouldRewindToAutoClose = isClosingTag\n if (shouldRewindToAutoClose) {\n shouldRewindToAutoClose = !hasTerminalParent(tagName, stack)\n }\n\n if (shouldRewindToAutoClose) {\n let currentIndex = stack.length - 1\n while (currentIndex > 0) {\n if (tagName === stack[currentIndex].tagName) {\n stack.splice(currentIndex)\n const previousIndex = currentIndex - 1\n nodes = stack[previousIndex].children\n break\n }\n currentIndex = currentIndex - 1\n }\n }\n\n const attributes: string[] = []\n let attrToken: Token\n while (cursor < len) {\n attrToken = tokens[cursor]\n if (attrToken.type === 'tag-end') break\n attributes.push(attrToken.content!)\n cursor++\n }\n\n cursor++\n const children: Element[] = []\n const element: Element = {\n type: 'element',\n tagName: tagToken.content!,\n attributes,\n children\n }\n nodes.push(element)\n\n const hasChildren = !(attrToken!.close || options.html!.voidElements.has(tagName))\n if (hasChildren) {\n stack.push({ tagName, children } as any)\n const innerState: State = { tokens, cursor, stack }\n parse(innerState)\n cursor = innerState.cursor\n }\n }\n\n state.cursor = cursor\n}\n","import { parser } from './parser'\nimport { options } from '../../options'\n\nimport type { TaroNode } from '../../dom/node'\nimport type { TaroDocument } from '../../dom/document'\n\noptions.html = {\n skipElements: new Set(['style', 'script']),\n voidElements: new Set([\n '!doctype', 'area', 'base', 'br', 'col', 'command',\n 'embed', 'hr', 'img', 'input', 'keygen', 'link',\n 'meta', 'param', 'source', 'track', 'wbr'\n ]),\n closingElements: new Set([\n 'html', 'head', 'body', 'p', 'dt', 'dd', 'li', 'option',\n 'thead', 'th', 'tbody', 'tr', 'td', 'tfoot', 'colgroup'\n ]),\n renderHTMLTag: false\n}\n\nexport function setInnerHTML (element: TaroNode, html: string, getDoc: () => TaroDocument) {\n while (element.firstChild) {\n element.removeChild(element.firstChild)\n }\n const children = parser(html, getDoc())\n\n for (let i = 0; i < children.length; i++) {\n element.appendChild(children[i])\n }\n}\n","import {\n STYLE,\n DATASET,\n PROPS,\n OBJECT\n} from '../constants'\nimport { parser } from '../dom-external/inner-html/parser'\nimport { GetDoc } from '../interface'\nimport { NodeType } from '../dom/node_types'\n\nimport type { Ctx } from '../interface'\n\nexport type IPosition = 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend'\n\n/**\n * An implementation of `Element.insertAdjacentHTML()`\n * to support Vue 3 with a version of or greater than `vue@3.1.2`\n */\nexport function insertAdjacentHTMLImpl (\n position: IPosition,\n html: string,\n getDoc: GetDoc\n) {\n const parsedNodes = parser(html, getDoc())\n\n for (let i = 0; i < parsedNodes.length; i++) {\n const n = parsedNodes[i]\n\n switch (position) {\n case 'beforebegin':\n this.parentNode?.insertBefore(n, this)\n break\n case 'afterbegin':\n if (this.hasChildNodes()) {\n this.insertBefore(n, this.childNodes[0])\n } else {\n this.appendChild(n)\n }\n break\n case 'beforeend':\n this.appendChild(n)\n break\n case 'afterend':\n this.parentNode?.appendChild(n)\n break\n }\n }\n}\n\nexport function cloneNode (ctx: Ctx, getDoc, isDeep = false) {\n const document = getDoc()\n let newNode\n\n if (ctx.nodeType === NodeType.ELEMENT_NODE) {\n newNode = document.createElement(ctx.nodeName)\n } else if (ctx.nodeType === NodeType.TEXT_NODE) {\n newNode = document.createTextNode('')\n }\n\n for (const key in this) {\n const value: any = this[key]\n if ([PROPS, DATASET].includes(key) && typeof value === OBJECT) {\n newNode[key] = { ...value }\n } else if (key === '_value') {\n newNode[key] = value\n } else if (key === STYLE) {\n newNode.style._value = { ...value._value }\n newNode.style._usedStyleProp = new Set(Array.from(value._usedStyleProp))\n }\n }\n\n if (isDeep) {\n newNode.childNodes = ctx.childNodes.map(node => node.cloneNode(true))\n }\n\n return newNode\n}\n","import { inject, injectable } from 'inversify'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\nimport { ElementNames, InstanceNamedFactory } from '../interface'\nimport { setInnerHTML } from '../dom-external/inner-html/html'\nimport { cloneNode, insertAdjacentHTMLImpl } from './node'\n\nimport type { Ctx, GetDoc } from '../interface'\nimport type { TaroDocument } from '../dom/document'\nimport type { IPosition } from './node'\n\ndeclare const ENABLE_INNER_HTML: boolean\ndeclare const ENABLE_ADJACENT_HTML: boolean\ndeclare const ENABLE_CLONE_NODE: boolean\n\n@injectable()\nexport class TaroNodeImpl {\n public getDoc: GetDoc\n\n constructor (// eslint-disable-next-line @typescript-eslint/indent\n @inject(SERVICE_IDENTIFIER.TaroElementFactory) getElement: InstanceNamedFactory\n ) {\n this.getDoc = () => getElement<TaroDocument>(ElementNames.Document)()\n }\n\n public bind (ctx: Ctx) {\n const getDoc = this.getDoc\n\n if (ENABLE_INNER_HTML) {\n bindInnerHTML(ctx, getDoc)\n if (ENABLE_ADJACENT_HTML) {\n bindAdjacentHTML(ctx, getDoc)\n }\n }\n if (ENABLE_CLONE_NODE) {\n ctx.cloneNode = cloneNode.bind(ctx, ctx, getDoc)\n }\n }\n}\n\nfunction bindInnerHTML (ctx, getDoc) {\n Object.defineProperty(ctx, 'innerHTML', {\n configurable: true,\n enumerable: true,\n set (html: string) {\n setInnerHTML.call(ctx, ctx, html, getDoc)\n },\n get (): string {\n return ''\n }\n })\n}\n\nfunction bindAdjacentHTML (ctx, getDoc) {\n ctx.insertAdjacentHTML = function (position: IPosition, html: string) {\n insertAdjacentHTMLImpl.call(ctx, position, html, getDoc)\n }\n}\n","import { options } from '../options'\nimport { ElementNames } from '../interface'\nimport { DOCUMENT_FRAGMENT } from '../constants'\n\nimport type { Ctx } from '../interface'\n\nexport function getBoundingClientRectImpl (): Promise<null> {\n if (!options.miniGlobal) return Promise.resolve(null)\n return new Promise(resolve => {\n const query = options.miniGlobal.createSelectorQuery()\n query.select(`#${this.uid}`).boundingClientRect(res => {\n resolve(res)\n }).exec()\n })\n}\n\nexport function getTemplateContent (ctx: Ctx): string | undefined {\n if (ctx.nodeName === 'template') {\n const content = ctx._getElement(ElementNames.Element)(DOCUMENT_FRAGMENT)\n content.childNodes = ctx.childNodes\n ctx.childNodes = [content]\n content.parentNode = ctx\n content.childNodes.forEach(nodes => {\n nodes.parentNode = content\n })\n return content\n }\n}\n","import { injectable } from 'inversify'\nimport { getBoundingClientRectImpl, getTemplateContent } from './element'\n\nimport type { Ctx } from '../interface'\n\ndeclare const ENABLE_SIZE_APIS: boolean\ndeclare const ENABLE_TEMPLATE_CONTENT: boolean\n\n@injectable()\nexport class TaroElementImpl {\n bind (ctx: Ctx) {\n if (ENABLE_SIZE_APIS) {\n ctx.getBoundingClientRect = async function (...args: any[]) {\n return await getBoundingClientRectImpl.apply(ctx, args)\n }\n }\n if (ENABLE_TEMPLATE_CONTENT) {\n bindContent(ctx)\n }\n }\n}\n\nfunction bindContent (ctx: Ctx) {\n Object.defineProperty(ctx, 'content', {\n configurable: true,\n enumerable: true,\n get () {\n return getTemplateContent(ctx)\n }\n })\n}\n","import { inject, injectable } from 'inversify'\nimport { controlledComponent, isUndefined } from '@tarojs/shared'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\nimport { TaroElement } from '../dom/element'\nimport { NodeType } from '../dom/node_types'\nimport { eventSource } from '../dom/event-source'\nimport { ElementNames, InstanceFactory, InstanceNamedFactory } from '../interface'\nimport {\n ROOT_STR,\n DOCUMENT_ELEMENT_NAME,\n COMMENT\n} from '../constants'\n\nimport type { FormElement } from '../dom/form'\nimport type { TaroRootElement } from '../dom/root'\nimport type { TaroText } from '../dom/text'\nimport type { TaroNodeImpl } from '../dom-external/node-impl'\nimport type { TaroElementImpl } from '../dom-external/element-impl'\nimport type { Hooks } from '../hooks'\n\n@injectable()\nexport class TaroDocument extends TaroElement {\n private _getText: InstanceFactory<TaroText>\n\n public constructor (// eslint-disable-next-line @typescript-eslint/indent\n @inject(SERVICE_IDENTIFIER.TaroNodeImpl) nodeImpl: TaroNodeImpl,\n @inject(SERVICE_IDENTIFIER.TaroElementFactory) getElement: InstanceNamedFactory,\n @inject(SERVICE_IDENTIFIER.Hooks) hooks: Hooks,\n @inject(SERVICE_IDENTIFIER.TaroElementImpl) elementImpl: TaroElementImpl,\n @inject(SERVICE_IDENTIFIER.TaroTextFactory) getText: InstanceFactory<TaroText>\n ) {\n super(nodeImpl, getElement, hooks, elementImpl)\n this._getText = getText\n this.nodeType = NodeType.DOCUMENT_NODE\n this.nodeName = DOCUMENT_ELEMENT_NAME\n }\n\n public createElement (type: string): TaroElement | TaroRootElement | FormElement {\n if (type === ROOT_STR) {\n return this._getElement<TaroRootElement>(ElementNames.RootElement)()\n }\n\n if (controlledComponent.has(type)) {\n return this._getElement<FormElement>(ElementNames.FormElement)(type)\n }\n\n return this._getElement<TaroElement>(ElementNames.Element)(type)\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 this._getText(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 = this._getText('')\n textnode.nodeName = COMMENT\n return textnode\n }\n}\n","import { inject, injectable, multiInject, /* multiInject, */ optional } from 'inversify'\nimport SERVICE_IDENTIFIER from './constants/identifiers'\n\nimport type {\n IHooks,\n OnRemoveAttribute,\n GetLifecycle,\n GetPathIndex,\n GetEventCenter,\n ModifyMpEvent,\n ModifyTaroEvent,\n IsBubbleEvents,\n GetSpecialNodes,\n BatchedEventUpdates,\n MergePageInstance,\n CreatePullDownComponent,\n GetDOMNode,\n InitNativeApi,\n ModifySetAttrPayload,\n ModifyHydrateData,\n ModifyRmAttrPayload,\n MpEvent,\n OnAddEvent,\n patchElement\n} from './interface'\nimport type { TaroElement } from './dom/element'\nimport type { TaroEvent } from './dom/event'\n\n@injectable()\nexport class Hooks implements IHooks {\n @inject(SERVICE_IDENTIFIER.getLifecycle)\n public getLifecycle: GetLifecycle\n\n @inject(SERVICE_IDENTIFIER.getPathIndex)\n public getPathIndex: GetPathIndex\n\n @inject(SERVICE_IDENTIFIER.getEventCenter)\n public getEventCenter: GetEventCenter\n\n @inject(SERVICE_IDENTIFIER.isBubbleEvents)\n public isBubbleEvents: IsBubbleEvents\n\n @inject(SERVICE_IDENTIFIER.getSpecialNodes)\n public getSpecialNodes: GetSpecialNodes\n\n @inject(SERVICE_IDENTIFIER.onRemoveAttribute) @optional()\n public onRemoveAttribute?: OnRemoveAttribute\n\n @inject(SERVICE_IDENTIFIER.batchedEventUpdates) @optional()\n public batchedEventUpdates?: BatchedEventUpdates\n\n @inject(SERVICE_IDENTIFIER.mergePageInstance) @optional()\n public mergePageInstance?: MergePageInstance\n\n @inject(SERVICE_IDENTIFIER.createPullDownComponent) @optional()\n public createPullDownComponent?: CreatePullDownComponent\n\n @inject(SERVICE_IDENTIFIER.getDOMNode) @optional()\n public getDOMNode?: GetDOMNode\n\n @inject(SERVICE_IDENTIFIER.modifyHydrateData) @optional()\n public modifyHydrateData?: ModifyHydrateData\n\n @inject(SERVICE_IDENTIFIER.modifySetAttrPayload) @optional()\n public modifySetAttrPayload?: ModifySetAttrPayload\n\n @inject(SERVICE_IDENTIFIER.modifyRmAttrPayload) @optional()\n public modifyRmAttrPayload?: ModifyRmAttrPayload\n\n @inject(SERVICE_IDENTIFIER.onAddEvent) @optional()\n public onAddEvent?: OnAddEvent\n\n @multiInject(SERVICE_IDENTIFIER.modifyMpEvent) @optional()\n private modifyMpEventImpls?: ModifyMpEvent[]\n\n public modifyMpEvent (e: MpEvent) {\n this.modifyMpEventImpls?.forEach(fn => fn(e))\n }\n\n @multiInject(SERVICE_IDENTIFIER.modifyTaroEvent) @optional()\n private modifyTaroEventImpls?: ModifyTaroEvent[]\n\n public modifyTaroEvent (e: TaroEvent, element: TaroElement) {\n this.modifyTaroEventImpls?.forEach(fn => fn(e, element))\n }\n\n @multiInject(SERVICE_IDENTIFIER.initNativeApi) @optional()\n public initNativeApiImpls?: InitNativeApi[]\n\n public initNativeApi (taro: Record<string, any>) {\n this.initNativeApiImpls?.forEach(fn => fn(taro))\n }\n\n @multiInject(SERVICE_IDENTIFIER.patchElement) @optional()\n public patchElementImpls?: patchElement[]\n\n public patchElement (element: TaroElement) {\n this.patchElementImpls?.forEach(fn => fn(element))\n }\n}\n","/**\n * 支持冒泡的事件, 除 支付宝小程序外,其余的可冒泡事件都和微信保持一致\n * 详见 见 https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/event.html\n */\nexport const BUBBLE_EVENTS = new Set([\n 'touchstart',\n 'touchmove',\n 'touchcancel',\n 'touchend',\n 'touchforcechange',\n 'tap',\n 'longpress',\n 'longtap',\n 'transitionend',\n 'animationstart',\n 'animationiteration',\n 'animationend'\n])\n","import { ContainerModule } from 'inversify'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\nimport { BUBBLE_EVENTS } from '../constants/events'\n\nimport type { IsBubbleEvents, GetEventCenter, GetLifecycle, GetPathIndex, GetSpecialNodes } from '../interface'\n\nconst getLifecycle: GetLifecycle = function (instance, lifecycle) {\n return instance[lifecycle]\n}\n\nconst getPathIndex: GetPathIndex = function (indexOfNode) {\n return `[${indexOfNode}]`\n}\n\nconst getEventCenter: GetEventCenter = function (Events) {\n return new Events()\n}\n\nconst isBubbleEvents = function (eventName) {\n return BUBBLE_EVENTS.has(eventName)\n}\n\nconst getSpecialNodes = function () {\n return ['view', 'text', 'image']\n}\n\nexport const DefaultHooksContainer = new ContainerModule(bind => {\n bind<GetLifecycle>(SERVICE_IDENTIFIER.getLifecycle).toFunction(getLifecycle)\n bind<GetPathIndex>(SERVICE_IDENTIFIER.getPathIndex).toFunction(getPathIndex)\n bind<GetEventCenter>(SERVICE_IDENTIFIER.getEventCenter).toFunction(getEventCenter)\n bind<IsBubbleEvents>(SERVICE_IDENTIFIER.isBubbleEvents).toFunction(isBubbleEvents)\n bind<GetSpecialNodes>(SERVICE_IDENTIFIER.getSpecialNodes).toFunction(getSpecialNodes)\n})\n","import { defaultReconciler, isArray } from '@tarojs/shared'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\n\nimport type { Container } from 'inversify'\n\nexport default function processPluginHooks (container: Container) {\n const keys = Object.keys(defaultReconciler)\n keys.forEach(key => {\n if (key in SERVICE_IDENTIFIER) {\n // is hooks\n const identifier = SERVICE_IDENTIFIER[key]\n const fn = defaultReconciler[key]\n\n if (isArray(fn)) {\n // is multi\n fn.forEach(item => container.bind(identifier).toFunction(item))\n } else {\n if (container.isBound(identifier)) {\n // 之前有绑定过,需要重新绑定以覆盖前者\n container.rebind(identifier).toFunction(fn)\n } else {\n container.bind(identifier).toFunction(fn)\n }\n }\n }\n })\n}\n","import { Container, interfaces } from 'inversify'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\nimport { TaroNodeImpl } from '../dom-external/node-impl'\nimport { TaroElementImpl } from '../dom-external/element-impl'\nimport { TaroElement } from '../dom/element'\nimport { TaroText } from '../dom/text'\nimport { TaroDocument } from '../dom/document'\nimport { TaroRootElement } from '../dom/root'\nimport { FormElement } from '../dom/form'\nimport { ElementNames, InstanceFactory, InstanceNamedFactory } from '../interface'\nimport { Hooks } from '../hooks'\nimport { DefaultHooksContainer } from './default-hooks'\nimport processPluginHooks from './plugin-hooks'\n\nconst container = new Container()\n\nif (process.env.TARO_ENV !== 'h5') {\n container.bind<TaroElement>(SERVICE_IDENTIFIER.TaroElement).to(TaroElement).whenTargetNamed(ElementNames.Element)\n container.bind<TaroDocument>(SERVICE_IDENTIFIER.TaroElement).to(TaroDocument).inSingletonScope().whenTargetNamed(ElementNames.Document)\n container.bind<TaroRootElement>(SERVICE_IDENTIFIER.TaroElement).to(TaroRootElement).whenTargetNamed(ElementNames.RootElement)\n container.bind<FormElement>(SERVICE_IDENTIFIER.TaroElement).to(FormElement).whenTargetNamed(ElementNames.FormElement)\n container.bind<InstanceNamedFactory>(SERVICE_IDENTIFIER.TaroElementFactory).toFactory<TaroElement>((context: interfaces.Context) => {\n return (named: ElementNames) => (nodeName?: string) => {\n const el = context.container.getNamed<TaroElement>(SERVICE_IDENTIFIER.TaroElement, named)\n if (nodeName) {\n el.nodeName = nodeName\n }\n el.tagName = el.nodeName.toUpperCase()\n return el\n }\n })\n\n container.bind<TaroText>(SERVICE_IDENTIFIER.TaroText).to(TaroText)\n container.bind<InstanceFactory<TaroText>>(SERVICE_IDENTIFIER.TaroTextFactory).toFactory<TaroText>((context: interfaces.Context) => {\n return (text: string) => {\n const textNode = context.container.get<TaroText>(SERVICE_IDENTIFIER.TaroText)\n textNode._value = text\n return textNode\n }\n })\n\n container.bind<TaroNodeImpl>(SERVICE_IDENTIFIER.TaroNodeImpl).to(TaroNodeImpl).inSingletonScope()\n container.bind<TaroElementImpl>(SERVICE_IDENTIFIER.TaroElementImpl).to(TaroElementImpl).inSingletonScope()\n}\n\ncontainer.bind<Hooks>(SERVICE_IDENTIFIER.Hooks).to(Hooks).inSingletonScope()\ncontainer.load(DefaultHooksContainer)\nprocessPluginHooks(container)\n\nexport default container\n","import { EMPTY_OBJ } from '@tarojs/shared'\nimport container from '../container'\nimport { ElementNames } from '../interface'\nimport { isParentBinded } from '../utils'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\nimport {\n CONFIRM,\n CURRENT_TARGET,\n INPUT,\n KEY_CODE,\n TARGET,\n TIME_STAMP,\n TYPE,\n TOUCHMOVE\n} from '../constants'\n\nimport type { TaroElement } from './element'\nimport type { InstanceNamedFactory, EventOptions, MpEvent, TaroDocumentInstance, IHooks } from '../interface'\n\nlet hooks\nlet getElement\nlet document\nif (process.env.TARO_ENV !== 'h5') {\n hooks = container.get<IHooks>(SERVICE_IDENTIFIER.Hooks)\n getElement = container.get<InstanceNamedFactory>(SERVICE_IDENTIFIER.TaroElementFactory)\n document = getElement(ElementNames.Document)() as TaroDocumentInstance\n}\n\n// Taro 事件对象。以 Web 标准的事件对象为基础,加入小程序事件对象中携带的部分信息,并模拟实现事件冒泡。\nexport class TaroEvent {\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 // 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 element = document.getElementById(this.mpEvent?.target.id)\n return {\n ...this.mpEvent?.target,\n ...this.mpEvent?.detail,\n dataset: element !== null ? element.dataset : EMPTY_OBJ\n }\n }\n\n get currentTarget () {\n const element = document.getElementById(this.mpEvent?.currentTarget.id)\n\n if (element === null) {\n return this.target\n }\n\n return {\n ...this.mpEvent?.currentTarget,\n ...this.mpEvent?.detail,\n dataset: element.dataset\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\n// 小程序的事件代理回调函数\nexport function eventHandler (event: MpEvent) {\n hooks.modifyMpEvent?.(event)\n\n if (event.currentTarget == null) {\n event.currentTarget = event.target\n }\n\n const node = document.getElementById(event.currentTarget.id)\n if (node) {\n const dispatch = () => {\n const e = createEvent(event, node)\n hooks.modifyTaroEvent?.(e, node)\n node.dispatchEvent(e)\n }\n if (typeof hooks.batchedEventUpdates === 'function') {\n const type = event.type\n\n if (\n !hooks.isBubbleEvents(type) ||\n !isParentBinded(node, type) ||\n (type === TOUCHMOVE && !!node.props.catchMove)\n ) {\n // 最上层组件统一 batchUpdate\n hooks.batchedEventUpdates(() => {\n if (eventsBatch[type]) {\n eventsBatch[type].forEach(fn => fn())\n delete eventsBatch[type]\n }\n dispatch()\n })\n } else {\n // 如果上层组件也有绑定同类型的组件,委托给上层组件调用事件回调\n (eventsBatch[type] ||= []).push(dispatch)\n }\n } else {\n dispatch()\n }\n }\n}\n","import { EMPTY_OBJ } from '@tarojs/shared'\n\nexport const isBrowser = typeof document !== 'undefined' && !!document.scripts\nexport const doc: Document = isBrowser ? document : EMPTY_OBJ\nexport const win: Window = isBrowser ? window : EMPTY_OBJ\n","import { createEvent } from '../dom/event'\nimport { isBrowser, doc } from '../env'\nimport ioc_container from '../container'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\nimport { ElementNames, InstanceNamedFactory } from '../interface'\nimport {\n HTML,\n HEAD,\n BODY,\n APP,\n CONTAINER\n} from '../constants'\n\nimport type { TaroDocumentInstance } from '../interface'\n\nexport function createDocument () {\n /**\n * <document>\n * <html>\n * <head></head>\n * <body>\n * <container>\n * <app id=\"app\" />\n * </container>\n * </body>\n * </html>\n * </document>\n */\n const getElement = ioc_container.get<InstanceNamedFactory>(SERVICE_IDENTIFIER.TaroElementFactory)\n const doc = getElement(ElementNames.Document)() as TaroDocumentInstance\n const documentCreateElement = doc.createElement.bind(doc)\n const html = documentCreateElement(HTML)\n const head = documentCreateElement(HEAD)\n const body = documentCreateElement(BODY)\n const app = documentCreateElement(APP)\n app.id = APP\n const container = documentCreateElement(CONTAINER) // 多包一层主要为了兼容 vue\n\n doc.appendChild(html)\n html.appendChild(head)\n html.appendChild(body)\n body.appendChild(container)\n container.appendChild(app)\n\n doc.documentElement = html\n doc.head = head\n doc.body = body\n doc.createEvent = createEvent\n\n return doc\n}\n\nexport const document = (isBrowser ? doc : createDocument()) as TaroDocumentInstance\n","import { isBrowser, win } from '../env'\n\nconst machine = 'Macintosh'\nconst arch = 'Intel Mac OS X 10_14_5'\nconst engine = 'AppleWebKit/534.36 (KHTML, like Gecko) NodeJS/v4.1.0 Chrome/76.0.3809.132 Safari/534.36'\n\nexport const navigator = isBrowser ? win.navigator : {\n appCodeName: 'Mozilla',\n appName: 'Netscape',\n appVersion: '5.0 (' + machine + '; ' + arch + ') ' + engine,\n cookieEnabled: true,\n mimeTypes: [],\n onLine: true,\n platform: 'MacIntel',\n plugins: [],\n product: 'Taro',\n productSub: '20030107',\n userAgent: 'Mozilla/5.0 (' + machine + '; ' + arch + ') ' + engine,\n vendor: 'Joyent',\n vendorSub: ''\n}\n","// https://github.com/myrne/performance-now\nexport let now\n\n(function () {\n let loadTime\n if ((typeof performance !== 'undefined' && performance !== null) && performance.now) {\n now = function () {\n return performance.now()\n }\n } else if (Date.now) {\n now = function () {\n return Date.now() - loadTime\n }\n loadTime = Date.now()\n } else {\n now = function () {\n return new Date().getTime() - loadTime\n }\n loadTime = new Date().getTime()\n }\n})()\n\nlet lastTime = 0\n\n// https://gist.github.com/paulirish/1579671\n// https://gist.github.com/jalbam/5fe05443270fa6d8136238ec72accbc0\nconst raf = typeof requestAnimationFrame !== 'undefined' && requestAnimationFrame !== null ? requestAnimationFrame : function (callback) {\n const _now = now()\n const nextTime = Math.max(lastTime + 16, _now) // First time will execute it immediately but barely noticeable and performance is gained.\n return setTimeout(function () { callback(lastTime = nextTime) }, nextTime - _now)\n}\n\nconst caf = typeof cancelAnimationFrame !== 'undefined' && cancelAnimationFrame !== null\n ? cancelAnimationFrame\n : function (seed) {\n // fix https://github.com/NervJS/taro/issues/7749\n clearTimeout(seed)\n }\n\nexport {\n raf,\n caf\n}\n","import type { TaroElement } from '../dom/element'\nimport type { Style } from '../dom/style'\n\nexport function getComputedStyle (element: TaroElement): Style {\n return element.style\n}\n","import { navigator } from './navigator'\nimport { document } from './document'\nimport { isBrowser, win } from '../env'\nimport { raf, caf } from './raf'\nimport { getComputedStyle } from './getComputedStyle'\nimport { DATE, SET_TIMEOUT } from '../constants'\n\nexport const window = isBrowser ? win : {\n navigator,\n document\n}\n\nif (!isBrowser) {\n const globalProperties = [\n ...Object.getOwnPropertyNames(global || win),\n ...Object.getOwnPropertySymbols(global || win)\n ]\n\n globalProperties.forEach(property => {\n if (property === 'atob') return\n if (!Object.prototype.hasOwnProperty.call(window, property)) {\n window[property] = global[property]\n }\n })\n\n ;(document as any).defaultView = window\n}\n\nif (process.env.TARO_ENV && process.env.TARO_ENV !== 'h5') {\n (window as any).requestAnimationFrame = raf;\n (window as any).cancelAnimationFrame = caf;\n (window as any).getComputedStyle = getComputedStyle;\n (window as any).addEventListener = function () {};\n (window as any).removeEventListener = function () {}\n if (!(DATE in window)) {\n (window as any).Date = Date\n }\n if (!(SET_TIMEOUT in window)) {\n (window as any).setTimeout = setTimeout\n }\n}\n","import { AppInstance, PageInstance } from './dsl/instance'\n\nexport interface Router {\n params: Record<string, unknown>,\n path: string,\n onReady: string,\n onHide: string,\n onShow: string\n}\n\ninterface Current {\n app: AppInstance | null,\n router: Router | null,\n page: PageInstance | null,\n preloadData?: any\n}\n\nexport const Current: Current = {\n app: null,\n router: null,\n page: null\n}\n\nexport const getCurrentInstance = () => Current\n","import container from '../container'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\n\nimport type { IHooks } from '../interface'\n\n/* eslint-disable no-dupe-class-members */\ntype Callback1<T1> = (arg1: T1) => any;\ntype Callback2<T1, T2> = (arg1: T1, arg2: T2) => any;\ntype Callback3<T1, T2, T3> = (arg1: T1, arg2: T2, arg3: T3) => any;\ntype Callback4<T1, T2, T3, T4> = (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => any;\ntype Callback5<T1, T2, T3, T4, T5> = (arg1: T1, arg2: T2, arg3: T3,\n arg4: T4, arg5: T5) => any;\ntype Callback6Rest<T1, T2, T3, T4, T5, T6> = (arg1: T1, arg2: T2, arg3: T3,\n arg4: T4, arg5: T5, arg6: T6,\n ...rest: any[]) => any;\n\nexport class Events {\n private callbacks?: Record<string, unknown>\n static eventSplitter = /\\s+/\n\n constructor (opts?) {\n if (typeof opts !== 'undefined' && opts.callbacks) {\n this.callbacks = opts.callbacks\n } else {\n this.callbacks = {}\n }\n }\n\n on<T>(event: string, callback: Callback1<T>, context): this\n on<T1, T2>(event: string, callback: Callback2<T1, T2>, context): this\n on<T1, T2, T3>(event: string, callback: Callback3<T1, T2, T3>, context): this\n on<T1, T2, T3, T4>(event: string, callback: Callback4<T1, T2, T3, T4>, comtext): this\n on<T1, T2, T3, T4, T5>(event: string, callback: Callback5<T1, T2, T3, T4, T5>, context): this\n on<T1, T2, T3, T4, T5, T6>(event: string, callback: Callback6Rest<T1, T2, T3, T4, T5, T6>, context): this\n on (eventName, callback, context): this {\n let event, node, tail, list\n if (!callback) {\n return this\n }\n eventName = eventName.split(Events.eventSplitter)\n this.callbacks ||= {}\n const calls = this.callbacks\n while ((event = eventName.shift())) {\n list = calls[event]\n node = list ? list.tail : {}\n node.next = tail = {}\n node.context = context\n node.callback = callback\n calls[event] = {\n tail,\n next: list ? list.next : node\n }\n }\n return this\n }\n\n once (events, callback, context) {\n const wrapper = (...args) => {\n callback.apply(this, args)\n this.off(events, wrapper, context)\n }\n\n this.on(events, wrapper, context)\n\n return this\n }\n\n off (events, callback, context) {\n let event, calls, node, tail, cb, ctx\n if (!(calls = this.callbacks)) {\n return this\n }\n if (!(events || callback || context)) {\n delete this.callbacks\n return this\n }\n events = events ? events.split(Events.eventSplitter) : Object.keys(calls)\n while ((event = events.shift())) {\n node = calls[event]\n delete calls[event]\n if (!node || !(callback || context)) {\n continue\n }\n tail = node.tail\n while ((node = node.next) !== tail) {\n cb = node.callback\n ctx = node.context\n if ((callback && cb !== callback) || (context && ctx !== context)) {\n this.on(event, cb, ctx)\n }\n }\n }\n return this\n }\n\n trigger(event: string)\n trigger<T1>(event: string, arg: T1)\n trigger<T1, T2>(event: string, arg1: T1, arg2: T2)\n trigger<T1, T2, T3>(event: string, arg1: T1, arg2: T2, arg3: T3)\n trigger<T1, T2, T3, T4>(event: string, arg1: T1, arg2: T2, arg3: T3, arg4: T4)\n trigger<T1, T2, T3, T4, T5>(event: string, arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5)\n trigger<T1, T2, T3, T4, T5, T6>(event: string, arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5,\n arg6: T6, ...rest: any[])\n\n trigger (events) {\n let event, node, calls, tail\n if (!(calls = this.callbacks)) {\n return this\n }\n events = events.split(Events.eventSplitter)\n const rest = [].slice.call(arguments, 1)\n while ((event = events.shift())) {\n if ((node = calls[event])) {\n tail = node.tail\n while ((node = node.next) !== tail) {\n node.callback.apply(node.context || this, rest)\n }\n }\n }\n return this\n }\n}\n\nexport type EventsType = typeof Events\n\nconst hooks = container.get<IHooks>(SERVICE_IDENTIFIER.Hooks)\nconst eventCenter = hooks.getEventCenter(Events)\ncontainer.bind<Events>(SERVICE_IDENTIFIER.eventCenter).toConstantValue(eventCenter)\n\nexport { eventCenter }\n","/* eslint-disable dot-notation */\nimport { isFunction, EMPTY_OBJ, ensure, Shortcuts, isUndefined, isArray } from '@tarojs/shared'\nimport container from '../container'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\nimport { eventHandler } from '../dom/event'\nimport { Current } from '../current'\nimport { document } from '../bom/document'\nimport { incrementId } from '../utils'\nimport { perf } from '../perf'\nimport { PAGE_INIT } from '../constants'\nimport { isBrowser } from '../env'\nimport { eventCenter } from '../emitter/emitter'\nimport { raf } from '../bom/raf'\n\nimport type { PageConfig } from '@tarojs/taro'\nimport type { Instance, PageInstance, PageProps } from './instance'\nimport type { Func, IHooks, MpInstance } from '../interface'\nimport type { TaroRootElement } from '../dom/root'\n\nconst instances = new Map<string, Instance>()\nconst pageId = incrementId()\nconst hooks = container.get<IHooks>(SERVICE_IDENTIFIER.Hooks)\n\nexport function injectPageInstance (inst: Instance<PageProps>, id: string) {\n hooks.mergePageInstance?.(instances.get(id), inst)\n instances.set(id, inst)\n}\n\nexport function getPageInstance (id: string): Instance | undefined {\n return instances.get(id)\n}\n\nexport function addLeadingSlash (path?: string): string {\n if (path == null) {\n return ''\n }\n return path.charAt(0) === '/' ? path : '/' + path\n}\n\nexport function safeExecute (path: string, lifecycle: keyof PageInstance, ...args: unknown[]) {\n const instance = instances.get(path)\n\n if (instance == null) {\n return\n }\n\n const func = hooks.getLifecycle(instance, lifecycle)\n\n if (isArray(func)) {\n const res = func.map(fn => fn.apply(instance, args))\n return res[0]\n }\n\n if (!isFunction(func)) {\n return\n }\n\n return func.apply(instance, args)\n}\n\nexport function stringify (obj?: Record<string, unknown>) {\n if (obj == null) {\n return ''\n }\n const path = Object.keys(obj).map((key) => {\n return key + '=' + obj[key]\n }).join('&')\n return path === '' ? path : '?' + path\n}\n\nexport function getPath (id: string, options?: Record<string, unknown>): string {\n let path = id\n if (!isBrowser) {\n path = id + stringify(options)\n }\n return path\n}\n\nexport function getOnReadyEventKey (path: string) {\n return path + '.' + 'onReady'\n}\n\nexport function getOnShowEventKey (path: string) {\n return path + '.' + 'onShow'\n}\n\nexport function getOnHideEventKey (path: string) {\n return path + '.' + 'onHide'\n}\n\nexport function createPageConfig (component: any, pageName?: string, data?: Record<string, unknown>, pageConfig?: PageConfig) {\n const id = pageName ?? `taro_page_${pageId()}`\n // 小程序 Page 构造器是一个傲娇小公主,不能把复杂的对象挂载到参数上\n let pageElement: TaroRootElement | null = null\n\n let unmounting = false\n let prepareMountList: (() => void)[] = []\n let loadResolver: (...args: unknown[]) => void\n let hasLoaded: Promise<void>\n const config: PageInstance = {\n onLoad (this: MpInstance, options, cb?: Func) {\n hasLoaded = new Promise(resolve => { loadResolver = resolve })\n\n perf.start(PAGE_INIT)\n\n Current.page = this as any\n this.config = pageConfig || {}\n options.$taroTimestamp = Date.now()\n\n // this.$taroPath 是页面唯一标识,不可变,因此页面参数 options 也不可变\n this.$taroPath = getPath(id, options)\n // this.$taroParams 作为暴露给开发者的页面参数对象,可以被随意修改\n if (this.$taroParams == null) {\n this.$taroParams = Object.assign({}, options)\n }\n\n const router = isBrowser ? this.$taroPath : this.route || this.__route__\n Current.router = {\n params: this.$taroParams,\n path: addLeadingSlash(router),\n onReady: getOnReadyEventKey(id),\n onShow: getOnShowEventKey(id),\n onHide: getOnHideEventKey(id)\n }\n\n const mount = () => {\n Current.app!.mount!(component, this.$taroPath, () => {\n pageElement = document.getElementById<TaroRootElement>(this.$taroPath)\n\n ensure(pageElement !== null, '没有找到页面实例。')\n safeExecute(this.$taroPath, 'onLoad', this.$taroParams)\n loadResolver()\n if (!isBrowser) {\n pageElement.ctx = this\n pageElement.performUpdate(true, cb)\n } else {\n isFunction(cb) && cb()\n }\n })\n }\n if (unmounting) {\n prepareMountList.push(mount)\n } else {\n mount()\n }\n },\n onReady () {\n raf(() => {\n eventCenter.trigger(getOnReadyEventKey(id))\n })\n\n safeExecute(this.$taroPath, 'onReady')\n this.onReady.called = true\n },\n onUnload () {\n unmounting = true\n Current.app!.unmount!(this.$taroPath, () => {\n unmounting = false\n instances.delete(this.$taroPath)\n if (pageElement) {\n pageElement.ctx = null\n }\n if (prepareMountList.length) {\n prepareMountList.forEach(fn => fn())\n prepareMountList = []\n }\n })\n },\n onShow () {\n hasLoaded.then(() => {\n Current.page = this as any\n this.config = pageConfig || {}\n const router = isBrowser ? this.$taroPath : this.route || this.__route__\n Current.router = {\n params: this.$taroParams,\n path: addLeadingSlash(router),\n onReady: getOnReadyEventKey(id),\n onShow: getOnShowEventKey(id),\n onHide: getOnHideEventKey(id)\n }\n\n raf(() => {\n eventCenter.trigger(getOnShowEventKey(id))\n })\n\n safeExecute(this.$taroPath, 'onShow')\n })\n },\n onHide () {\n Current.page = null\n Current.router = null\n safeExecute(this.$taroPath, 'onHide')\n eventCenter.trigger(getOnHideEventKey(id))\n },\n onPullDownRefresh () {\n return safeExecute(this.$taroPath, 'onPullDownRefresh')\n },\n onReachBottom () {\n return safeExecute(this.$taroPath, 'onReachBottom')\n },\n onPageScroll (options) {\n return safeExecute(this.$taroPath, 'onPageScroll', options)\n },\n onResize (options) {\n return safeExecute(this.$taroPath, 'onResize', options)\n },\n onTabItemTap (options) {\n return safeExecute(this.$taroPath, 'onTabItemTap', options)\n },\n onTitleClick () {\n return safeExecute(this.$taroPath, 'onTitleClick')\n },\n onOptionMenuClick () {\n return safeExecute(this.$taroPath, 'onOptionMenuClick')\n },\n onPopMenuClick () {\n return safeExecute(this.$taroPath, 'onPopMenuClick')\n },\n onPullIntercept () {\n return safeExecute(this.$taroPath, 'onPullIntercept')\n },\n onAddToFavorites () {\n return safeExecute(this.$taroPath, 'onAddToFavorites')\n }\n }\n\n // onShareAppMessage 和 onShareTimeline 一样,会影响小程序右上方按钮的选项,因此不能默认注册。\n if (component.onShareAppMessage ||\n component.prototype?.onShareAppMessage ||\n component.enableShareAppMessage) {\n config.onShareAppMessage = function (options) {\n const target = options?.target\n if (target != null) {\n const id = target.id\n const element = document.getElementById(id)\n if (element != null) {\n options.target!.dataset = element.dataset\n }\n }\n return safeExecute(this.$taroPath, 'onShareAppMessage', options)\n }\n }\n if (component.onShareTimeline ||\n component.prototype?.onShareTimeline ||\n component.enableShareTimeline) {\n config.onShareTimeline = function () {\n return safeExecute(this.$taroPath, 'onShareTimeline')\n }\n }\n\n config.eh = eventHandler\n\n if (!isUndefined(data)) {\n config.data = data\n }\n\n if (isBrowser) {\n config.path = id\n }\n\n return config\n}\n\nexport function createComponentConfig (component: React.ComponentClass, componentName?: string, data?: Record<string, unknown>) {\n const id = componentName ?? `taro_component_${pageId()}`\n let componentElement: TaroRootElement | null = null\n\n const config: any = {\n attached () {\n perf.start(PAGE_INIT)\n const path = getPath(id, { id: this.getPageId?.() || pageId() })\n Current.app!.mount!(component, path, () => {\n componentElement = document.getElementById<TaroRootElement>(path)\n ensure(componentElement !== null, '没有找到组件实例。')\n safeExecute(path, 'onLoad')\n if (!isBrowser) {\n componentElement.ctx = this\n componentElement.performUpdate(true)\n }\n })\n },\n detached () {\n const path = getPath(id, { id: this.getPageId() })\n Current.app!.unmount!(path, () => {\n instances.delete(path)\n if (componentElement) {\n componentElement.ctx = null\n }\n })\n },\n methods: {\n eh: eventHandler\n }\n }\n if (!isUndefined(data)) {\n config.data = data\n }\n\n config['options'] = component?.['options'] ?? EMPTY_OBJ\n config['externalClasses'] = component?.['externalClasses'] ?? EMPTY_OBJ\n config['behaviors'] = component?.['behaviors'] ?? EMPTY_OBJ\n return config\n}\n\nexport function createRecursiveComponentConfig (componentName?: string) {\n return {\n properties: {\n i: {\n type: Object,\n value: {\n [Shortcuts.NodeName]: 'view'\n }\n },\n l: {\n type: String,\n value: ''\n }\n },\n options: {\n addGlobalClass: true,\n virtualHost: componentName !== 'custom-wrapper'\n },\n methods: {\n eh: eventHandler\n }\n }\n}\n","import type * as React from 'react'\nimport { isFunction, ensure, EMPTY_OBJ } from '@tarojs/shared'\nimport container from '../container'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\nimport { Current } from '../current'\nimport { document } from '../bom/document'\nimport { getPageInstance, injectPageInstance, safeExecute, addLeadingSlash } from './common'\nimport { isBrowser } from '../env'\nimport { incrementId } from '../utils'\nimport { HOOKS_APP_ID } from '../constants'\nimport { eventHandler } from '../dom/event'\n\nimport type { AppConfig, PageInstance } from '@tarojs/taro'\nimport type { AppInstance, ReactPageComponent, PageProps, Instance, ReactAppInstance } from './instance'\nimport type { IHooks } from '../interface'\nimport type { TaroRootElement } from '../dom/root'\n\ndeclare const getCurrentPages: () => PageInstance[]\nconst hooks = container.get<IHooks>(SERVICE_IDENTIFIER.Hooks)\n\nfunction isClassComponent (R: typeof React, component): boolean {\n return isFunction(component.render) ||\n !!component.prototype?.isReactComponent ||\n component.prototype instanceof R.Component // compat for some others react-like library\n}\n\n// 初始值设置为 any 主要是为了过 TS 的校验\nexport let R: typeof React = EMPTY_OBJ\nexport let PageContext: React.Context<string> = EMPTY_OBJ\n\nexport function connectReactPage (\n R: typeof React,\n id: string\n) {\n const h = R.createElement\n return (component: ReactPageComponent): React.ComponentClass<PageProps> => {\n // eslint-disable-next-line dot-notation\n const isReactComponent = isClassComponent(R, component)\n\n const inject = (node?: Instance) => node && injectPageInstance(node, id)\n const refs = isReactComponent ? { ref: inject } : {\n forwardedRef: inject,\n // 兼容 react-redux 7.20.1+\n reactReduxForwardedRef: inject\n }\n\n if (PageContext === EMPTY_OBJ) {\n PageContext = R.createContext('')\n }\n\n return class Page extends R.Component<PageProps, { hasError: boolean }> {\n state = {\n hasError: false\n }\n\n static getDerivedStateFromError (error: Error) {\n process.env.NODE_ENV !== 'production' && console.warn(error)\n return { hasError: true }\n }\n\n // React 16 uncaught error 会导致整个应用 crash,\n // 目前把错误缩小到页面\n componentDidCatch (error: Error, info: React.ErrorInfo) {\n process.env.NODE_ENV !== 'production' && console.warn(error)\n process.env.NODE_ENV !== 'production' && console.error(info.componentStack)\n }\n\n render () {\n const children = this.state.hasError\n ? []\n : h(PageContext.Provider, { value: id }, h(component, {\n ...this.props,\n ...refs\n }))\n\n if (isBrowser) {\n return h(\n 'div',\n { id, className: 'taro_page' },\n children\n )\n }\n\n return h(\n 'root',\n { id },\n children\n )\n }\n }\n }\n}\n\nlet ReactDOM\n\ntype PageComponent = React.CElement<PageProps, React.Component<PageProps, any, any>>\n\nfunction setReconciler () {\n const getLifecycle = function (instance, lifecycle) {\n lifecycle = lifecycle.replace(/^on(Show|Hide)$/, 'componentDid$1')\n return instance[lifecycle]\n }\n\n const modifyMpEvent = function (event) {\n event.type = event.type.replace(/-/g, '')\n }\n\n const batchedEventUpdates = function (cb) {\n ReactDOM.unstable_batchedUpdates(cb)\n }\n\n const mergePageInstance = function (prev, next) {\n if (!prev || !next) return\n\n // 子组件使用 lifecycle hooks 注册了生命周期后,会存在 prev,里面是注册的生命周期回调。\n\n // prev 使用 Object.create(null) 创建,H5 的 fast-refresh 可能也会导致存在 prev,要排除这些意外产生的 prev\n if ('constructor' in prev) return\n\n Object.keys(prev).forEach(item => {\n if (isFunction(next[item])) {\n next[item] = [next[item], ...prev[item]]\n } else {\n next[item] = [...(next[item] || []), ...prev[item]]\n }\n })\n }\n\n hooks.getLifecycle = getLifecycle\n hooks.modifyMpEvent = modifyMpEvent\n hooks.batchedEventUpdates = batchedEventUpdates\n hooks.mergePageInstance = mergePageInstance\n\n if (process.env.TARO_ENV === 'h5') {\n hooks.createPullDownComponent = (\n el: React.FunctionComponent<PageProps> | React.ComponentClass<PageProps>,\n _,\n R: typeof React,\n customWrapper\n ) => {\n const isReactComponent = isClassComponent(R, el)\n\n return R.forwardRef((props, ref) => {\n const newProps: React.Props<any> = { ...props }\n const refs = isReactComponent ? { ref: ref } : {\n forwardedRef: ref,\n // 兼容 react-redux 7.20.1+\n reactReduxForwardedRef: ref\n }\n\n return R.createElement(\n customWrapper || 'taro-pull-to-refresh',\n null,\n R.createElement(el, {\n ...newProps,\n ...refs\n })\n )\n })\n }\n\n hooks.getDOMNode = (inst) => {\n return ReactDOM.findDOMNode(inst)\n }\n }\n}\n\nconst pageKeyId = incrementId()\n\nexport function createReactApp (App: React.ComponentClass, react: typeof React, reactdom, config: AppConfig) {\n R = react\n ReactDOM = reactdom\n ensure(!!ReactDOM, '构建 React/Nerv 项目请把 process.env.FRAMEWORK 设置为 \\'react\\'/\\'nerv\\' ')\n\n const ref = R.createRef<ReactAppInstance>()\n const isReactComponent = isClassComponent(R, App)\n\n setReconciler()\n class AppWrapper extends R.Component {\n // run createElement() inside the render function to make sure that owner is right\n private pages: Array<() => PageComponent> = []\n private elements: Array<PageComponent> = []\n\n public mount (component: React.ComponentClass<PageProps>, id: string, cb: () => void) {\n const key = id + pageKeyId()\n const page = () => R.createElement(component, { key, tid: id })\n this.pages.push(page)\n this.forceUpdate(cb)\n }\n\n public unmount (id: string, cb: () => void) {\n for (let i = 0; i < this.elements.length; i++) {\n const element = this.elements[i]\n if (element.props.tid === id) {\n this.elements.splice(i, 1)\n break\n }\n }\n\n this.forceUpdate(cb)\n }\n\n public render () {\n while (this.pages.length > 0) {\n const page = this.pages.pop()!\n this.elements.push(page())\n }\n\n let props: React.Props<any> | null = null\n\n if (isReactComponent) {\n props = { ref }\n }\n\n return R.createElement(\n App,\n props,\n isBrowser ? R.createElement('div', null, this.elements.slice()) : this.elements.slice()\n )\n }\n }\n\n let wrapper: AppWrapper\n if (!isBrowser) {\n // eslint-disable-next-line react/no-render-return-value\n wrapper = ReactDOM.render(R.createElement(AppWrapper), document.getElementById('app'))\n }\n\n const app: AppInstance = Object.create({\n render (cb: () => void) {\n wrapper.forceUpdate(cb)\n },\n\n mount (component: ReactPageComponent, id: string, cb: () => void) {\n const page = connectReactPage(R, id)(component)\n wrapper.mount(page, id, cb)\n },\n\n unmount (id: string, cb: () => void) {\n wrapper.unmount(id, cb)\n }\n }, {\n config: {\n writable: true,\n enumerable: true,\n configurable: true,\n value: config\n },\n\n onLaunch: {\n enumerable: true,\n writable: true,\n value (options) {\n Current.router = {\n params: options?.query,\n ...options\n }\n if (isBrowser) {\n // 由于 H5 路由初始化的时候会清除 app 下的 dom 元素,所以需要在路由初始化后执行 render\n // eslint-disable-next-line react/no-render-return-value\n wrapper = ReactDOM.render(R.createElement(AppWrapper), document.getElementById('app'))\n }\n const app = ref.current\n\n // For taroize\n // 把 App Class 上挂载的额外属性同步到全局 app 对象中\n if (app?.taroGlobalData) {\n const globalData = app.taroGlobalData\n const keys = Object.keys(globalData)\n const descriptors = Object.getOwnPropertyDescriptors(globalData)\n keys.forEach(key => {\n Object.defineProperty(this, key, {\n configurable: true,\n enumerable: true,\n get () {\n return globalData[key]\n },\n set (value) {\n globalData[key] = value\n }\n })\n })\n Object.defineProperties(this, descriptors)\n }\n this.$app = app\n\n if (app != null && isFunction(app.onLaunch)) {\n app.onLaunch(options)\n }\n }\n },\n\n onShow: {\n enumerable: true,\n writable: true,\n value (options) {\n const app = ref.current\n Current.router = {\n params: options?.query,\n ...options\n }\n if (app != null && isFunction(app.componentDidShow)) {\n app.componentDidShow(options)\n }\n\n // app useDidShow\n triggerAppHook('onShow')\n }\n },\n\n onHide: {\n enumerable: true,\n writable: true,\n value (options: unknown) {\n const app = ref.current\n if (app != null && isFunction(app.componentDidHide)) {\n app.componentDidHide(options)\n }\n\n // app useDidHide\n triggerAppHook('onHide')\n }\n },\n\n onPageNotFound: {\n enumerable: true,\n writable: true,\n value (res: unknown) {\n const app = ref.current\n if (app != null && isFunction(app.onPageNotFound)) {\n app.onPageNotFound(res)\n }\n }\n }\n })\n\n function triggerAppHook (lifecycle) {\n const instance = getPageInstance(HOOKS_APP_ID)\n if (instance) {\n const app = ref.current\n const func = hooks.getLifecycle(instance, lifecycle)\n if (Array.isArray(func)) {\n func.forEach(cb => cb.apply(app))\n }\n }\n }\n\n Current.app = app\n return Current.app\n}\n\nconst getNativeCompId = incrementId()\n\nfunction initNativeComponentEntry (R: typeof React, ReactDOM) {\n interface IEntryState {\n components: {\n compId: string\n element: React.ReactElement\n }[]\n }\n\n interface IWrapperProps {\n getCtx: () => any\n renderComponent: (ctx: any) => React.ReactElement\n }\n\n class NativeComponentWrapper extends R.Component<IWrapperProps, Record<any, any>> {\n root = R.createRef<TaroRootElement>()\n ctx = this.props.getCtx()\n\n componentDidMount () {\n this.ctx.component = this\n const rootElement = this.root.current!\n rootElement.ctx = this.ctx\n rootElement.performUpdate(true)\n }\n\n render () {\n return (\n R.createElement(\n 'root',\n {\n ref: this.root\n },\n this.props.renderComponent(this.ctx)\n )\n )\n }\n }\n\n class Entry extends R.Component<Record<any, any>, IEntryState> {\n state: IEntryState = {\n components: []\n }\n\n componentDidMount () {\n Current.app = this\n }\n\n mount (Component, compId, getCtx) {\n const isReactComponent = isClassComponent(R, Component)\n const inject = (node?: Instance) => node && injectPageInstance(node, compId)\n const refs = isReactComponent ? { ref: inject } : {\n forwardedRef: inject,\n reactReduxForwardedRef: inject\n }\n const item = {\n compId,\n element: R.createElement(NativeComponentWrapper, {\n key: compId,\n getCtx,\n renderComponent (ctx) {\n return R.createElement(Component, { ...(ctx.data ||= {}).props, ...refs })\n }\n })\n }\n this.setState({\n components: [...this.state.components, item]\n })\n }\n\n unmount (compId) {\n const components = this.state.components\n const index = components.findIndex(item => item.compId === compId)\n const next = [...components.slice(0, index), ...components.slice(index + 1)]\n this.setState({\n components: next\n })\n }\n\n render () {\n const components = this.state.components\n return (\n components.map(({ element }) => element)\n )\n }\n }\n\n setReconciler()\n\n const app = document.getElementById('app')\n\n ReactDOM.render(\n R.createElement(Entry, {}),\n app\n )\n}\n\nexport function createNativeComponentConfig (Component, react: typeof React, reactdom, componentConfig) {\n R = react\n ReactDOM = reactdom\n\n setReconciler()\n\n const config = {\n properties: {\n props: {\n type: null,\n value: null,\n observer (_newVal, oldVal) {\n oldVal && this.component.forceUpdate()\n }\n }\n },\n created () {\n if (!Current.app) {\n initNativeComponentEntry(R, ReactDOM)\n }\n },\n attached () {\n setCurrent()\n this.compId = getNativeCompId()\n this.config = componentConfig\n Current.app!.mount!(Component, this.compId, () => this)\n },\n ready () {\n safeExecute(this.compId, 'onReady')\n },\n detached () {\n Current.app!.unmount!(this.compId)\n },\n pageLifetimes: {\n show () {\n safeExecute(this.compId, 'onShow')\n },\n hide () {\n safeExecute(this.compId, 'onHide')\n }\n },\n methods: {\n eh: eventHandler\n }\n }\n\n function setCurrent () {\n const pages = getCurrentPages()\n const currentPage = pages[pages.length - 1]\n if (Current.page === currentPage) return\n\n Current.page = currentPage\n\n const route = (currentPage as any).route || (currentPage as any).__route__\n const router = {\n params: currentPage.options || {},\n path: addLeadingSlash(route),\n onReady: '',\n onHide: '',\n onShow: ''\n }\n Current.router = router\n\n if (!currentPage.options) {\n // 例如在微信小程序中,页面 options 的设置时机比组件 attached 慢\n Object.defineProperty(currentPage, 'options', {\n enumerable: true,\n configurable: true,\n get () {\n return this._optionsValue\n },\n set (value) {\n router.params = value\n this._optionsValue = value\n }\n })\n }\n }\n\n return config\n}\n","import { isFunction, noop, ensure, isBoolean } from '@tarojs/shared'\nimport container from '../container'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\nimport { injectPageInstance } from './common'\nimport { Current } from '../current'\nimport { document } from '../bom/document'\nimport { isBrowser } from '../env'\n\n/* eslint-disable import/no-duplicates */\nimport type VueCtor from 'vue'\nimport type { ComponentOptions, VueConstructor, VNode } from 'vue'\nimport type { AppConfig } from '@tarojs/taro'\nimport type { AppInstance, VueAppInstance, VueInstance } from './instance'\nimport type { IHooks } from '../interface'\n\nexport type V = typeof VueCtor\n\nexport function connectVuePage (Vue: VueConstructor, id: string) {\n return (component: ComponentOptions<VueCtor>) => {\n const injectedPage = Vue.extend({\n props: {\n tid: String\n },\n mixins: [component, {\n created () {\n injectPageInstance(this, id)\n }\n }]\n })\n\n const options: ComponentOptions<VueCtor> = {\n render (h) {\n return h(\n isBrowser ? 'div' : 'root',\n {\n attrs: {\n id,\n class: isBrowser ? 'taro_page' : ''\n }\n },\n [\n h(injectedPage, { props: { tid: id } })\n ]\n )\n }\n }\n\n return options\n }\n}\n\nfunction setReconciler () {\n const hooks = container.get<IHooks>(SERVICE_IDENTIFIER.Hooks)\n\n const onRemoveAttribute = function (dom, qualifiedName) {\n // 处理原因: https://github.com/NervJS/taro/pull/5990\n const props = dom.props\n if (!props.hasOwnProperty(qualifiedName) || isBoolean(props[qualifiedName])) {\n dom.setAttribute(qualifiedName, false)\n return true\n }\n }\n\n const getLifecycle = function (instance, lifecycle) {\n return instance.$options[lifecycle]\n }\n\n hooks.onRemoveAttribute = onRemoveAttribute\n hooks.getLifecycle = getLifecycle\n\n if (process.env.TARO_ENV === 'h5') {\n hooks.createPullDownComponent = (el, path, vue: VueConstructor) => {\n const injectedPage = vue.extend({\n props: {\n tid: String\n },\n mixins: [el as ComponentOptions<Vue>, {\n created () {\n injectPageInstance(this, path)\n }\n }]\n })\n\n const options: ComponentOptions<Vue> = {\n name: 'PullToRefresh',\n render (h) {\n return h(\n 'taro-pull-to-refresh',\n {\n class: ['hydrated']\n },\n [h(injectedPage, this.$slots.default)]\n )\n }\n }\n\n return options\n }\n\n hooks.getDOMNode = (el) => {\n return el.$el as any\n }\n }\n}\n\nlet Vue\n\nexport function createVueApp (App: ComponentOptions<VueCtor>, vue: V, config: AppConfig) {\n Vue = vue\n ensure(!!Vue, '构建 Vue 项目请把 process.env.FRAMEWORK 设置为 \\'vue\\'')\n\n setReconciler()\n\n Vue.config.getTagNamespace = noop\n\n const elements: VNode[] = []\n const pages: Array<(h: Vue.CreateElement) => VNode> = []\n let appInstance: VueAppInstance\n\n const wrapper = new (Vue as VueConstructor)({\n render (h) {\n while (pages.length > 0) {\n const page = pages.pop()!\n elements.push(page(h))\n }\n return h(App, { ref: 'app' }, elements.slice())\n },\n methods: {\n mount (component: ComponentOptions<VueCtor>, id: string, cb: () => void) {\n pages.push((h) => h(component, { key: id }))\n this.updateSync(cb)\n },\n updateSync (this: VueInstance, cb: () => void) {\n this._update(this._render(), false)\n this.$children.forEach((child: VueInstance) => child._update(child._render(), false))\n cb()\n },\n unmount (id: string, cb: () => void) {\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.key === id) {\n elements.splice(i, 1)\n break\n }\n }\n\n this.updateSync(cb)\n }\n }\n })\n if (!isBrowser) {\n wrapper.$mount(document.getElementById('app') as any)\n }\n const app: AppInstance = Object.create({\n mount (component: ComponentOptions<VueCtor>, id: string, cb: () => void) {\n const page = connectVuePage(Vue, id)(component)\n wrapper.mount(page, id, cb)\n },\n\n unmount (id: string, cb: () => void) {\n wrapper.unmount(id, cb)\n }\n }, {\n config: {\n writable: true,\n enumerable: true,\n configurable: true,\n value: config\n },\n\n onLaunch: {\n writable: true,\n enumerable: true,\n value (options) {\n Current.router = {\n params: options?.query,\n ...options\n }\n if (isBrowser) {\n // 由于 H5 路由初始化的时候会清除 app 下的 dom 元素,所以需要在路由初始化后再执行 render\n wrapper.$mount(document.getElementById('app') as any)\n }\n appInstance = wrapper.$refs.app as VueAppInstance\n if (appInstance != null && isFunction(appInstance.$options.onLaunch)) {\n appInstance.$options.onLaunch.call(appInstance, options)\n }\n }\n },\n\n onShow: {\n writable: true,\n enumerable: true,\n value (options) {\n Current.router = {\n params: options?.query,\n ...options\n }\n if (appInstance != null && isFunction(appInstance.$options.onShow)) {\n appInstance.$options.onShow.call(appInstance, options)\n }\n }\n },\n\n onHide: {\n writable: true,\n enumerable: true,\n value (options) {\n if (appInstance != null && isFunction(appInstance.$options.onHide)) {\n appInstance.$options.onHide.call(appInstance, options)\n }\n }\n }\n })\n\n Current.app = app\n\n return Current.app\n}\n","import { isFunction, isArray, ensure } from '@tarojs/shared'\nimport container from '../container'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\nimport { Current } from '../current'\nimport { injectPageInstance, safeExecute } from './common'\nimport { isBrowser } from '../env'\n\nimport type {\n App,\n Component,\n ComponentPublicInstance,\n VNode,\n h as createElement\n} from '@vue/runtime-core'\nimport type { TaroElement } from '../dom/element'\nimport type { AppConfig as Config } from '@tarojs/taro'\nimport type { GetLifecycle, IHooks } from '../interface'\nimport type { AppInstance } from './instance'\n\nfunction createVue3Page (h: typeof createElement, id: string) {\n return function (component): VNode {\n const inject = {\n props: {\n tid: String\n },\n created () {\n injectPageInstance(this, id)\n // vue3 组件 created 时机比小程序页面 onShow 慢,因此在 created 后再手动触发一次 onShow。\n this.$nextTick(() => {\n safeExecute(id, 'onShow')\n })\n }\n }\n\n if (isArray(component.mixins)) {\n const mixins = component.mixins\n const idx = mixins.length - 1\n if (!mixins[idx].props?.tid) {\n // mixins 里还没注入过,直接推入数组\n component.mixins.push(inject)\n } else {\n // mixins 里已经注入过,代替前者\n component.mixins[idx] = inject\n }\n } else {\n component.mixins = [inject]\n }\n\n return h(\n isBrowser ? 'div' : 'root',\n {\n key: id,\n id,\n class: isBrowser ? 'taro_page' : ''\n },\n [\n h(Object.assign({}, component), {\n tid: id\n })\n ]\n )\n }\n}\n\nfunction setReconciler () {\n const hooks = container.get<IHooks>(SERVICE_IDENTIFIER.Hooks)\n\n const getLifecycle: GetLifecycle = function (instance, lifecycle) {\n return instance.$options[lifecycle]\n }\n\n const modifyMpEvent = function (event) {\n event.type = event.type.replace(/-/g, '')\n }\n\n hooks.getLifecycle = getLifecycle\n hooks.modifyMpEvent = modifyMpEvent\n\n if (process.env.TARO_ENV === 'h5') {\n hooks.createPullDownComponent = (component, path, h: typeof createElement) => {\n const inject = {\n props: {\n tid: String\n },\n created () {\n injectPageInstance(this, path)\n }\n }\n\n component.mixins = isArray(component.mixins)\n ? component.mixins.push(inject)\n : [inject]\n\n return {\n render () {\n return h(\n 'taro-pull-to-refresh',\n {\n class: 'hydrated'\n },\n [h(component, this.$slots.default)]\n )\n }\n }\n }\n\n hooks.getDOMNode = (el) => {\n return el.$el as any\n }\n }\n}\n\nexport function createVue3App (app: App<TaroElement>, h: typeof createElement, config: Config) {\n let pages: VNode[] = []\n let appInstance: ComponentPublicInstance\n\n ensure(!isFunction(app._component), '入口组件不支持使用函数式组件')\n\n setReconciler()\n\n app._component.render = function () {\n return pages.slice()\n }\n if (!isBrowser) {\n appInstance = app.mount('#app')\n }\n const appConfig: AppInstance = Object.create({\n mount (component: Component, id: string, cb: () => void) {\n const page = createVue3Page(h, id)(component)\n pages.push(page)\n this.updateAppInstance(cb)\n },\n\n unmount (id: string, cb: () => void) {\n pages = pages.filter(page => page.key !== id)\n this.updateAppInstance(cb)\n },\n\n updateAppInstance (cb?: (() => void | undefined)) {\n appInstance.$forceUpdate()\n appInstance.$nextTick(cb)\n }\n }, {\n config: {\n writable: true,\n enumerable: true,\n configurable: true,\n value: config\n },\n\n onLaunch: {\n writable: true,\n enumerable: true,\n value (options) {\n Current.router = {\n params: options?.query,\n ...options\n }\n if (isBrowser) {\n appInstance = app.mount('#app')\n }\n\n // 把 App Class 上挂载的额外属性同步到全局 app 对象中\n // eslint-disable-next-line dot-notation\n if (app['taroGlobalData']) {\n // eslint-disable-next-line dot-notation\n const globalData = app['taroGlobalData']\n const keys = Object.keys(globalData)\n const descriptors = Object.getOwnPropertyDescriptors(globalData)\n keys.forEach(key => {\n Object.defineProperty(this, key, {\n configurable: true,\n enumerable: true,\n get () {\n return globalData[key]\n },\n set (value) {\n globalData[key] = value\n }\n })\n })\n Object.defineProperties(this, descriptors)\n }\n\n const onLaunch = appInstance?.$options?.onLaunch\n isFunction(onLaunch) && onLaunch.call(appInstance, options)\n }\n },\n\n onShow: {\n writable: true,\n enumerable: true,\n value (options) {\n Current.router = {\n params: options?.query,\n ...options\n }\n const onShow = appInstance?.$options?.onShow\n isFunction(onShow) && onShow.call(appInstance, options)\n }\n },\n\n onHide: {\n writable: true,\n enumerable: true,\n value (options) {\n const onHide = appInstance?.$options?.onHide\n isFunction(onHide) && onHide.call(appInstance, options)\n }\n }\n })\n\n Current.app = appConfig\n\n return Current.app\n}\n","import { isFunction, isArray } from '@tarojs/shared'\nimport { PageContext, R as React } from './react'\nimport { getPageInstance, injectPageInstance } from './common'\nimport { PageLifeCycle } from './instance'\nimport { Current } from '../current'\nimport { HOOKS_APP_ID } from '../constants'\n\nimport type { Func } from '../interface'\n\nconst taroHooks = (lifecycle: keyof PageLifeCycle) => {\n return (fn: Func) => {\n const id = React.useContext(PageContext) || HOOKS_APP_ID\n\n // hold fn ref and keep up to date\n const fnRef = React.useRef(fn)\n if (fnRef.current !== fn) fnRef.current = fn\n\n React.useLayoutEffect(() => {\n let inst = getPageInstance(id)\n let first = false\n if (inst == null) {\n first = true\n inst = Object.create(null)\n }\n\n inst = inst!\n\n // callback is immutable but inner function is up to date\n const callback = (...args: any) => fnRef.current(...args)\n\n if (isFunction(inst[lifecycle])) {\n (inst[lifecycle] as any) = [inst[lifecycle], callback]\n } else {\n (inst[lifecycle] as any) = [\n ...((inst[lifecycle] as any) || []),\n callback\n ]\n }\n\n if (first) {\n injectPageInstance(inst!, id)\n }\n return () => {\n const inst = getPageInstance(id)\n const list = inst![lifecycle]\n if (list === callback) {\n (inst![lifecycle] as any) = undefined\n } else if (isArray(list)) {\n (inst![lifecycle] as any) = list.filter(item => item !== callback)\n }\n }\n }, [])\n }\n}\n\nexport const useDidShow = taroHooks('componentDidShow')\n\nexport const useDidHide = taroHooks('componentDidHide')\n\nexport const usePullDownRefresh = taroHooks('onPullDownRefresh')\n\nexport const useReachBottom = taroHooks('onReachBottom')\n\nexport const usePageScroll = taroHooks('onPageScroll')\n\nexport const useResize = taroHooks('onResize')\n\nexport const useShareAppMessage = taroHooks('onShareAppMessage')\n\nexport const useTabItemTap = taroHooks('onTabItemTap')\n\nexport const useTitleClick = taroHooks('onTitleClick')\n\nexport const useOptionMenuClick = taroHooks('onOptionMenuClick')\n\nexport const usePullIntercept = taroHooks('onPullIntercept')\n\nexport const useShareTimeline = taroHooks('onShareTimeline')\n\nexport const useAddToFavorites = taroHooks('onAddToFavorites')\n\nexport const useReady = taroHooks('onReady')\n\nexport const useRouter = (dynamic = false) => {\n return dynamic ? Current.router : React.useMemo(() => Current.router, [])\n}\n\nexport const useScope = () => undefined\n","import { Current } from './current'\nimport { getPath } from './dsl/common'\nimport { TaroRootElement } from './dom/root'\nimport { document } from './bom/document'\nimport { isBrowser } from './env'\n\nimport type { Func } from './interface'\n\nfunction removeLeadingSlash (path?: string) {\n if (path == null) {\n return ''\n }\n return path.charAt(0) === '/' ? path.slice(1) : path\n}\n\nexport const nextTick = (cb: Func, ctx?: Record<string, any>) => {\n const router = Current.router\n const timerFunc = () => {\n setTimeout(function () {\n ctx ? cb.call(ctx) : cb()\n }, 1)\n }\n\n if (router !== null) {\n let pageElement: TaroRootElement | null = null\n const path = getPath(removeLeadingSlash(router.path), router.params)\n pageElement = document.getElementById<TaroRootElement>(path)\n if (pageElement?.pendingUpdate) {\n if (isBrowser) {\n // eslint-disable-next-line dot-notation\n pageElement.firstChild?.['componentOnReady']?.().then(() => {\n timerFunc()\n }) ?? timerFunc()\n } else {\n pageElement.enqueueUpdateCallback(cb, ctx)\n }\n } else {\n timerFunc()\n }\n } else {\n timerFunc()\n }\n}\n"],"names":["isObject","isArray","Symbol","objectProto","nativeObjectToString","symToStringTag","funcProto","funcToString","hasOwnProperty","HASH_UNDEFINED","Map","INFINITY","isFunction","document","ioc_container","container","window","hooks","setReconciler","React"],"mappings":"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"}
1
+ {"version":3,"file":"runtime.esm.js","sources":["../src/polyfill/reflect-metadata.js","../src/constants/index.ts","../src/utils/index.ts","../src/constants/identifiers.ts","../src/interface/container.ts","../src/container/store.ts","../src/dom/event-target.ts","../src/hydrate.ts","../src/dom/event-source.ts","../src/dom/node.ts","../src/dom/text.ts","../src/dom/style_properties.ts","../src/dom/style.ts","../src/dom/tree.ts","../src/dom/class-list.ts","../src/dom/element.ts","../src/options.ts","../src/perf.ts","../src/dom/root.ts","../src/dom/form.ts","../src/dom/svg.ts","../src/dom/event.ts","../src/env.ts","../src/dom-external/inner-html/scaner.ts","../src/dom-external/inner-html/tags.ts","../src/dom-external/inner-html/utils.ts","../src/dom-external/inner-html/style.ts","../src/dom-external/inner-html/parser.ts","../src/dom-external/inner-html/html.ts","../src/dom-external/node.ts","../src/dom-external/node-impl.ts","../src/dom-external/element.ts","../src/dom-external/element-impl.ts","../src/dom/document.ts","../src/constants/events.ts","../src/container/default-hooks.ts","../src/hooks.ts","../src/container/plugin-hooks.ts","../src/container/index.ts","../src/bom/document.ts","../src/bom/navigator.ts","../src/bom/raf.ts","../src/bom/getComputedStyle.ts","../src/bom/window.ts","../src/current.ts","../src/emitter/emitter.ts","../src/dsl/common.ts","../src/next-tick.ts"],"sourcesContent":["/*! *****************************************************************************\nCopyright (C) Microsoft. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n/** https://github.com/rbuckton/reflect-metadata */\n\nimport { isFunction, isUndefined, isObject } from '@tarojs/shared'\n\nif (process.env.TARO_ENV === 'h5') {\n require('reflect-metadata')\n} else {\n // var Reflect;\n (function (Reflect) {\n // Metadata Proposal\n // https://rbuckton.github.io/reflect-metadata/\n (function (factory) {\n // var root = typeof global === \"object\" ? global :\n // typeof self === \"object\" ? self :\n // typeof this === \"object\" ? this :\n // Function(\"return this;\")();\n var exporter = makeExporter(Reflect);\n // if (typeof root.Reflect === \"undefined\") {\n // root.Reflect = Reflect;\n // }\n // else {\n // exporter = makeExporter(root.Reflect, exporter);\n // }\n factory(exporter);\n function makeExporter(target, previous) {\n return function (key, value) {\n if (!isFunction(target[key])) {\n Object.defineProperty(target, key, { configurable: true, writable: true, value: value });\n }\n if (previous)\n previous(key, value);\n };\n }\n })(function (exporter) {\n var hasOwn = Object.prototype.hasOwnProperty;\n // feature test for Symbol support\n var supportsSymbol = isFunction(Symbol);\n var toPrimitiveSymbol = supportsSymbol && !isUndefined(Symbol.toPrimitive) ? Symbol.toPrimitive : \"@@toPrimitive\";\n var iteratorSymbol = supportsSymbol && !isUndefined(Symbol.iterator) ? Symbol.iterator : \"@@iterator\";\n var supportsCreate = isFunction(Object.create); // feature test for Object.create support\n var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support\n var downLevel = !supportsCreate && !supportsProto;\n var HashMap = {\n // create an object in dictionary mode (a.k.a. \"slow\" mode in v8)\n create: supportsCreate\n ? function () { return MakeDictionary(Object.create(null)); }\n : supportsProto\n ? function () { return MakeDictionary({ __proto__: null }); }\n : function () { return MakeDictionary({}); },\n has: downLevel\n ? function (map, key) { return hasOwn.call(map, key); }\n : function (map, key) { return key in map; },\n get: downLevel\n ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }\n : function (map, key) { return map[key]; },\n };\n // Load global or shim versions of Map, Set, and WeakMap\n var functionPrototype = Object.getPrototypeOf(Function);\n var usePolyfill = isObject(process) && process.env && process.env[\"REFLECT_METADATA_USE_MAP_POLYFILL\"] === \"true\";\n var _Map = Map;\n var _Set = Set;\n var _WeakMap = !usePolyfill && isFunction(WeakMap) ? WeakMap : CreateWeakMapPolyfill();\n // [[Metadata]] internal slot\n // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots\n var Metadata = new _WeakMap();\n /**\n * Applies a set of decorators to a property of a target object.\n * @param decorators An array of decorators.\n * @param target The target object.\n * @param propertyKey (Optional) The property key to decorate.\n * @param attributes (Optional) The property descriptor for the target key.\n * @remarks Decorators are applied in reverse order.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Example = Reflect.decorate(decoratorsArray, Example);\n *\n * // property (on constructor)\n * Reflect.decorate(decoratorsArray, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.decorate(decoratorsArray, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Object.defineProperty(Example, \"staticMethod\",\n * Reflect.decorate(decoratorsArray, Example, \"staticMethod\",\n * Object.getOwnPropertyDescriptor(Example, \"staticMethod\")));\n *\n * // method (on prototype)\n * Object.defineProperty(Example.prototype, \"method\",\n * Reflect.decorate(decoratorsArray, Example.prototype, \"method\",\n * Object.getOwnPropertyDescriptor(Example.prototype, \"method\")));\n *\n */\n function decorate(decorators, target, propertyKey, attributes) {\n if (!IsUndefined(propertyKey)) {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsObject(target))\n throw new TypeError();\n if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))\n throw new TypeError();\n if (IsNull(attributes))\n attributes = undefined;\n propertyKey = ToPropertyKey(propertyKey);\n return DecorateProperty(decorators, target, propertyKey, attributes);\n }\n else {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsConstructor(target))\n throw new TypeError();\n return DecorateConstructor(decorators, target);\n }\n }\n exporter(\"decorate\", decorate);\n // 4.1.2 Reflect.metadata(metadataKey, metadataValue)\n // https://rbuckton.github.io/reflect-metadata/#reflect.metadata\n /**\n * A default metadata decorator factory that can be used on a class, class member, or parameter.\n * @param metadataKey The key for the metadata entry.\n * @param metadataValue The value for the metadata entry.\n * @returns A decorator function.\n * @remarks\n * If `metadataKey` is already defined for the target and target key, the\n * metadataValue for that key will be overwritten.\n * @example\n *\n * // constructor\n * @Reflect.metadata(key, value)\n * class Example {\n * }\n *\n * // property (on constructor, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticProperty;\n * }\n *\n * // property (on prototype, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * property;\n * }\n *\n * // method (on constructor)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticMethod() { }\n * }\n *\n * // method (on prototype)\n * class Example {\n * @Reflect.metadata(key, value)\n * method() { }\n * }\n *\n */\n function metadata(metadataKey, metadataValue) {\n function decorator(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))\n throw new TypeError();\n OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n return decorator;\n }\n exporter(\"metadata\", metadata);\n /**\n * Define a unique metadata entry on the target.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param metadataValue A value that contains attached metadata.\n * @param target The target object on which to define metadata.\n * @param propertyKey (Optional) The property key for the target.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Reflect.defineMetadata(\"custom:annotation\", options, Example);\n *\n * // property (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticMethod\");\n *\n * // method (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"method\");\n *\n * // decorator factory as metadata-producing annotation.\n * function MyAnnotation(options): Decorator {\n * return (target, key?) => Reflect.defineMetadata(\"custom:annotation\", options, target, key);\n * }\n *\n */\n function defineMetadata(metadataKey, metadataValue, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n exporter(\"defineMetadata\", defineMetadata);\n /**\n * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasMetadata\", hasMetadata);\n /**\n * Gets a value indicating whether the target object has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasOwnMetadata\", hasOwnMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object or its prototype chain.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getMetadata\", getMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getOwnMetadata\", getOwnMetadata);\n /**\n * Gets the metadata keys defined on the target object or its prototype chain.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryMetadataKeys(target, propertyKey);\n }\n exporter(\"getMetadataKeys\", getMetadataKeys);\n /**\n * Gets the unique metadata keys defined on the target object.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getOwnMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryOwnMetadataKeys(target, propertyKey);\n }\n exporter(\"getOwnMetadataKeys\", getOwnMetadataKeys);\n /**\n * Deletes the metadata entry from the target object with the provided key.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata entry was found and deleted; otherwise, false.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function deleteMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n if (!metadataMap.delete(metadataKey))\n return false;\n if (metadataMap.size > 0)\n return true;\n var targetMetadata = Metadata.get(target);\n targetMetadata.delete(propertyKey);\n if (targetMetadata.size > 0)\n return true;\n Metadata.delete(target);\n return true;\n }\n exporter(\"deleteMetadata\", deleteMetadata);\n function DecorateConstructor(decorators, target) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsConstructor(decorated))\n throw new TypeError();\n target = decorated;\n }\n }\n return target;\n }\n function DecorateProperty(decorators, target, propertyKey, descriptor) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target, propertyKey, descriptor);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsObject(decorated))\n throw new TypeError();\n descriptor = decorated;\n }\n }\n return descriptor;\n }\n function GetOrCreateMetadataMap(O, P, Create) {\n var targetMetadata = Metadata.get(O);\n if (IsUndefined(targetMetadata)) {\n if (!Create)\n return undefined;\n targetMetadata = new _Map();\n Metadata.set(O, targetMetadata);\n }\n var metadataMap = targetMetadata.get(P);\n if (IsUndefined(metadataMap)) {\n if (!Create)\n return undefined;\n metadataMap = new _Map();\n targetMetadata.set(P, metadataMap);\n }\n return metadataMap;\n }\n // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata\n function OrdinaryHasMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return true;\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryHasMetadata(MetadataKey, parent, P);\n return false;\n }\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n return ToBoolean(metadataMap.has(MetadataKey));\n }\n // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata\n function OrdinaryGetMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return OrdinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryGetMetadata(MetadataKey, parent, P);\n return undefined;\n }\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return undefined;\n return metadataMap.get(MetadataKey);\n }\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);\n metadataMap.set(MetadataKey, MetadataValue);\n }\n // 3.1.6.1 OrdinaryMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys\n function OrdinaryMetadataKeys(O, P) {\n var ownKeys = OrdinaryOwnMetadataKeys(O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (parent === null)\n return ownKeys;\n var parentKeys = OrdinaryMetadataKeys(parent, P);\n if (parentKeys.length <= 0)\n return ownKeys;\n if (ownKeys.length <= 0)\n return parentKeys;\n var set = new _Set();\n var keys = [];\n for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {\n var key = ownKeys_1[_i];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {\n var key = parentKeys_1[_a];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n return keys;\n }\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\n function OrdinaryOwnMetadataKeys(O, P) {\n var keys = [];\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return keys;\n var keysObj = metadataMap.keys();\n var iterator = GetIterator(keysObj);\n var k = 0;\n while (true) {\n var next = IteratorStep(iterator);\n if (!next) {\n keys.length = k;\n return keys;\n }\n var nextValue = IteratorValue(next);\n try {\n keys[k] = nextValue;\n }\n catch (e) {\n try {\n IteratorClose(iterator);\n }\n finally {\n throw e;\n }\n }\n k++;\n }\n }\n // 6 ECMAScript Data Typ0es and Values\n // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values\n function Type(x) {\n if (x === null)\n return 1 /* Null */;\n switch (typeof x) {\n case \"undefined\": return 0 /* Undefined */;\n case \"boolean\": return 2 /* Boolean */;\n case \"string\": return 3 /* String */;\n case \"symbol\": return 4 /* Symbol */;\n case \"number\": return 5 /* Number */;\n case \"object\": return x === null ? 1 /* Null */ : 6 /* Object */;\n default: return 6 /* Object */;\n }\n }\n // 6.1.1 The Undefined Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type\n function IsUndefined(x) {\n return x === undefined;\n }\n // 6.1.2 The Null Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type\n function IsNull(x) {\n return x === null;\n }\n // 6.1.5 The Symbol Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type\n function IsSymbol(x) {\n return typeof x === \"symbol\";\n }\n // 6.1.7 The Object Type\n // https://tc39.github.io/ecma262/#sec-object-type\n function IsObject(x) {\n return isObject(x) ? x !== null : isFunction(x);\n }\n // 7.1 Type Conversion\n // https://tc39.github.io/ecma262/#sec-type-conversion\n // 7.1.1 ToPrimitive(input [, PreferredType])\n // https://tc39.github.io/ecma262/#sec-toprimitive\n function ToPrimitive(input, PreferredType) {\n switch (Type(input)) {\n case 0 /* Undefined */: return input;\n case 1 /* Null */: return input;\n case 2 /* Boolean */: return input;\n case 3 /* String */: return input;\n case 4 /* Symbol */: return input;\n case 5 /* Number */: return input;\n }\n var hint = PreferredType === 3 /* String */ ? \"string\" : PreferredType === 5 /* Number */ ? \"number\" : \"default\";\n var exoticToPrim = GetMethod(input, toPrimitiveSymbol);\n if (exoticToPrim !== undefined) {\n var result = exoticToPrim.call(input, hint);\n if (IsObject(result))\n throw new TypeError();\n return result;\n }\n return OrdinaryToPrimitive(input, hint === \"default\" ? \"number\" : hint);\n }\n // 7.1.1.1 OrdinaryToPrimitive(O, hint)\n // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive\n function OrdinaryToPrimitive(O, hint) {\n if (hint === \"string\") {\n var toString_1 = O.toString;\n if (IsCallable(toString_1)) {\n var result = toString_1.call(O);\n if (!IsObject(result))\n return result;\n }\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n else {\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n var toString_2 = O.toString;\n if (IsCallable(toString_2)) {\n var result = toString_2.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n throw new TypeError();\n }\n // 7.1.2 ToBoolean(argument)\n // https://tc39.github.io/ecma262/2016/#sec-toboolean\n function ToBoolean(argument) {\n return !!argument;\n }\n // 7.1.12 ToString(argument)\n // https://tc39.github.io/ecma262/#sec-tostring\n function ToString(argument) {\n return \"\" + argument;\n }\n // 7.1.14 ToPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-topropertykey\n function ToPropertyKey(argument) {\n var key = ToPrimitive(argument, 3 /* String */);\n if (IsSymbol(key))\n return key;\n return ToString(key);\n }\n // 7.2 Testing and Comparison Operations\n // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations\n // 7.2.2 IsArray(argument)\n // https://tc39.github.io/ecma262/#sec-isarray\n function IsArray(argument) {\n return Array.isArray\n ? Array.isArray(argument)\n : argument instanceof Object\n ? argument instanceof Array\n : Object.prototype.toString.call(argument) === \"[object Array]\";\n }\n // 7.2.3 IsCallable(argument)\n // https://tc39.github.io/ecma262/#sec-iscallable\n function IsCallable(argument) {\n // NOTE: This is an approximation as we cannot check for [[Call]] internal method.\n return isFunction(argument);\n }\n // 7.2.4 IsConstructor(argument)\n // https://tc39.github.io/ecma262/#sec-isconstructor\n function IsConstructor(argument) {\n // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.\n return isFunction(argument);\n }\n // 7.2.7 IsPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-ispropertykey\n function IsPropertyKey(argument) {\n switch (Type(argument)) {\n case 3 /* String */: return true;\n case 4 /* Symbol */: return true;\n default: return false;\n }\n }\n // 7.3 Operations on Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-objects\n // 7.3.9 GetMethod(V, P)\n // https://tc39.github.io/ecma262/#sec-getmethod\n function GetMethod(V, P) {\n var func = V[P];\n if (func === undefined || func === null)\n return undefined;\n if (!IsCallable(func))\n throw new TypeError();\n return func;\n }\n // 7.4 Operations on Iterator Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects\n function GetIterator(obj) {\n var method = GetMethod(obj, iteratorSymbol);\n if (!IsCallable(method))\n throw new TypeError(); // from Call\n var iterator = method.call(obj);\n if (!IsObject(iterator))\n throw new TypeError();\n return iterator;\n }\n // 7.4.4 IteratorValue(iterResult)\n // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue\n function IteratorValue(iterResult) {\n return iterResult.value;\n }\n // 7.4.5 IteratorStep(iterator)\n // https://tc39.github.io/ecma262/#sec-iteratorstep\n function IteratorStep(iterator) {\n var result = iterator.next();\n return result.done ? false : result;\n }\n // 7.4.6 IteratorClose(iterator, completion)\n // https://tc39.github.io/ecma262/#sec-iteratorclose\n function IteratorClose(iterator) {\n var f = iterator[\"return\"];\n if (f)\n f.call(iterator);\n }\n // 9.1 Ordinary Object Internal Methods and Internal Slots\n // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots\n // 9.1.1.1 OrdinaryGetPrototypeOf(O)\n // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof\n function OrdinaryGetPrototypeOf(O) {\n var proto = Object.getPrototypeOf(O);\n if (!isFunction(O) || O === functionPrototype)\n return proto;\n // TypeScript doesn't set __proto__ in ES5, as it's non-standard.\n // Try to determine the superclass constructor. Compatible implementations\n // must either set __proto__ on a subclass constructor to the superclass constructor,\n // or ensure each class has a valid `constructor` property on its prototype that\n // points back to the constructor.\n // If this is not the same as Function.[[Prototype]], then this is definately inherited.\n // This is the case when in ES6 or when using __proto__ in a compatible browser.\n if (proto !== functionPrototype)\n return proto;\n // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.\n var prototype = O.prototype;\n var prototypeProto = prototype && Object.getPrototypeOf(prototype);\n if (prototypeProto == null || prototypeProto === Object.prototype)\n return proto;\n // If the constructor was not a function, then we cannot determine the heritage.\n var constructor = prototypeProto.constructor;\n if (!isFunction(constructor))\n return proto;\n // If we have some kind of self-reference, then we cannot determine the heritage.\n if (constructor === O)\n return proto;\n // we have a pretty good guess at the heritage.\n return constructor;\n }\n // naive Map shim\n // function CreateMapPolyfill() {\n // var cacheSentinel = {};\n // var arraySentinel = [];\n // var MapIterator = /** @class */ (function () {\n // function MapIterator(keys, values, selector) {\n // this._index = 0;\n // this._keys = keys;\n // this._values = values;\n // this._selector = selector;\n // }\n // MapIterator.prototype[\"@@iterator\"] = function () { return this; };\n // MapIterator.prototype[iteratorSymbol] = function () { return this; };\n // MapIterator.prototype.next = function () {\n // var index = this._index;\n // if (index >= 0 && index < this._keys.length) {\n // var result = this._selector(this._keys[index], this._values[index]);\n // if (index + 1 >= this._keys.length) {\n // this._index = -1;\n // this._keys = arraySentinel;\n // this._values = arraySentinel;\n // }\n // else {\n // this._index++;\n // }\n // return { value: result, done: false };\n // }\n // return { value: undefined, done: true };\n // };\n // MapIterator.prototype.throw = function (error) {\n // if (this._index >= 0) {\n // this._index = -1;\n // this._keys = arraySentinel;\n // this._values = arraySentinel;\n // }\n // throw error;\n // };\n // MapIterator.prototype.return = function (value) {\n // if (this._index >= 0) {\n // this._index = -1;\n // this._keys = arraySentinel;\n // this._values = arraySentinel;\n // }\n // return { value: value, done: true };\n // };\n // return MapIterator;\n // }());\n // return /** @class */ (function () {\n // function Map() {\n // this._keys = [];\n // this._values = [];\n // this._cacheKey = cacheSentinel;\n // this._cacheIndex = -2;\n // }\n // Object.defineProperty(Map.prototype, \"size\", {\n // get: function () { return this._keys.length; },\n // enumerable: true,\n // configurable: true\n // });\n // Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };\n // Map.prototype.get = function (key) {\n // var index = this._find(key, /*insert*/ false);\n // return index >= 0 ? this._values[index] : undefined;\n // };\n // Map.prototype.set = function (key, value) {\n // var index = this._find(key, /*insert*/ true);\n // this._values[index] = value;\n // return this;\n // };\n // Map.prototype.delete = function (key) {\n // var index = this._find(key, /*insert*/ false);\n // if (index >= 0) {\n // var size = this._keys.length;\n // for (var i = index + 1; i < size; i++) {\n // this._keys[i - 1] = this._keys[i];\n // this._values[i - 1] = this._values[i];\n // }\n // this._keys.length--;\n // this._values.length--;\n // if (key === this._cacheKey) {\n // this._cacheKey = cacheSentinel;\n // this._cacheIndex = -2;\n // }\n // return true;\n // }\n // return false;\n // };\n // Map.prototype.clear = function () {\n // this._keys.length = 0;\n // this._values.length = 0;\n // this._cacheKey = cacheSentinel;\n // this._cacheIndex = -2;\n // };\n // Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };\n // Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };\n // Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };\n // Map.prototype[\"@@iterator\"] = function () { return this.entries(); };\n // Map.prototype[iteratorSymbol] = function () { return this.entries(); };\n // Map.prototype._find = function (key, insert) {\n // if (this._cacheKey !== key) {\n // this._cacheIndex = this._keys.indexOf(this._cacheKey = key);\n // }\n // if (this._cacheIndex < 0 && insert) {\n // this._cacheIndex = this._keys.length;\n // this._keys.push(key);\n // this._values.push(undefined);\n // }\n // return this._cacheIndex;\n // };\n // return Map;\n // }());\n // function getKey(key, _) {\n // return key;\n // }\n // function getValue(_, value) {\n // return value;\n // }\n // function getEntry(key, value) {\n // return [key, value];\n // }\n // }\n // naive Set shim\n // function CreateSetPolyfill() {\n // return /** @class */ (function () {\n // function Set() {\n // this._map = new _Map();\n // }\n // Object.defineProperty(Set.prototype, \"size\", {\n // get: function () { return this._map.size; },\n // enumerable: true,\n // configurable: true\n // });\n // Set.prototype.has = function (value) { return this._map.has(value); };\n // Set.prototype.add = function (value) { return this._map.set(value, value), this; };\n // Set.prototype.delete = function (value) { return this._map.delete(value); };\n // Set.prototype.clear = function () { this._map.clear(); };\n // Set.prototype.keys = function () { return this._map.keys(); };\n // Set.prototype.values = function () { return this._map.values(); };\n // Set.prototype.entries = function () { return this._map.entries(); };\n // Set.prototype[\"@@iterator\"] = function () { return this.keys(); };\n // Set.prototype[iteratorSymbol] = function () { return this.keys(); };\n // return Set;\n // }());\n // }\n // naive WeakMap shim\n function CreateWeakMapPolyfill() {\n var UUID_SIZE = 16;\n var keys = HashMap.create();\n var rootKey = CreateUniqueKey();\n return /** @class */ (function () {\n function WeakMap() {\n this._key = CreateUniqueKey();\n }\n WeakMap.prototype.has = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.has(table, this._key) : false;\n };\n WeakMap.prototype.get = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.get(table, this._key) : undefined;\n };\n WeakMap.prototype.set = function (target, value) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ true);\n table[this._key] = value;\n return this;\n };\n WeakMap.prototype.delete = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? delete table[this._key] : false;\n };\n WeakMap.prototype.clear = function () {\n // NOTE: not a real clear, just makes the previous data unreachable\n this._key = CreateUniqueKey();\n };\n return WeakMap;\n }());\n function CreateUniqueKey() {\n var key;\n do\n key = \"@@WeakMap@@\" + CreateUUID();\n while (HashMap.has(keys, key));\n keys[key] = true;\n return key;\n }\n function GetOrCreateWeakMapTable(target, create) {\n if (!hasOwn.call(target, rootKey)) {\n if (!create)\n return undefined;\n Object.defineProperty(target, rootKey, { value: HashMap.create() });\n }\n return target[rootKey];\n }\n function FillRandomBytes(buffer, size) {\n for (var i = 0; i < size; ++i)\n buffer[i] = Math.random() * 0xff | 0;\n return buffer;\n }\n function GenRandomBytes(size) {\n if (isFunction(Uint8Array)) {\n if (!isUndefined(crypto))\n return crypto.getRandomValues(new Uint8Array(size));\n if (!isUndefined(msCrypto))\n return msCrypto.getRandomValues(new Uint8Array(size));\n return FillRandomBytes(new Uint8Array(size), size);\n }\n return FillRandomBytes(new Array(size), size);\n }\n function CreateUUID() {\n var data = GenRandomBytes(UUID_SIZE);\n // mark as random - RFC 4122 § 4.4\n data[6] = data[6] & 0x4f | 0x40;\n data[8] = data[8] & 0xbf | 0x80;\n var result = \"\";\n for (var offset = 0; offset < UUID_SIZE; ++offset) {\n var byte = data[offset];\n if (offset === 4 || offset === 6 || offset === 8)\n result += \"-\";\n if (byte < 16)\n result += \"0\";\n result += byte.toString(16).toLowerCase();\n }\n return result;\n }\n }\n // uses a heuristic used by v8 and chakra to force an object into dictionary mode.\n function MakeDictionary(obj) {\n obj.__ = undefined;\n delete obj.__;\n return obj;\n }\n });\n })(Reflect || (Reflect = {}))\n}\n","export const PROPERTY_THRESHOLD = 2046\nexport const TARO_RUNTIME = 'Taro runtime'\nexport const HOOKS_APP_ID = 'taro-app'\nexport const SET_DATA = '小程序 setData'\nexport const PAGE_INIT = '页面初始化'\nexport const ROOT_STR = 'root'\nexport const HTML = 'html'\nexport const HEAD = 'head'\nexport const BODY = 'body'\nexport const APP = 'app'\nexport const CONTAINER = 'container'\nexport const DOCUMENT_ELEMENT_NAME = '#document'\nexport const DOCUMENT_FRAGMENT = 'document-fragment'\nexport const ID = 'id'\nexport const UID = 'uid'\nexport const CLASS = 'class'\nexport const STYLE = 'style'\nexport const FOCUS = 'focus'\nexport const VIEW = 'view'\nexport const STATIC_VIEW = 'static-view'\nexport const PURE_VIEW = 'pure-view'\nexport const PROPS = 'props'\nexport const DATASET = 'dataset'\nexport const OBJECT = 'object'\nexport const VALUE = 'value'\nexport const INPUT = 'input'\nexport const CHANGE = 'change'\nexport const CUSTOM_WRAPPER = 'custom-wrapper'\nexport const TARGET = 'target'\nexport const CURRENT_TARGET = 'currentTarget'\nexport const TYPE = 'type'\nexport const CONFIRM = 'confirm'\nexport const TIME_STAMP = 'timeStamp'\nexport const KEY_CODE = 'keyCode'\nexport const TOUCHMOVE = 'touchmove'\nexport const DATE = 'Date'\nexport const SET_TIMEOUT = 'setTimeout'\nexport const CATCHMOVE = 'catchMove'\nexport const CATCH_VIEW = 'catch-view'\nexport const COMMENT = 'comment'\nexport const ON_LOAD = 'onLoad'\nexport const ON_READY = 'onReady'\nexport const ON_SHOW = 'onShow'\nexport const ON_HIDE = 'onHide'\nexport const OPTIONS = 'options'\nexport const EXTERNAL_CLASSES = 'externalClasses'\nexport const BEHAVIORS = 'behaviors'\n","import { Shortcuts } from '@tarojs/shared'\nimport { NodeType } from '../dom/node_types'\nimport {\n ROOT_STR,\n STYLE,\n ID,\n UID,\n CLASS,\n COMMENT\n} from '../constants'\n\nimport type { TaroElement } from '../dom/element'\nimport type { TaroText } from '../dom/text'\nimport type { TaroNode } from '../dom/node'\n\nexport const incrementId = () => {\n let id = 0\n return () => (id++).toString()\n}\n\nexport function isElement (node: TaroNode): node is TaroElement {\n return node.nodeType === NodeType.ELEMENT_NODE\n}\n\nexport function isText (node: TaroNode): node is TaroText {\n return node.nodeType === NodeType.TEXT_NODE\n}\n\nexport function isComment (node: TaroNode): boolean {\n return node.nodeName === COMMENT\n}\n\nexport function isHasExtractProp (el: TaroElement): boolean {\n const res = Object.keys(el.props).find(prop => {\n return !(/^(class|style|id)$/.test(prop) || prop.startsWith('data-'))\n })\n return Boolean(res)\n}\n\n/**\n * 往上寻找组件树直到 root,寻找是否有祖先组件绑定了同类型的事件\n * @param node 当前组件\n * @param type 事件类型\n */\nexport function isParentBinded (node: TaroElement | null, type: string): boolean {\n let res = false\n while (node?.parentElement && node.parentElement._path !== ROOT_STR) {\n if (node.parentElement.__handlers[type]?.length) {\n res = true\n break\n }\n node = node.parentElement\n }\n return res\n}\n\nexport function shortcutAttr (key: string): string {\n switch (key) {\n case STYLE:\n return Shortcuts.Style\n case ID:\n return UID\n case CLASS:\n return Shortcuts.Class\n default:\n return key\n }\n}\n","export const SID_TARO_ELEMENT = '0'\nexport const SID_TARO_ELEMENT_FACTORY = '1'\nexport const SID_TARO_TEXT = '2'\nexport const SID_TARO_TEXT_FACTORY = '3'\nexport const SID_TARO_NODE_IMPL = '4'\nexport const SID_TARO_ELEMENT_IMPL = '5'\nexport const SID_HOOKS = '6'\nexport const SID_ON_REMOVE_ATTRIBUTE = '7'\nexport const SID_GET_MINI_LIFECYCLE = '8'\nexport const SID_GET_LIFECYCLE = '9'\nexport const SID_GET_PATH_INDEX = '10'\nexport const SID_GET_EVENT_CENTER = '11'\nexport const SID_IS_BUBBLE_EVENTS = '12'\nexport const SID_GET_SPECIAL_NODES = '13'\nexport const SID_EVENT_CENTER = '14'\nexport const SID_MODIFY_MP_EVENT = '15'\nexport const SID_MODIFY_TARO_EVENT = '16'\nexport const SID_MODIFY_DISPATCH_EVENT = '17'\nexport const SID_BATCHED_EVENT_UPDATES = '18'\nexport const SID_MERGE_PAGE_INSTANCE = '19'\nexport const SID_CREATE_PULLDOWN_COMPONENT = '20'\nexport const SID_GET_DOM_NODE = '21'\nexport const SID_INIT_NATIVE_API = '22'\nexport const SID_MODIFY_HYDRATE_DATA = '23'\nexport const SID_MODIFY_SET_ATTR_PAYLOAD = '24'\nexport const SID_MODIFY_RM_ATTR_PAYLOAD = '25'\nexport const SID_ON_ADD_EVENT = '26'\nexport const SID_PATCH_ELEMENT = '27'\nexport const SID_MODIFY_PAGE_OBJECT = '28'\n\nconst SERVICE_IDENTIFIER = {\n TaroElement: SID_TARO_ELEMENT,\n TaroElementFactory: SID_TARO_ELEMENT_FACTORY,\n TaroText: SID_TARO_TEXT,\n TaroTextFactory: SID_TARO_TEXT_FACTORY,\n TaroNodeImpl: SID_TARO_NODE_IMPL,\n TaroElementImpl: SID_TARO_ELEMENT_IMPL,\n Hooks: SID_HOOKS,\n onRemoveAttribute: SID_ON_REMOVE_ATTRIBUTE,\n getMiniLifecycle: SID_GET_MINI_LIFECYCLE,\n getLifecycle: SID_GET_LIFECYCLE,\n getPathIndex: SID_GET_PATH_INDEX,\n getEventCenter: SID_GET_EVENT_CENTER,\n isBubbleEvents: SID_IS_BUBBLE_EVENTS,\n getSpecialNodes: SID_GET_SPECIAL_NODES,\n eventCenter: SID_EVENT_CENTER,\n modifyMpEvent: SID_MODIFY_MP_EVENT,\n modifyTaroEvent: SID_MODIFY_TARO_EVENT,\n modifyDispatchEvent: SID_MODIFY_DISPATCH_EVENT,\n batchedEventUpdates: SID_BATCHED_EVENT_UPDATES,\n mergePageInstance: SID_MERGE_PAGE_INSTANCE,\n createPullDownComponent: SID_CREATE_PULLDOWN_COMPONENT,\n getDOMNode: SID_GET_DOM_NODE,\n initNativeApi: SID_INIT_NATIVE_API,\n modifyHydrateData: SID_MODIFY_HYDRATE_DATA,\n modifySetAttrPayload: SID_MODIFY_SET_ATTR_PAYLOAD,\n modifyRmAttrPayload: SID_MODIFY_RM_ATTR_PAYLOAD,\n onAddEvent: SID_ON_ADD_EVENT,\n patchElement: SID_PATCH_ELEMENT,\n modifyPageObject: SID_MODIFY_PAGE_OBJECT\n}\n\nexport default SERVICE_IDENTIFIER\n","export enum ElementNames {\n Element = 'Element',\n Document = 'Document',\n RootElement = 'RootElement',\n FormElement = 'FormElement'\n}\n\nexport interface InstanceFactory<T> {\n (...args: any[]): T\n}\n\nexport interface InstanceNamedFactory {\n <T>(named: string): (...args: any[]) => T\n}\n","import { SID_HOOKS, SID_TARO_ELEMENT_FACTORY, SID_TARO_ELEMENT_IMPL, SID_TARO_NODE_IMPL } from '../constants/identifiers'\nimport { ElementNames, TaroDocumentInstance } from '../interface'\n\nimport type { Container } from 'inversify'\nimport type { IHooks, InstanceNamedFactory } from '../interface'\nimport type { TaroNodeImpl } from '../dom-external/node-impl'\nimport type { TaroElementImpl } from '../dom-external/element-impl'\n\ninterface IStore {\n container: Container | null\n}\n\nexport const store: IStore = {\n container: null\n}\n\nexport function getHooks (): IHooks {\n return store.container!.get<IHooks>(SID_HOOKS)\n}\n\nexport function getElementFactory (): InstanceNamedFactory {\n return store.container!.get<InstanceNamedFactory>(SID_TARO_ELEMENT_FACTORY)\n}\n\nexport function getNodeImpl (): TaroNodeImpl {\n return store.container!.get<TaroNodeImpl>(SID_TARO_NODE_IMPL)\n}\n\nexport function getElementImpl (): TaroElementImpl {\n return store.container!.get<TaroElementImpl>(SID_TARO_ELEMENT_IMPL)\n}\n\nexport function getDocument (): TaroDocumentInstance {\n const getElement = getElementFactory()\n return getElement(ElementNames.Document)() as TaroDocumentInstance\n}\n","import { injectable } from 'inversify'\nimport { isArray, isObject, warn } from '@tarojs/shared'\nimport { getHooks } from 'src/container/store'\n\nimport type { EventHandler, AddEventListenerOptions, IHooks } from '../interface'\n\n@injectable()\nexport class TaroEventTarget {\n public __handlers: Record<string, EventHandler[]> = {}\n public hooks: IHooks\n\n public constructor () {\n this.hooks = getHooks()\n }\n\n public addEventListener (type: string, handler: EventHandler, options?: boolean | AddEventListenerOptions) {\n this.hooks.onAddEvent?.(type, handler, options, this)\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 type = type.toLowerCase()\n const handlers = this.__handlers[type]\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 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 if (!handler) {\n return\n }\n\n const handlers = this.__handlers[type]\n if (!isArray(handlers)) {\n return\n }\n\n const index = handlers.indexOf(handler)\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","import { Shortcuts, toCamelCase } from '@tarojs/shared'\nimport { isText, isHasExtractProp, isComment } from './utils'\nimport {\n VIEW,\n CLASS,\n STYLE,\n ID,\n PURE_VIEW,\n CATCHMOVE,\n CATCH_VIEW\n} from './constants'\n\nimport type { MiniData, MiniElementData } from './interface'\nimport type { TaroElement } from './dom/element'\nimport type { TaroText } from './dom/text'\n\n/**\n * React also has a fancy function's name for this: `hydrate()`.\n * You may have been heard `hydrate` as a SSR-related function,\n * actually, `hydrate` basicly do the `render()` thing, but ignore some properties,\n * it's a vnode traverser and modifier: that's exactly what Taro's doing in here.\n */\nexport function hydrate (node: TaroElement | TaroText): MiniData {\n const nodeName = node.nodeName\n\n if (isText(node)) {\n return {\n [Shortcuts.Text]: node.nodeValue,\n [Shortcuts.NodeName]: nodeName\n }\n }\n\n const data: MiniElementData = {\n [Shortcuts.NodeName]: nodeName,\n uid: node.uid\n }\n const { props } = node\n const SPECIAL_NODES = node.hooks.getSpecialNodes()\n\n if (!node.isAnyEventBinded() && SPECIAL_NODES.indexOf(nodeName) > -1) {\n data[Shortcuts.NodeName] = `static-${nodeName}`\n if (nodeName === VIEW && !isHasExtractProp(node)) {\n data[Shortcuts.NodeName] = PURE_VIEW\n }\n }\n\n for (const prop in props) {\n const propInCamelCase = toCamelCase(prop)\n if (\n !prop.startsWith('data-') && // 在 node.dataset 的数据\n prop !== CLASS &&\n prop !== STYLE &&\n prop !== ID &&\n propInCamelCase !== CATCHMOVE\n ) {\n data[propInCamelCase] = props[prop]\n }\n if (nodeName === VIEW && propInCamelCase === CATCHMOVE && props[prop] !== false) {\n data[Shortcuts.NodeName] = CATCH_VIEW\n }\n }\n\n let { childNodes } = node\n\n // 过滤 comment 节点\n childNodes = childNodes.filter(node => !isComment(node))\n\n if (childNodes.length > 0) {\n data[Shortcuts.Childnodes] = childNodes.map(hydrate)\n } else {\n data[Shortcuts.Childnodes] = []\n }\n\n if (node.className !== '') {\n data[Shortcuts.Class] = node.className\n }\n\n if (node.cssText !== '' && nodeName !== 'swiper-item') {\n data[Shortcuts.Style] = node.cssText\n }\n\n node.hooks.modifyHydrateData?.(data)\n\n return data\n}\n","import type { TaroNode } from './node'\nexport const eventSource = new Map<string | undefined | null, TaroNode>()\n","import { injectable } from 'inversify'\nimport { Shortcuts, ensure } from '@tarojs/shared'\nimport { NodeType } from './node_types'\nimport { incrementId, isComment } from '../utils'\nimport { TaroEventTarget } from './event-target'\nimport { hydrate } from '../hydrate'\nimport { eventSource } from './event-source'\nimport { ElementNames } from '../interface'\nimport { getElementFactory, getNodeImpl } from '../container/store'\nimport {\n DOCUMENT_FRAGMENT\n} from '../constants'\n\nimport type { UpdatePayload } from '../interface'\nimport type { TaroDocument } from './document'\nimport type { TaroRootElement } from './root'\nimport type { TaroElement } from './element'\n\nconst nodeId = incrementId()\n\n@injectable()\nexport class TaroNode extends TaroEventTarget {\n public uid: string\n public nodeType: NodeType\n public nodeName: string\n public parentNode: TaroNode | null = null\n public childNodes: TaroNode[] = []\n\n protected _getElement = getElementFactory()\n\n public constructor () {\n super()\n const impl = getNodeImpl()\n impl.bind(this)\n this.uid = `_n_${nodeId()}`\n eventSource.set(this.uid, this)\n }\n\n private hydrate = (node: TaroNode) => () => hydrate(node as TaroElement)\n\n /**\n * like jQuery's $.empty()\n */\n private _empty () {\n while (this.childNodes.length > 0) {\n const child = this.childNodes[0]\n child.parentNode = null\n eventSource.delete(child.uid)\n this.childNodes.shift()\n }\n }\n\n protected get _root (): TaroRootElement | null {\n return this.parentNode?._root || null\n }\n\n protected findIndex (refChild: TaroNode): number {\n const index = this.childNodes.indexOf(refChild)\n\n ensure(index !== -1, 'The node to be replaced is not a child of this node.')\n\n return index\n }\n\n public get _path (): string {\n const parentNode = this.parentNode\n\n if (parentNode) {\n // 计算路径时,先过滤掉 comment 节点\n const list = parentNode.childNodes.filter(node => !isComment(node))\n const indexOfNode = list.indexOf(this)\n const index = this.hooks.getPathIndex(indexOfNode)\n\n return `${parentNode._path}.${Shortcuts.Childnodes}.${index}`\n }\n\n return ''\n }\n\n public get nextSibling (): TaroNode | null {\n const parentNode = this.parentNode\n return parentNode?.childNodes[parentNode.findIndex(this) + 1] || null\n }\n\n public get previousSibling (): TaroNode | null {\n const parentNode = this.parentNode\n return parentNode?.childNodes[parentNode.findIndex(this) - 1] || null\n }\n\n public get parentElement (): TaroElement | null {\n const parentNode = this.parentNode\n if (parentNode?.nodeType === NodeType.ELEMENT_NODE) {\n return parentNode as TaroElement\n }\n return null\n }\n\n public get firstChild (): TaroNode | null {\n return this.childNodes[0] || null\n }\n\n public get lastChild (): TaroNode | null {\n const childNodes = this.childNodes\n return childNodes[childNodes.length - 1] || null\n }\n\n /**\n * @textContent 目前只能置空子元素\n * @TODO 等待完整 innerHTML 实现\n */\n public set textContent (text: string) {\n this._empty()\n if (text === '') {\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.Childnodes}`,\n value: () => []\n })\n } else {\n const document = this._getElement<TaroDocument>(ElementNames.Document)()\n this.appendChild(document.createTextNode(text))\n }\n }\n\n public insertBefore<T extends TaroNode> (newChild: T, refChild?: TaroNode | null, isReplace?: boolean): T {\n if (newChild.nodeName === DOCUMENT_FRAGMENT) {\n newChild.childNodes.reduceRight((previousValue, currentValue) => {\n this.insertBefore(currentValue, previousValue)\n return currentValue\n }, refChild)\n return newChild\n }\n\n newChild.remove()\n newChild.parentNode = this\n let payload: UpdatePayload\n\n if (refChild) {\n const index = this.findIndex(refChild)\n this.childNodes.splice(index, 0, newChild)\n if (isReplace) {\n payload = {\n path: newChild._path,\n value: this.hydrate(newChild)\n }\n } else {\n payload = {\n path: `${this._path}.${Shortcuts.Childnodes}`,\n value: () => {\n const childNodes = this.childNodes.filter(node => !isComment(node))\n return childNodes.map(hydrate)\n }\n }\n }\n } else {\n this.childNodes.push(newChild)\n payload = {\n path: newChild._path,\n value: this.hydrate(newChild)\n }\n }\n\n this.enqueueUpdate(payload)\n\n if (!eventSource.has(newChild.uid)) {\n eventSource.set(newChild.uid, newChild)\n }\n\n return newChild\n }\n\n public appendChild (child: TaroNode) {\n this.insertBefore(child)\n }\n\n public replaceChild (newChild: TaroNode, oldChild: TaroNode) {\n if (oldChild.parentNode === this) {\n this.insertBefore(newChild, oldChild, true)\n oldChild.remove(true)\n return oldChild\n }\n }\n\n public removeChild<T extends TaroNode> (child: T, isReplace?: boolean): T {\n const index = this.findIndex(child)\n this.childNodes.splice(index, 1)\n if (!isReplace) {\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.Childnodes}`,\n value: () => {\n const childNodes = this.childNodes.filter(node => !isComment(node))\n return childNodes.map(hydrate)\n }\n })\n }\n child.parentNode = null\n eventSource.delete(child.uid)\n // @TODO: eventSource memory overflow\n // child._empty()\n return child\n }\n\n public remove (isReplace?: boolean) {\n this.parentNode?.removeChild(this, isReplace)\n }\n\n public hasChildNodes () {\n return this.childNodes.length > 0\n }\n\n public enqueueUpdate (payload: UpdatePayload) {\n this._root?.enqueueUpdate(payload)\n }\n\n public get ownerDocument () {\n const document = this._getElement<TaroDocument>(ElementNames.Document)()\n return document\n }\n}\n","import { injectable } from 'inversify'\nimport { Shortcuts } from '@tarojs/shared'\nimport { TaroNode } from './node'\nimport { NodeType } from './node_types'\n\n@injectable()\nexport class TaroText extends TaroNode {\n public _value: string\n public nodeType = NodeType.TEXT_NODE\n public nodeName = '#text'\n\n public set textContent (text: string) {\n this._value = text\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.Text}`,\n value: text\n })\n }\n\n public get textContent (): string {\n return this._value\n }\n\n public set nodeValue (text: string) {\n this.textContent = text\n }\n\n public get nodeValue (): string {\n return this._value\n }\n\n public set data (text: string) {\n this.textContent = text\n }\n\n public get data (): string {\n return this._value\n }\n}\n","/*\n *\n * https://www.w3.org/Style/CSS/all-properties.en.html\n */\n\nconst styleProperties = [\n 'all',\n 'appearance',\n 'blockOverflow',\n 'blockSize',\n 'bottom',\n 'clear',\n 'contain',\n 'content',\n 'continue',\n 'cursor',\n 'direction',\n 'display',\n 'filter',\n 'float',\n 'gap',\n 'height',\n 'inset',\n 'isolation',\n 'left',\n 'letterSpacing',\n 'lightingColor',\n 'markerSide',\n 'mixBlendMode',\n 'opacity',\n 'order',\n 'position',\n 'quotes',\n 'resize',\n 'right',\n 'rowGap',\n 'tabSize',\n 'tableLayout',\n 'top',\n 'userSelect',\n 'verticalAlign',\n 'visibility',\n 'voiceFamily',\n 'volume',\n 'whiteSpace',\n 'widows',\n 'width',\n 'zIndex',\n 'pointerEvents'\n\n /** 非常用 style */\n // 'azimuth',\n // 'backfaceVisibility',\n // 'baselineShift',\n // 'captionSide',\n // 'chains',\n // 'dominantBaseline',\n // 'elevation',\n // 'emptyCells',\n // 'forcedColorAdjust',\n // 'glyphOrientationVertical',\n // 'hangingPunctuation',\n // 'hyphenateCharacter',\n // 'hyphens',\n // 'imageOrientation',\n // 'imageResolution',\n // 'orphans',\n // 'playDuring',\n // 'pointerEvents',\n // 'regionFragment',\n // 'richness',\n // 'running',\n // 'scrollBehavior',\n // 'speechRate',\n // 'stress',\n // 'stringSet',\n // 'unicodeBidi',\n // 'willChange',\n // 'writingMode',\n]\n\n// 减少文件体积\nfunction combine (prefix: string, list: string[], excludeSelf?: boolean) {\n !excludeSelf && styleProperties.push(prefix)\n list.forEach(item => {\n styleProperties.push(prefix + item)\n })\n}\n\nconst color = 'Color'\nconst style = 'Style'\nconst width = 'Width'\nconst image = 'Image'\nconst size = 'Size'\nconst color_style_width = [color, style, width]\nconst fitlength_fitwidth_image = ['FitLength', 'FitWidth', image]\nconst fitlength_fitwidth_image_radius = [...fitlength_fitwidth_image, 'Radius']\nconst color_style_width_fitlength_fitwidth_image = [...color_style_width, ...fitlength_fitwidth_image]\nconst endRadius_startRadius = ['EndRadius', 'StartRadius']\nconst bottom_left_right_top = ['Bottom', 'Left', 'Right', 'Top']\nconst end_start = ['End', 'Start']\nconst content_items_self = ['Content', 'Items', 'Self']\nconst blockSize_height_inlineSize_width = ['BlockSize', 'Height', 'InlineSize', width]\nconst after_before = ['After', 'Before']\n\ncombine('borderBlock', color_style_width)\ncombine('borderBlockEnd', color_style_width)\ncombine('borderBlockStart', color_style_width)\ncombine('outline', [...color_style_width, 'Offset'])\ncombine('border', [...color_style_width, 'Boundary', 'Break', 'Collapse', 'Radius', 'Spacing'])\ncombine('borderFit', ['Length', width])\ncombine('borderInline', color_style_width)\ncombine('borderInlineEnd', color_style_width)\ncombine('borderInlineStart', color_style_width)\ncombine('borderLeft', color_style_width_fitlength_fitwidth_image)\ncombine('borderRight', color_style_width_fitlength_fitwidth_image)\ncombine('borderTop', color_style_width_fitlength_fitwidth_image)\ncombine('borderBottom', color_style_width_fitlength_fitwidth_image)\ncombine('textDecoration', [color, style, 'Line'])\ncombine('textEmphasis', [color, style, 'Position'])\ncombine('scrollMargin', bottom_left_right_top)\ncombine('scrollPadding', bottom_left_right_top)\ncombine('padding', bottom_left_right_top)\ncombine('margin', [...bottom_left_right_top, 'Trim'])\ncombine('scrollMarginBlock', end_start)\ncombine('scrollMarginInline', end_start)\ncombine('scrollPaddingBlock', end_start)\ncombine('scrollPaddingInline', end_start)\ncombine('gridColumn', end_start)\ncombine('gridRow', end_start)\ncombine('insetBlock', end_start)\ncombine('insetInline', end_start)\ncombine('marginBlock', end_start)\ncombine('marginInline', end_start)\ncombine('paddingBlock', end_start)\ncombine('paddingInline', end_start)\ncombine('pause', after_before)\ncombine('cue', after_before)\ncombine('mask', ['Clip', 'Composite', image, 'Mode', 'Origin', 'Position', 'Repeat', size, 'Type'])\ncombine('borderImage', ['Outset', 'Repeat', 'Slice', 'Source', 'Transform', width])\ncombine('maskBorder', ['Mode', 'Outset', 'Repeat', 'Slice', 'Source', width])\ncombine('font', ['Family', 'FeatureSettings', 'Kerning', 'LanguageOverride', 'MaxSize', 'MinSize', 'OpticalSizing', 'Palette', size, 'SizeAdjust', 'Stretch', style, 'Weight', 'VariationSettings'])\ncombine('fontSynthesis', ['SmallCaps', style, 'Weight'])\ncombine('transform', ['Box', 'Origin', style])\ncombine('background', [color, image, 'Attachment', 'BlendMode', 'Clip', 'Origin', 'Position', 'Repeat', size])\ncombine('listStyle', [image, 'Position', 'Type'])\ncombine('scrollSnap', ['Align', 'Stop', 'Type'])\ncombine('grid', ['Area', 'AutoColumns', 'AutoFlow', 'AutoRows'])\ncombine('gridTemplate', ['Areas', 'Columns', 'Rows'])\ncombine('overflow', ['Block', 'Inline', 'Wrap', 'X', 'Y'])\ncombine('transition', ['Delay', 'Duration', 'Property', 'TimingFunction'])\ncombine('lineStacking', ['Ruby', 'Shift', 'Strategy'])\ncombine('color', ['Adjust', 'InterpolationFilters', 'Scheme'])\ncombine('textAlign', ['All', 'Last'])\ncombine('page', ['BreakAfter', 'BreakBefore', 'BreakInside'])\ncombine('speak', ['Header', 'Numeral', 'Punctuation'])\ncombine('animation', ['Delay', 'Direction', 'Duration', 'FillMode', 'IterationCount', 'Name', 'PlayState', 'TimingFunction'])\ncombine('flex', ['Basis', 'Direction', 'Flow', 'Grow', 'Shrink', 'Wrap'])\ncombine('offset', [...after_before, ...end_start, 'Anchor', 'Distance', 'Path', 'Position', 'Rotate'])\ncombine('fontVariant', ['Alternates', 'Caps', 'EastAsian', 'Emoji', 'Ligatures', 'Numeric', 'Position'])\ncombine('perspective', ['Origin'])\ncombine('pitch', ['Range'])\ncombine('clip', ['Path', 'Rule'])\ncombine('flow', ['From', 'Into'])\n\ncombine('align', ['Content', 'Items', 'Self'], true)\ncombine('alignment', ['Adjust', 'Baseline'], true)\ncombine('bookmark', ['Label', 'Level', 'State'], true)\ncombine('borderStart', endRadius_startRadius, true)\ncombine('borderEnd', endRadius_startRadius, true)\ncombine('borderCorner', ['Fit', image, 'ImageTransform'], true)\ncombine('borderTopLeft', fitlength_fitwidth_image_radius, true)\ncombine('borderTopRight', fitlength_fitwidth_image_radius, true)\ncombine('borderBottomLeft', fitlength_fitwidth_image_radius, true)\ncombine('borderBottomRight', fitlength_fitwidth_image_radius, true)\ncombine('column', ['s', 'Count', 'Fill', 'Gap', 'Rule', 'RuleColor', 'RuleStyle', 'RuleWidth', 'Span', width], true)\ncombine('break', [...after_before, 'Inside'], true)\ncombine('wrap', [...after_before, 'Flow', 'Inside', 'Through'], true)\ncombine('justify', content_items_self, true)\ncombine('place', content_items_self, true)\ncombine('max', [...blockSize_height_inlineSize_width, 'Lines'], true)\ncombine('min', blockSize_height_inlineSize_width, true)\ncombine('line', ['Break', 'Clamp', 'Grid', 'Height', 'Padding', 'Snap'], true)\ncombine('inline', ['BoxAlign', size, 'Sizing'], true)\ncombine('text', ['CombineUpright', 'GroupAlign', 'Height', 'Indent', 'Justify', 'Orientation', 'Overflow', 'Shadow', 'SpaceCollapse', 'SpaceTrim', 'Spacing', 'Transform', 'UnderlinePosition', 'Wrap'], true)\ncombine('shape', ['ImageThreshold', 'Inside', 'Margin', 'Outside'], true)\ncombine('word', ['Break', 'Spacing', 'Wrap'], true)\ncombine('nav', ['Down', 'Left', 'Right', 'Up'], true)\ncombine('object', ['Fit', 'Position'], true)\ncombine('box', ['DecorationBreak', 'Shadow', 'Sizing', 'Snap'], true)\n\n/** 非常用 style */\n// combine('caret', [color, 'Shape'])\n// combine('counter', ['Increment', 'Reset', 'Set'], true)\n// combine('dropInitial', ['AfterAdjust', 'AfterAlign', 'BeforeAdjust', 'BeforeAlign', size, 'Value'], true)\n// combine('flood', [color, 'Opacity'], true)\n// combine('footnote', ['Display', 'Policy'], true)\n// combine('hyphenateLimit', ['Chars', 'Last', 'Lines', 'Zone'], true)\n// combine('initialLetters', ['Align', 'Wrap'])\n// combine('ruby', ['Align', 'Merge', 'Position'], true)\n\nexport { styleProperties }\n","import { isUndefined, toCamelCase, toDashed, Shortcuts, warn, isString } from '@tarojs/shared'\nimport { styleProperties } from './style_properties'\nimport { TaroElement } from './element'\nimport { PROPERTY_THRESHOLD } from '../constants'\n\nfunction setStyle (this: Style, newVal: string, styleKey: string) {\n const old = this[styleKey]\n if (newVal) {\n this._usedStyleProp.add(styleKey)\n }\n\n process.env.NODE_ENV !== 'production' && warn(\n isString(newVal) && newVal.length > PROPERTY_THRESHOLD,\n `Style 属性 ${styleKey} 的值数据量过大,可能会影响渲染性能,考虑使用 CSS 类或其它方案替代。`\n )\n\n if (old !== newVal) {\n this._value[styleKey] = newVal\n this._element.enqueueUpdate({\n path: `${this._element._path}.${Shortcuts.Style}`,\n value: this.cssText\n })\n }\n}\n\nfunction initStyle (ctor: typeof Style) {\n const properties = {}\n\n for (let i = 0; i < styleProperties.length; i++) {\n const styleKey = styleProperties[i]\n properties[styleKey] = {\n get (this: Style) {\n return this._value[styleKey] || ''\n },\n set (this: Style, newVal: string) {\n setStyle.call(this, newVal, styleKey)\n }\n }\n }\n\n Object.defineProperties(ctor.prototype, properties)\n}\n\nfunction isCssVariable (propertyName) {\n return /^--/.test(propertyName)\n}\n\nexport class Style {\n public _usedStyleProp: Set<string>\n\n public _value: Partial<CSSStyleDeclaration>\n\n public _element: TaroElement\n\n public constructor (element: TaroElement) {\n this._element = element\n this._usedStyleProp = new Set()\n this._value = {}\n }\n\n private setCssVariables (styleKey: string) {\n this.hasOwnProperty(styleKey) || Object.defineProperty(this, styleKey, {\n enumerable: true,\n configurable: true,\n get: () => {\n return this._value[styleKey] || ''\n },\n set: (newVal: string) => {\n setStyle.call(this, newVal, styleKey)\n }\n })\n }\n\n public get cssText () {\n let text = ''\n this._usedStyleProp.forEach(key => {\n const val = this[key]\n if (!val) return\n const styleName = isCssVariable(key) ? key : toDashed(key)\n text += `${styleName}: ${val};`\n })\n return text\n }\n\n public set cssText (str: string) {\n if (str == null) {\n str = ''\n }\n\n this._usedStyleProp.forEach(prop => {\n this.removeProperty(prop)\n })\n\n if (str === '') {\n return\n }\n\n const rules = str.split(';')\n\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i].trim()\n if (rule === '') {\n continue\n }\n\n // 可能存在 'background: url(http:x/y/z)' 的情况\n const [propName, ...valList] = rule.split(':')\n const val = valList.join(':')\n\n if (isUndefined(val)) {\n continue\n }\n this.setProperty(propName.trim(), val.trim())\n }\n }\n\n public setProperty (propertyName: string, value?: string | null) {\n if (propertyName[0] === '-') {\n // 支持 webkit 属性或 css 变量\n this.setCssVariables(propertyName)\n } else {\n propertyName = toCamelCase(propertyName)\n }\n if (isUndefined(value)) {\n return\n }\n\n if (value === null || value === '') {\n this.removeProperty(propertyName)\n } else {\n this[propertyName] = value\n }\n }\n\n public removeProperty (propertyName: string): string {\n propertyName = toCamelCase(propertyName)\n if (!this._usedStyleProp.has(propertyName)) {\n return ''\n }\n\n const value = this[propertyName]\n this[propertyName] = ''\n this._usedStyleProp.delete(propertyName)\n return value\n }\n\n public getPropertyValue (propertyName: string) {\n propertyName = toCamelCase(propertyName)\n const value = this[propertyName]\n if (!value) {\n return ''\n }\n\n return value\n }\n}\n\ninitStyle(Style)\n","import { NodeType } from './node_types'\n\nimport type { TaroElement } from './element'\n\ntype Filter = (element: TaroElement) => boolean\n\nfunction returnTrue () {\n return true\n}\n\nexport function treeToArray (root: TaroElement, predict?: Filter): TaroElement[] {\n const array: TaroElement[] = []\n const filter = predict ?? returnTrue\n\n let object: TaroElement | null = root\n\n while (object) {\n if (object.nodeType === NodeType.ELEMENT_NODE && filter(object)) {\n array.push(object)\n }\n\n object = following(object, root)\n }\n\n return array\n}\n\nfunction following (el: TaroElement, root: TaroElement): TaroElement | null {\n const firstChild = el.firstChild\n\n if (firstChild) {\n return firstChild as TaroElement\n }\n\n let current: TaroElement | null = el\n\n do {\n if (current === root) {\n return null\n }\n\n const nextSibling = current.nextSibling\n\n if (nextSibling) {\n return nextSibling as TaroElement\n }\n current = current.parentElement\n } while (current)\n\n return null\n}\n","import type { TaroElement } from './element'\n\nexport class ClassList extends Set<string> {\n private el: TaroElement\n\n constructor (className: string, el: TaroElement) {\n super()\n className.trim().split(/\\s+/).forEach(super.add.bind(this))\n this.el = el\n }\n\n public get value () {\n return [...this].join(' ')\n }\n\n public add (s: string) {\n super.add(s)\n this._update()\n\n return this\n }\n\n public get length (): number {\n return this.size\n }\n\n public remove (s: string) {\n super.delete(s)\n this._update()\n }\n\n public toggle (s: string) {\n if (super.has(s)) {\n super.delete(s)\n } else {\n super.add(s)\n }\n\n this._update()\n }\n\n public replace (s1: string, s2: string) {\n super.delete(s1)\n super.add(s2)\n\n this._update()\n }\n\n public contains (s: string) {\n return super.has(s)\n }\n\n public toString () {\n return this.value\n }\n\n private _update () {\n this.el.className = this.value\n }\n}\n","import { injectable } from 'inversify'\nimport { isArray, isUndefined, Shortcuts, EMPTY_OBJ, warn, isString, toCamelCase } from '@tarojs/shared'\nimport { TaroNode } from './node'\nimport { NodeType } from './node_types'\nimport { eventSource } from './event-source'\nimport { isElement, isHasExtractProp, shortcutAttr } from '../utils'\nimport { Style } from './style'\nimport { treeToArray } from './tree'\nimport { ClassList } from './class-list'\nimport { getElementImpl } from '../container/store'\nimport {\n ID,\n CLASS,\n STYLE,\n FOCUS,\n VIEW,\n STATIC_VIEW,\n PURE_VIEW,\n PROPERTY_THRESHOLD,\n CATCHMOVE,\n CATCH_VIEW\n} from '../constants'\n\nimport type { TaroEvent } from './event'\nimport type { Attributes } from '../interface'\n\n@injectable()\nexport class TaroElement extends TaroNode {\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 const impl = getElementImpl()\n impl.bind(this)\n this.nodeType = NodeType.ELEMENT_NODE\n this.style = new Style(this)\n this.hooks.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 switch (qualifiedName) {\n case STYLE:\n this.style.cssText = value as string\n break\n case ID:\n eventSource.delete(this.uid)\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 qualifiedName = shortcutAttr(qualifiedName)\n\n const payload = {\n path: `${this._path}.${toCamelCase(qualifiedName)}`,\n value\n }\n\n this.hooks.modifySetAttrPayload?.(this, qualifiedName, payload)\n\n this.enqueueUpdate(payload)\n\n if (this.nodeName === VIEW) {\n if (toCamelCase(qualifiedName) === CATCHMOVE) {\n // catchMove = true: catch-view\n // catchMove = false: view or static-view\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.NodeName}`,\n value: value ? CATCH_VIEW : (\n this.isAnyEventBinded() ? VIEW : STATIC_VIEW\n )\n })\n } else if (isPureView && isHasExtractProp(this)) {\n // pure-view => static-view\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.NodeName}`,\n value: STATIC_VIEW\n })\n }\n }\n }\n\n public removeAttribute (qualifiedName: string) {\n const isStaticView = this.nodeName === VIEW && isHasExtractProp(this) && !this.isAnyEventBinded()\n\n if (qualifiedName === STYLE) {\n this.style.cssText = ''\n } else {\n const isInterrupt = this.hooks.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 qualifiedName = shortcutAttr(qualifiedName)\n\n const payload = {\n path: `${this._path}.${toCamelCase(qualifiedName)}`,\n value: ''\n }\n\n this.hooks.modifyRmAttrPayload?.(this, qualifiedName, payload)\n\n this.enqueueUpdate(payload)\n\n if (this.nodeName === VIEW) {\n if (toCamelCase(qualifiedName) === CATCHMOVE) {\n // catch-view => view or static-view or pure-view\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.NodeName}`,\n value: this.isAnyEventBinded() ? VIEW : (isHasExtractProp(this) ? STATIC_VIEW : PURE_VIEW)\n })\n } else if (isStaticView && !isHasExtractProp(this)) {\n // static-view => pure-view\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.NodeName}`,\n value: PURE_VIEW\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 return treeToArray(this, (el) => {\n const classList = el.classList\n const classNames = className.trim().split(/\\s+/)\n return classNames.every(c => classList.has(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 this.hooks.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 (event._end && event._stop) {\n break\n }\n }\n\n if (event._stop) {\n this._stopPropagation(event)\n } else {\n event._stop = true\n }\n\n return listeners != null\n }\n\n public addEventListener (type, handler, options) {\n const name = this.nodeName\n const SPECIAL_NODES = this.hooks.getSpecialNodes()\n\n if (!this.isAnyEventBinded() && SPECIAL_NODES.indexOf(name) > -1) {\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.NodeName}`,\n value: name\n })\n }\n\n super.addEventListener(type, handler, options)\n }\n\n public removeEventListener (type, handler) {\n super.removeEventListener(type, handler)\n\n const name = this.nodeName\n const SPECIAL_NODES = this.hooks.getSpecialNodes()\n\n if (!this.isAnyEventBinded() && SPECIAL_NODES.indexOf(name) > -1) {\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.NodeName}`,\n value: isHasExtractProp(this) ? `static-${name}` : `pure-${name}`\n })\n }\n }\n}\n","import type { Options } from './interface'\n\nexport const options: Options = {\n prerender: true,\n debug: false\n}\n","import { options } from './options'\n\nclass Performance {\n private recorder = new Map<string, number>()\n\n public start (id: string) {\n if (!options.debug) {\n return\n }\n this.recorder.set(id, Date.now())\n }\n\n public stop (id: string) {\n if (!options.debug) {\n return\n }\n const now = Date.now()\n const prev = this.recorder.get(id)!\n const time = now - prev\n // eslint-disable-next-line no-console\n console.log(`${id} 时长: ${time}ms`)\n }\n}\n\nexport const perf = new Performance()\n","import { injectable } from 'inversify'\nimport { isFunction, isUndefined, Shortcuts } from '@tarojs/shared'\nimport { TaroElement } from './element'\nimport { perf } from '../perf'\nimport { options } from '../options'\nimport {\n SET_DATA,\n PAGE_INIT,\n ROOT_STR,\n CUSTOM_WRAPPER\n} from '../constants'\n\nimport type { Func, UpdatePayload, UpdatePayloadValue, MpInstance, HydratedData } from '../interface'\n\nfunction findCustomWrapper (ctx, dataPathArr: string[]) {\n let currentData: Record<string, any> = ctx.__data__ || ctx.data || ctx._data\n let wrapper: Record<string, any> | undefined\n let index: number | undefined\n\n dataPathArr.some((item, i) => {\n const key = item.replace(/^\\[(.+)\\]$/, '$1')\n currentData = currentData[key]\n\n if (isUndefined(currentData)) return true\n\n if (currentData.nn === CUSTOM_WRAPPER) {\n wrapper = currentData\n index = i\n }\n })\n\n if (wrapper) {\n return {\n wrapper,\n index: index as number\n }\n }\n}\n\n@injectable()\nexport class TaroRootElement extends TaroElement {\n private updatePayloads: UpdatePayload[] = []\n\n private updateCallbacks: Func[]= []\n\n public pendingUpdate = false\n\n public ctx: null | MpInstance = null\n\n public constructor () {\n super()\n this.nodeName = ROOT_STR\n }\n\n public get _path (): string {\n return ROOT_STR\n }\n\n protected get _root (): TaroRootElement {\n return this\n }\n\n public enqueueUpdate (payload: UpdatePayload): void {\n this.updatePayloads.push(payload)\n\n if (!this.pendingUpdate && this.ctx) {\n this.performUpdate()\n }\n }\n\n public performUpdate (initRender = false, prerender?: Func) {\n this.pendingUpdate = true\n\n const ctx = this.ctx!\n\n setTimeout(() => {\n perf.start(SET_DATA)\n const data: Record<string, UpdatePayloadValue | ReturnType<HydratedData>> = Object.create(null)\n const resetPaths = new Set<string>(\n initRender\n ? ['root.cn.[0]', 'root.cn[0]']\n : []\n )\n\n while (this.updatePayloads.length > 0) {\n const { path, value } = this.updatePayloads.shift()!\n if (path.endsWith(Shortcuts.Childnodes)) {\n resetPaths.add(path)\n }\n data[path] = value\n }\n\n for (const path in data) {\n resetPaths.forEach(p => {\n // 已经重置了数组,就不需要分别再设置了\n if (path.includes(p) && path !== p) {\n delete data[path]\n }\n })\n\n const value = data[path]\n if (isFunction(value)) {\n data[path] = value()\n }\n }\n\n // 预渲染\n if (isFunction(prerender)) return prerender(data)\n\n // 正常渲染\n this.pendingUpdate = false\n let normalUpdate = {}\n const customWrapperMap: Map<Record<any, any>, Record<string, any>> = new Map()\n\n if (initRender) {\n // 初次渲染,使用页面级别的 setData\n normalUpdate = data\n } else {\n // 更新渲染,区分 CustomWrapper 与页面级别的 setData\n for (const p in data) {\n const dataPathArr = p.split('.')\n const found = findCustomWrapper(ctx, dataPathArr)\n if (found) {\n // 此项数据使用 CustomWrapper 去更新\n const { wrapper, index } = found\n const customWrapperId = `#${wrapper.uid}`\n const customWrapper = ctx.selectComponent(customWrapperId)\n if (customWrapper) {\n const splitedPath = dataPathArr.slice(index + 1).join('.')\n // 合并同一个 customWrapper 的相关更新到一次 setData 中\n customWrapperMap.set(customWrapper, {\n ...(customWrapperMap.get(customWrapper) || {}),\n [`i.${splitedPath}`]: data[p]\n })\n }\n } else {\n // 此项数据使用页面去更新\n normalUpdate[p] = data[p]\n }\n }\n }\n\n const customWrpperCount = customWrapperMap.size\n const isNeedNormalUpdate = Object.keys(normalUpdate).length > 0\n const updateArrLen = customWrpperCount + (isNeedNormalUpdate ? 1 : 0)\n let executeTime = 0\n\n const cb = () => {\n if (++executeTime === updateArrLen) {\n perf.stop(SET_DATA)\n this.flushUpdateCallback()\n initRender && perf.stop(PAGE_INIT)\n }\n }\n\n // custom-wrapper setData\n if (customWrpperCount) {\n customWrapperMap.forEach((data, ctx) => {\n if (process.env.NODE_ENV !== 'production' && options.debug) {\n // eslint-disable-next-line no-console\n console.log('custom wrapper setData: ', data)\n }\n ctx.setData(data, cb)\n })\n }\n\n // page setData\n if (isNeedNormalUpdate) {\n if (process.env.NODE_ENV !== 'production' && options.debug) {\n // eslint-disable-next-line no-console\n console.log('page setData:', normalUpdate)\n }\n ctx.setData(normalUpdate, cb)\n }\n }, 0)\n }\n\n public enqueueUpdateCallback (cb: Func, ctx?: Record<string, any>) {\n this.updateCallbacks.push(() => {\n ctx ? cb.call(ctx) : cb()\n })\n }\n\n public flushUpdateCallback () {\n const updateCallbacks = this.updateCallbacks\n if (!updateCallbacks.length) return\n\n const copies = updateCallbacks.slice(0)\n this.updateCallbacks.length = 0\n for (let i = 0; i < copies.length; i++) {\n copies[i]()\n }\n }\n}\n","import { TaroElement } from './element'\nimport {\n VALUE,\n INPUT,\n CHANGE\n} from '../constants'\n\nimport type { TaroEvent } from './event'\n\nexport class FormElement extends TaroElement {\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","import { TaroElement } from './element'\n\n// for Vue3\nexport class SVGElement extends TaroElement {}\n","import { EMPTY_OBJ, isFunction } from '@tarojs/shared'\nimport { isParentBinded } from '../utils'\nimport { getDocument, getHooks } from '../container/store'\nimport {\n CONFIRM,\n CURRENT_TARGET,\n INPUT,\n KEY_CODE,\n TARGET,\n TIME_STAMP,\n TYPE,\n TOUCHMOVE\n} from '../constants'\n\nimport type { TaroElement } from './element'\nimport type { EventOptions, MpEvent } from '../interface'\n\n// Taro 事件对象。以 Web 标准的事件对象为基础,加入小程序事件对象中携带的部分信息,并模拟实现事件冒泡。\nexport class TaroEvent {\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 // 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 element = getDocument().getElementById(this.mpEvent?.target.id)\n return {\n ...this.mpEvent?.target,\n ...this.mpEvent?.detail,\n dataset: element !== null ? element.dataset : EMPTY_OBJ\n }\n }\n\n get currentTarget () {\n const element = getDocument().getElementById(this.mpEvent?.currentTarget.id)\n\n if (element === null) {\n return this.target\n }\n\n return {\n ...this.mpEvent?.currentTarget,\n ...this.mpEvent?.detail,\n dataset: element.dataset\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\n// 小程序的事件代理回调函数\nexport function eventHandler (event: MpEvent) {\n const hooks = getHooks()\n\n hooks.modifyMpEvent?.(event)\n\n event.currentTarget ||= event.target\n const nid = event.currentTarget?.id || event.detail?.id as string || ''\n\n const node = getDocument().getElementById(nid)\n if (node) {\n const dispatch = () => {\n const e = createEvent(event, node)\n hooks.modifyTaroEvent?.(e, node)\n node.dispatchEvent(e)\n }\n if (isFunction(hooks.batchedEventUpdates)) {\n const type = event.type\n\n if (\n !hooks.isBubbleEvents(type) ||\n !isParentBinded(node, type) ||\n (type === TOUCHMOVE && !!node.props.catchMove)\n ) {\n // 最上层组件统一 batchUpdate\n hooks.batchedEventUpdates(() => {\n if (eventsBatch[type]) {\n eventsBatch[type].forEach(fn => fn())\n delete eventsBatch[type]\n }\n dispatch()\n })\n } else {\n // 如果上层组件也有绑定同类型的组件,委托给上层组件调用事件回调\n (eventsBatch[type] ||= []).push(dispatch)\n }\n } else {\n dispatch()\n }\n }\n}\n","import { EMPTY_OBJ } from '@tarojs/shared'\n\nexport const doc: Document = process.env.TARO_ENV === 'h5' ? document : EMPTY_OBJ\nexport const win: Window = process.env.TARO_ENV === 'h5' ? window : EMPTY_OBJ\n","import { options } from '../../options'\n\ninterface Position {\n index: number\n column: number\n line: number\n}\n\nexport interface Token {\n type: string\n content?: string\n position?: {\n start?: Position\n end?: Position\n }\n close?: boolean\n}\n\nfunction initPosition (): Position {\n return {\n index: 0,\n column: 0,\n line: 0\n }\n}\n\nfunction feedPosition (position: Position, str: string, len: number) {\n const start = position.index\n const end = position.index = start + len\n for (let i = start; i < end; i++) {\n const char = str.charAt(i)\n if (char === '\\n') {\n position.line++\n position.column = 0\n } else {\n position.column++\n }\n }\n}\n\nfunction jumpPosition (position: Position, str: string, end: number) {\n const len = end - position.index\n return feedPosition(position, str, len)\n}\n\nfunction copyPosition (position: Position) {\n return {\n index: position.index,\n line: position.line,\n column: position.column\n }\n}\n\nconst whitespace = /\\s/\nfunction isWhitespaceChar (char: string) {\n return whitespace.test(char)\n}\n\nconst equalSign = /=/\nfunction isEqualSignChar (char: string) {\n return equalSign.test(char)\n}\n\nfunction shouldBeIgnore (tagName: string) {\n const name = tagName.toLowerCase()\n if (options.html!.skipElements.has(name)) {\n return true\n }\n return false\n}\n\nconst alphanumeric = /[A-Za-z0-9]/\n\nfunction findTextEnd (str: string, index: number) {\n while (true) {\n const textEnd = str.indexOf('<', index)\n if (textEnd === -1) {\n return textEnd\n }\n const char = str.charAt(textEnd + 1)\n if (char === '/' || char === '!' || alphanumeric.test(char)) {\n return textEnd\n }\n index = textEnd + 1\n }\n}\n\nfunction isWordEnd (cursor: number, wordBegin: number, html: string) {\n if (!isWhitespaceChar(html.charAt(cursor))) return false\n\n const len = html.length\n\n // backwrad\n for (let i = cursor - 1; i > wordBegin; i--) {\n const char = html.charAt(i)\n if (!isWhitespaceChar(char)) {\n if (isEqualSignChar(char)) return false\n break\n }\n }\n\n // forward\n for (let i = cursor + 1; i < len; i++) {\n const char = html.charAt(i)\n if (!isWhitespaceChar(char)) {\n if (isEqualSignChar(char)) return false\n return true\n }\n }\n}\n\nexport class Scaner {\n private tokens: Token[] = []\n\n private position: Position = initPosition()\n\n private html: string\n\n constructor (html: string) {\n this.html = html\n }\n\n public scan (): Token[] {\n const { html, position } = this\n const len = html.length\n\n while (position.index < len) {\n const start = position.index\n this.scanText()\n if (position.index === start) {\n const isComment = html.startsWith('!--', start + 1)\n if (isComment) {\n this.scanComment()\n } else {\n const tagName = this.scanTag()\n if (shouldBeIgnore(tagName)) {\n this.scanSkipTag(tagName)\n }\n }\n }\n }\n\n return this.tokens\n }\n\n private scanText () {\n const type = 'text'\n const { html, position } = this\n let textEnd = findTextEnd(html, position.index)\n if (textEnd === position.index) {\n return\n }\n if (textEnd === -1) {\n textEnd = html.length\n }\n\n const start = copyPosition(position)\n const content = html.slice(position.index, textEnd)\n jumpPosition(position, html, textEnd)\n const end = copyPosition(position)\n this.tokens.push({ type, content, position: { start, end } })\n }\n\n private scanComment () {\n const type = 'comment'\n const { html, position } = this\n const start = copyPosition(position)\n feedPosition(position, html, 4) // \"<!--\".length\n let contentEnd = html.indexOf('-->', position.index)\n let commentEnd = contentEnd + 3 // \"-->\".length\n if (contentEnd === -1) {\n contentEnd = commentEnd = html.length\n }\n\n const content = html.slice(position.index, contentEnd)\n jumpPosition(position, html, commentEnd)\n this.tokens.push({\n type,\n content,\n position: {\n start,\n end: copyPosition(position)\n }\n })\n }\n\n private scanTag () {\n this.scanTagStart()\n const tagName = this.scanTagName()\n this.scanAttrs()\n this.scanTagEnd()\n\n return tagName\n }\n\n private scanTagStart () {\n const type = 'tag-start'\n const { html, position } = this\n\n const secondChar = html.charAt(position.index + 1)\n const close = secondChar === '/'\n const start = copyPosition(position)\n feedPosition(position, html, close ? 2 : 1)\n this.tokens.push({ type, close, position: { start } })\n }\n\n private scanTagEnd () {\n const type = 'tag-end'\n const { html, position } = this\n\n const firstChar = html.charAt(position.index)\n const close = firstChar === '/'\n feedPosition(position, html, close ? 2 : 1)\n const end = copyPosition(position)\n this.tokens.push({ type, close, position: { end } })\n }\n\n private scanTagName (): string {\n const type = 'tag'\n const { html, position } = this\n const len = html.length\n let start = position.index\n while (start < len) {\n const char = html.charAt(start)\n const isTagChar = !(isWhitespaceChar(char) || char === '/' || char === '>')\n if (isTagChar) break\n start++\n }\n\n let end = start + 1\n while (end < len) {\n const char = html.charAt(end)\n const isTagChar = !(isWhitespaceChar(char) || char === '/' || char === '>')\n if (!isTagChar) break\n end++\n }\n\n jumpPosition(position, html, end)\n const tagName = html.slice(start, end)\n this.tokens.push({\n type,\n content: tagName\n })\n\n return tagName\n }\n\n private scanAttrs () {\n const { html, position, tokens } = this\n let cursor = position.index\n let quote: string | null = null // null, single-, or double-quote\n let wordBegin = cursor // index of word start\n const words: string[] = [] // \"key\", \"key=value\", \"key='value'\", etc\n const len = html.length\n while (cursor < len) {\n const char = html.charAt(cursor)\n if (quote) {\n const isQuoteEnd = char === quote\n if (isQuoteEnd) {\n quote = null\n }\n cursor++\n continue\n }\n\n const isTagEnd = char === '/' || char === '>'\n if (isTagEnd) {\n if (cursor !== wordBegin) {\n words.push(html.slice(wordBegin, cursor))\n }\n break\n }\n\n if (isWordEnd(cursor, wordBegin, html)) {\n if (cursor !== wordBegin) {\n words.push(html.slice(wordBegin, cursor))\n }\n wordBegin = cursor + 1\n cursor++\n continue\n }\n\n const isQuoteStart = char === '\\'' || char === '\"'\n if (isQuoteStart) {\n quote = char\n cursor++\n continue\n }\n\n cursor++\n }\n\n jumpPosition(position, html, cursor)\n\n const wLen = words.length\n const type = 'attribute'\n for (let i = 0; i < wLen; i++) {\n const word = words[i]\n const isNotPair = word.includes('=')\n if (isNotPair) {\n const secondWord = words[i + 1]\n if (secondWord && secondWord.startsWith('=')) {\n if (secondWord.length > 1) {\n const newWord = word + secondWord\n tokens.push({ type, content: newWord })\n i += 1\n continue\n }\n const thirdWord = words[i + 2]\n i += 1\n if (thirdWord) {\n const newWord = word + '=' + thirdWord\n tokens.push({ type, content: newWord })\n i += 1\n continue\n }\n }\n }\n if (word.endsWith('=')) {\n const secondWord = words[i + 1]\n if (secondWord && !secondWord.includes('=')) {\n const newWord = word + secondWord\n tokens.push({ type, content: newWord })\n i += 1\n continue\n }\n\n const newWord = word.slice(0, -1)\n tokens.push({ type, content: newWord })\n continue\n }\n\n tokens.push({ type, content: word })\n }\n }\n\n private scanSkipTag (tagName: string) {\n const { html, position } = this\n const safeTagName = tagName.toLowerCase()\n const len = html.length\n while (position.index < len) {\n const nextTag = html.indexOf('</', position.index)\n if (nextTag === -1) {\n this.scanText()\n break\n }\n\n jumpPosition(position, html, nextTag)\n const name = this.scanTag()\n if (safeTagName === name.toLowerCase()) {\n break\n }\n }\n }\n}\n","import { internalComponents } from '@tarojs/shared'\n\nexport function makeMap (\n str: string,\n expectsLowerCase?: boolean\n): (key: string) => boolean {\n const map: Record<string, boolean> = Object.create(null)\n const list: Array<string> = str.split(',')\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true\n }\n return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val]\n}\n\nexport const specialMiniElements = {\n img: 'image',\n iframe: 'web-view'\n}\n\nconst internalCompsList = Object.keys(internalComponents)\n .map(i => i.toLowerCase())\n .join(',')\n\n// https://developers.weixin.qq.com/miniprogram/dev/component\nexport const isMiniElements = makeMap(internalCompsList, true)\n\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Inline_elements\nexport const isInlineElements = makeMap('a,i,abbr,iframe,select,acronym,slot,small,span,bdi,kbd,strong,big,map,sub,sup,br,mark,mark,meter,template,canvas,textarea,cite,object,time,code,output,u,data,picture,tt,datalist,var,dfn,del,q,em,s,embed,samp,b', true)\n\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements\nexport const isBlockElements = makeMap('address,fieldset,li,article,figcaption,main,aside,figure,nav,blockquote,footer,ol,details,form,p,dialog,h1,h2,h3,h4,h5,h6,pre,dd,header,section,div,hgroup,table,dl,hr,ul,dt', true)\n","export function unquote (str: string): string {\n const car = str.charAt(0)\n const end = str.length - 1\n const isQuoteStart = car === '\"' || car === \"'\"\n if (isQuoteStart && car === str.charAt(end)) {\n return str.slice(1, end)\n }\n return str\n}\n","import { NodeType } from '../../dom/node_types'\nimport { unquote } from './utils'\n\nimport type { TaroNode } from '../../dom/node'\nimport type { ParsedTaroElement } from './parser'\n\nconst LEFT_BRACKET = '{'\nconst RIGHT_BRACKET = '}'\nconst CLASS_SELECTOR = '.'\nconst ID_SELECTOR = '#'\nconst CHILD_COMBINATOR = '>'\nconst GENERAL_SIBLING_COMBINATOR = '~'\nconst ADJACENT_SIBLING_COMBINATOR = '+'\n\ninterface ISelector {\n isChild: boolean\n isGeneralSibling: boolean\n isAdjacentSibling: boolean\n tag: string | null\n id: string | null\n class: string[]\n attrs: {\n all: boolean\n key: string\n value?: string | null\n }[]\n}\n\ninterface IStyle {\n content: string\n selectorList: ISelector[]\n}\n\nexport default class StyleTagParser {\n styles: IStyle[]= []\n\n extractStyle (src: string) {\n const REG_STYLE = /<style\\s?[^>]*>((.|\\n|\\s)+?)<\\/style>/g\n let html = src\n // let html = src.replace(/\\n/g, '')\n\n html = html.replace(REG_STYLE, (_, $1: string) => {\n const style = $1.trim()\n this.stringToSelector(style)\n return ''\n })\n\n return html.trim()\n }\n\n stringToSelector (style: string) {\n let lb = style.indexOf(LEFT_BRACKET)\n\n while (lb > -1) {\n const rb = style.indexOf(RIGHT_BRACKET)\n const selectors = style.slice(0, lb).trim()\n\n let content = style.slice(lb + 1, rb)\n content = content.replace(/:(.*);/g, function (_, $1) {\n const t = $1.trim().replace(/ +/g, '+++')\n return `:${t};`\n })\n content = content.replace(/ /g, '')\n content = content.replace(/\\+\\+\\+/g, ' ')\n\n if (!(/;$/.test(content))) {\n content += ';'\n }\n selectors.split(',').forEach(src => {\n const selectorList = this.parseSelector(src)\n this.styles.push({\n content,\n selectorList\n })\n })\n style = style.slice(rb + 1)\n lb = style.indexOf(LEFT_BRACKET)\n }\n // console.log('res this.styles: ', this.styles)\n }\n\n parseSelector (src: string) {\n // todo: 属性选择器里可以带空格:[a = \"b\"],这里的 split(' ') 需要作兼容\n const list = src.trim().replace(/ *([>~+]) */g, ' $1').replace(/ +/g, ' ').split(' ')\n const selectors = list.map(item => {\n const firstChar = item.charAt(0)\n const selector: ISelector = {\n isChild: firstChar === CHILD_COMBINATOR,\n isGeneralSibling: firstChar === GENERAL_SIBLING_COMBINATOR,\n isAdjacentSibling: firstChar === ADJACENT_SIBLING_COMBINATOR,\n tag: null,\n id: null,\n class: [],\n attrs: []\n }\n\n item = item.replace(/^[>~+]/, '')\n\n // 属性选择器\n item = item.replace(/\\[(.+?)\\]/g, function (_, $1: string) {\n const [key, value] = $1.split('=')\n const all = $1.indexOf('=') === -1\n\n const attr = {\n all,\n key,\n value: all ? null : value\n }\n selector.attrs.push(attr)\n return ''\n })\n\n item = item.replace(/([.#][A-Za-z0-9-_]+)/g, function (_, $1: string) {\n if ($1[0] === ID_SELECTOR) {\n // id 选择器\n selector.id = $1.substr(1)\n } else if ($1[0] === CLASS_SELECTOR) {\n // class 选择器\n selector.class.push($1.substr(1))\n }\n return ''\n })\n\n // 标签选择器\n if (item !== '') {\n selector.tag = item\n }\n\n return selector\n })\n return selectors\n }\n\n matchStyle (tagName: string, el: ParsedTaroElement, list: number[]): string {\n const res = sortStyles(this.styles).reduce((str, { content, selectorList }, i) => {\n let idx = list[i]\n let selector = selectorList[idx]\n const nextSelector = selectorList[idx + 1]\n\n if (nextSelector?.isGeneralSibling || nextSelector?.isAdjacentSibling) {\n selector = nextSelector\n idx += 1\n list[i] += 1\n }\n\n let isMatch = this.matchCurrent(tagName, el, selector)\n\n if (isMatch && selector.isGeneralSibling) {\n let prev: ParsedTaroElement = getPreviousElement(el)\n while (prev) {\n if (prev.h5tagName && this.matchCurrent(prev.h5tagName, prev, selectorList[idx - 1])) {\n isMatch = true\n break\n }\n prev = getPreviousElement(prev)\n isMatch = false\n }\n }\n if (isMatch && selector.isAdjacentSibling) {\n const prev: ParsedTaroElement = getPreviousElement(el)\n if (!prev || !prev.h5tagName) {\n isMatch = false\n } else {\n const isSiblingMatch = this.matchCurrent(prev.h5tagName, prev, selectorList[idx - 1])\n if (!isSiblingMatch) {\n isMatch = false\n }\n }\n }\n\n if (isMatch) {\n if (idx === selectorList.length - 1) {\n return str + content\n } else if (idx < selectorList.length - 1) {\n list[i] += 1\n }\n } else {\n // 直接子代组合器: >\n if (selector.isChild && idx > 0) {\n list[i] -= 1\n if (this.matchCurrent(tagName, el, selectorList[list[i]])) {\n list[i] += 1\n }\n }\n }\n\n return str\n }, '')\n return res\n }\n\n matchCurrent (tagName: string, el: ParsedTaroElement, selector: ISelector): boolean {\n // 标签选择器\n if (selector.tag && selector.tag !== tagName) return false\n\n // id 选择器\n if (selector.id && selector.id !== el.id) return false\n\n // class 选择器\n if (selector.class.length) {\n const classList = el.className.split(' ')\n for (let i = 0; i < selector.class.length; i++) {\n const cls = selector.class[i]\n if (classList.indexOf(cls) === -1) {\n return false\n }\n }\n }\n\n // 属性选择器\n if (selector.attrs.length) {\n for (let i = 0; i < selector.attrs.length; i++) {\n const { all, key, value } = selector.attrs[i]\n if (all && !el.hasAttribute(key)) {\n return false\n } else {\n const attr = el.getAttribute(key)\n if (attr !== unquote(value || '')) {\n return false\n }\n }\n }\n }\n\n return true\n }\n}\n\nfunction getPreviousElement (el: TaroNode) {\n const parent = el.parentElement\n if (!parent) return null\n\n const prev = el.previousSibling\n if (!prev) return null\n\n if (prev.nodeType === NodeType.ELEMENT_NODE) {\n return prev\n } else {\n return getPreviousElement(prev)\n }\n}\n\n// 根据 css selector 权重排序: 权重大的靠后\n// @WARN 不考虑伪类\n// https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance#specificity_2\nfunction sortStyles (styles: IStyle[]) {\n return styles.sort((s1, s2) => {\n const hundreds1 = getHundredsWeight(s1.selectorList)\n const hundreds2 = getHundredsWeight(s2.selectorList)\n\n if (hundreds1 !== hundreds2) return hundreds1 - hundreds2\n\n const tens1 = getTensWeight(s1.selectorList)\n const tens2 = getTensWeight(s2.selectorList)\n\n if (tens1 !== tens2) return tens1 - tens2\n\n const ones1 = getOnesWeight(s1.selectorList)\n const ones2 = getOnesWeight(s2.selectorList)\n\n return ones1 - ones2\n })\n}\n\nfunction getHundredsWeight (selectors: ISelector[]) {\n return selectors.reduce((pre, cur) => pre + (cur.id ? 1 : 0), 0)\n}\n\nfunction getTensWeight (selectors: ISelector[]) {\n return selectors.reduce((pre, cur) => pre + cur.class.length + cur.attrs.length, 0)\n}\n\nfunction getOnesWeight (selectors: ISelector[]) {\n return selectors.reduce((pre, cur) => pre + (cur.tag ? 1 : 0), 0)\n}\n","import { isFunction } from '@tarojs/shared'\nimport { Scaner, Token } from './scaner'\nimport { options } from '../../options'\nimport { specialMiniElements, isMiniElements, isBlockElements, isInlineElements } from './tags'\nimport StyleTagParser from './style'\nimport { unquote } from './utils'\n\nimport type { TaroElement } from '../../dom/element'\nimport type { TaroDocument } from '../../dom/document'\n\ninterface State {\n tokens: Token[]\n cursor: number\n stack: Element[]\n}\n\nconst closingTagAncestorBreakers = {\n li: ['ul', 'ol', 'menu'],\n dt: ['dl'],\n dd: ['dl'],\n tbody: ['table'],\n thead: ['table'],\n tfoot: ['table'],\n tr: ['table'],\n td: ['table']\n}\n\ninterface Node {\n type: string;\n}\n\ninterface Comment extends Node {\n type: 'comment'\n content: string\n}\n\nexport interface Text extends Node {\n type: 'text'\n content: string\n}\n\nexport interface Element extends Node {\n type: 'element'\n tagName: string\n children: ChildNode[]\n attributes: string[]\n}\n\nexport interface ParsedTaroElement extends TaroElement{\n h5tagName?: string\n}\n\ntype ChildNode = Comment | Text | Element\n\nfunction hasTerminalParent (tagName: string, stack: Element[]) {\n const tagParents: undefined | string[] = closingTagAncestorBreakers[tagName]\n if (tagParents) {\n let currentIndex = stack.length - 1\n while (currentIndex >= 0) {\n const parentTagName = stack[currentIndex].tagName\n if (parentTagName === tagName) {\n break\n }\n if (tagParents && tagParents.includes(parentTagName!)) {\n return true\n }\n currentIndex--\n }\n }\n return false\n}\n\nfunction getTagName (tag: string) {\n if (options.html!.renderHTMLTag) {\n return tag\n }\n\n if (specialMiniElements[tag]) {\n return specialMiniElements[tag]\n } else if (isMiniElements(tag)) {\n return tag\n } else if (isBlockElements(tag)) {\n return 'view'\n } else if (isInlineElements(tag)) {\n return 'text'\n }\n\n return 'view'\n}\n\nfunction splitEqual (str: string) {\n const sep = '='\n const idx = str.indexOf(sep)\n if (idx === -1) return [str]\n const key = str.slice(0, idx).trim()\n const value = str.slice(idx + sep.length).trim()\n return [key, value]\n}\n\nfunction format (\n children: ChildNode[],\n document: TaroDocument,\n styleOptions: {\n styleTagParser: StyleTagParser\n descendantList: number[]\n },\n parent?: TaroElement\n) {\n return children\n .filter(child => {\n // 过滤注释和空文本节点\n if (child.type === 'comment') {\n return false\n } else if (child.type === 'text') {\n return child.content !== ''\n }\n return true\n })\n .map((child: Text | Element) => {\n // 文本节点\n if (child.type === 'text') {\n let text = document.createTextNode(child.content)\n if (isFunction(options.html!.transformText)) {\n text = options.html!.transformText(text, child)\n }\n parent?.appendChild(text)\n return text\n }\n\n const el: ParsedTaroElement = document.createElement(getTagName(child.tagName))\n el.h5tagName = child.tagName\n\n parent?.appendChild(el)\n\n if (!options.html!.renderHTMLTag) {\n el.className = `h5-${child.tagName}`\n }\n\n for (let i = 0; i < child.attributes.length; i++) {\n const attr = child.attributes[i]\n const [key, value] = splitEqual(attr)\n if (key === 'class') {\n el.className += ' ' + unquote(value)\n } else if (key[0] === 'o' && key[1] === 'n') {\n continue\n } else {\n el.setAttribute(key, value == null ? true : unquote(value))\n }\n }\n\n const { styleTagParser, descendantList } = styleOptions\n const list = descendantList.slice()\n const style = styleTagParser.matchStyle(child.tagName, el, list)\n\n el.setAttribute('style', style + el.style.cssText)\n // console.log('style, ', style)\n\n format(child.children, document, {\n styleTagParser,\n descendantList: list\n }, el)\n\n if (isFunction(options.html!.transformElement)) {\n return options.html!.transformElement(el, child)\n }\n\n return el\n })\n}\n\nexport function parser (html: string, document: TaroDocument) {\n const styleTagParser = new StyleTagParser()\n html = styleTagParser.extractStyle(html)\n\n const tokens = new Scaner(html).scan()\n\n const root: Element = { tagName: '', children: [], type: 'element', attributes: [] }\n\n const state = { tokens, options, cursor: 0, stack: [root] }\n parse(state)\n\n return format(root.children, document, {\n styleTagParser,\n descendantList: Array(styleTagParser.styles.length).fill(0)\n })\n}\n\nfunction parse (state: State) {\n const { tokens, stack } = state\n let { cursor } = state\n\n const len = tokens.length\n\n let nodes = stack[stack.length - 1].children\n\n while (cursor < len) {\n const token = tokens[cursor]\n if (token.type !== 'tag-start') {\n // comment or text\n nodes.push(token as ChildNode)\n cursor++\n continue\n }\n\n const tagToken = tokens[++cursor]\n cursor++\n const tagName = tagToken.content!.toLowerCase()\n if (token.close) {\n let index = stack.length\n let shouldRewind = false\n while (--index > -1) {\n if (stack[index].tagName === tagName) {\n shouldRewind = true\n break\n }\n }\n while (cursor < len) {\n const endToken = tokens[cursor]\n if (endToken.type !== 'tag-end') break\n cursor++\n }\n if (shouldRewind) {\n stack.splice(index)\n break\n } else {\n continue\n }\n }\n\n const isClosingTag = options.html!.closingElements.has(tagName)\n let shouldRewindToAutoClose = isClosingTag\n if (shouldRewindToAutoClose) {\n shouldRewindToAutoClose = !hasTerminalParent(tagName, stack)\n }\n\n if (shouldRewindToAutoClose) {\n let currentIndex = stack.length - 1\n while (currentIndex > 0) {\n if (tagName === stack[currentIndex].tagName) {\n stack.splice(currentIndex)\n const previousIndex = currentIndex - 1\n nodes = stack[previousIndex].children\n break\n }\n currentIndex = currentIndex - 1\n }\n }\n\n const attributes: string[] = []\n let attrToken: Token\n while (cursor < len) {\n attrToken = tokens[cursor]\n if (attrToken.type === 'tag-end') break\n attributes.push(attrToken.content!)\n cursor++\n }\n\n cursor++\n const children: Element[] = []\n const element: Element = {\n type: 'element',\n tagName: tagToken.content!,\n attributes,\n children\n }\n nodes.push(element)\n\n const hasChildren = !(attrToken!.close || options.html!.voidElements.has(tagName))\n if (hasChildren) {\n stack.push({ tagName, children } as any)\n const innerState: State = { tokens, cursor, stack }\n parse(innerState)\n cursor = innerState.cursor\n }\n }\n\n state.cursor = cursor\n}\n","import { parser } from './parser'\nimport { options } from '../../options'\n\nimport type { TaroNode } from '../../dom/node'\nimport type { TaroDocument } from '../../dom/document'\n\noptions.html = {\n skipElements: new Set(['style', 'script']),\n voidElements: new Set([\n '!doctype', 'area', 'base', 'br', 'col', 'command',\n 'embed', 'hr', 'img', 'input', 'keygen', 'link',\n 'meta', 'param', 'source', 'track', 'wbr'\n ]),\n closingElements: new Set([\n 'html', 'head', 'body', 'p', 'dt', 'dd', 'li', 'option',\n 'thead', 'th', 'tbody', 'tr', 'td', 'tfoot', 'colgroup'\n ]),\n renderHTMLTag: false\n}\n\nexport function setInnerHTML (element: TaroNode, html: string, getDoc: () => TaroDocument) {\n while (element.firstChild) {\n element.removeChild(element.firstChild)\n }\n const children = parser(html, getDoc())\n\n for (let i = 0; i < children.length; i++) {\n element.appendChild(children[i])\n }\n}\n","import {\n STYLE,\n DATASET,\n PROPS,\n OBJECT\n} from '../constants'\nimport { parser } from '../dom-external/inner-html/parser'\nimport { GetDoc } from '../interface'\nimport { NodeType } from '../dom/node_types'\n\nimport type { TaroNode } from 'src/dom/node'\n\nexport type IPosition = 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend'\n\n/**\n * An implementation of `Element.insertAdjacentHTML()`\n * to support Vue 3 with a version of or greater than `vue@3.1.2`\n */\nexport function insertAdjacentHTMLImpl (\n this: TaroNode,\n getDoc: GetDoc,\n position: IPosition,\n html: string\n) {\n const parsedNodes = parser(html, getDoc())\n\n for (let i = 0; i < parsedNodes.length; i++) {\n const n = parsedNodes[i]\n\n switch (position) {\n case 'beforebegin':\n this.parentNode?.insertBefore(n, this)\n break\n case 'afterbegin':\n if (this.hasChildNodes()) {\n this.insertBefore(n, this.childNodes[0])\n } else {\n this.appendChild(n)\n }\n break\n case 'beforeend':\n this.appendChild(n)\n break\n case 'afterend':\n this.parentNode?.appendChild(n)\n break\n }\n }\n}\n\nexport function cloneNode (this: TaroNode, getDoc, isDeep = false) {\n const document = getDoc()\n let newNode\n\n if (this.nodeType === NodeType.ELEMENT_NODE) {\n newNode = document.createElement(this.nodeName)\n } else if (this.nodeType === NodeType.TEXT_NODE) {\n newNode = document.createTextNode('')\n }\n\n for (const key in this) {\n const value: any = this[key]\n if ([PROPS, DATASET].includes(key) && typeof value === OBJECT) {\n newNode[key] = { ...value }\n } else if (key === '_value') {\n newNode[key] = value\n } else if (key === STYLE) {\n newNode.style._value = { ...value._value }\n newNode.style._usedStyleProp = new Set(Array.from(value._usedStyleProp))\n }\n }\n\n if (isDeep) {\n newNode.childNodes = this.childNodes.map(node => (node as any).cloneNode(true))\n }\n\n return newNode\n}\n\nexport function contains (this: TaroNode, node: TaroNode & { id?: string }): boolean {\n let isContains = false\n this.childNodes.some(childNode => {\n const { uid } = childNode\n if (uid === node.uid || uid === node.id || (childNode as any).contains(node)) {\n isContains = true\n return true\n }\n })\n return isContains\n}\n","import { inject, injectable } from 'inversify'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\nimport { ElementNames, InstanceNamedFactory } from '../interface'\nimport { setInnerHTML } from '../dom-external/inner-html/html'\nimport { cloneNode, insertAdjacentHTMLImpl, contains } from './node'\n\nimport type { Ctx, GetDoc } from '../interface'\nimport type { TaroDocument } from '../dom/document'\n\ndeclare const ENABLE_INNER_HTML: boolean\ndeclare const ENABLE_ADJACENT_HTML: boolean\ndeclare const ENABLE_CLONE_NODE: boolean\ndeclare const ENABLE_CONTAINS: boolean\n\n@injectable()\nexport class TaroNodeImpl {\n public getDoc: GetDoc\n\n constructor (// eslint-disable-next-line @typescript-eslint/indent\n @inject(SERVICE_IDENTIFIER.TaroElementFactory) getElement: InstanceNamedFactory\n ) {\n this.getDoc = () => getElement<TaroDocument>(ElementNames.Document)()\n }\n\n public bind (ctx: Ctx) {\n const getDoc = this.getDoc\n\n if (ENABLE_INNER_HTML) {\n bindInnerHTML(ctx, getDoc)\n\n if (ENABLE_ADJACENT_HTML) {\n ctx.insertAdjacentHTML = insertAdjacentHTMLImpl.bind(ctx, getDoc)\n }\n }\n\n if (ENABLE_CLONE_NODE) {\n ctx.cloneNode = cloneNode.bind(ctx, getDoc)\n }\n\n if (ENABLE_CONTAINS) {\n ctx.contains = contains.bind(ctx)\n }\n }\n}\n\nfunction bindInnerHTML (ctx, getDoc) {\n Object.defineProperty(ctx, 'innerHTML', {\n configurable: true,\n enumerable: true,\n set (html: string) {\n setInnerHTML.call(ctx, ctx, html, getDoc)\n },\n get (): string {\n return ''\n }\n })\n}\n","import { options } from '../options'\nimport { ElementNames } from '../interface'\nimport { DOCUMENT_FRAGMENT } from '../constants'\n\nimport type { Ctx } from '../interface'\nimport type { TaroElement } from 'src/dom/element'\n\nexport function getBoundingClientRectImpl (this: TaroElement): Promise<null> {\n if (!options.miniGlobal) return Promise.resolve(null)\n return new Promise(resolve => {\n const query = options.miniGlobal.createSelectorQuery()\n query.select(`#${this.uid}`).boundingClientRect(res => {\n resolve(res)\n }).exec()\n })\n}\n\nexport function getTemplateContent (ctx: Ctx): string | undefined {\n if (ctx.nodeName === 'template') {\n const content = ctx._getElement(ElementNames.Element)(DOCUMENT_FRAGMENT)\n content.childNodes = ctx.childNodes\n ctx.childNodes = [content]\n content.parentNode = ctx\n content.childNodes.forEach(nodes => {\n nodes.parentNode = content\n })\n return content\n }\n}\n","import { injectable } from 'inversify'\nimport { getBoundingClientRectImpl, getTemplateContent } from './element'\n\nimport type { Ctx } from '../interface'\n\ndeclare const ENABLE_SIZE_APIS: boolean\ndeclare const ENABLE_TEMPLATE_CONTENT: boolean\n\n@injectable()\nexport class TaroElementImpl {\n bind (ctx: Ctx) {\n if (ENABLE_SIZE_APIS) {\n ctx.getBoundingClientRect = getBoundingClientRectImpl.bind(ctx)\n }\n\n if (ENABLE_TEMPLATE_CONTENT) {\n bindContent(ctx)\n }\n }\n}\n\nfunction bindContent (ctx: Ctx) {\n Object.defineProperty(ctx, 'content', {\n configurable: true,\n enumerable: true,\n get () {\n return getTemplateContent(ctx)\n }\n })\n}\n","import { inject, injectable } from 'inversify'\nimport { controlledComponent, isUndefined } from '@tarojs/shared'\nimport { SID_TARO_TEXT_FACTORY } from '../constants/identifiers'\nimport { TaroElement } from '../dom/element'\nimport { NodeType } from '../dom/node_types'\nimport { eventSource } from '../dom/event-source'\nimport { ElementNames, InstanceFactory } from '../interface'\nimport {\n ROOT_STR,\n DOCUMENT_ELEMENT_NAME,\n COMMENT\n} from '../constants'\n\nimport type { FormElement } from '../dom/form'\nimport type { TaroRootElement } from '../dom/root'\nimport type { TaroText } from '../dom/text'\n\n@injectable()\nexport class TaroDocument extends TaroElement {\n private _getText: InstanceFactory<TaroText>\n\n public constructor (// eslint-disable-next-line @typescript-eslint/indent\n @inject(SID_TARO_TEXT_FACTORY) getText: InstanceFactory<TaroText>\n ) {\n super()\n this._getText = getText\n this.nodeType = NodeType.DOCUMENT_NODE\n this.nodeName = DOCUMENT_ELEMENT_NAME\n }\n\n public createElement (type: string): TaroElement | TaroRootElement | FormElement {\n const getElement = this._getElement\n\n if (type === ROOT_STR) {\n return getElement<TaroRootElement>(ElementNames.RootElement)()\n }\n\n if (controlledComponent.has(type)) {\n return getElement<FormElement>(ElementNames.FormElement)(type)\n }\n\n return getElement<TaroElement>(ElementNames.Element)(type)\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 this._getText(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 = this._getText('')\n textnode.nodeName = COMMENT\n return textnode\n }\n}\n","/**\n * 支持冒泡的事件, 除 支付宝小程序外,其余的可冒泡事件都和微信保持一致\n * 详见 见 https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/event.html\n */\nexport const BUBBLE_EVENTS = new Set([\n 'touchstart',\n 'touchmove',\n 'touchcancel',\n 'touchend',\n 'touchforcechange',\n 'tap',\n 'longpress',\n 'longtap',\n 'transitionend',\n 'animationstart',\n 'animationiteration',\n 'animationend'\n])\n","import { ContainerModule } from 'inversify'\nimport { BUBBLE_EVENTS } from '../constants/events'\nimport {\n SID_GET_MINI_LIFECYCLE,\n SID_GET_LIFECYCLE,\n SID_GET_PATH_INDEX,\n SID_GET_EVENT_CENTER,\n SID_IS_BUBBLE_EVENTS,\n SID_GET_SPECIAL_NODES\n} from '../constants/identifiers'\n\nimport type {\n MiniLifecycle,\n IsBubbleEvents,\n GetEventCenter,\n GetMiniLifecycle,\n GetLifecycle,\n GetPathIndex,\n GetSpecialNodes\n} from '../interface'\n\nexport const defaultMiniLifecycle: MiniLifecycle = {\n app: [\n 'onLaunch',\n 'onShow',\n 'onHide'\n ],\n page: [\n 'onLoad',\n 'onUnload',\n 'onReady',\n 'onShow',\n 'onHide',\n [\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onPageScroll',\n 'onResize',\n 'onTabItemTap',\n 'onTitleClick',\n 'onOptionMenuClick',\n 'onPopMenuClick',\n 'onPullIntercept',\n 'onAddToFavorites'\n ]\n ]\n}\n\nconst getMiniLifecycle: GetMiniLifecycle = function (defaultConfig) {\n return defaultConfig\n}\n\nconst getLifecycle: GetLifecycle = function (instance, lifecycle) {\n return instance[lifecycle]\n}\n\nconst getPathIndex: GetPathIndex = function (indexOfNode) {\n return `[${indexOfNode}]`\n}\n\nconst getEventCenter: GetEventCenter = function (Events) {\n return new Events()\n}\n\nconst isBubbleEvents = function (eventName) {\n return BUBBLE_EVENTS.has(eventName)\n}\n\nconst getSpecialNodes = function () {\n return ['view', 'text', 'image']\n}\n\nexport const DefaultHooksContainer = new ContainerModule(bind => {\n function bindFunction<T> (sid: string, target) {\n return bind<T>(sid).toFunction(target)\n }\n bindFunction<GetLifecycle>(SID_GET_MINI_LIFECYCLE, getMiniLifecycle)\n bindFunction<GetLifecycle>(SID_GET_LIFECYCLE, getLifecycle)\n bindFunction<GetPathIndex>(SID_GET_PATH_INDEX, getPathIndex)\n bindFunction<GetEventCenter>(SID_GET_EVENT_CENTER, getEventCenter)\n bindFunction<IsBubbleEvents>(SID_IS_BUBBLE_EVENTS, isBubbleEvents)\n bindFunction<GetSpecialNodes>(SID_GET_SPECIAL_NODES, getSpecialNodes)\n})\n","import { inject, injectable, multiInject, optional } from 'inversify'\nimport {\n SID_GET_MINI_LIFECYCLE,\n SID_GET_LIFECYCLE,\n SID_GET_PATH_INDEX,\n SID_GET_EVENT_CENTER,\n SID_IS_BUBBLE_EVENTS,\n SID_GET_SPECIAL_NODES,\n SID_ON_REMOVE_ATTRIBUTE,\n SID_BATCHED_EVENT_UPDATES,\n SID_MERGE_PAGE_INSTANCE,\n SID_CREATE_PULLDOWN_COMPONENT,\n SID_GET_DOM_NODE,\n SID_MODIFY_HYDRATE_DATA,\n SID_MODIFY_SET_ATTR_PAYLOAD,\n SID_MODIFY_RM_ATTR_PAYLOAD,\n SID_ON_ADD_EVENT,\n SID_MODIFY_MP_EVENT,\n SID_MODIFY_TARO_EVENT,\n SID_INIT_NATIVE_API,\n SID_PATCH_ELEMENT,\n SID_MODIFY_PAGE_OBJECT,\n SID_MODIFY_DISPATCH_EVENT\n\n} from './constants/identifiers'\nimport { defaultMiniLifecycle } from './container/default-hooks'\n\nimport type { TaroElement } from './dom/element'\nimport type { TaroEvent } from './dom/event'\nimport type {\n IHooks,\n OnRemoveAttribute,\n GetMiniLifecycle,\n GetLifecycle,\n GetPathIndex,\n GetEventCenter,\n ModifyMpEvent,\n ModifyTaroEvent,\n ModifyDispatchEvent,\n IsBubbleEvents,\n GetSpecialNodes,\n BatchedEventUpdates,\n MergePageInstance,\n CreatePullDownComponent,\n GetDOMNode,\n InitNativeApi,\n ModifySetAttrPayload,\n ModifyHydrateData,\n ModifyRmAttrPayload,\n MpEvent,\n OnAddEvent,\n PatchElement,\n ModifyPageObject\n} from './interface'\n\n@injectable()\nexport class Hooks implements IHooks {\n @inject(SID_GET_MINI_LIFECYCLE)\n public getMiniLifecycle: GetMiniLifecycle\n\n public getMiniLifecycleImpl () {\n return this.getMiniLifecycle(defaultMiniLifecycle)\n }\n\n @inject(SID_GET_LIFECYCLE)\n public getLifecycle: GetLifecycle\n\n @inject(SID_GET_PATH_INDEX)\n public getPathIndex: GetPathIndex\n\n @inject(SID_GET_EVENT_CENTER)\n public getEventCenter: GetEventCenter\n\n @inject(SID_IS_BUBBLE_EVENTS)\n public isBubbleEvents: IsBubbleEvents\n\n @inject(SID_GET_SPECIAL_NODES)\n public getSpecialNodes: GetSpecialNodes\n\n @inject(SID_ON_REMOVE_ATTRIBUTE) @optional()\n public onRemoveAttribute?: OnRemoveAttribute\n\n @inject(SID_BATCHED_EVENT_UPDATES) @optional()\n public batchedEventUpdates?: BatchedEventUpdates\n\n @inject(SID_MERGE_PAGE_INSTANCE) @optional()\n public mergePageInstance?: MergePageInstance\n\n @inject(SID_MODIFY_PAGE_OBJECT) @optional()\n public modifyPageObject?: ModifyPageObject\n\n @inject(SID_CREATE_PULLDOWN_COMPONENT) @optional()\n public createPullDownComponent?: CreatePullDownComponent\n\n @inject(SID_GET_DOM_NODE) @optional()\n public getDOMNode?: GetDOMNode\n\n @inject(SID_MODIFY_HYDRATE_DATA) @optional()\n public modifyHydrateData?: ModifyHydrateData\n\n @inject(SID_MODIFY_SET_ATTR_PAYLOAD) @optional()\n public modifySetAttrPayload?: ModifySetAttrPayload\n\n @inject(SID_MODIFY_RM_ATTR_PAYLOAD) @optional()\n public modifyRmAttrPayload?: ModifyRmAttrPayload\n\n @inject(SID_ON_ADD_EVENT) @optional()\n public onAddEvent?: OnAddEvent\n\n @multiInject(SID_MODIFY_MP_EVENT) @optional()\n public modifyMpEventImpls?: ModifyMpEvent[]\n\n public modifyMpEvent (e: MpEvent) {\n this.modifyMpEventImpls?.forEach(fn => {\n try {\n // 有些小程序的事件对象的某些属性只读\n fn(e)\n } catch (error) {\n console.warn('[Taro modifyMpEvent hook Error]: ', error)\n }\n })\n }\n\n @multiInject(SID_MODIFY_TARO_EVENT) @optional()\n public modifyTaroEventImpls?: ModifyTaroEvent[]\n\n public modifyTaroEvent (e: TaroEvent, element: TaroElement) {\n this.modifyTaroEventImpls?.forEach(fn => fn(e, element))\n }\n\n @multiInject(SID_MODIFY_DISPATCH_EVENT) @optional()\n public modifyDispatchEventImpls?: ModifyDispatchEvent[]\n\n public modifyDispatchEvent (e: TaroEvent, element: TaroElement) {\n this.modifyDispatchEventImpls?.forEach(fn => fn(e, element))\n }\n\n @multiInject(SID_INIT_NATIVE_API) @optional()\n public initNativeApiImpls?: InitNativeApi[]\n\n public initNativeApi (taro: Record<string, any>) {\n this.initNativeApiImpls?.forEach(fn => fn(taro))\n }\n\n @multiInject(SID_PATCH_ELEMENT) @optional()\n public patchElementImpls?: PatchElement[]\n\n public patchElement (element: TaroElement) {\n this.patchElementImpls?.forEach(fn => fn(element))\n }\n}\n","import { defaultReconciler, isArray } from '@tarojs/shared'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\n\nimport type { Container } from 'inversify'\n\nexport default function processPluginHooks (container: Container) {\n const keys = Object.keys(defaultReconciler)\n keys.forEach(key => {\n if (key in SERVICE_IDENTIFIER) {\n // is hooks\n const identifier = SERVICE_IDENTIFIER[key]\n const fn = defaultReconciler[key]\n\n if (isArray(fn)) {\n // is multi\n fn.forEach(item => container.bind(identifier).toFunction(item))\n } else {\n if (container.isBound(identifier)) {\n // 之前有绑定过,需要重新绑定以覆盖前者\n container.rebind(identifier).toFunction(fn)\n } else {\n container.bind(identifier).toFunction(fn)\n }\n }\n }\n })\n}\n","import { Container, interfaces } from 'inversify'\nimport { TaroNodeImpl } from '../dom-external/node-impl'\nimport { TaroElementImpl } from '../dom-external/element-impl'\nimport { TaroElement } from '../dom/element'\nimport { TaroText } from '../dom/text'\nimport { TaroDocument } from '../dom/document'\nimport { TaroRootElement } from '../dom/root'\nimport { FormElement } from '../dom/form'\nimport { ElementNames, InstanceFactory, InstanceNamedFactory } from '../interface'\nimport { store } from './store'\nimport { Hooks } from '../hooks'\nimport { DefaultHooksContainer } from './default-hooks'\nimport processPluginHooks from './plugin-hooks'\nimport {\n SID_TARO_ELEMENT,\n SID_TARO_ELEMENT_FACTORY,\n SID_TARO_TEXT,\n SID_TARO_TEXT_FACTORY,\n SID_TARO_NODE_IMPL,\n SID_TARO_ELEMENT_IMPL,\n SID_HOOKS\n} from '../constants/identifiers'\n\ninterface IbindOptions {\n name?: string\n single?: boolean\n}\n\nconst container = new Container()\n\nfunction bind<T> (sid: string, target, options: IbindOptions = {}) {\n type Res = interfaces.BindingInWhenOnSyntax<T> | interfaces.BindingWhenOnSyntax<T> | interfaces.BindingOnSyntax<T>\n let res: Res = container.bind<T>(sid).to(target)\n if (options.single) {\n res = (res as interfaces.BindingInWhenOnSyntax<T>).inSingletonScope()\n }\n if (options.name) {\n res = (res as interfaces.BindingInWhenOnSyntax<T> | interfaces.BindingWhenOnSyntax<T>).whenTargetNamed(options.name)\n }\n return res\n}\n\nif (process.env.TARO_ENV !== 'h5') {\n bind<TaroText>(SID_TARO_TEXT, TaroText)\n bind<TaroElement>(SID_TARO_ELEMENT, TaroElement, { name: ElementNames.Element })\n bind<TaroRootElement>(SID_TARO_ELEMENT, TaroRootElement, { name: ElementNames.RootElement })\n bind<FormElement>(SID_TARO_ELEMENT, FormElement, { name: ElementNames.FormElement })\n bind<TaroDocument>(SID_TARO_ELEMENT, TaroDocument, { name: ElementNames.Document, single: true })\n bind<TaroNodeImpl>(SID_TARO_NODE_IMPL, TaroNodeImpl, { single: true })\n bind<TaroElementImpl>(SID_TARO_ELEMENT_IMPL, TaroElementImpl, { single: true })\n\n container.bind<InstanceNamedFactory>(SID_TARO_ELEMENT_FACTORY).toFactory<TaroElement>((context: interfaces.Context) => {\n return (named: ElementNames) => (nodeName?: string) => {\n const el = context.container.getNamed<TaroElement>(SID_TARO_ELEMENT, named)\n if (nodeName) {\n el.nodeName = nodeName\n }\n el.tagName = el.nodeName.toUpperCase()\n return el\n }\n })\n container.bind<InstanceFactory<TaroText>>(SID_TARO_TEXT_FACTORY).toFactory<TaroText>((context: interfaces.Context) => {\n return (text: string) => {\n const textNode = context.container.get<TaroText>(SID_TARO_TEXT)\n textNode._value = text\n return textNode\n }\n })\n}\n\nbind<Hooks>(SID_HOOKS, Hooks, { single: true })\ncontainer.load(DefaultHooksContainer)\nprocessPluginHooks(container)\n\nstore.container = container\n\nexport default container\n","import { createEvent } from '../dom/event'\nimport { doc } from '../env'\nimport ioc_container from '../container'\nimport SERVICE_IDENTIFIER from '../constants/identifiers'\nimport { ElementNames, InstanceNamedFactory } from '../interface'\nimport {\n HTML,\n HEAD,\n BODY,\n APP,\n CONTAINER\n} from '../constants'\n\nimport type { TaroDocumentInstance } from '../interface'\n\nexport function createDocument () {\n /**\n * <document>\n * <html>\n * <head></head>\n * <body>\n * <container>\n * <app id=\"app\" />\n * </container>\n * </body>\n * </html>\n * </document>\n */\n const getElement = ioc_container.get<InstanceNamedFactory>(SERVICE_IDENTIFIER.TaroElementFactory)\n const doc = getElement(ElementNames.Document)() as TaroDocumentInstance\n const documentCreateElement = doc.createElement.bind(doc)\n const html = documentCreateElement(HTML)\n const head = documentCreateElement(HEAD)\n const body = documentCreateElement(BODY)\n const app = documentCreateElement(APP)\n app.id = APP\n const container = documentCreateElement(CONTAINER) // 多包一层主要为了兼容 vue\n\n doc.appendChild(html)\n html.appendChild(head)\n html.appendChild(body)\n body.appendChild(container)\n container.appendChild(app)\n\n doc.documentElement = html\n doc.head = head\n doc.body = body\n doc.createEvent = createEvent\n\n return doc\n}\n\nexport const document = process.env.TARO_ENV === 'h5'\n ? (doc as unknown) as TaroDocumentInstance\n : createDocument()\n","import { win } from '../env'\n\nconst machine = 'Macintosh'\nconst arch = 'Intel Mac OS X 10_14_5'\nconst engine = 'AppleWebKit/534.36 (KHTML, like Gecko) NodeJS/v4.1.0 Chrome/76.0.3809.132 Safari/534.36'\n\nconst msg = '(' + machine + '; ' + arch + ') ' + engine\n\nexport const navigator = process.env.TARO_ENV === 'h5' ? win.navigator : {\n appCodeName: 'Mozilla',\n appName: 'Netscape',\n appVersion: '5.0 ' + msg,\n cookieEnabled: true,\n mimeTypes: [],\n onLine: true,\n platform: 'MacIntel',\n plugins: [],\n product: 'Taro',\n productSub: '20030107',\n userAgent: 'Mozilla/5.0 ' + msg,\n vendor: 'Joyent',\n vendorSub: ''\n}\n","// https://github.com/myrne/performance-now\nexport let now\n\n(function () {\n let loadTime\n if ((typeof performance !== 'undefined' && performance !== null) && performance.now) {\n now = function () {\n return performance.now()\n }\n } else if (Date.now) {\n now = function () {\n return Date.now() - loadTime\n }\n loadTime = Date.now()\n } else {\n now = function () {\n return new Date().getTime() - loadTime\n }\n loadTime = new Date().getTime()\n }\n})()\n\nlet lastTime = 0\n\n// https://gist.github.com/paulirish/1579671\n// https://gist.github.com/jalbam/5fe05443270fa6d8136238ec72accbc0\nconst raf = typeof requestAnimationFrame !== 'undefined' && requestAnimationFrame !== null ? requestAnimationFrame : function (callback) {\n const _now = now()\n const nextTime = Math.max(lastTime + 16, _now) // First time will execute it immediately but barely noticeable and performance is gained.\n return setTimeout(function () { callback(lastTime = nextTime) }, nextTime - _now)\n}\n\nconst caf = typeof cancelAnimationFrame !== 'undefined' && cancelAnimationFrame !== null\n ? cancelAnimationFrame\n : function (seed) {\n // fix https://github.com/NervJS/taro/issues/7749\n clearTimeout(seed)\n }\n\nexport {\n raf,\n caf\n}\n","import type { TaroElement } from '../dom/element'\nimport type { Style } from '../dom/style'\n\nexport function getComputedStyle (element: TaroElement): Style {\n return element.style\n}\n","import { noop } from '@tarojs/shared'\nimport { navigator } from './navigator'\nimport { document } from './document'\nimport { win } from '../env'\nimport { raf, caf } from './raf'\nimport { getComputedStyle } from './getComputedStyle'\nimport { DATE } from '../constants'\n\nexport const window: any = process.env.TARO_ENV === 'h5' ? win : {\n navigator,\n document\n}\n\nif (process.env.TARO_ENV && process.env.TARO_ENV !== 'h5') {\n const globalProperties = [\n ...Object.getOwnPropertyNames(global || win),\n ...Object.getOwnPropertySymbols(global || win)\n ]\n\n globalProperties.forEach(property => {\n if (property === 'atob') return\n if (!Object.prototype.hasOwnProperty.call(window, property)) {\n window[property] = global[property]\n }\n })\n\n window.requestAnimationFrame = raf\n window.cancelAnimationFrame = caf\n window.getComputedStyle = getComputedStyle\n window.addEventListener = noop\n window.removeEventListener = noop\n if (!(DATE in window)) {\n window.Date = Date\n }\n window.setTimeout = function (cb, delay) {\n setTimeout(cb, delay)\n }\n window.clearTimeout = function (seed) {\n clearTimeout(seed)\n }\n\n document.defaultView = window\n}\n","import { AppInstance, PageInstance } from './dsl/instance'\n\nexport interface Router {\n params: Record<string, unknown>,\n path: string,\n onReady: string,\n onHide: string,\n onShow: string\n}\n\ninterface Current {\n app: AppInstance | null,\n router: Router | null,\n page: PageInstance | null,\n preloadData?: any\n}\n\nexport const Current: Current = {\n app: null,\n router: null,\n page: null\n}\n\nexport const getCurrentInstance = () => Current\n","import container from '../container'\nimport { getHooks } from '../container/store'\nimport { SID_EVENT_CENTER } from '../constants/identifiers'\n\n/* eslint-disable no-dupe-class-members */\ntype Callback1<T1> = (arg1: T1) => any;\ntype Callback2<T1, T2> = (arg1: T1, arg2: T2) => any;\ntype Callback3<T1, T2, T3> = (arg1: T1, arg2: T2, arg3: T3) => any;\ntype Callback4<T1, T2, T3, T4> = (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => any;\ntype Callback5<T1, T2, T3, T4, T5> = (arg1: T1, arg2: T2, arg3: T3,\n arg4: T4, arg5: T5) => any;\ntype Callback6Rest<T1, T2, T3, T4, T5, T6> = (arg1: T1, arg2: T2, arg3: T3,\n arg4: T4, arg5: T5, arg6: T6,\n ...rest: any[]) => any;\n\nexport class Events {\n private callbacks?: Record<string, unknown>\n static eventSplitter = /\\s+/\n\n constructor (opts?) {\n this.callbacks = opts?.callbacks ?? {}\n }\n\n on<T>(event: string, callback: Callback1<T>, context): this\n on<T1, T2>(event: string, callback: Callback2<T1, T2>, context): this\n on<T1, T2, T3>(event: string, callback: Callback3<T1, T2, T3>, context): this\n on<T1, T2, T3, T4>(event: string, callback: Callback4<T1, T2, T3, T4>, comtext): this\n on<T1, T2, T3, T4, T5>(event: string, callback: Callback5<T1, T2, T3, T4, T5>, context): this\n on<T1, T2, T3, T4, T5, T6>(event: string, callback: Callback6Rest<T1, T2, T3, T4, T5, T6>, context): this\n on (eventName, callback, context): this {\n let event, node, tail, list\n if (!callback) {\n return this\n }\n eventName = eventName.split(Events.eventSplitter)\n this.callbacks ||= {}\n const calls = this.callbacks\n while ((event = eventName.shift())) {\n list = calls[event]\n node = list ? list.tail : {}\n node.next = tail = {}\n node.context = context\n node.callback = callback\n calls[event] = {\n tail,\n next: list ? list.next : node\n }\n }\n return this\n }\n\n once (events, callback, context) {\n const wrapper = (...args) => {\n callback.apply(this, args)\n this.off(events, wrapper, context)\n }\n\n this.on(events, wrapper, context)\n\n return this\n }\n\n off (events, callback, context) {\n let event, calls, node, tail, cb, ctx\n if (!(calls = this.callbacks)) {\n return this\n }\n if (!(events || callback || context)) {\n delete this.callbacks\n return this\n }\n events = events ? events.split(Events.eventSplitter) : Object.keys(calls)\n while ((event = events.shift())) {\n node = calls[event]\n delete calls[event]\n if (!node || !(callback || context)) {\n continue\n }\n tail = node.tail\n while ((node = node.next) !== tail) {\n cb = node.callback\n ctx = node.context\n if ((callback && cb !== callback) || (context && ctx !== context)) {\n this.on(event, cb, ctx)\n }\n }\n }\n return this\n }\n\n trigger(event: string)\n trigger<T1>(event: string, arg: T1)\n trigger<T1, T2>(event: string, arg1: T1, arg2: T2)\n trigger<T1, T2, T3>(event: string, arg1: T1, arg2: T2, arg3: T3)\n trigger<T1, T2, T3, T4>(event: string, arg1: T1, arg2: T2, arg3: T3, arg4: T4)\n trigger<T1, T2, T3, T4, T5>(event: string, arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5)\n trigger<T1, T2, T3, T4, T5, T6>(event: string, arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5,\n arg6: T6, ...rest: any[])\n\n trigger (events) {\n let event, node, calls, tail\n if (!(calls = this.callbacks)) {\n return this\n }\n events = events.split(Events.eventSplitter)\n const rest = [].slice.call(arguments, 1)\n while ((event = events.shift())) {\n if ((node = calls[event])) {\n tail = node.tail\n while ((node = node.next) !== tail) {\n node.callback.apply(node.context || this, rest)\n }\n }\n }\n return this\n }\n}\n\nexport type EventsType = typeof Events\n\nconst eventCenter = getHooks().getEventCenter(Events)\ncontainer.bind<Events>(SID_EVENT_CENTER).toConstantValue(eventCenter)\n\nexport { eventCenter }\n","/* eslint-disable dot-notation */\nimport { isFunction, EMPTY_OBJ, ensure, Shortcuts, isUndefined, isArray } from '@tarojs/shared'\nimport { getHooks } from '../container/store'\nimport { eventHandler } from '../dom/event'\nimport { Current } from '../current'\nimport { document } from '../bom/document'\nimport { incrementId } from '../utils'\nimport { perf } from '../perf'\nimport { eventCenter } from '../emitter/emitter'\nimport { raf } from '../bom/raf'\nimport { PAGE_INIT, CUSTOM_WRAPPER, VIEW, ON_READY, ON_SHOW, ON_HIDE, ON_LOAD, OPTIONS, EXTERNAL_CLASSES, BEHAVIORS } from '../constants'\n\nimport type { PageConfig } from '@tarojs/taro'\nimport type { Instance, PageInstance, PageProps } from './instance'\nimport type { Func, MpInstance } from '../interface'\nimport type { TaroRootElement } from '../dom/root'\n\nconst instances = new Map<string, Instance>()\nconst pageId = incrementId()\n\nexport function injectPageInstance (inst: Instance<PageProps>, id: string) {\n getHooks().mergePageInstance?.(instances.get(id), inst)\n instances.set(id, inst)\n}\n\nexport function getPageInstance (id: string): Instance | undefined {\n return instances.get(id)\n}\n\nexport function addLeadingSlash (path?: string): string {\n if (path == null) {\n return ''\n }\n return path.charAt(0) === '/' ? path : '/' + path\n}\n\nexport function safeExecute (path: string, lifecycle: string, ...args: unknown[]) {\n const instance = instances.get(path)\n\n if (instance == null) {\n return\n }\n\n const func = getHooks().getLifecycle(instance, lifecycle as keyof PageInstance)\n\n if (isArray(func)) {\n const res = func.map(fn => fn.apply(instance, args))\n return res[0]\n }\n\n if (!isFunction(func)) {\n return\n }\n\n return func.apply(instance, args)\n}\n\nexport function stringify (obj?: Record<string, unknown>) {\n if (obj == null) {\n return ''\n }\n const path = Object.keys(obj).map((key) => {\n return key + '=' + obj[key]\n }).join('&')\n return path === '' ? path : '?' + path\n}\n\nexport function getPath (id: string, options?: Record<string, unknown>): string {\n let path = id\n if (process.env.TARO_ENV !== 'h5') {\n path = id + stringify(options)\n }\n return path\n}\n\nexport function getOnReadyEventKey (path: string) {\n return path + '.' + ON_READY\n}\n\nexport function getOnShowEventKey (path: string) {\n return path + '.' + ON_SHOW\n}\n\nexport function getOnHideEventKey (path: string) {\n return path + '.' + ON_HIDE\n}\n\nexport function createPageConfig (component: any, pageName?: string, data?: Record<string, unknown>, pageConfig?: PageConfig) {\n // 小程序 Page 构造器是一个傲娇小公主,不能把复杂的对象挂载到参数上\n const id = pageName ?? `taro_page_${pageId()}`\n const hooks = getHooks()\n const [\n ONLOAD,\n ONUNLOAD,\n ONREADY,\n ONSHOW,\n ONHIDE,\n LIFECYCLES\n ] = hooks.getMiniLifecycleImpl().page\n let pageElement: TaroRootElement | null = null\n let unmounting = false\n let prepareMountList: (() => void)[] = []\n\n function setCurrentRouter (page: MpInstance) {\n const router = process.env.TARO_ENV === 'h5' ? page.$taroPath : page.route || page.__route__ || page.$taroPath\n Current.router = {\n params: page.$taroParams!,\n path: addLeadingSlash(router),\n onReady: getOnReadyEventKey(id),\n onShow: getOnShowEventKey(id),\n onHide: getOnHideEventKey(id)\n }\n }\n let loadResolver: (...args: unknown[]) => void\n let hasLoaded: Promise<void>\n const config: PageInstance = {\n [ONLOAD] (this: MpInstance, options, cb?: Func) {\n hasLoaded = new Promise(resolve => { loadResolver = resolve })\n\n perf.start(PAGE_INIT)\n\n Current.page = this as any\n this.config = pageConfig || {}\n options.$taroTimestamp = Date.now()\n\n // this.$taroPath 是页面唯一标识,不可变,因此页面参数 options 也不可变\n this.$taroPath = getPath(id, options)\n const $taroPath = this.$taroPath\n // this.$taroParams 作为暴露给开发者的页面参数对象,可以被随意修改\n if (this.$taroParams == null) {\n this.$taroParams = Object.assign({}, options)\n }\n\n setCurrentRouter(this)\n\n const mount = () => {\n Current.app!.mount!(component, $taroPath, () => {\n pageElement = document.getElementById<TaroRootElement>($taroPath)\n\n ensure(pageElement !== null, '没有找到页面实例。')\n safeExecute($taroPath, ON_LOAD, this.$taroParams)\n loadResolver()\n if (process.env.TARO_ENV !== 'h5') {\n pageElement.ctx = this\n pageElement.performUpdate(true, cb)\n } else {\n isFunction(cb) && cb()\n }\n })\n }\n if (unmounting) {\n prepareMountList.push(mount)\n } else {\n mount()\n }\n },\n [ONUNLOAD] () {\n const $taroPath = this.$taroPath\n unmounting = true\n Current.app!.unmount!($taroPath, () => {\n unmounting = false\n instances.delete($taroPath)\n if (pageElement) {\n pageElement.ctx = null\n }\n if (prepareMountList.length) {\n prepareMountList.forEach(fn => fn())\n prepareMountList = []\n }\n })\n },\n [ONREADY] () {\n // 触发生命周期\n safeExecute(this.$taroPath, ON_READY)\n // 通过事件触发子组件的生命周期\n raf(() => eventCenter.trigger(getOnReadyEventKey(id)))\n this.onReady.called = true\n },\n [ONSHOW] () {\n hasLoaded.then(() => {\n // 设置 Current 的 page 和 router\n Current.page = this as any\n setCurrentRouter(this)\n // 触发生命周期\n safeExecute(this.$taroPath, ON_SHOW)\n // 通过事件触发子组件的生命周期\n raf(() => eventCenter.trigger(getOnShowEventKey(id)))\n })\n },\n [ONHIDE] () {\n // 设置 Current 的 page 和 router\n if (Current.page === this) {\n Current.page = null\n Current.router = null\n }\n // 触发生命周期\n safeExecute(this.$taroPath, ON_HIDE)\n // 通过事件触发子组件的生命周期\n eventCenter.trigger(getOnHideEventKey(id))\n }\n }\n\n LIFECYCLES.forEach((lifecycle) => {\n config[lifecycle] = function () {\n return safeExecute(this.$taroPath, lifecycle, ...arguments)\n }\n })\n\n // onShareAppMessage 和 onShareTimeline 一样,会影响小程序右上方按钮的选项,因此不能默认注册。\n if (component.onShareAppMessage ||\n component.prototype?.onShareAppMessage ||\n component.enableShareAppMessage) {\n config.onShareAppMessage = function (options) {\n const target = options?.target\n if (target) {\n const id = target.id\n const element = document.getElementById(id)\n if (element) {\n target!.dataset = element.dataset\n }\n }\n return safeExecute(this.$taroPath, 'onShareAppMessage', options)\n }\n }\n if (component.onShareTimeline ||\n component.prototype?.onShareTimeline ||\n component.enableShareTimeline) {\n config.onShareTimeline = function () {\n return safeExecute(this.$taroPath, 'onShareTimeline')\n }\n }\n\n config.eh = eventHandler\n\n if (!isUndefined(data)) {\n config.data = data\n }\n\n if (process.env.TARO_ENV === 'h5') {\n config.path = id\n }\n\n hooks.modifyPageObject?.(config)\n\n return config\n}\n\nexport function createComponentConfig (component: React.ComponentClass, componentName?: string, data?: Record<string, unknown>) {\n const id = componentName ?? `taro_component_${pageId()}`\n let componentElement: TaroRootElement | null = null\n\n const config: any = {\n attached () {\n perf.start(PAGE_INIT)\n const path = getPath(id, { id: this.getPageId?.() || pageId() })\n Current.app!.mount!(component, path, () => {\n componentElement = document.getElementById<TaroRootElement>(path)\n ensure(componentElement !== null, '没有找到组件实例。')\n safeExecute(path, ON_LOAD)\n if (process.env.TARO_ENV !== 'h5') {\n componentElement.ctx = this\n componentElement.performUpdate(true)\n }\n })\n },\n detached () {\n const path = getPath(id, { id: this.getPageId() })\n Current.app!.unmount!(path, () => {\n instances.delete(path)\n if (componentElement) {\n componentElement.ctx = null\n }\n })\n },\n methods: {\n eh: eventHandler\n }\n }\n\n if (!isUndefined(data)) {\n config.data = data\n }\n\n [OPTIONS, EXTERNAL_CLASSES, BEHAVIORS].forEach(key => {\n config[key] = component[key] ?? EMPTY_OBJ\n })\n\n return config\n}\n\nexport function createRecursiveComponentConfig (componentName?: string) {\n return {\n properties: {\n i: {\n type: Object,\n value: {\n [Shortcuts.NodeName]: VIEW\n }\n },\n l: {\n type: String,\n value: ''\n }\n },\n options: {\n addGlobalClass: true,\n virtualHost: componentName !== CUSTOM_WRAPPER\n },\n methods: {\n eh: eventHandler\n }\n }\n}\n","import { Current } from './current'\nimport { getPath } from './dsl/common'\nimport { TaroRootElement } from './dom/root'\nimport { document } from './bom/document'\n\nimport type { Func } from './interface'\n\nfunction removeLeadingSlash (path?: string) {\n if (path == null) {\n return ''\n }\n return path.charAt(0) === '/' ? path.slice(1) : path\n}\n\nexport const nextTick = (cb: Func, ctx?: Record<string, any>) => {\n const router = Current.router\n const timerFunc = () => {\n setTimeout(function () {\n ctx ? cb.call(ctx) : cb()\n }, 1)\n }\n\n if (router !== null) {\n let pageElement: TaroRootElement | null = null\n const path = getPath(removeLeadingSlash(router.path), router.params)\n pageElement = document.getElementById<TaroRootElement>(path)\n if (pageElement?.pendingUpdate) {\n if (process.env.TARO_ENV === 'h5') {\n // eslint-disable-next-line dot-notation\n pageElement.firstChild?.['componentOnReady']?.().then(() => {\n timerFunc()\n }) ?? timerFunc()\n } else {\n pageElement.enqueueUpdateCallback(cb, ctx)\n }\n } else {\n timerFunc()\n }\n } else {\n timerFunc()\n }\n}\n"],"names":["ioc_container","container","document","window"],"mappings":"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"}