@tarojs/runtime 4.0.0-beta.61 → 4.0.0-beta.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bom/URLSearchParams.js.map +1 -1
- package/dist/dom/anchor-element.js.map +1 -1
- package/dist/dom/class-list.js.map +1 -1
- package/dist/dom/form.js.map +1 -1
- package/dist/dom-external/node.js +1 -0
- package/dist/dom-external/node.js.map +1 -1
- package/dist/dsl/common.js +6 -1
- package/dist/dsl/common.js.map +1 -1
- package/dist/hydrate.js +9 -2
- package/dist/hydrate.js.map +1 -1
- package/dist/index.cjs.d.ts +2 -0
- package/dist/index.cjs.js +15 -2
- package/dist/index.cjs.js.map +1 -1
- package/dist/instance-4c64b022.d.ts +2 -0
- package/dist/runtime.esm.d.ts +2 -0
- package/dist/runtime.esm.js +16 -3
- package/dist/runtime.esm.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"URLSearchParams.js","sources":["../../src/bom/URLSearchParams.ts"],"sourcesContent":["import { isArray } from '@tarojs/shared'\n\nimport env from '../env'\n\nconst findReg = /[!'()~]|%20|%00/g\nconst plusReg = /\\+/g\nconst replaceCharMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00',\n}\n\nfunction replacer (match: string) {\n return replaceCharMap[match]\n}\n\nfunction appendTo (dict: Record<string, string[]>, name: string, value: string) {\n const res = isArray(value) ? value.join(',') : value\n if (name in dict) dict[name].push(res)\n else dict[name] = [res]\n}\n\nfunction addEach (value: string, key: string) {\n appendTo(this, key, value)\n}\n\nfunction decode (str: string) {\n return decodeURIComponent(str.replace(plusReg, ' '))\n}\n\nfunction encode (str: string) {\n return encodeURIComponent(str).replace(findReg, replacer)\n}\n\nexport const URLSearchParams = process.env.TARO_PLATFORM === 'web' ? env.window.URLSearchParams : class {\n #dict = Object.create(null)\n\n constructor (query) {\n query ??= ''\n\n const dict = this.#dict\n\n if (typeof query === 'string') {\n if (query.charAt(0) === '?') {\n query = query.slice(1)\n }\n for (let pairs = query.split('&'), i = 0, length = pairs.length; i < length; i++) {\n const value = pairs[i]\n const index = value.indexOf('=')\n if (index > -1) {\n appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)))\n } else if (value.length) {\n appendTo(dict, decode(value), '')\n }\n }\n } else {\n if (isArray(query)) {\n for (let i = 0, length = query.length; i < length; i++) {\n const value = query[i]\n appendTo(dict, value[0], value[1])\n }\n } else if (query.forEach) {\n query.forEach(addEach, dict)\n } else {\n for (const key in query) {\n appendTo(dict, key, query[key])\n }\n }\n }\n }\n\n append (name: string, value: string) {\n appendTo(this.#dict, name, value)\n }\n\n delete (name: string) {\n delete this.#dict[name]\n }\n\n get (name: string) {\n const dict = this.#dict\n return name in dict ? dict[name][0] : null\n }\n\n getAll (name: string) {\n const dict = this.#dict\n return name in dict ? dict[name].slice(0) : []\n }\n\n has (name: string) {\n return name in this.#dict\n }\n\n keys (){\n return Object.keys(this.#dict)\n }\n\n set (name: string, value: string) {\n this.#dict[name] = ['' + value]\n }\n\n forEach (callback, thisArg) {\n const dict = this.#dict\n Object.getOwnPropertyNames(dict).forEach(function (name) {\n dict[name].forEach(function (value: string) {\n callback.call(thisArg, value, name, this)\n }, this)\n }, this)\n }\n\n toJSON () {\n return {}\n }\n\n toString () {\n const dict = this.#dict\n const query: any[] = []\n for (const key in dict) {\n const name = encode(key)\n for (let i = 0, value = dict[key]; i < value.length; i++) {\n query.push(name + '=' + encode(value[i]))\n }\n }\n return query.join('&')\n }\n}\n"],"names":[],"mappings":";;;;;AAIA,MAAM,OAAO,GAAG,kBAAkB,CAAA;AAClC,MAAM,OAAO,GAAG,KAAK,CAAA;AACrB,MAAM,cAAc,GAAG;AACrB,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,KAAK,EAAE,MAAM;CACd,CAAA;AAED,SAAS,QAAQ,CAAE,KAAa,EAAA;AAC9B,IAAA,OAAO,cAAc,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED,SAAS,QAAQ,CAAE,IAA8B,EAAE,IAAY,EAAE,KAAa,EAAA;AAC5E,IAAA,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IACpD,IAAI,IAAI,IAAI,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACzB,CAAC;AAED,SAAS,OAAO,CAAE,KAAa,EAAE,GAAW,EAAA;AAC1C,IAAA,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAC5B,CAAC;AAED,SAAS,MAAM,CAAE,GAAW,EAAA;IAC1B,OAAO,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;AACtD,CAAC;AAED,SAAS,MAAM,CAAE,GAAW,EAAA;IAC1B,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AAC3D,CAAC;MAEY,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,IAAG,EAAA,GAAA,MAAA;AAGhG,QAAA,WAAA,CAAa,KAAK,EAAA;AAFlB,YAAA,KAAA,CAAA,GAAA,CAAA,IAAA,EAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,CAAA;YAGzB,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,KAAA,CAAA,GAAA,KAAK,IAAL,KAAK,GAAK,EAAE,CAAA,CAAA;AAEZ,YAAA,MAAM,IAAI,GAAG,sBAAA,CAAA,IAAI,aAAM,CAAA;AAEvB,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC3B,oBAAA,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACvB,iBAAA;gBACD,KAAK,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAChF,oBAAA,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;oBACtB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;AAChC,oBAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;wBACd,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9E,qBAAA;yBAAM,IAAI,KAAK,CAAC,MAAM,EAAE;wBACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;AAClC,qBAAA;AACF,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;AAClB,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACtD,wBAAA,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;AACtB,wBAAA,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACnC,qBAAA;AACF,iBAAA;qBAAM,IAAI,KAAK,CAAC,OAAO,EAAE;AACxB,oBAAA,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AAC7B,iBAAA;AAAM,qBAAA;AACL,oBAAA,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;wBACvB,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;AAChC,qBAAA;AACF,iBAAA;AACF,aAAA;SACF;QAED,MAAM,CAAE,IAAY,EAAE,KAAa,EAAA;YACjC,QAAQ,CAAC,uBAAA,IAAI,EAAA,KAAA,EAAA,GAAA,CAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;SAClC;AAED,QAAA,MAAM,CAAE,IAAY,EAAA;AAClB,YAAA,OAAO,uBAAA,IAAI,EAAA,KAAA,EAAA,GAAA,CAAM,CAAC,IAAI,CAAC,CAAA;SACxB;AAED,QAAA,GAAG,CAAE,IAAY,EAAA;AACf,YAAA,MAAM,IAAI,GAAG,sBAAA,CAAA,IAAI,aAAM,CAAA;AACvB,YAAA,OAAO,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;SAC3C;AAED,QAAA,MAAM,CAAE,IAAY,EAAA;AAClB,YAAA,MAAM,IAAI,GAAG,sBAAA,CAAA,IAAI,aAAM,CAAA;AACvB,YAAA,OAAO,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;SAC/C;AAED,QAAA,GAAG,CAAE,IAAY,EAAA;AACf,YAAA,OAAO,IAAI,IAAI,sBAAA,CAAA,IAAI,aAAM,CAAA;SAC1B;QAED,IAAI,GAAA;YACF,OAAO,MAAM,CAAC,IAAI,CAAC,uBAAA,IAAI,EAAA,KAAA,EAAA,GAAA,CAAM,CAAC,CAAA;SAC/B;QAED,GAAG,CAAE,IAAY,EAAE,KAAa,EAAA;YAC9B,sBAAA,CAAA,IAAI,EAAM,KAAA,EAAA,GAAA,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,CAAA;SAChC;QAED,OAAO,CAAE,QAAQ,EAAE,OAAO,EAAA;AACxB,YAAA,MAAM,IAAI,GAAG,sBAAA,CAAA,IAAI,aAAM,CAAA;YACvB,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAA;AACrD,gBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,KAAa,EAAA;oBACxC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;iBAC1C,EAAE,IAAI,CAAC,CAAA;aACT,EAAE,IAAI,CAAC,CAAA;SACT;QAED,MAAM,GAAA;AACJ,YAAA,OAAO,EAAE,CAAA;SACV;QAED,QAAQ,GAAA;AACN,YAAA,MAAM,IAAI,GAAG,sBAAA,CAAA,IAAI,aAAM,CAAA;YACvB,MAAM,KAAK,GAAU,EAAE,CAAA;AACvB,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACtB,gBAAA,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;gBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxD,oBAAA,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1C,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SACvB;AACF,KAAA;;;;;;"}
|
|
1
|
+
{"version":3,"file":"URLSearchParams.js","sources":["../../src/bom/URLSearchParams.ts"],"sourcesContent":["import { isArray } from '@tarojs/shared'\n\nimport env from '../env'\n\nconst findReg = /[!'()~]|%20|%00/g\nconst plusReg = /\\+/g\nconst replaceCharMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00',\n}\n\nfunction replacer (match: string) {\n return replaceCharMap[match]\n}\n\nfunction appendTo (dict: Record<string, string[]>, name: string, value: string) {\n const res = isArray(value) ? value.join(',') : value\n if (name in dict) dict[name].push(res)\n else dict[name] = [res]\n}\n\nfunction addEach (value: string, key: string) {\n appendTo(this, key, value)\n}\n\nfunction decode (str: string) {\n return decodeURIComponent(str.replace(plusReg, ' '))\n}\n\nfunction encode (str: string) {\n return encodeURIComponent(str).replace(findReg, replacer)\n}\n\nexport const URLSearchParams = process.env.TARO_PLATFORM === 'web' ? env.window.URLSearchParams : class {\n #dict = Object.create(null)\n\n constructor (query) {\n query ??= ''\n\n const dict = this.#dict\n\n if (typeof query === 'string') {\n if (query.charAt(0) === '?') {\n query = query.slice(1)\n }\n for (let pairs = query.split('&'), i = 0, length = pairs.length; i < length; i++) {\n const value = pairs[i]\n const index = value.indexOf('=')\n if (index > -1) {\n appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)))\n } else if (value.length) {\n appendTo(dict, decode(value), '')\n }\n }\n } else {\n if (isArray(query)) {\n for (let i = 0, length = query.length; i < length; i++) {\n const value = query[i]\n appendTo(dict, value[0], value[1])\n }\n } else if (query.forEach) {\n query.forEach(addEach, dict)\n } else {\n for (const key in query) {\n appendTo(dict, key, query[key])\n }\n }\n }\n }\n\n append (name: string, value: string) {\n appendTo(this.#dict, name, value)\n }\n\n delete (name: string) {\n delete this.#dict[name]\n }\n\n get (name: string) {\n const dict = this.#dict\n return name in dict ? dict[name][0] : null\n }\n\n getAll (name: string) {\n const dict = this.#dict\n return name in dict ? dict[name].slice(0) : []\n }\n\n has (name: string) {\n return name in this.#dict\n }\n\n keys () {\n return Object.keys(this.#dict)\n }\n\n set (name: string, value: string) {\n this.#dict[name] = ['' + value]\n }\n\n forEach (callback, thisArg) {\n const dict = this.#dict\n Object.getOwnPropertyNames(dict).forEach(function (name) {\n dict[name].forEach(function (value: string) {\n callback.call(thisArg, value, name, this)\n }, this)\n }, this)\n }\n\n toJSON () {\n return {}\n }\n\n toString () {\n const dict = this.#dict\n const query: any[] = []\n for (const key in dict) {\n const name = encode(key)\n for (let i = 0, value = dict[key]; i < value.length; i++) {\n query.push(name + '=' + encode(value[i]))\n }\n }\n return query.join('&')\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor-element.js","sources":["../../src/dom/anchor-element.ts"],"sourcesContent":["import { parseUrl } from '../bom/URL'\nimport { TaroElement } from './element'\n\nconst enum AnchorElementAttrs {\n HREF = 'href',\n PROTOCOL = 'protocol',\n HOST = 'host',\n SEARCH = 'search',\n HASH = 'hash',\n HOSTNAME = 'hostname',\n PORT = 'port',\n PATHNAME = 'pathname'\n}\n\nexport class AnchorElement extends TaroElement {\n public get href () {\n return this.props[AnchorElementAttrs.HREF] ?? ''\n }\n\n public set href (val: string) {\n this.setAttribute(AnchorElementAttrs.HREF, val)\n }\n\n get protocol () {\n return this.props[AnchorElementAttrs.PROTOCOL] ?? ''\n }\n\n get host () {\n return this.props[AnchorElementAttrs.HOST] ?? ''\n }\n\n get search () {\n return this.props[AnchorElementAttrs.SEARCH] ?? ''\n }\n\n get hash () {\n return this.props[AnchorElementAttrs.HASH] ?? ''\n }\n\n get hostname () {\n return this.props[AnchorElementAttrs.HOSTNAME] ?? ''\n }\n\n get port () {\n return this.props[AnchorElementAttrs.PORT] ?? ''\n }\n\n get pathname () {\n return this.props[AnchorElementAttrs.PATHNAME] ?? ''\n }\n\n public setAttribute (qualifiedName: string, value: any): void {\n if (qualifiedName === AnchorElementAttrs.HREF) {\n const willSetAttr = parseUrl(value)\n for (const k in willSetAttr) {\n super.setAttribute(k, willSetAttr[k])\n }\n } else {\n super.setAttribute(qualifiedName, value)\n }\n }\n
|
|
1
|
+
{"version":3,"file":"anchor-element.js","sources":["../../src/dom/anchor-element.ts"],"sourcesContent":["import { parseUrl } from '../bom/URL'\nimport { TaroElement } from './element'\n\nconst enum AnchorElementAttrs {\n HREF = 'href',\n PROTOCOL = 'protocol',\n HOST = 'host',\n SEARCH = 'search',\n HASH = 'hash',\n HOSTNAME = 'hostname',\n PORT = 'port',\n PATHNAME = 'pathname'\n}\n\nexport class AnchorElement extends TaroElement {\n public get href () {\n return this.props[AnchorElementAttrs.HREF] ?? ''\n }\n\n public set href (val: string) {\n this.setAttribute(AnchorElementAttrs.HREF, val)\n }\n\n get protocol () {\n return this.props[AnchorElementAttrs.PROTOCOL] ?? ''\n }\n\n get host () {\n return this.props[AnchorElementAttrs.HOST] ?? ''\n }\n\n get search () {\n return this.props[AnchorElementAttrs.SEARCH] ?? ''\n }\n\n get hash () {\n return this.props[AnchorElementAttrs.HASH] ?? ''\n }\n\n get hostname () {\n return this.props[AnchorElementAttrs.HOSTNAME] ?? ''\n }\n\n get port () {\n return this.props[AnchorElementAttrs.PORT] ?? ''\n }\n\n get pathname () {\n return this.props[AnchorElementAttrs.PATHNAME] ?? ''\n }\n\n public setAttribute (qualifiedName: string, value: any): void {\n if (qualifiedName === AnchorElementAttrs.HREF) {\n const willSetAttr = parseUrl(value)\n for (const k in willSetAttr) {\n super.setAttribute(k, willSetAttr[k])\n }\n } else {\n super.setAttribute(qualifiedName, value)\n }\n }\n}\n"],"names":[],"mappings":";;;AAcM,MAAO,aAAc,SAAQ,WAAW,CAAA;AAC5C,IAAA,IAAW,IAAI,GAAA;;AACb,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAAyB,MAAA,+BAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACjD;IAED,IAAW,IAAI,CAAE,GAAW,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,CAA0B,MAAA,gCAAA,GAAG,CAAC,CAAA;KAChD;AAED,IAAA,IAAI,QAAQ,GAAA;;AACV,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAA6B,UAAA,mCAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACrD;AAED,IAAA,IAAI,IAAI,GAAA;;AACN,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAAyB,MAAA,+BAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACjD;AAED,IAAA,IAAI,MAAM,GAAA;;AACR,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAA2B,QAAA,iCAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACnD;AAED,IAAA,IAAI,IAAI,GAAA;;AACN,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAAyB,MAAA,+BAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACjD;AAED,IAAA,IAAI,QAAQ,GAAA;;AACV,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAA6B,UAAA,mCAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACrD;AAED,IAAA,IAAI,IAAI,GAAA;;AACN,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAAyB,MAAA,+BAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACjD;AAED,IAAA,IAAI,QAAQ,GAAA;;AACV,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAA6B,UAAA,mCAAA,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACrD;IAEM,YAAY,CAAE,aAAqB,EAAE,KAAU,EAAA;QACpD,IAAI,aAAa,2CAA8B;AAC7C,YAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;AACnC,YAAA,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE;gBAC3B,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;AACtC,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;AACzC,SAAA;KACF;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-list.js","sources":["../../src/dom/class-list.ts"],"sourcesContent":["import type { TaroElement } from './element'\n\nexport class ClassList {\n private el: TaroElement\n\n private tokenList: string[] = []\n\n constructor (className: string, el: TaroElement) {\n this.el = el\n className.trim().split(/\\s+/).forEach(token => this.tokenList.push(token))\n }\n\n public get value () {\n return this.toString()\n }\n\n public get length () {\n return this.tokenList.length\n }\n\n add () {\n let index = 0\n let updated = false\n\n const tokens = arguments\n const length = tokens.length\n const tokenList = this.tokenList\n\n do {\n const token: string = tokens[index]\n\n if (this.checkTokenIsValid(token) && !~tokenList.indexOf(token)) {\n tokenList.push(token)\n\n updated = true\n }\n } while (++index < length)\n\n if (updated) {\n this._update()\n }\n }\n\n remove () {\n let i = 0\n let updated = false\n\n const tokens = arguments\n const length = tokens.length\n const tokenList = this.tokenList\n\n do {\n const token = tokens[i] + ''\n\n if (!this.checkTokenIsValid(token)) continue\n\n const index = tokenList.indexOf(token)\n\n if (~tokenList.indexOf(token)) {\n tokenList.splice(index, 1)\n\n updated = true\n }\n } while (++i < length)\n\n if (updated) {\n this._update()\n }\n }\n\n contains (token: string) {\n if (!this.checkTokenIsValid(token)) return false\n\n return !!~this.tokenList.indexOf(token)\n }\n\n toggle (token: string, force: boolean) {\n const result = this.contains(token)\n const method = result ? force !== true && 'remove' : force !== false && 'add'\n\n if (method) {\n // @ts-ignore\n this[method](token)\n }\n\n if (force === true || force === false) {\n return force\n } else {\n return !result\n }\n }\n\n replace (token: string, replacement_token: string) {\n if (!this.checkTokenIsValid(token) || !this.checkTokenIsValid(replacement_token)) return\n\n const index = this.tokenList.indexOf(token)\n\n if (~index) {\n this.tokenList.splice(index, 1, replacement_token)\n
|
|
1
|
+
{"version":3,"file":"class-list.js","sources":["../../src/dom/class-list.ts"],"sourcesContent":["import type { TaroElement } from './element'\n\nexport class ClassList {\n private el: TaroElement\n\n private tokenList: string[] = []\n\n constructor (className: string, el: TaroElement) {\n this.el = el\n className.trim().split(/\\s+/).forEach(token => this.tokenList.push(token))\n }\n\n public get value () {\n return this.toString()\n }\n\n public get length () {\n return this.tokenList.length\n }\n\n add () {\n let index = 0\n let updated = false\n\n const tokens = arguments\n const length = tokens.length\n const tokenList = this.tokenList\n\n do {\n const token: string = tokens[index]\n\n if (this.checkTokenIsValid(token) && !~tokenList.indexOf(token)) {\n tokenList.push(token)\n\n updated = true\n }\n } while (++index < length)\n\n if (updated) {\n this._update()\n }\n }\n\n remove () {\n let i = 0\n let updated = false\n\n const tokens = arguments\n const length = tokens.length\n const tokenList = this.tokenList\n\n do {\n const token = tokens[i] + ''\n\n if (!this.checkTokenIsValid(token)) continue\n\n const index = tokenList.indexOf(token)\n\n if (~tokenList.indexOf(token)) {\n tokenList.splice(index, 1)\n\n updated = true\n }\n } while (++i < length)\n\n if (updated) {\n this._update()\n }\n }\n\n contains (token: string) {\n if (!this.checkTokenIsValid(token)) return false\n\n return !!~this.tokenList.indexOf(token)\n }\n\n toggle (token: string, force: boolean) {\n const result = this.contains(token)\n const method = result ? force !== true && 'remove' : force !== false && 'add'\n\n if (method) {\n // @ts-ignore\n this[method](token)\n }\n\n if (force === true || force === false) {\n return force\n } else {\n return !result\n }\n }\n\n replace (token: string, replacement_token: string) {\n if (!this.checkTokenIsValid(token) || !this.checkTokenIsValid(replacement_token)) return\n\n const index = this.tokenList.indexOf(token)\n\n if (~index) {\n this.tokenList.splice(index, 1, replacement_token)\n this._update()\n }\n }\n\n toString () {\n return this.tokenList.filter(v => v !== '').join(' ')\n }\n\n private checkTokenIsValid (token: string) {\n if (token === '' || /\\s/.test(token)) return false\n\n return true\n }\n\n private _update () {\n this.el.className = this.value\n }\n}\n"],"names":[],"mappings":"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"}
|
package/dist/dom/form.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.js","sources":["../../src/dom/form.ts"],"sourcesContent":["import {\n CHANGE,\n INPUT,\n TYPE,\n VALUE
|
|
1
|
+
{"version":3,"file":"form.js","sources":["../../src/dom/form.ts"],"sourcesContent":["import {\n CHANGE,\n INPUT,\n TYPE,\n VALUE\n} from '../constants'\nimport { TaroElement } from './element'\n\nimport type { TaroEvent } from './event'\n\nexport class FormElement extends TaroElement {\n public get type () {\n return this.props[TYPE] ?? ''\n }\n\n public set type (val: string) {\n this.setAttribute(TYPE, val)\n }\n\n public get value () {\n // eslint-disable-next-line dot-notation\n const val = this.props[VALUE]\n return val == null ? '' : val\n }\n\n public set value (val: string | boolean | number | any[]) {\n this.setAttribute(VALUE, val)\n }\n\n public dispatchEvent (event: TaroEvent) {\n if (event.mpEvent) {\n const val = event.mpEvent.detail.value\n if (event.type === CHANGE) {\n this.props.value = val as string\n } else if (event.type === INPUT) {\n // Web 规范中表单组件的 value 应该跟着输入改变\n // 只是改 this.props.value 的话不会进行 setData,因此这里修改 this.value。\n // 只测试了 React、Vue、Vue3 input 组件的 onInput 事件,onChange 事件不确定有没有副作用,所以暂不修改。\n this.value = val as string\n }\n }\n\n return super.dispatchEvent(event)\n }\n}\n"],"names":[],"mappings":";;;AAUM,MAAO,WAAY,SAAQ,WAAW,CAAA;AAC1C,IAAA,IAAW,IAAI,GAAA;;QACb,OAAO,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAA;KAC9B;IAED,IAAW,IAAI,CAAE,GAAW,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;KAC7B;AAED,IAAA,IAAW,KAAK,GAAA;;QAEd,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC7B,OAAO,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,CAAA;KAC9B;IAED,IAAW,KAAK,CAAE,GAAsC,EAAA;AACtD,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;KAC9B;AAEM,IAAA,aAAa,CAAE,KAAgB,EAAA;QACpC,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAA;AACtC,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AACzB,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAa,CAAA;AACjC,aAAA;AAAM,iBAAA,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;;;;AAI/B,gBAAA,IAAI,CAAC,KAAK,GAAG,GAAa,CAAA;AAC3B,aAAA;AACF,SAAA;AAED,QAAA,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;KAClC;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sources":["../../src/dom-external/node.ts"],"sourcesContent":["import { DATASET, OBJECT, PROPS, STYLE } from '../constants'\nimport { NodeType } from '../dom/node_types'\nimport { parser } from '../dom-external/inner-html/parser'\n\nimport type { TaroNode } from '../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 insertAdjacentHTML (\n this: TaroNode,\n position: IPosition,\n html: string\n) {\n const parsedNodes = parser(html, this.ownerDocument)\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, isDeep = false) {\n const document = this.ownerDocument\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"],"names":[],"mappings":";;;AAQA;;;AAGG;AACa,SAAA,kBAAkB,CAEhC,QAAmB,EACnB,IAAY,EAAA;;IAEZ,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AAEpD,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAA,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;AAExB,QAAA,QAAQ,QAAQ;AACd,YAAA,KAAK,aAAa;gBAChB,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;gBACtC,MAAK;AACP,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,oBAAA,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;AACzC,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;AACpB,iBAAA;gBACD,MAAK;AACP,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;gBACnB,MAAK;AACP,YAAA,KAAK,UAAU;gBACb,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,CAAC,CAAC,CAAC,CAAA;gBAC/B,MAAK;AACR,SAAA;AACF,KAAA;AACH,CAAC;AAEe,SAAA,SAAS,CAAkB,MAAM,GAAG,KAAK,EAAA;AACvD,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAA;AACnC,IAAA,IAAI,OAAO,CAAA;AAEX,IAAA,IAAI,IAAI,CAAC,QAAQ,KAAA,CAAA,8BAA4B;QAC3C,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AAChD,KAAA;AAAM,SAAA,IAAI,IAAI,CAAC,QAAQ,KAAA,CAAA,2BAAyB;AAC/C,QAAA,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;AACtC,KAAA;AAED,IAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACtB,QAAA,MAAM,KAAK,GAAQ,IAAI,CAAC,GAAG,CAAC,CAAA
|
|
1
|
+
{"version":3,"file":"node.js","sources":["../../src/dom-external/node.ts"],"sourcesContent":["import { DATASET, OBJECT, PROPS, STYLE } from '../constants'\nimport { NodeType } from '../dom/node_types'\nimport { parser } from '../dom-external/inner-html/parser'\n\nimport type { TaroNode } from '../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 insertAdjacentHTML (\n this: TaroNode,\n position: IPosition,\n html: string\n) {\n const parsedNodes = parser(html, this.ownerDocument)\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, isDeep = false) {\n const document = this.ownerDocument\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 // eslint-disable-next-line valid-typeof\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"],"names":[],"mappings":"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"}
|
package/dist/dsl/common.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { hooks, isArray, isFunction, isUndefined, ensure, EMPTY_OBJ, getComponentsAlias, internalComponents, isString } from '@tarojs/shared';
|
|
1
|
+
import { hooks, isArray, isFunction, EventChannel, isUndefined, ensure, EMPTY_OBJ, getComponentsAlias, internalComponents, isString } from '@tarojs/shared';
|
|
2
2
|
import { raf as _raf } from '../bom/raf.js';
|
|
3
3
|
import { window } from '../bom/window.js';
|
|
4
4
|
import { ON_READY, ON_SHOW, ON_HIDE, PAGE_INIT, CONTEXT_ACTIONS, ON_LOAD, OPTIONS, EXTERNAL_CLASSES, BEHAVIORS, VIEW, CUSTOM_WRAPPER } from '../constants/index.js';
|
|
@@ -193,6 +193,11 @@ function createPageConfig(component, pageName, data, pageConfig) {
|
|
|
193
193
|
eventCenter.trigger(getOnHideEventKey(id));
|
|
194
194
|
}
|
|
195
195
|
};
|
|
196
|
+
if (process.env.TARO_PLATFORM === 'web') {
|
|
197
|
+
config.getOpenerEventChannel = () => {
|
|
198
|
+
return EventChannel.pageChannel;
|
|
199
|
+
};
|
|
200
|
+
}
|
|
196
201
|
LIFECYCLES.forEach((lifecycle) => {
|
|
197
202
|
let isDefer = false;
|
|
198
203
|
lifecycle = lifecycle.replace(/^defer:/, () => {
|
package/dist/dsl/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sources":["../../src/dsl/common.ts"],"sourcesContent":["/* eslint-disable dot-notation */\nimport {\n EMPTY_OBJ, ensure, getComponentsAlias, hooks, internalComponents,\n isArray, isFunction, isString, isUndefined, Shortcuts\n} from '@tarojs/shared'\n\nimport { raf } from '../bom/raf'\nimport { window } from '../bom/window'\nimport { BEHAVIORS, CONTEXT_ACTIONS, CUSTOM_WRAPPER, EXTERNAL_CLASSES, ON_HIDE, ON_LOAD, ON_READY, ON_SHOW, OPTIONS, PAGE_INIT, VIEW } from '../constants'\nimport { Current } from '../current'\nimport { eventHandler } from '../dom/event'\nimport { eventCenter } from '../emitter/emitter'\nimport env from '../env'\nimport { perf } from '../perf'\nimport { customWrapperCache, incrementId } from '../utils'\nimport { addLeadingSlash } from '../utils/router'\n\nimport type { TaroRootElement } from '../dom/root'\nimport type { MpInstance, PageConfig, TFunc } from '../interface'\nimport type { Instance, PageInstance, PageProps } from './instance'\n\nconst instances = new Map<string, Instance>()\nconst pageId = incrementId()\n\nexport function injectPageInstance (inst: Instance<PageProps>, id: string) {\n hooks.call('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 removePageInstance (id: string) {\n instances.delete(id)\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 = hooks.call('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 const idx = id.indexOf('?')\n if (process.env.TARO_PLATFORM === 'web') {\n return `${idx > -1 ? id.substring(0, idx) : id}${stringify(options?.stamp ? { stamp: options.stamp } : {})}`\n } else {\n return `${idx > -1 ? id.substring(0, idx) : id}${stringify(options)}`\n }\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 [\n ONLOAD,\n ONUNLOAD,\n ONREADY,\n ONSHOW,\n ONHIDE,\n LIFECYCLES,\n SIDE_EFFECT_LIFECYCLES,\n ] = hooks.call('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_PLATFORM === 'web' ? page.$taroPath : page.route || page.__route__ || page.$taroPath\n Current.router = {\n params: page.$taroParams!,\n path: addLeadingSlash(router),\n $taroPath: page.$taroPath,\n onReady: getOnReadyEventKey(id),\n onShow: getOnShowEventKey(id),\n onHide: getOnHideEventKey(id)\n }\n if (!isUndefined(page.exitState)) {\n Current.router.exitState = page.exitState\n }\n }\n let loadResolver: (...args: unknown[]) => void\n let hasLoaded: Promise<void>\n const config: PageInstance = {\n [ONLOAD] (this: MpInstance, options: Readonly<Record<string, unknown>> = {}, cb?: TFunc) {\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\n // this.$taroPath 是页面唯一标识\n const uniqueOptions = Object.assign({}, options, { $taroTimestamp: Date.now() })\n const $taroPath = this.$taroPath = getPath(id, uniqueOptions)\n if (process.env.TARO_PLATFORM === 'web') {\n config.path = $taroPath\n }\n // this.$taroParams 作为暴露给开发者的页面参数对象,可以被随意修改\n if (this.$taroParams == null) {\n this.$taroParams = uniqueOptions\n }\n\n setCurrentRouter(this)\n\n // 初始化当前页面的上下文信息\n if (process.env.TARO_PLATFORM !== 'web') {\n window.trigger(CONTEXT_ACTIONS.INIT, $taroPath)\n }\n\n const mount = () => {\n Current.app!.mount!(component, $taroPath, () => {\n pageElement = env.document.getElementById<TaroRootElement>($taroPath)\n\n ensure(pageElement !== null, '没有找到页面实例。')\n safeExecute($taroPath, ON_LOAD, this.$taroParams)\n loadResolver()\n if (process.env.TARO_PLATFORM !== 'web') {\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 // 销毁当前页面的上下文信息\n if (process.env.TARO_PLATFORM !== 'web') {\n window.trigger(CONTEXT_ACTIONS.DESTORY, $taroPath)\n }\n // 触发onUnload生命周期\n safeExecute($taroPath, ONUNLOAD)\n unmounting = true\n Current.app!.unmount!($taroPath, () => {\n unmounting = false\n instances.delete($taroPath)\n if (pageElement) {\n pageElement.ctx = null\n pageElement = null\n }\n if (prepareMountList.length) {\n prepareMountList.forEach(fn => fn())\n prepareMountList = []\n }\n })\n },\n [ONREADY] () {\n hasLoaded.then(() => {\n // 触发生命周期\n safeExecute(this.$taroPath, ON_READY)\n // 通过事件触发子组件的生命周期\n raf(() => eventCenter.trigger(getOnReadyEventKey(id)))\n this.onReady.called = true\n })\n },\n [ONSHOW] (options = {}) {\n hasLoaded.then(() => {\n // 设置 Current 的 page 和 router\n Current.page = this as any\n setCurrentRouter(this)\n // 恢复上下文信息\n if (process.env.TARO_PLATFORM !== 'web') {\n window.trigger(CONTEXT_ACTIONS.RECOVER, this.$taroPath)\n }\n // 触发生命周期\n safeExecute(this.$taroPath, ON_SHOW, options)\n // 通过事件触发子组件的生命周期\n raf(() => eventCenter.trigger(getOnShowEventKey(id)))\n })\n },\n [ONHIDE] () {\n // 缓存当前页面上下文信息\n if (process.env.TARO_PLATFORM !== 'web') {\n window.trigger(CONTEXT_ACTIONS.RESTORE, this.$taroPath)\n }\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 let isDefer = false\n lifecycle = lifecycle.replace(/^defer:/, () => {\n isDefer = true\n return ''\n })\n config[lifecycle] = function () {\n const exec = () => safeExecute(this.$taroPath, lifecycle, ...arguments)\n if (isDefer) {\n hasLoaded.then(exec)\n } else {\n return exec()\n }\n }\n })\n\n // onShareAppMessage 和 onShareTimeline 一样,会影响小程序右上方按钮的选项,因此不能默认注册。\n SIDE_EFFECT_LIFECYCLES.forEach(lifecycle => {\n if (component[lifecycle] ||\n component.prototype?.[lifecycle] ||\n component[lifecycle.replace(/^on/, 'enable')] ||\n pageConfig?.[lifecycle.replace(/^on/, 'enable')]\n ) {\n config[lifecycle] = function (...args) {\n const target = args[0]?.target\n if (target?.id) {\n const id = target.id\n const element = env.document.getElementById(id)\n if (element) {\n target.dataset = element.dataset\n }\n }\n return safeExecute(this.$taroPath, lifecycle, ...args)\n }\n }\n })\n\n config.eh = eventHandler\n\n if (!isUndefined(data)) {\n config.data = data\n }\n\n hooks.call('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 const [ ATTACHED, DETACHED ] = hooks.call('getMiniLifecycleImpl')!.component\n\n const config: any = {\n [ATTACHED] () {\n perf.start(PAGE_INIT)\n this.pageIdCache = this.getPageId?.() || pageId()\n\n const path = getPath(id, { id: this.pageIdCache })\n\n Current.app!.mount!(component, path, () => {\n componentElement = env.document.getElementById<TaroRootElement>(path)\n ensure(componentElement !== null, '没有找到组件实例。')\n this.$taroInstances = instances.get(path)\n safeExecute(path, ON_LOAD)\n if (process.env.TARO_PLATFORM !== 'web') {\n componentElement.ctx = this\n componentElement.performUpdate(true)\n }\n })\n },\n [DETACHED] () {\n const path = getPath(id, { id: this.pageIdCache })\n\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 const isCustomWrapper = componentName === CUSTOM_WRAPPER\n const [ ATTACHED, DETACHED ] = hooks.call('getMiniLifecycleImpl')!.component\n\n const lifeCycles = isCustomWrapper\n ? {\n [ATTACHED] () {\n const componentId = this.data.i?.sid || this.props.i?.sid\n if (isString(componentId)) {\n customWrapperCache.set(componentId, this)\n const el = env.document.getElementById(componentId)\n if (el) {\n el.ctx = this\n }\n }\n },\n [DETACHED] () {\n const componentId = this.data.i?.sid || this.props.i?.sid\n if (isString(componentId)) {\n customWrapperCache.delete(componentId)\n const el = env.document.getElementById(componentId)\n if (el) {\n el.ctx = null\n }\n }\n }\n }\n : EMPTY_OBJ\n\n return hooks.call('modifyRecursiveComponentConfig',\n {\n properties: {\n i: {\n type: Object,\n value: {\n [Shortcuts.NodeName]: getComponentsAlias(internalComponents)[VIEW]._num\n }\n },\n l: {\n type: String,\n value: ''\n }\n },\n options: {\n addGlobalClass: true,\n virtualHost: !isCustomWrapper\n },\n methods: {\n eh: eventHandler\n },\n ...lifeCycles }, { isCustomWrapper })\n}\n"],"names":["raf"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"common.js","sources":["../../src/dsl/common.ts"],"sourcesContent":["/* eslint-disable dot-notation */\nimport {\n EMPTY_OBJ, ensure, EventChannel,\n getComponentsAlias, hooks, internalComponents,\n isArray, isFunction, isString, isUndefined, Shortcuts\n} from '@tarojs/shared'\n\nimport { raf } from '../bom/raf'\nimport { window } from '../bom/window'\nimport { BEHAVIORS, CONTEXT_ACTIONS, CUSTOM_WRAPPER, EXTERNAL_CLASSES, ON_HIDE, ON_LOAD, ON_READY, ON_SHOW, OPTIONS, PAGE_INIT, VIEW } from '../constants'\nimport { Current } from '../current'\nimport { eventHandler } from '../dom/event'\nimport { eventCenter } from '../emitter/emitter'\nimport env from '../env'\nimport { perf } from '../perf'\nimport { customWrapperCache, incrementId } from '../utils'\nimport { addLeadingSlash } from '../utils/router'\n\nimport type { TaroRootElement } from '../dom/root'\nimport type { MpInstance, PageConfig, TFunc } from '../interface'\nimport type { Instance, PageInstance, PageProps } from './instance'\n\nconst instances = new Map<string, Instance>()\nconst pageId = incrementId()\n\nexport function injectPageInstance (inst: Instance<PageProps>, id: string) {\n hooks.call('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 removePageInstance (id: string) {\n instances.delete(id)\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 = hooks.call('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 const idx = id.indexOf('?')\n if (process.env.TARO_PLATFORM === 'web') {\n return `${idx > -1 ? id.substring(0, idx) : id}${stringify(options?.stamp ? { stamp: options.stamp } : {})}`\n } else {\n return `${idx > -1 ? id.substring(0, idx) : id}${stringify(options)}`\n }\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 [\n ONLOAD,\n ONUNLOAD,\n ONREADY,\n ONSHOW,\n ONHIDE,\n LIFECYCLES,\n SIDE_EFFECT_LIFECYCLES,\n ] = hooks.call('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_PLATFORM === 'web' ? page.$taroPath : page.route || page.__route__ || page.$taroPath\n Current.router = {\n params: page.$taroParams!,\n path: addLeadingSlash(router),\n $taroPath: page.$taroPath,\n onReady: getOnReadyEventKey(id),\n onShow: getOnShowEventKey(id),\n onHide: getOnHideEventKey(id)\n }\n if (!isUndefined(page.exitState)) {\n Current.router.exitState = page.exitState\n }\n }\n let loadResolver: (...args: unknown[]) => void\n let hasLoaded: Promise<void>\n const config: PageInstance = {\n [ONLOAD] (this: MpInstance, options: Readonly<Record<string, unknown>> = {}, cb?: TFunc) {\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\n // this.$taroPath 是页面唯一标识\n const uniqueOptions = Object.assign({}, options, { $taroTimestamp: Date.now() })\n const $taroPath = this.$taroPath = getPath(id, uniqueOptions)\n if (process.env.TARO_PLATFORM === 'web') {\n config.path = $taroPath\n }\n // this.$taroParams 作为暴露给开发者的页面参数对象,可以被随意修改\n if (this.$taroParams == null) {\n this.$taroParams = uniqueOptions\n }\n\n setCurrentRouter(this)\n\n // 初始化当前页面的上下文信息\n if (process.env.TARO_PLATFORM !== 'web') {\n window.trigger(CONTEXT_ACTIONS.INIT, $taroPath)\n }\n\n const mount = () => {\n Current.app!.mount!(component, $taroPath, () => {\n pageElement = env.document.getElementById<TaroRootElement>($taroPath)\n\n ensure(pageElement !== null, '没有找到页面实例。')\n safeExecute($taroPath, ON_LOAD, this.$taroParams)\n loadResolver()\n if (process.env.TARO_PLATFORM !== 'web') {\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 // 销毁当前页面的上下文信息\n if (process.env.TARO_PLATFORM !== 'web') {\n window.trigger(CONTEXT_ACTIONS.DESTORY, $taroPath)\n }\n // 触发onUnload生命周期\n safeExecute($taroPath, ONUNLOAD)\n unmounting = true\n Current.app!.unmount!($taroPath, () => {\n unmounting = false\n instances.delete($taroPath)\n if (pageElement) {\n pageElement.ctx = null\n pageElement = null\n }\n if (prepareMountList.length) {\n prepareMountList.forEach(fn => fn())\n prepareMountList = []\n }\n })\n },\n [ONREADY] () {\n hasLoaded.then(() => {\n // 触发生命周期\n safeExecute(this.$taroPath, ON_READY)\n // 通过事件触发子组件的生命周期\n raf(() => eventCenter.trigger(getOnReadyEventKey(id)))\n this.onReady.called = true\n })\n },\n [ONSHOW] (options = {}) {\n hasLoaded.then(() => {\n // 设置 Current 的 page 和 router\n Current.page = this as any\n setCurrentRouter(this)\n // 恢复上下文信息\n if (process.env.TARO_PLATFORM !== 'web') {\n window.trigger(CONTEXT_ACTIONS.RECOVER, this.$taroPath)\n }\n // 触发生命周期\n safeExecute(this.$taroPath, ON_SHOW, options)\n // 通过事件触发子组件的生命周期\n raf(() => eventCenter.trigger(getOnShowEventKey(id)))\n })\n },\n [ONHIDE] () {\n // 缓存当前页面上下文信息\n if (process.env.TARO_PLATFORM !== 'web') {\n window.trigger(CONTEXT_ACTIONS.RESTORE, this.$taroPath)\n }\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 if (process.env.TARO_PLATFORM === 'web') {\n config.getOpenerEventChannel = () => {\n return EventChannel.pageChannel\n }\n }\n\n LIFECYCLES.forEach((lifecycle) => {\n let isDefer = false\n lifecycle = lifecycle.replace(/^defer:/, () => {\n isDefer = true\n return ''\n })\n config[lifecycle] = function () {\n const exec = () => safeExecute(this.$taroPath, lifecycle, ...arguments)\n if (isDefer) {\n hasLoaded.then(exec)\n } else {\n return exec()\n }\n }\n })\n\n // onShareAppMessage 和 onShareTimeline 一样,会影响小程序右上方按钮的选项,因此不能默认注册。\n SIDE_EFFECT_LIFECYCLES.forEach(lifecycle => {\n if (component[lifecycle] ||\n component.prototype?.[lifecycle] ||\n component[lifecycle.replace(/^on/, 'enable')] ||\n pageConfig?.[lifecycle.replace(/^on/, 'enable')]\n ) {\n config[lifecycle] = function (...args) {\n const target = args[0]?.target\n if (target?.id) {\n const id = target.id\n const element = env.document.getElementById(id)\n if (element) {\n target.dataset = element.dataset\n }\n }\n return safeExecute(this.$taroPath, lifecycle, ...args)\n }\n }\n })\n\n config.eh = eventHandler\n\n if (!isUndefined(data)) {\n config.data = data\n }\n\n hooks.call('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 const [ATTACHED, DETACHED] = hooks.call('getMiniLifecycleImpl')!.component\n\n const config: any = {\n [ATTACHED] () {\n perf.start(PAGE_INIT)\n this.pageIdCache = this.getPageId?.() || pageId()\n\n const path = getPath(id, { id: this.pageIdCache })\n\n Current.app!.mount!(component, path, () => {\n componentElement = env.document.getElementById<TaroRootElement>(path)\n ensure(componentElement !== null, '没有找到组件实例。')\n this.$taroInstances = instances.get(path)\n safeExecute(path, ON_LOAD)\n if (process.env.TARO_PLATFORM !== 'web') {\n componentElement.ctx = this\n componentElement.performUpdate(true)\n }\n })\n },\n [DETACHED] () {\n const path = getPath(id, { id: this.pageIdCache })\n\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 const isCustomWrapper = componentName === CUSTOM_WRAPPER\n const [ATTACHED, DETACHED] = hooks.call('getMiniLifecycleImpl')!.component\n\n const lifeCycles = isCustomWrapper\n ? {\n [ATTACHED] () {\n const componentId = this.data.i?.sid || this.props.i?.sid\n if (isString(componentId)) {\n customWrapperCache.set(componentId, this)\n const el = env.document.getElementById(componentId)\n if (el) {\n el.ctx = this\n }\n }\n },\n [DETACHED] () {\n const componentId = this.data.i?.sid || this.props.i?.sid\n if (isString(componentId)) {\n customWrapperCache.delete(componentId)\n const el = env.document.getElementById(componentId)\n if (el) {\n el.ctx = null\n }\n }\n }\n }\n : EMPTY_OBJ\n\n return hooks.call('modifyRecursiveComponentConfig',\n {\n properties: {\n i: {\n type: Object,\n value: {\n [Shortcuts.NodeName]: getComponentsAlias(internalComponents)[VIEW]._num\n }\n },\n l: {\n type: String,\n value: ''\n }\n },\n options: {\n addGlobalClass: true,\n virtualHost: !isCustomWrapper\n },\n methods: {\n eh: eventHandler\n },\n ...lifeCycles\n }, { isCustomWrapper })\n}\n"],"names":["raf"],"mappings":"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"}
|
package/dist/hydrate.js
CHANGED
|
@@ -17,6 +17,7 @@ function hydrate(node) {
|
|
|
17
17
|
// 初始化 SPECIAL_NODES
|
|
18
18
|
SPECIAL_NODES || (SPECIAL_NODES = hooks.call('getSpecialNodes'));
|
|
19
19
|
const nodeName = node.nodeName;
|
|
20
|
+
let compileModeName = null;
|
|
20
21
|
if (isText(node)) {
|
|
21
22
|
return {
|
|
22
23
|
sid: node.sid,
|
|
@@ -48,11 +49,14 @@ function hydrate(node) {
|
|
|
48
49
|
propInCamelCase !== COMPILE_MODE) {
|
|
49
50
|
data[propInCamelCase] = props[prop];
|
|
50
51
|
}
|
|
51
|
-
if (
|
|
52
|
+
if (process.env.TARO_ENV !== 'swan' &&
|
|
53
|
+
nodeName === VIEW &&
|
|
54
|
+
propInCamelCase === CATCHMOVE &&
|
|
55
|
+
props[prop] !== false) {
|
|
52
56
|
data["nn" /* Shortcuts.NodeName */] = CATCH_VIEW;
|
|
53
57
|
}
|
|
54
58
|
if (propInCamelCase === COMPILE_MODE) {
|
|
55
|
-
|
|
59
|
+
compileModeName = props[prop];
|
|
56
60
|
}
|
|
57
61
|
}
|
|
58
62
|
// Children
|
|
@@ -76,6 +80,9 @@ function hydrate(node) {
|
|
|
76
80
|
}
|
|
77
81
|
}
|
|
78
82
|
}
|
|
83
|
+
if (compileModeName !== null) {
|
|
84
|
+
data["nn" /* Shortcuts.NodeName */] = compileModeName;
|
|
85
|
+
}
|
|
79
86
|
const resData = hooks.call('transferHydrateData', data, node, componentAlias);
|
|
80
87
|
return resData || data;
|
|
81
88
|
}
|
package/dist/hydrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydrate.js","sources":["../src/hydrate.ts"],"sourcesContent":["import { hooks, Shortcuts, toCamelCase } from '@tarojs/shared'\n\nimport {\n CATCH_VIEW,\n CATCHMOVE,\n CLASS,\n COMPILE_MODE,\n ID,\n PURE_VIEW,\n STYLE,\n VIEW\n} from './constants'\nimport { getComponentsAlias, isComment, isHasExtractProp, isText } from './utils'\n\nimport type { TaroElement } from './dom/element'\nimport type { TaroText } from './dom/text'\nimport type { MiniData, MiniElementData } from './interface'\n\nlet SPECIAL_NODES\nlet componentsAlias\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 // 初始化 componentsAlias\n componentsAlias ||= getComponentsAlias()\n\n // 初始化 SPECIAL_NODES\n SPECIAL_NODES ||= hooks.call('getSpecialNodes')!\n\n const nodeName = node.nodeName\n\n if (isText(node)) {\n return {\n sid: node.sid,\n [Shortcuts.Text]: node.nodeValue,\n [Shortcuts.NodeName]: componentsAlias[nodeName]?._num || '8'\n }\n }\n\n const data: MiniElementData = {\n [Shortcuts.NodeName]: nodeName,\n sid: node.sid\n }\n\n if (node.uid !== node.sid) {\n data.uid = node.uid\n }\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 const { props } = node\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 propInCamelCase !== COMPILE_MODE\n ) {\n data[propInCamelCase] = props[prop]\n }\n if (nodeName === VIEW
|
|
1
|
+
{"version":3,"file":"hydrate.js","sources":["../src/hydrate.ts"],"sourcesContent":["import { hooks, Shortcuts, toCamelCase } from '@tarojs/shared'\n\nimport {\n CATCH_VIEW,\n CATCHMOVE,\n CLASS,\n COMPILE_MODE,\n ID,\n PURE_VIEW,\n STYLE,\n VIEW\n} from './constants'\nimport { getComponentsAlias, isComment, isHasExtractProp, isText } from './utils'\n\nimport type { TaroElement } from './dom/element'\nimport type { TaroText } from './dom/text'\nimport type { MiniData, MiniElementData } from './interface'\n\nlet SPECIAL_NODES\nlet componentsAlias\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 // 初始化 componentsAlias\n componentsAlias ||= getComponentsAlias()\n\n // 初始化 SPECIAL_NODES\n SPECIAL_NODES ||= hooks.call('getSpecialNodes')!\n\n const nodeName = node.nodeName\n let compileModeName = null\n\n if (isText(node)) {\n return {\n sid: node.sid,\n [Shortcuts.Text]: node.nodeValue,\n [Shortcuts.NodeName]: componentsAlias[nodeName]?._num || '8'\n }\n }\n\n const data: MiniElementData = {\n [Shortcuts.NodeName]: nodeName,\n sid: node.sid\n }\n\n if (node.uid !== node.sid) {\n data.uid = node.uid\n }\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 const { props } = node\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 propInCamelCase !== COMPILE_MODE\n ) {\n data[propInCamelCase] = props[prop]\n }\n if (\n process.env.TARO_ENV !== 'swan' &&\n nodeName === VIEW &&\n propInCamelCase === CATCHMOVE &&\n props[prop] !== false\n ) {\n data[Shortcuts.NodeName] = CATCH_VIEW\n }\n if (propInCamelCase === COMPILE_MODE) {\n compileModeName = props[prop]\n }\n }\n\n // Children\n data[Shortcuts.Childnodes] = node.childNodes.filter(node => !isComment(node)).map(hydrate)\n\n if (node.className !== '') {\n data[Shortcuts.Class] = node.className\n }\n\n const cssText = node.cssText\n if (cssText !== '' && nodeName !== 'swiper-item') {\n data[Shortcuts.Style] = cssText\n }\n\n hooks.call('modifyHydrateData', data, node)\n\n const nn = data[Shortcuts.NodeName]\n const componentAlias = componentsAlias[nn]\n if (componentAlias) {\n data[Shortcuts.NodeName] = componentAlias._num\n for (const prop in data) {\n if (prop in componentAlias) {\n data[componentAlias[prop]] = data[prop]\n delete data[prop]\n }\n }\n }\n\n if (compileModeName !== null) {\n data[Shortcuts.NodeName] = compileModeName\n }\n\n const resData = hooks.call('transferHydrateData', data, node, componentAlias)\n\n return resData || data\n}\n"],"names":[],"mappings":"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"}
|
package/dist/index.cjs.d.ts
CHANGED
|
@@ -706,6 +706,8 @@ interface PageInstance extends PageLifeCycle {
|
|
|
706
706
|
options?: Record<string, unknown>;
|
|
707
707
|
/** 页面渲染引擎类型 */
|
|
708
708
|
renderer?: "webview" | "skyline";
|
|
709
|
+
/** 获得一个 EventChannel 对象,用于页面间通讯 */
|
|
710
|
+
getOpenerEventChannel?(): Record<string, any>;
|
|
709
711
|
}
|
|
710
712
|
interface Show {
|
|
711
713
|
componentDidShow?(): void;
|
package/dist/index.cjs.js
CHANGED
|
@@ -1309,6 +1309,7 @@ function hydrate(node) {
|
|
|
1309
1309
|
// 初始化 SPECIAL_NODES
|
|
1310
1310
|
SPECIAL_NODES || (SPECIAL_NODES = shared.hooks.call('getSpecialNodes'));
|
|
1311
1311
|
const nodeName = node.nodeName;
|
|
1312
|
+
let compileModeName = null;
|
|
1312
1313
|
if (isText(node)) {
|
|
1313
1314
|
return {
|
|
1314
1315
|
sid: node.sid,
|
|
@@ -1340,11 +1341,14 @@ function hydrate(node) {
|
|
|
1340
1341
|
propInCamelCase !== COMPILE_MODE) {
|
|
1341
1342
|
data[propInCamelCase] = props[prop];
|
|
1342
1343
|
}
|
|
1343
|
-
if (
|
|
1344
|
+
if (process.env.TARO_ENV !== 'swan' &&
|
|
1345
|
+
nodeName === VIEW &&
|
|
1346
|
+
propInCamelCase === CATCHMOVE &&
|
|
1347
|
+
props[prop] !== false) {
|
|
1344
1348
|
data["nn" /* Shortcuts.NodeName */] = CATCH_VIEW;
|
|
1345
1349
|
}
|
|
1346
1350
|
if (propInCamelCase === COMPILE_MODE) {
|
|
1347
|
-
|
|
1351
|
+
compileModeName = props[prop];
|
|
1348
1352
|
}
|
|
1349
1353
|
}
|
|
1350
1354
|
// Children
|
|
@@ -1368,6 +1372,9 @@ function hydrate(node) {
|
|
|
1368
1372
|
}
|
|
1369
1373
|
}
|
|
1370
1374
|
}
|
|
1375
|
+
if (compileModeName !== null) {
|
|
1376
|
+
data["nn" /* Shortcuts.NodeName */] = compileModeName;
|
|
1377
|
+
}
|
|
1371
1378
|
const resData = shared.hooks.call('transferHydrateData', data, node, componentAlias);
|
|
1372
1379
|
return resData || data;
|
|
1373
1380
|
}
|
|
@@ -3274,6 +3281,7 @@ function cloneNode(isDeep = false) {
|
|
|
3274
3281
|
}
|
|
3275
3282
|
for (const key in this) {
|
|
3276
3283
|
const value = this[key];
|
|
3284
|
+
// eslint-disable-next-line valid-typeof
|
|
3277
3285
|
if ([PROPS, DATASET].includes(key) && typeof value === OBJECT) {
|
|
3278
3286
|
newNode[key] = Object.assign({}, value);
|
|
3279
3287
|
}
|
|
@@ -4095,6 +4103,11 @@ function createPageConfig(component, pageName, data, pageConfig) {
|
|
|
4095
4103
|
eventCenter.trigger(getOnHideEventKey(id));
|
|
4096
4104
|
}
|
|
4097
4105
|
};
|
|
4106
|
+
if (process.env.TARO_PLATFORM === 'web') {
|
|
4107
|
+
config.getOpenerEventChannel = () => {
|
|
4108
|
+
return shared.EventChannel.pageChannel;
|
|
4109
|
+
};
|
|
4110
|
+
}
|
|
4098
4111
|
LIFECYCLES.forEach((lifecycle) => {
|
|
4099
4112
|
let isDefer = false;
|
|
4100
4113
|
lifecycle = lifecycle.replace(/^defer:/, () => {
|