@tarojs/shared 3.6.9-alpha.8 → 3.6.9
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/template.d.ts +7 -4
- package/dist/template.js +63 -54
- package/dist/template.js.map +1 -1
- package/package.json +1 -1
package/dist/template.d.ts
CHANGED
|
@@ -47,6 +47,7 @@ declare const events: {
|
|
|
47
47
|
bindtap: string;
|
|
48
48
|
};
|
|
49
49
|
declare class BaseTemplate {
|
|
50
|
+
protected _baseLevel: number;
|
|
50
51
|
protected exportExpr: string;
|
|
51
52
|
protected isSupportRecursive: boolean;
|
|
52
53
|
protected miniComponents: Components;
|
|
@@ -67,18 +68,22 @@ declare class BaseTemplate {
|
|
|
67
68
|
/** 可以递归调用自身的组件 */
|
|
68
69
|
nestElements: Map<string, number>;
|
|
69
70
|
componentsAlias: any;
|
|
71
|
+
set baseLevel(lv: number);
|
|
72
|
+
get baseLevel(): number;
|
|
70
73
|
private buildAttribute;
|
|
71
74
|
protected replacePropName(name: string, value: string, _componentName?: string, _componentAlias?: any): string;
|
|
72
75
|
protected createMiniComponents(components: Components): Components;
|
|
73
76
|
protected buildBaseTemplate(): string;
|
|
74
77
|
protected buildThirdPartyAttr(attrs: Set<string>, patcher?: Record<string, string>): string;
|
|
75
78
|
protected buildComponentTemplate(comp: Component, level: number): string;
|
|
79
|
+
private getChildrenTemplate;
|
|
76
80
|
private getChildren;
|
|
77
81
|
protected buildFocusComponentTemplate(comp: Component, level: number): string;
|
|
78
82
|
protected buildStandardComponentTemplate(comp: Component, level: number): string;
|
|
79
83
|
protected buildPlainTextTemplate(level: number): string;
|
|
80
84
|
protected buildThirdPartyTemplate(level: number, componentConfig: ComponentConfig): string;
|
|
81
|
-
|
|
85
|
+
// 最后一层的 comp 需要引用 container 进行重新的模版循环,其他情况不需要 container
|
|
86
|
+
protected buildContainerTemplate(level: number): string;
|
|
82
87
|
protected dataKeymap(keymap: string): string;
|
|
83
88
|
protected getEvents(): any;
|
|
84
89
|
protected getAttrValue(value: string, _key: string, _nodeName: string): string;
|
|
@@ -99,10 +104,8 @@ declare class RecursiveTemplate extends BaseTemplate {
|
|
|
99
104
|
}
|
|
100
105
|
declare class UnRecursiveTemplate extends BaseTemplate {
|
|
101
106
|
isSupportRecursive: boolean;
|
|
102
|
-
|
|
107
|
+
protected _baseLevel: number;
|
|
103
108
|
private componentConfig;
|
|
104
|
-
set baseLevel(lv: number);
|
|
105
|
-
get baseLevel(): number;
|
|
106
109
|
buildTemplate: (componentConfig: ComponentConfig) => string;
|
|
107
110
|
protected buildFloor(level: number, components: string[], restart?: boolean): string;
|
|
108
111
|
protected buildOptimizeFloor(level: number, components: string[], restart?: boolean): string;
|
package/dist/template.js
CHANGED
|
@@ -746,6 +746,7 @@ const weixinAdapter = {
|
|
|
746
746
|
};
|
|
747
747
|
class BaseTemplate {
|
|
748
748
|
constructor() {
|
|
749
|
+
this._baseLevel = 0;
|
|
749
750
|
this.exportExpr = 'module.exports =';
|
|
750
751
|
this.thirdPartyPatcher = {};
|
|
751
752
|
this.supportXS = false;
|
|
@@ -765,19 +766,23 @@ class BaseTemplate {
|
|
|
765
766
|
};
|
|
766
767
|
this.buildBaseComponentTemplate = (ext) => {
|
|
767
768
|
const data = !this.isSupportRecursive && this.supportXS
|
|
768
|
-
? this.dataKeymap('i:i,l:l')
|
|
769
|
-
: this.
|
|
769
|
+
? this.dataKeymap('i:i,c:1,l:l')
|
|
770
|
+
: this.isSupportRecursive
|
|
771
|
+
? this.dataKeymap('i:i')
|
|
772
|
+
: this.dataKeymap('i:i,c:1');
|
|
770
773
|
return `<import src="./base${ext}" />
|
|
771
|
-
<template is="tmpl_0_
|
|
774
|
+
<template is="{{'tmpl_0_' + i.nn}}" data="{{${data}}}" />`;
|
|
772
775
|
};
|
|
773
776
|
this.buildCustomComponentTemplate = (ext) => {
|
|
774
777
|
const Adapter = this.Adapter;
|
|
775
778
|
const data = !this.isSupportRecursive && this.supportXS
|
|
776
|
-
? `${this.dataKeymap('i:item,l:\'\'')}`
|
|
777
|
-
: this.
|
|
779
|
+
? `${this.dataKeymap('i:item,c:1,l:\'\'')}`
|
|
780
|
+
: this.isSupportRecursive
|
|
781
|
+
? this.dataKeymap('i:item')
|
|
782
|
+
: this.dataKeymap('i:item,c:1');
|
|
778
783
|
return `<import src="./base${ext}" />
|
|
779
784
|
<block ${Adapter.for}="{{i.${"cn" /* Shortcuts.Childnodes */}}}" ${Adapter.key}="sid">
|
|
780
|
-
<template is="
|
|
785
|
+
<template is="{{'tmpl_0_' + item.nn}}" data="{{${data}}}" />
|
|
781
786
|
</block>`;
|
|
782
787
|
};
|
|
783
788
|
this.buildXScript = () => {
|
|
@@ -787,9 +792,6 @@ class BaseTemplate {
|
|
|
787
792
|
return a === undefined ? b : a
|
|
788
793
|
},
|
|
789
794
|
c: ${this.buildXSTepFocus("nn" /* Shortcuts.NodeName */)},
|
|
790
|
-
d: function (i, v) {
|
|
791
|
-
return i === undefined ? v : i
|
|
792
|
-
},
|
|
793
795
|
e: function (n) {
|
|
794
796
|
return 'tmpl_' + n + '_${"container" /* Shortcuts.Container */}'
|
|
795
797
|
},
|
|
@@ -797,6 +799,12 @@ class BaseTemplate {
|
|
|
797
799
|
}`;
|
|
798
800
|
};
|
|
799
801
|
}
|
|
802
|
+
set baseLevel(lv) {
|
|
803
|
+
this._baseLevel = lv;
|
|
804
|
+
}
|
|
805
|
+
get baseLevel() {
|
|
806
|
+
return this._baseLevel;
|
|
807
|
+
}
|
|
800
808
|
buildAttribute(attrs, nodeName) {
|
|
801
809
|
return Object.keys(attrs)
|
|
802
810
|
.map(k => `${k}="${k.startsWith('bind') || k.startsWith('on') || k.startsWith('catch') ? attrs[k] : `{${this.getAttrValue(attrs[k], k, nodeName)}}`}" `)
|
|
@@ -900,12 +908,17 @@ class BaseTemplate {
|
|
|
900
908
|
buildBaseTemplate() {
|
|
901
909
|
const Adapter = this.Adapter;
|
|
902
910
|
const data = !this.isSupportRecursive && this.supportXS
|
|
903
|
-
? `${this.dataKeymap('i:item,l:\'\'')}`
|
|
904
|
-
: this.
|
|
911
|
+
? `${this.dataKeymap('i:item,c:1,l:\'\'')}`
|
|
912
|
+
: this.isSupportRecursive
|
|
913
|
+
? this.dataKeymap('i:item')
|
|
914
|
+
: this.dataKeymap('i:item,c:1');
|
|
915
|
+
const xs = this.supportXS
|
|
916
|
+
? `xs.a(0, item.${"nn" /* Shortcuts.NodeName */})`
|
|
917
|
+
: "'tmpl_0_' + item.nn";
|
|
905
918
|
return `${this.buildXsTemplate()}
|
|
906
919
|
<template name="taro_tmpl">
|
|
907
920
|
<block ${Adapter.for}="{{root.cn}}" ${Adapter.key}="sid">
|
|
908
|
-
<template is="
|
|
921
|
+
<template is="{{${xs}}}" data="{{${data}}}" />
|
|
909
922
|
</block>
|
|
910
923
|
</template>
|
|
911
924
|
`;
|
|
@@ -953,15 +966,38 @@ class BaseTemplate {
|
|
|
953
966
|
? this.buildFocusComponentTemplate(comp, level)
|
|
954
967
|
: this.buildStandardComponentTemplate(comp, level);
|
|
955
968
|
}
|
|
969
|
+
getChildrenTemplate(level) {
|
|
970
|
+
const { isSupportRecursive, supportXS } = this;
|
|
971
|
+
const isLastRecursiveComp = !isSupportRecursive && level + 1 === this.baseLevel;
|
|
972
|
+
const isUseXs = !this.isSupportRecursive && this.supportXS;
|
|
973
|
+
if (isLastRecursiveComp) {
|
|
974
|
+
const data = isUseXs
|
|
975
|
+
? `${this.dataKeymap('i:item,c:c,l:l')}`
|
|
976
|
+
: this.isSupportRecursive
|
|
977
|
+
? this.dataKeymap('i:item')
|
|
978
|
+
: this.dataKeymap('i:item,c:c');
|
|
979
|
+
return supportXS
|
|
980
|
+
? `<template is="{{xs.e(${level})}}" data="{{${data}}}" />`
|
|
981
|
+
: `<template is="tmpl_${level}_${"container" /* Shortcuts.Container */}" data="{{${data}}}" />`;
|
|
982
|
+
}
|
|
983
|
+
else {
|
|
984
|
+
const data = isUseXs
|
|
985
|
+
? `${this.dataKeymap(`i:item,c:c+1,l:xs.f(l,item.${"nn" /* Shortcuts.NodeName */})`)}`
|
|
986
|
+
: this.isSupportRecursive
|
|
987
|
+
? `${this.dataKeymap('i:item')}`
|
|
988
|
+
: `${this.dataKeymap('i:item,c:c+1')}`;
|
|
989
|
+
const xs = !this.isSupportRecursive
|
|
990
|
+
? `xs.a(c, item.${"nn" /* Shortcuts.NodeName */}, l)`
|
|
991
|
+
: `xs.a(0, item.${"nn" /* Shortcuts.NodeName */})`;
|
|
992
|
+
return supportXS
|
|
993
|
+
? `<template is="{{${xs}}}" data="{{${data}}}" />`
|
|
994
|
+
: `<template is="{{'tmpl_' + c + '_' + item.nn}}" data="{{${data}}}" />`;
|
|
995
|
+
}
|
|
996
|
+
}
|
|
956
997
|
getChildren(comp, level) {
|
|
957
|
-
const { isSupportRecursive, Adapter
|
|
998
|
+
const { isSupportRecursive, Adapter } = this;
|
|
958
999
|
const nextLevel = isSupportRecursive ? 0 : level + 1;
|
|
959
|
-
|
|
960
|
-
? `${this.dataKeymap('i:item,l:l')}`
|
|
961
|
-
: this.dataKeymap('i:item');
|
|
962
|
-
let child = supportXS
|
|
963
|
-
? `<template is="{{xs.e(${isSupportRecursive ? 0 : 'cid+1'})}}" data="{{${data}}}" />`
|
|
964
|
-
: `<template is="tmpl_${nextLevel}_${"container" /* Shortcuts.Container */}" data="{{${data}}}" />`;
|
|
1000
|
+
let child = this.getChildrenTemplate(nextLevel);
|
|
965
1001
|
if (isFunction(this.modifyLoopBody)) {
|
|
966
1002
|
child = this.modifyLoopBody(child, comp.nodeName);
|
|
967
1003
|
}
|
|
@@ -988,7 +1024,7 @@ class BaseTemplate {
|
|
|
988
1024
|
delete attrs.focus;
|
|
989
1025
|
let res = `
|
|
990
1026
|
<template name="tmpl_${level}_${nodeAlias}">
|
|
991
|
-
<template is="{{${templateName}}}" data="{{${this.dataKeymap('i:i')
|
|
1027
|
+
<template is="{{${templateName}}}" data="{{${this.isSupportRecursive ? this.dataKeymap('i:i') : this.dataKeymap('i:i,c:c')}}}" />
|
|
992
1028
|
</template>
|
|
993
1029
|
|
|
994
1030
|
<template name="tmpl_${level}_${nodeAlias}_focus">
|
|
@@ -1050,9 +1086,6 @@ class BaseTemplate {
|
|
|
1050
1086
|
const { Adapter, isSupportRecursive, supportXS, nestElements } = this;
|
|
1051
1087
|
const nextLevel = isSupportRecursive ? 0 : level + 1;
|
|
1052
1088
|
let template = '';
|
|
1053
|
-
const data = !isSupportRecursive && supportXS
|
|
1054
|
-
? `${this.dataKeymap('i:item,l:l')}`
|
|
1055
|
-
: this.dataKeymap('i:item');
|
|
1056
1089
|
componentConfig.thirdPartyComponents.forEach((attrs, compName) => {
|
|
1057
1090
|
if (compName === 'custom-wrapper') {
|
|
1058
1091
|
template += `
|
|
@@ -1065,9 +1098,7 @@ class BaseTemplate {
|
|
|
1065
1098
|
else {
|
|
1066
1099
|
if (!isSupportRecursive && supportXS && nestElements.has(compName) && level + 1 > nestElements.get(compName))
|
|
1067
1100
|
return;
|
|
1068
|
-
let child =
|
|
1069
|
-
? `<template is="{{xs.e(${isSupportRecursive ? 0 : 'cid+1'})}}" data="{{${data}}}" />`
|
|
1070
|
-
: `<template is="tmpl_${nextLevel}_${"container" /* Shortcuts.Container */}" data="{{${data}}}" />`;
|
|
1101
|
+
let child = this.getChildrenTemplate(nextLevel);
|
|
1071
1102
|
if (isFunction(this.modifyThirdPartyLoopBody)) {
|
|
1072
1103
|
child = this.modifyThirdPartyLoopBody(child, compName);
|
|
1073
1104
|
}
|
|
@@ -1084,27 +1115,14 @@ class BaseTemplate {
|
|
|
1084
1115
|
});
|
|
1085
1116
|
return template;
|
|
1086
1117
|
}
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
if
|
|
1090
|
-
|
|
1091
|
-
<template is="tmpl_0_#text" data="{{i:i}}" />
|
|
1118
|
+
// 最后一层的 comp 需要引用 container 进行重新的模版循环,其他情况不需要 container
|
|
1119
|
+
buildContainerTemplate(level) {
|
|
1120
|
+
const tmpl = `<block ${this.Adapter.if}="{{i.nn === '#text'}}">
|
|
1121
|
+
<template is="tmpl_0_#text" data="{{${this.dataKeymap('i:i')}}}" />
|
|
1092
1122
|
</block>
|
|
1093
1123
|
<block ${this.Adapter.else}>
|
|
1094
1124
|
${!this.isSupportRecursive && this.supportXS ? '<comp i="{{i}}" l="{{l}}" />' : '<comp i="{{i}}" />'}
|
|
1095
1125
|
</block>`;
|
|
1096
|
-
}
|
|
1097
|
-
else {
|
|
1098
|
-
const xs = !this.isSupportRecursive
|
|
1099
|
-
? `xs.a(${level}, i.${"nn" /* Shortcuts.NodeName */}, l)`
|
|
1100
|
-
: `xs.a(${level}, i.${"nn" /* Shortcuts.NodeName */})`;
|
|
1101
|
-
const data = !this.isSupportRecursive
|
|
1102
|
-
? `${this.dataKeymap(`i:i,cid:${level},l:xs.f(l,i.${"nn" /* Shortcuts.NodeName */})`)}`
|
|
1103
|
-
: `${this.dataKeymap('i:i')}`;
|
|
1104
|
-
tmpl = this.supportXS
|
|
1105
|
-
? `<template is="{{${xs}}}" data="{{${data}}}" />`
|
|
1106
|
-
: `<template is="{{'tmpl_${level}_' + i.${"nn" /* Shortcuts.NodeName */}}}" data="{{${this.dataKeymap('i:i')}}}" />`;
|
|
1107
|
-
}
|
|
1108
1126
|
return `
|
|
1109
1127
|
<template name="tmpl_${level}_${"container" /* Shortcuts.Container */}">
|
|
1110
1128
|
${tmpl}
|
|
@@ -1164,7 +1182,6 @@ class RecursiveTemplate extends BaseTemplate {
|
|
|
1164
1182
|
}, template);
|
|
1165
1183
|
template += this.buildPlainTextTemplate(ZERO_FLOOR);
|
|
1166
1184
|
template += this.buildThirdPartyTemplate(ZERO_FLOOR, componentConfig);
|
|
1167
|
-
template += this.buildContainerTemplate(ZERO_FLOOR);
|
|
1168
1185
|
return template;
|
|
1169
1186
|
};
|
|
1170
1187
|
}
|
|
@@ -1191,15 +1208,9 @@ class UnRecursiveTemplate extends BaseTemplate {
|
|
|
1191
1208
|
return template;
|
|
1192
1209
|
};
|
|
1193
1210
|
}
|
|
1194
|
-
set baseLevel(lv) {
|
|
1195
|
-
this._baseLevel = lv;
|
|
1196
|
-
}
|
|
1197
|
-
get baseLevel() {
|
|
1198
|
-
return this._baseLevel;
|
|
1199
|
-
}
|
|
1200
1211
|
buildFloor(level, components, restart = false) {
|
|
1201
1212
|
if (restart)
|
|
1202
|
-
return this.buildContainerTemplate(level
|
|
1213
|
+
return this.buildContainerTemplate(level);
|
|
1203
1214
|
let template = components.reduce((current, nodeName) => {
|
|
1204
1215
|
const attributes = this.miniComponents[nodeName];
|
|
1205
1216
|
const nodeAlias = this.componentsAlias[nodeName]._num;
|
|
@@ -1207,12 +1218,11 @@ class UnRecursiveTemplate extends BaseTemplate {
|
|
|
1207
1218
|
}, '');
|
|
1208
1219
|
template += this.buildPlainTextTemplate(level);
|
|
1209
1220
|
template += this.buildThirdPartyTemplate(level, this.componentConfig);
|
|
1210
|
-
template += this.buildContainerTemplate(level, restart);
|
|
1211
1221
|
return template;
|
|
1212
1222
|
}
|
|
1213
1223
|
buildOptimizeFloor(level, components, restart = false) {
|
|
1214
1224
|
if (restart)
|
|
1215
|
-
return this.buildContainerTemplate(level
|
|
1225
|
+
return this.buildContainerTemplate(level);
|
|
1216
1226
|
let template = components.reduce((current, nodeName) => {
|
|
1217
1227
|
if (level !== 0) {
|
|
1218
1228
|
if (!this.nestElements.has(nodeName)) {
|
|
@@ -1234,7 +1244,6 @@ class UnRecursiveTemplate extends BaseTemplate {
|
|
|
1234
1244
|
if (level === 0)
|
|
1235
1245
|
template += this.buildPlainTextTemplate(level);
|
|
1236
1246
|
template += this.buildThirdPartyTemplate(level, this.componentConfig);
|
|
1237
|
-
template += this.buildContainerTemplate(level);
|
|
1238
1247
|
return template;
|
|
1239
1248
|
}
|
|
1240
1249
|
buildXSTmplName() {
|
package/dist/template.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sources":["../src/components.ts","../src/is.ts","../src/constants.ts","../src/event-emitter.ts","../src/runtime-hooks.ts","../src/utils.ts","../src/template.ts"],"sourcesContent":["const DEFAULT_EMPTY_ARRAY = '[]'\nconst NO_DEFAULT_VALUE = ''\nconst DEFAULT_TRUE = '!0'\nconst DEFAULT_FALSE = '!1'\n\nexport const touchEvents = {\n bindTouchStart: NO_DEFAULT_VALUE,\n bindTouchMove: NO_DEFAULT_VALUE,\n bindTouchEnd: NO_DEFAULT_VALUE,\n bindTouchCancel: NO_DEFAULT_VALUE,\n bindLongTap: NO_DEFAULT_VALUE\n}\n\nexport const animation = {\n animation: NO_DEFAULT_VALUE,\n bindAnimationStart: NO_DEFAULT_VALUE,\n bindAnimationIteration: NO_DEFAULT_VALUE,\n bindAnimationEnd: NO_DEFAULT_VALUE,\n bindTransitionEnd: NO_DEFAULT_VALUE\n}\n\nexport function singleQuote (s: string) {\n return `'${s}'`\n}\n\nconst View = {\n 'hover-class': singleQuote('none'),\n 'hover-stop-propagation': DEFAULT_FALSE,\n 'hover-start-time': '50',\n 'hover-stay-time': '400',\n ...touchEvents,\n ...animation\n}\n\nconst Icon = {\n type: NO_DEFAULT_VALUE,\n size: '23',\n color: NO_DEFAULT_VALUE\n}\n\nconst MapComp = {\n longitude: NO_DEFAULT_VALUE,\n latitude: NO_DEFAULT_VALUE,\n scale: '16',\n markers: DEFAULT_EMPTY_ARRAY,\n covers: NO_DEFAULT_VALUE,\n polyline: DEFAULT_EMPTY_ARRAY,\n circles: DEFAULT_EMPTY_ARRAY,\n controls: DEFAULT_EMPTY_ARRAY,\n 'include-points': DEFAULT_EMPTY_ARRAY,\n 'show-location': NO_DEFAULT_VALUE,\n 'layer-style': '1',\n bindMarkerTap: NO_DEFAULT_VALUE,\n bindControlTap: NO_DEFAULT_VALUE,\n bindCalloutTap: NO_DEFAULT_VALUE,\n bindUpdated: NO_DEFAULT_VALUE,\n ...touchEvents\n}\n\nconst Progress = {\n percent: NO_DEFAULT_VALUE,\n 'stroke-width': '6',\n color: singleQuote('#09BB07'),\n activeColor: singleQuote('#09BB07'),\n backgroundColor: singleQuote('#EBEBEB'),\n active: DEFAULT_FALSE,\n 'active-mode': singleQuote('backwards'),\n 'show-info': DEFAULT_FALSE\n}\n\nconst RichText = {\n nodes: DEFAULT_EMPTY_ARRAY\n}\n\nconst Text = {\n selectable: DEFAULT_FALSE,\n space: NO_DEFAULT_VALUE,\n decode: DEFAULT_FALSE\n}\n\nconst Button = {\n size: singleQuote('default'),\n type: NO_DEFAULT_VALUE,\n plain: DEFAULT_FALSE,\n disabled: NO_DEFAULT_VALUE,\n loading: DEFAULT_FALSE,\n 'form-type': NO_DEFAULT_VALUE,\n 'open-type': NO_DEFAULT_VALUE,\n 'hover-class': singleQuote('button-hover'),\n 'hover-stop-propagation': DEFAULT_FALSE,\n 'hover-start-time': '20',\n 'hover-stay-time': '70',\n name: NO_DEFAULT_VALUE,\n ...touchEvents\n}\n\nconst Checkbox = {\n value: NO_DEFAULT_VALUE,\n disabled: NO_DEFAULT_VALUE,\n checked: DEFAULT_FALSE,\n color: singleQuote('#09BB07'),\n name: NO_DEFAULT_VALUE\n}\n\nconst CheckboxGroup = {\n bindChange: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE\n}\n\nconst Form = {\n 'report-submit': DEFAULT_FALSE,\n bindSubmit: NO_DEFAULT_VALUE,\n bindReset: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE\n}\n\nconst Input = {\n value: NO_DEFAULT_VALUE,\n type: singleQuote(NO_DEFAULT_VALUE),\n password: DEFAULT_FALSE,\n placeholder: NO_DEFAULT_VALUE,\n 'placeholder-style': NO_DEFAULT_VALUE,\n 'placeholder-class': singleQuote('input-placeholder'),\n disabled: NO_DEFAULT_VALUE,\n maxlength: '140',\n 'cursor-spacing': '0',\n focus: DEFAULT_FALSE,\n 'confirm-type': singleQuote('done'),\n 'confirm-hold': DEFAULT_FALSE,\n cursor: '-1',\n 'selection-start': '-1',\n 'selection-end': '-1',\n bindInput: NO_DEFAULT_VALUE,\n bindFocus: NO_DEFAULT_VALUE,\n bindBlur: NO_DEFAULT_VALUE,\n bindConfirm: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE\n}\n\nconst Label = {\n for: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE\n}\n\nconst Picker = {\n mode: singleQuote('selector'),\n disabled: NO_DEFAULT_VALUE,\n range: NO_DEFAULT_VALUE,\n 'range-key': NO_DEFAULT_VALUE,\n value: NO_DEFAULT_VALUE,\n start: NO_DEFAULT_VALUE,\n end: NO_DEFAULT_VALUE,\n fields: singleQuote('day'),\n 'custom-item': NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE,\n bindCancel: NO_DEFAULT_VALUE,\n bindChange: NO_DEFAULT_VALUE,\n bindColumnChange: NO_DEFAULT_VALUE\n}\n\nconst PickerView = {\n value: NO_DEFAULT_VALUE,\n 'indicator-style': NO_DEFAULT_VALUE,\n 'indicator-class': NO_DEFAULT_VALUE,\n 'mask-style': NO_DEFAULT_VALUE,\n 'mask-class': NO_DEFAULT_VALUE,\n bindChange: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE\n}\n\nconst PickerViewColumn = {\n name: NO_DEFAULT_VALUE\n}\n\nconst Radio = {\n value: NO_DEFAULT_VALUE,\n checked: DEFAULT_FALSE,\n disabled: NO_DEFAULT_VALUE,\n color: singleQuote('#09BB07'),\n name: NO_DEFAULT_VALUE\n}\n\nconst RadioGroup = {\n bindChange: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE\n}\n\nconst Slider = {\n min: '0',\n max: '100',\n step: '1',\n disabled: NO_DEFAULT_VALUE,\n value: '0',\n activeColor: singleQuote('#1aad19'),\n backgroundColor: singleQuote('#e9e9e9'),\n 'block-size': '28',\n 'block-color': singleQuote('#ffffff'),\n 'show-value': DEFAULT_FALSE,\n bindChange: NO_DEFAULT_VALUE,\n bindChanging: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE\n}\n\nconst Switch = {\n checked: DEFAULT_FALSE,\n disabled: NO_DEFAULT_VALUE,\n type: singleQuote('switch'),\n color: singleQuote('#04BE02'),\n bindChange: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE\n}\n\nconst Textarea = {\n value: NO_DEFAULT_VALUE,\n placeholder: NO_DEFAULT_VALUE,\n 'placeholder-style': NO_DEFAULT_VALUE,\n 'placeholder-class': singleQuote('textarea-placeholder'),\n disabled: NO_DEFAULT_VALUE,\n maxlength: '140',\n 'auto-focus': DEFAULT_FALSE,\n focus: DEFAULT_FALSE,\n 'auto-height': DEFAULT_FALSE,\n fixed: DEFAULT_FALSE,\n 'cursor-spacing': '0',\n cursor: '-1',\n 'selection-start': '-1',\n 'selection-end': '-1',\n bindFocus: NO_DEFAULT_VALUE,\n bindBlur: NO_DEFAULT_VALUE,\n bindLineChange: NO_DEFAULT_VALUE,\n bindInput: NO_DEFAULT_VALUE,\n bindConfirm: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE\n}\n\nconst CoverImage = {\n src: NO_DEFAULT_VALUE,\n bindLoad: 'eh',\n bindError: 'eh'\n}\n\nconst CoverView = {\n 'scroll-top': DEFAULT_FALSE,\n ...touchEvents\n}\n\nconst MovableArea = {\n 'scale-area': DEFAULT_FALSE\n}\n\nconst MovableView = {\n direction: 'none',\n inertia: DEFAULT_FALSE,\n 'out-of-bounds': DEFAULT_FALSE,\n x: NO_DEFAULT_VALUE,\n y: NO_DEFAULT_VALUE,\n damping: '20',\n friction: '2',\n disabled: NO_DEFAULT_VALUE,\n scale: DEFAULT_FALSE,\n 'scale-min': '0.5',\n 'scale-max': '10',\n 'scale-value': '1',\n bindChange: NO_DEFAULT_VALUE,\n bindScale: NO_DEFAULT_VALUE,\n bindHTouchMove: NO_DEFAULT_VALUE,\n bindVTouchMove: NO_DEFAULT_VALUE,\n width: singleQuote('10px'),\n height: singleQuote('10px'),\n ...touchEvents,\n ...animation\n}\n\nconst ScrollView = {\n 'scroll-x': DEFAULT_FALSE,\n 'scroll-y': DEFAULT_FALSE,\n 'upper-threshold': '50',\n 'lower-threshold': '50',\n 'scroll-top': NO_DEFAULT_VALUE,\n 'scroll-left': NO_DEFAULT_VALUE,\n 'scroll-into-view': NO_DEFAULT_VALUE,\n 'scroll-with-animation': DEFAULT_FALSE,\n 'enable-back-to-top': DEFAULT_FALSE,\n bindScrollToUpper: NO_DEFAULT_VALUE,\n bindScrollToLower: NO_DEFAULT_VALUE,\n bindScroll: NO_DEFAULT_VALUE,\n ...touchEvents,\n ...animation\n}\n\nconst Swiper = {\n 'indicator-dots': DEFAULT_FALSE,\n 'indicator-color': singleQuote('rgba(0, 0, 0, .3)'),\n 'indicator-active-color': singleQuote('#000000'),\n autoplay: DEFAULT_FALSE,\n current: '0',\n interval: '5000',\n duration: '500',\n circular: DEFAULT_FALSE,\n vertical: DEFAULT_FALSE,\n 'previous-margin': singleQuote('0px'),\n 'next-margin': singleQuote('0px'),\n 'display-multiple-items': '1',\n bindChange: NO_DEFAULT_VALUE,\n bindTransition: NO_DEFAULT_VALUE,\n bindAnimationFinish: NO_DEFAULT_VALUE,\n ...touchEvents\n}\n\nconst SwiperItem = {\n 'item-id': NO_DEFAULT_VALUE\n}\n\nconst Navigator = {\n url: NO_DEFAULT_VALUE,\n 'open-type': singleQuote('navigate'),\n delta: '1',\n 'hover-class': singleQuote('navigator-hover'),\n 'hover-stop-propagation': DEFAULT_FALSE,\n 'hover-start-time': '50',\n 'hover-stay-time': '600',\n bindSuccess: NO_DEFAULT_VALUE,\n bindFail: NO_DEFAULT_VALUE,\n bindComplete: NO_DEFAULT_VALUE\n}\n\nconst Audio = {\n id: NO_DEFAULT_VALUE,\n src: NO_DEFAULT_VALUE,\n loop: DEFAULT_FALSE,\n controls: DEFAULT_FALSE,\n poster: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE,\n author: NO_DEFAULT_VALUE,\n bindError: NO_DEFAULT_VALUE,\n bindPlay: NO_DEFAULT_VALUE,\n bindPause: NO_DEFAULT_VALUE,\n bindTimeUpdate: NO_DEFAULT_VALUE,\n bindEnded: NO_DEFAULT_VALUE\n}\n\nconst Camera = {\n 'device-position': singleQuote('back'),\n flash: singleQuote('auto'),\n bindStop: NO_DEFAULT_VALUE,\n bindError: NO_DEFAULT_VALUE\n}\n\nconst Image = {\n src: NO_DEFAULT_VALUE,\n mode: singleQuote('scaleToFill'),\n 'lazy-load': DEFAULT_FALSE,\n bindError: NO_DEFAULT_VALUE,\n bindLoad: NO_DEFAULT_VALUE,\n ...touchEvents\n}\n\nconst LivePlayer = {\n src: NO_DEFAULT_VALUE,\n autoplay: DEFAULT_FALSE,\n muted: DEFAULT_FALSE,\n orientation: singleQuote('vertical'),\n 'object-fit': singleQuote('contain'),\n 'background-mute': DEFAULT_FALSE,\n 'min-cache': '1',\n 'max-cache': '3',\n bindStateChange: NO_DEFAULT_VALUE,\n bindFullScreenChange: NO_DEFAULT_VALUE,\n bindNetStatus: NO_DEFAULT_VALUE,\n ...animation\n}\n\nconst Video = {\n src: NO_DEFAULT_VALUE,\n duration: NO_DEFAULT_VALUE,\n controls: DEFAULT_TRUE,\n 'danmu-list': NO_DEFAULT_VALUE,\n 'danmu-btn': NO_DEFAULT_VALUE,\n 'enable-danmu': NO_DEFAULT_VALUE,\n autoplay: DEFAULT_FALSE,\n loop: DEFAULT_FALSE,\n muted: DEFAULT_FALSE,\n 'initial-time': '0',\n 'page-gesture': DEFAULT_FALSE,\n direction: NO_DEFAULT_VALUE,\n 'show-progress': DEFAULT_TRUE,\n 'show-fullscreen-btn': DEFAULT_TRUE,\n 'show-play-btn': DEFAULT_TRUE,\n 'show-center-play-btn': DEFAULT_TRUE,\n 'enable-progress-gesture': DEFAULT_TRUE,\n 'object-fit': singleQuote('contain'),\n poster: NO_DEFAULT_VALUE,\n 'show-mute-btn': DEFAULT_FALSE,\n bindPlay: NO_DEFAULT_VALUE,\n bindPause: NO_DEFAULT_VALUE,\n bindEnded: NO_DEFAULT_VALUE,\n bindTimeUpdate: NO_DEFAULT_VALUE,\n bindFullScreenChange: NO_DEFAULT_VALUE,\n bindWaiting: NO_DEFAULT_VALUE,\n bindError: NO_DEFAULT_VALUE,\n ...animation\n}\n\nconst Canvas = {\n 'canvas-id': NO_DEFAULT_VALUE,\n 'disable-scroll': DEFAULT_FALSE,\n bindError: NO_DEFAULT_VALUE,\n ...touchEvents\n}\n\nconst Ad = {\n 'unit-id': NO_DEFAULT_VALUE,\n 'ad-intervals': NO_DEFAULT_VALUE,\n bindLoad: NO_DEFAULT_VALUE,\n bindError: NO_DEFAULT_VALUE,\n bindClose: NO_DEFAULT_VALUE\n}\n\nconst WebView = {\n src: NO_DEFAULT_VALUE,\n bindMessage: NO_DEFAULT_VALUE,\n bindLoad: NO_DEFAULT_VALUE,\n bindError: NO_DEFAULT_VALUE\n}\n\nconst Block = {}\n\n// For Vue,因为 slot 标签被 vue 占用了\nconst SlotView = {\n name: NO_DEFAULT_VALUE\n}\n\n// For React\n// Slot 和 SlotView 最终都会编译成 <view slot={{ i.name }} />\n// 因为 <slot name=\"{{ i.name }}\" /> 适用性没有前者高(无法添加类和样式)\n// 不给 View 直接加 slot 属性的原因是性能损耗\nconst Slot = {\n name: NO_DEFAULT_VALUE\n}\n\nconst NativeSlot = {\n name: NO_DEFAULT_VALUE\n}\n\nexport const internalComponents: Record<string, Record<string, string>> = {\n View,\n Icon,\n Progress,\n RichText,\n Text,\n Button,\n Checkbox,\n CheckboxGroup,\n Form,\n Input,\n Label,\n Picker,\n PickerView,\n PickerViewColumn,\n Radio,\n RadioGroup,\n Slider,\n Switch,\n CoverImage,\n Textarea,\n CoverView,\n MovableArea,\n MovableView,\n ScrollView,\n Swiper,\n SwiperItem,\n Navigator,\n Audio,\n Camera,\n Image,\n LivePlayer,\n Video,\n Canvas,\n Ad,\n WebView,\n Block,\n Map: MapComp,\n Slot,\n SlotView,\n NativeSlot,\n}\n\nexport const controlledComponent = new Set([\n 'input',\n 'checkbox',\n 'picker',\n 'picker-view',\n 'radio',\n 'slider',\n 'switch',\n 'textarea'\n])\n\nexport const focusComponents = new Set([\n 'input',\n 'textarea'\n])\n\nexport const voidElements = new Set([\n 'progress',\n 'icon',\n 'rich-text',\n 'input',\n 'textarea',\n 'slider',\n 'switch',\n 'audio',\n 'ad',\n 'official-account',\n 'open-data',\n 'navigation-bar'\n])\n\nexport const nestElements = new Map([\n ['view', -1],\n ['catch-view', -1],\n ['cover-view', -1],\n ['static-view', -1],\n ['pure-view', -1],\n ['block', -1],\n ['text', -1],\n ['static-text', 6],\n ['slot', 8],\n ['slot-view', 8],\n ['label', 6],\n ['form', 4],\n ['scroll-view', 4],\n ['swiper', 4],\n ['swiper-item', 4]\n])\n","export function isString (o: unknown): o is string {\n return typeof o === 'string'\n}\n\nexport function isUndefined (o: unknown): o is undefined {\n return typeof o === 'undefined'\n}\n\nexport function isNull (o: unknown): o is null {\n return o === null\n}\n\nexport function isObject<T> (o: unknown): o is T {\n return o !== null && typeof o === 'object'\n}\n\nexport function isBoolean (o: unknown): o is boolean {\n return o === true || o === false\n}\n\nexport function isFunction (o: unknown): o is (...args: any[]) => any {\n return typeof o === 'function'\n}\n\nexport function isNumber (o: unknown): o is number {\n return typeof o === 'number'\n}\n\nexport function isBooleanStringLiteral (o: unknown): o is string {\n return o === 'true' || o === 'false'\n}\n\nexport const isArray = Array.isArray\n\nexport const isWebPlatform = () => process.env.TARO_ENV === 'h5' || process.env.TARO_PLATFORM === 'web'\n","export enum PLATFORM_TYPE {\n MINI = 'mini',\n WEB = 'web',\n RN = 'rn',\n HARMONY = 'harmony',\n QUICK = 'quickapp'\n}\n\nexport const PLATFORM_CONFIG_MAP = {\n h5: {\n type: PLATFORM_TYPE.WEB\n },\n harmony: {\n type: PLATFORM_TYPE.HARMONY\n },\n mini: {\n type: PLATFORM_TYPE.MINI\n },\n rn: {\n type: PLATFORM_TYPE.RN\n },\n quickapp: {\n type: PLATFORM_TYPE.QUICK\n }\n}\n","type EventName = string | symbol\ntype EventCallbacks = Record<EventName, Record<'next' | 'tail', unknown>>\n\nexport class Events {\n protected callbacks?: EventCallbacks\n static eventSplitter = ',' // Note: Harmony ACE API 8 开发板不支持使用正则 split 字符串 /\\s+/\n\n constructor (opts?) {\n this.callbacks = opts?.callbacks ?? {}\n }\n\n on (eventName: EventName, callback: (...args: any[]) => void, context?: any): this {\n let event: EventName | undefined, tail, _eventName: EventName[]\n if (!callback) {\n return this\n }\n if (typeof eventName === 'symbol') {\n _eventName = [eventName]\n } else {\n _eventName = eventName.split(Events.eventSplitter)\n }\n this.callbacks ||= {}\n const calls = this.callbacks\n while ((event = _eventName.shift())) {\n const list = calls[event]\n const node: any = 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: EventName, callback: (...r: any[]) => void, context?: any): this {\n const wrapper = (...args: any[]) => {\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?: EventName, callback?: (...args: any[]) => void, context?: any) {\n let event: EventName | undefined, calls: EventCallbacks | undefined, _events: EventName[]\n if (!(calls = this.callbacks)) {\n return this\n }\n if (!(events || callback || context)) {\n delete this.callbacks\n return this\n }\n if (typeof events === 'symbol') {\n _events = [events]\n } else {\n _events = events ? events.split(Events.eventSplitter) : Object.keys(calls)\n }\n while ((event = _events.shift())) {\n let node: any = calls[event]\n delete calls[event]\n if (!node || !(callback || context)) {\n continue\n }\n const tail = node.tail\n while ((node = node.next) !== tail) {\n const cb = node.callback\n const 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 (events: EventName, ...args: any[]) {\n let event: EventName | undefined, node, calls: EventCallbacks | undefined, _events: EventName[]\n if (!(calls = this.callbacks)) {\n return this\n }\n if (typeof events === 'symbol') {\n _events = [events]\n } else {\n _events = events.split(Events.eventSplitter)\n }\n while ((event = _events.shift())) {\n if ((node = calls[event])) {\n const tail = node.tail\n while ((node = node.next) !== tail) {\n node.callback.apply(node.context || this, args)\n }\n }\n }\n return this\n }\n}\n","import { Events } from './event-emitter'\nimport { isFunction } from './is'\n\nimport type { Shortcuts } from './template'\n\ntype Func = (...args: any[]) => any\n\nexport enum HOOK_TYPE {\n SINGLE,\n MULTI,\n WATERFALL\n}\n\ninterface Hook {\n type: HOOK_TYPE\n initial?: Func | null\n}\n\ninterface Node {\n next: Node\n context?: any\n callback?: Func\n}\n\ninterface MiniLifecycle {\n app: [\n string, /** onLaunch */\n string, /** onShow */\n string /** onHide */\n ]\n page: [\n string, /** onLoad */\n string, /** onUnload */\n string, /** onReady */\n string, /** onShow */\n string, /** onHide */\n string[], /** others */\n string[] /** side-effects */\n ]\n component: [\n string, /** attached */\n string, /** detached */\n ]\n}\n\ninterface MiniElementData {\n [Shortcuts.Childnodes]?: MiniData[]\n [Shortcuts.NodeName]: string\n [Shortcuts.Class]?: string\n [Shortcuts.Style]?: string\n uid?: string\n sid: string\n [key: string]: unknown\n}\n\ninterface MiniTextData {\n [Shortcuts.Text]: string\n [Shortcuts.NodeName]: string\n}\n\ntype MiniData = MiniElementData | MiniTextData\n\ninterface UpdatePayload {\n path: string\n value: string | boolean | (() => MiniData | MiniData[])\n}\n\ntype Target = Record<string, unknown> & { dataset: Record<string, unknown>, id: string }\n\ninterface MpEvent {\n type: string\n detail: Record<string, unknown>\n target: Target\n currentTarget: Target\n}\n\nconst 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 'onShareAppMessage',\n 'onShareTimeline'\n ]\n ],\n component: [\n 'attached',\n 'detached'\n ]\n}\n\nexport function TaroHook (type: HOOK_TYPE, initial?: Func): Hook {\n return {\n type,\n initial: initial || null\n }\n}\n\nexport class TaroHooks<T extends Record<string, Func> = any> extends Events {\n hooks: Record<keyof T, Hook>\n\n constructor (hooks: Record<keyof T, Hook>, opts?) {\n super(opts)\n this.hooks = hooks\n for (const hookName in hooks) {\n const { initial } = hooks[hookName]\n if (isFunction(initial)) {\n this.on(hookName, initial)\n }\n }\n }\n\n private tapOneOrMany<K extends Extract<keyof T, string>> (hookName: K, callback: T[K] | T[K][]) {\n const list = isFunction(callback) ? [callback] : callback\n list.forEach(cb => this.on(hookName, cb))\n }\n\n tap<K extends Extract<keyof T, string>> (hookName: K, callback: T[K] | T[K][]) {\n const hooks = this.hooks\n const { type, initial } = hooks[hookName]\n if (type === HOOK_TYPE.SINGLE) {\n this.off(hookName)\n this.on(hookName, isFunction(callback) ? callback : callback[callback.length - 1])\n } else {\n initial && this.off(hookName, initial)\n this.tapOneOrMany(hookName, callback)\n }\n }\n\n call<K extends Extract<keyof T, string>> (hookName: K, ...rest: Parameters<T[K]>): ReturnType<T[K]> | undefined {\n const hook = this.hooks[hookName]\n if (!hook) return\n\n const { type } = hook\n\n const calls = this.callbacks\n if (!calls) return\n\n const list = calls[hookName] as { tail: Node, next: Node }\n\n if (list) {\n const tail = list.tail\n let node: Node = list.next\n let args = rest\n let res\n\n while (node !== tail) {\n res = node.callback?.apply(node.context || this, args)\n if (type === HOOK_TYPE.WATERFALL) {\n const params: any = [res]\n args = params\n }\n node = node.next\n }\n return res\n }\n }\n\n isExist (hookName: string) {\n return Boolean(this.callbacks?.[hookName])\n }\n}\n\ntype ITaroHooks = {\n /** 小程序端 App、Page 构造对象的生命周期方法名称 */\n getMiniLifecycle: (defaultConfig: MiniLifecycle) => MiniLifecycle\n getMiniLifecycleImpl: () => MiniLifecycle\n /** 解决 React 生命周期名称的兼容问题 */\n getLifecycle: (instance, lifecyle) => Func | Array<Func> | undefined\n /** 解决百度小程序的模版语法问题 */\n getPathIndex: (indexOfNode: number) => string\n /** 解决支付宝小程序分包时全局作用域不一致的问题 */\n getEventCenter: (EventsClass: typeof Events) => Events\n isBubbleEvents: (eventName: string) => boolean\n getSpecialNodes: () => string[]\n /** 解决 Vue2 布尔值属性值的设置问题 */\n onRemoveAttribute: (element, qualifiedName: string) => boolean\n /** 用于把 React 同一事件回调中的所有 setState 合并到同一个更新处理中 */\n batchedEventUpdates: (cb: Func) => void\n /** 用于处理 React 中的小程序生命周期 hooks */\n mergePageInstance: (prev, next) => void\n /** 用于修改传递给小程序 Page 构造器的对象 */\n modifyPageObject: (config: Record<any, any>) => void\n /** H5 下拉刷新 wrapper */\n createPullDownComponent: (el, path: string, framework, customWrapper?: any, stampId?: string) => void\n /** H5 获取原生 DOM 对象 */\n getDOMNode: (instance) => any\n /**\n * @todo: multi\n * 修改 Taro DOM 序列化数据\n **/\n modifyHydrateData:(data: Record<string, any>) => void\n /**\n * @todo: multi\n * 修改 Taro DOM 序列化数据\n **/\n modifySetAttrPayload: (element, key: string, payload: UpdatePayload, componentsAlias: Record<string, any>) => void\n /**\n * @todo: multi\n * 修改 Taro DOM 序列化数据\n **/\n modifyRmAttrPayload: (element, key: string, payload: UpdatePayload, componentsAlias: Record<string, any>) => void\n /**\n * @todo: multi\n * 调用 addEventListener 时触发\n **/\n onAddEvent: (type: string, handler, options: any, node) => void\n /** 用于修改小程序原生事件对象 */\n modifyMpEvent: (event: MpEvent) => void\n modifyMpEventImpl: (event: MpEvent) => void\n /** 用于修改 Taro DOM 事件对象 */\n modifyTaroEvent: (event, element) => void\n\n dispatchTaroEvent: (event, element) => void\n dispatchTaroEventFinish: (event, element) => void\n\n modifyDispatchEvent: (event, element) => void\n injectNewStyleProperties: (styleProperties: string[]) => void\n initNativeApi: (taro: Record<string, any>) => void\n patchElement: (node) => void\n\n /** 解 Proxy */\n proxyToRaw: (proxyObj) => Record<any, any>\n}\n\nexport const hooks = new TaroHooks<ITaroHooks>({\n getMiniLifecycle: TaroHook(HOOK_TYPE.SINGLE, defaultConfig => defaultConfig),\n\n getMiniLifecycleImpl: TaroHook(HOOK_TYPE.SINGLE, function (this: TaroHooks<ITaroHooks>) {\n return this.call('getMiniLifecycle', defaultMiniLifecycle)\n }),\n\n getLifecycle: TaroHook(HOOK_TYPE.SINGLE, (instance, lifecycle) => instance[lifecycle]),\n\n getPathIndex: TaroHook(HOOK_TYPE.SINGLE, indexOfNode => `[${indexOfNode}]`),\n\n getEventCenter: TaroHook(HOOK_TYPE.SINGLE, Events => new Events()),\n\n isBubbleEvents: TaroHook(HOOK_TYPE.SINGLE, eventName => {\n /**\n * 支持冒泡的事件, 除 支付宝小程序外,其余的可冒泡事件都和微信保持一致\n * 详见 见 https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/event.html\n */\n 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\n return BUBBLE_EVENTS.has(eventName)\n }),\n\n getSpecialNodes: TaroHook(HOOK_TYPE.SINGLE, () => ['view', 'text', 'image']),\n\n onRemoveAttribute: TaroHook(HOOK_TYPE.SINGLE),\n\n batchedEventUpdates: TaroHook(HOOK_TYPE.SINGLE),\n\n mergePageInstance: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyPageObject: TaroHook(HOOK_TYPE.SINGLE),\n\n createPullDownComponent: TaroHook(HOOK_TYPE.SINGLE),\n\n getDOMNode: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyHydrateData: TaroHook(HOOK_TYPE.SINGLE),\n\n modifySetAttrPayload: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyRmAttrPayload: TaroHook(HOOK_TYPE.SINGLE),\n\n onAddEvent: TaroHook(HOOK_TYPE.SINGLE),\n\n proxyToRaw: TaroHook(HOOK_TYPE.SINGLE, function (proxyObj) {\n return proxyObj\n }),\n\n modifyMpEvent: TaroHook(HOOK_TYPE.MULTI),\n\n modifyMpEventImpl: TaroHook(HOOK_TYPE.SINGLE, function (this: TaroHooks<ITaroHooks>, e: MpEvent) {\n try {\n // 有些小程序的事件对象的某些属性只读\n this.call('modifyMpEvent', e)\n } catch (error) {\n console.warn('[Taro modifyMpEvent hook Error]: ' + error?.message)\n }\n }),\n\n injectNewStyleProperties: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyTaroEvent: TaroHook(HOOK_TYPE.MULTI),\n\n dispatchTaroEvent: TaroHook(HOOK_TYPE.SINGLE, (e, node) => {\n node.dispatchEvent(e)\n }),\n\n dispatchTaroEventFinish: TaroHook(HOOK_TYPE.MULTI),\n\n modifyDispatchEvent: TaroHook(HOOK_TYPE.MULTI),\n\n initNativeApi: TaroHook(HOOK_TYPE.MULTI),\n\n patchElement: TaroHook(HOOK_TYPE.MULTI)\n})\n","import { internalComponents } from './components'\nimport { PLATFORM_CONFIG_MAP, PLATFORM_TYPE } from './constants'\nimport { hooks } from './runtime-hooks'\n\nexport const EMPTY_OBJ: any = {}\n\nexport const EMPTY_ARR = []\n\nexport const noop = (..._: unknown[]) => {}\n\n/**\n * Boxed value.\n *\n * @typeparam T Value type.\n */\nexport interface Box<T> {\n v: T\n}\n\n/**\n * box creates a boxed value.\n *\n * @typeparam T Value type.\n * @param v Value.\n * @returns Boxed value.\n */\nexport const box = <T>(v: T) => ({ v })\n\n/**\n * box creates a boxed value.\n *\n * @typeparam T Value type.\n * @param b Boxed value.\n * @returns Value.\n */\nexport const unbox = <T>(b: Box<T>) => b.v\n\nexport function toDashed (s: string) {\n return s.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase()\n}\n\nexport function toCamelCase (s: string) {\n let camel = ''\n let nextCap = false\n for (let i = 0; i < s.length; i++) {\n if (s[i] !== '-') {\n camel += nextCap ? s[i].toUpperCase() : s[i]\n nextCap = false\n } else {\n nextCap = true\n }\n }\n return camel\n}\n\nexport const toKebabCase = function (string) {\n return string.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()\n}\n\nexport function capitalize (s: string) {\n return s.charAt(0).toUpperCase() + s.slice(1)\n}\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty\n\nexport const hasOwn = (\n val: Record<any, any>,\n key: string | symbol\n) => hasOwnProperty.call(val, key)\n\n/**\n * ensure takes a condition and throw a error if the condition fails,\n * like failure::ensure: https://docs.rs/failure/0.1.1/failure/macro.ensure.html\n * @param condition condition.\n * @param msg error message.\n */\nexport function ensure (condition: boolean, msg: string): asserts condition {\n if (!condition) {\n if (process.env.NODE_ENV !== 'production') {\n const reportIssue = '\\n如有疑问,请提交 issue 至:https://github.com/nervjs/taro/issues'\n throw new Error(msg + reportIssue)\n } else {\n throw new Error(msg)\n }\n }\n}\n\nexport function warn (condition: boolean, msg: string) {\n if (process.env.NODE_ENV !== 'production') {\n if (condition) {\n console.warn(`[taro warn] ${msg}`)\n }\n }\n}\n\nexport function queryToJson (str) {\n const dec = decodeURIComponent\n const qp = str.split('&')\n const ret = {}\n let name\n let val\n for (let i = 0, l = qp.length, item; i < l; ++i) {\n item = qp[i]\n if (item.length) {\n const s = item.indexOf('=')\n if (s < 0) {\n name = dec(item)\n val = ''\n } else {\n name = dec(item.slice(0, s))\n val = dec(item.slice(s + 1))\n }\n if (typeof ret[name] === 'string') { // inline'd type check\n ret[name] = [ret[name]]\n }\n\n if (Array.isArray(ret[name])) {\n ret[name].push(val)\n } else {\n ret[name] = val\n }\n }\n }\n return ret // Object\n}\n\nlet _uniqueId = 1\nconst _loadTime = (new Date()).getTime().toString()\n\nexport function getUniqueKey () {\n return _loadTime + (_uniqueId++)\n}\n\nconst cacheData = {}\n\nexport function cacheDataSet (key, val) {\n cacheData[key] = val\n}\n\nexport function cacheDataGet (key, delelteAfterGet?) {\n const temp = cacheData[key]\n delelteAfterGet && delete cacheData[key]\n return temp\n}\n\nexport function cacheDataHas (key) {\n return key in cacheData\n}\n\nexport function mergeInternalComponents (components) {\n Object.keys(components).forEach(name => {\n if (name in internalComponents) {\n Object.assign(internalComponents[name], components[name])\n } else {\n internalComponents[name] = components[name]\n }\n })\n return internalComponents\n}\n\nexport function getComponentsAlias (origin: typeof internalComponents) {\n const mapping = {}\n const viewAttrs = origin.View\n const extraList = {\n '#text': {},\n StaticView: viewAttrs,\n StaticImage: origin.Image,\n StaticText: origin.Text,\n PureView: viewAttrs,\n CatchView: viewAttrs\n }\n origin = { ...origin, ...extraList }\n Object.keys(origin)\n .sort((a, b) => {\n const reg = /^(Static|Pure|Catch)*(View|Image|Text)$/\n const isACommonly = reg.test(a)\n const isBCommonly = reg.test(b)\n if (isACommonly && isBCommonly) {\n return a > b ? 1 : -1\n } else if (isACommonly) {\n return -1\n } else if (isBCommonly) {\n return 1\n } else {\n return a >= b ? 1 : -1\n }\n })\n .forEach((key, num) => {\n const obj = {\n _num: String(num)\n }\n Object.keys(origin[key])\n .filter(attr => !(/^bind/.test(attr)) && !['focus', 'blur'].includes(attr))\n .sort()\n .forEach((attr, index) => {\n obj[toCamelCase(attr)] = 'p' + index\n })\n mapping[toDashed(key)] = obj\n })\n\n return mapping\n}\n\nexport function getPlatformType (platform = 'weapp', configNameOrType: string = PLATFORM_TYPE.MINI): PLATFORM_TYPE {\n if (Object.keys(PLATFORM_CONFIG_MAP).includes(platform)) {\n configNameOrType = platform\n }\n const param = PLATFORM_CONFIG_MAP[configNameOrType] || {}\n return param.type || configNameOrType\n}\n\nexport function mergeReconciler (hostConfig, hooksForTest?) {\n const obj = hooksForTest || hooks\n const keys = Object.keys(hostConfig)\n keys.forEach(key => {\n obj.tap(key, hostConfig[key])\n })\n}\n\nexport function nonsupport (api) {\n return function () {\n console.warn(`小程序暂不支持 ${api}`)\n }\n}\n\nexport function setUniqueKeyToRoute (key: string, obj) {\n const routerParamsPrivateKey = '__key_'\n const useDataCacheApis = [\n 'navigateTo',\n 'redirectTo',\n 'reLaunch',\n 'switchTab'\n ]\n\n if (useDataCacheApis.indexOf(key) > -1) {\n const url = obj.url = obj.url || ''\n const hasMark = url.indexOf('?') > -1\n const cacheKey = getUniqueKey()\n obj.url += (hasMark ? '&' : '?') + `${routerParamsPrivateKey}=${cacheKey}`\n }\n}\n\nexport function indent (str: string, size: number): string {\n return str.split('\\n')\n .map((line, index) => {\n const indent = index === 0 ? '' : Array(size).fill(' ').join('')\n return indent + line\n })\n .join('\\n')\n}\n","/**\n * 这里我们需要关心的小程序种类有两类:\n * 1. 模板递归:\n * - 支持:tmpl0 套 tmpl0\n * - 不支持:这就使得我们必须生成多级的模板,tmpl0 套 tmpl1,tmpl1 套 tmpl2……\n * 直到超过阈值 N (N = config.miniapp.baseLevel) tmplN 会套组件 comp,组件 comp 重新再套 tmpl0。\n * 2. 小程序脚本语言(wxs, sjs, etc...):\n * - 支持:可以在模板使用函数缩减模板大小或提高性能(存疑),例如判断一个值是不是假值(falsy value)。\n * 将来或许会把数据序列化^1 的操作也放到小程序脚本语言里。\n * - 不支持:使用纯 *xml 语法\n *\n * ^1: packages/taro-runtime/src/hydrate.ts\n*/\n\nimport {\n focusComponents,\n internalComponents,\n nestElements,\n singleQuote,\n voidElements\n} from './components'\nimport { isBooleanStringLiteral, isFunction, isNumber, isString } from './is'\nimport { Shortcuts } from './shortcuts'\nimport { capitalize, getComponentsAlias, hasOwn, indent, toCamelCase, toDashed, toKebabCase } from './utils'\n\ninterface Component {\n nodeName: string\n nodeAlias: string\n attributes: Attributes\n}\n\ninterface Components {\n [key: string]: Record<string, string>\n}\n\ninterface ComponentConfig {\n includes: Set<string>\n exclude: Set<string>\n thirdPartyComponents: Map<string, Set<string>>\n includeAll: boolean\n}\n\nexport interface IAdapter {\n if: string\n else: string\n elseif: string\n for: string\n forItem: string\n forIndex: string\n key: string\n xs?: string\n type: string\n}\n\nexport type Attributes = Record<string, string>\n\nexport const styles = {\n style: `i.${Shortcuts.Style}`,\n class: `i.${Shortcuts.Class}`\n}\n\nexport const events = {\n bindtap: 'eh'\n}\n\nconst weixinAdapter: IAdapter = {\n if: 'wx:if',\n else: 'wx:else',\n elseif: 'wx:elif',\n for: 'wx:for',\n forItem: 'wx:for-item',\n forIndex: 'wx:for-index',\n key: 'wx:key',\n xs: 'wxs',\n type: 'weapp'\n}\n\nexport class BaseTemplate {\n protected exportExpr = 'module.exports ='\n protected isSupportRecursive: boolean\n protected miniComponents: Components\n protected thirdPartyPatcher: Record<string, Record<string, string>> = {}\n protected modifyCompProps?: (compName: string, target: Record<string, string>) => Record<string, string>\n protected modifyLoopBody?: (child: string, nodeName: string) => string\n protected modifyLoopContainer?: (children: string, nodeName: string) => string\n protected modifyTemplateResult?: (res: string, nodeName: string, level: number, children: string) => string\n protected modifyThirdPartyLoopBody?: (child: string, nodeName: string) => string\n public supportXS = false\n public Adapter = weixinAdapter\n /** 组件列表 */\n public internalComponents = internalComponents\n /** 可以 focus 聚焦的组件 */\n public focusComponents: Set<string> = focusComponents\n /** 不需要渲染子节点的元素 */\n public voidElements: Set<string> = voidElements\n /** 可以递归调用自身的组件 */\n public nestElements: Map<string, number> = nestElements\n public componentsAlias\n\n private buildAttribute (attrs: Attributes, nodeName: string): string {\n return Object.keys(attrs)\n .map(k => `${k}=\"${k.startsWith('bind') || k.startsWith('on') || k.startsWith('catch') ? attrs[k] : `{${this.getAttrValue(attrs[k], k, nodeName)}}`}\" `)\n .join('')\n }\n\n protected replacePropName (name: string, value: string, _componentName?: string, _componentAlias?) {\n if (value === 'eh') return name.toLowerCase()\n return name\n }\n\n protected createMiniComponents (components: Components) {\n const result: Components = Object.create(null)\n\n for (const key in components) {\n if (hasOwn(components, key)) {\n let component = components[key]\n const compName = toDashed(key)\n const newComp: Record<string, string> = Object.create(null)\n const componentAlias = this.componentsAlias[compName]\n\n if (isFunction(this.modifyCompProps)) {\n component = this.modifyCompProps(compName, component)\n }\n\n for (let prop in component) {\n if (hasOwn(component, prop)) {\n let propValue = component[prop]\n if (prop.startsWith('bind') || propValue === 'eh') {\n propValue = 'eh'\n } else if (propValue === '') {\n const propInCamelCase = toCamelCase(prop)\n const propAlias = componentAlias[propInCamelCase] || propInCamelCase\n propValue = `i.${propAlias}`\n } else if (isBooleanStringLiteral(propValue) || isNumber(+propValue)) {\n const propInCamelCase = toCamelCase(prop)\n const propAlias = componentAlias[propInCamelCase] || propInCamelCase\n\n // cursor 默认取最后输入框最后一位 fix #13809\n if (prop === 'cursor') {\n propValue = `i.${componentAlias.value}?i.${componentAlias.value}.length:-1`\n }\n\n propValue = this.supportXS\n ? `xs.b(i.${propAlias},${propValue})`\n : `i.${propAlias}===undefined?${propValue}:i.${propAlias}`\n } else {\n const propInCamelCase = toCamelCase(prop)\n const propAlias = componentAlias[propInCamelCase] || propInCamelCase\n propValue = `i.${propAlias}||${propValue || singleQuote('')}`\n }\n\n prop = this.replacePropName(prop, propValue, compName, componentAlias)\n\n newComp[prop] = propValue\n }\n }\n if (compName !== 'block') {\n Object.assign(newComp, styles, this.getEvents())\n }\n\n if (compName === 'swiper-item') {\n delete newComp.style\n }\n\n if (compName === 'view') {\n const reg = /^(bind|on)(touchmove|TouchMove)$/\n const comp = { ...newComp }\n Object.keys(comp).forEach(originKey => {\n if (!reg.test(originKey)) return\n\n const key = originKey.replace(reg, 'catch$2')\n comp[key] = comp[originKey]\n delete comp[originKey]\n })\n\n result['catch-view'] = comp\n }\n\n if (compName === 'view' || compName === 'text' || compName === 'image') {\n const comp: Record<any, any> = {}\n Object.keys(newComp).forEach(key => {\n const value = newComp[key]\n if (value !== 'eh') comp[key] = value\n })\n result[`static-${compName}`] = comp\n if (compName === 'view') {\n result['pure-view'] = {\n style: comp.style,\n class: comp.class\n }\n }\n }\n\n if (compName === 'slot' || compName === 'slot-view') {\n result[compName] = {\n slot: newComp?.name,\n ...styles\n }\n } else if (compName === 'native-slot') {\n result[compName] = {\n name: newComp?.name,\n }\n } else {\n result[compName] = newComp\n }\n }\n }\n\n return result\n }\n\n protected buildBaseTemplate () {\n const Adapter = this.Adapter\n\n const data = !this.isSupportRecursive && this.supportXS\n ? `${this.dataKeymap('i:item,l:\\'\\'')}`\n : this.dataKeymap('i:item')\n\n return `${this.buildXsTemplate()}\n<template name=\"taro_tmpl\">\n <block ${Adapter.for}=\"{{root.cn}}\" ${Adapter.key}=\"sid\">\n <template is=\"tmpl_0_${Shortcuts.Container}\" data=\"{{${data}}}\" />\n </block>\n</template>\n`\n }\n\n protected buildThirdPartyAttr (attrs: Set<string>, patcher: Record<string, string> = {}) {\n return Array.from(attrs).reduce((str, attr) => {\n if (attr.startsWith('@')) {\n // vue2\n let value = attr.slice(1)\n if (value.indexOf('-') > -1) {\n value = `:${value}`\n }\n return str + `bind${value}=\"eh\" `\n } else if (attr.startsWith('bind')) {\n return str + `${attr}=\"eh\" `\n } else if (attr.startsWith('on')) {\n // react, vue3\n let value = toKebabCase(attr.slice(2))\n if (value.indexOf('-') > -1) {\n // 兼容如 vant 某些组件的 bind:a-b 这类属性\n value = `:${value}`\n }\n return str + `bind${value}=\"eh\" `\n } else if (attr === 'class') {\n return str + `class=\"{{i.${Shortcuts.Class}}}\" `\n } else if (attr === 'style') {\n return str + `style=\"{{i.${Shortcuts.Style}}}\" `\n }\n\n const patchValue = patcher[attr]\n if (isBooleanStringLiteral(patchValue) || isNumber(patchValue) || isString(patchValue)) {\n const propValue = this.supportXS\n ? `xs.b(i.${toCamelCase(attr)},${patchValue})`\n : `i.${toCamelCase(attr)}===undefined?${patchValue}:i.${toCamelCase(attr)}`\n return str + `${attr}=\"{{${propValue}}}\" `\n }\n return str + `${attr}=\"{{i.${toCamelCase(attr)}}}\" `\n }, '')\n }\n\n protected buildComponentTemplate (comp: Component, level: number) {\n return this.focusComponents.has(comp.nodeName)\n ? this.buildFocusComponentTemplate(comp, level)\n : this.buildStandardComponentTemplate(comp, level)\n }\n\n private getChildren (comp: Component, level: number): string {\n const { isSupportRecursive, Adapter, supportXS } = this\n const nextLevel = isSupportRecursive ? 0 : level + 1\n\n const data = !this.isSupportRecursive && supportXS\n ? `${this.dataKeymap('i:item,l:l')}`\n : this.dataKeymap('i:item')\n\n let child = supportXS\n ? `<template is=\"{{xs.e(${isSupportRecursive ? 0 : 'cid+1'})}}\" data=\"{{${data}}}\" />`\n : `<template is=\"tmpl_${nextLevel}_${Shortcuts.Container}\" data=\"{{${data}}}\" />`\n\n if (isFunction(this.modifyLoopBody)) {\n child = this.modifyLoopBody(child, comp.nodeName)\n }\n\n let children = this.voidElements.has(comp.nodeName)\n ? ''\n : `\n <block ${Adapter.for}=\"{{i.${Shortcuts.Childnodes}}}\" ${Adapter.key}=\"sid\">\n ${indent(child, 6)}\n </block>\n `\n\n if (isFunction(this.modifyLoopContainer)) {\n children = this.modifyLoopContainer(children, comp.nodeName)\n }\n\n return children\n }\n\n protected buildFocusComponentTemplate (comp: Component, level: number) {\n const children = this.getChildren(comp, level)\n const nodeName = comp.nodeName\n const nodeAlias = comp.nodeAlias\n const attrs = { ...comp.attributes }\n const templateName = this.supportXS\n ? `xs.c(i, 'tmpl_${level}_')`\n : `i.focus ? 'tmpl_${level}_${nodeAlias}_focus' : 'tmpl_${level}_${nodeAlias}_blur'`\n delete attrs.focus\n\n let res = `\n<template name=\"tmpl_${level}_${nodeAlias}\">\n <template is=\"{{${templateName}}}\" data=\"{{${this.dataKeymap('i:i')}${children ? ',cid:cid' : ''}}}\" />\n</template>\n\n<template name=\"tmpl_${level}_${nodeAlias}_focus\">\n <${nodeName} ${this.buildAttribute(comp.attributes, nodeName)} id=\"{{i.uid||i.sid}}\" data-sid=\"{{i.sid}}\">${children}</${nodeName}>\n</template>\n\n<template name=\"tmpl_${level}_${nodeAlias}_blur\">\n <${nodeName} ${this.buildAttribute(attrs, nodeName)} id=\"{{i.uid||i.sid}}\" data-sid=\"{{i.sid}}\">${children}</${nodeName}>\n</template>\n`\n if (isFunction(this.modifyTemplateResult)) {\n res = this.modifyTemplateResult(res, nodeName, level, children)\n }\n\n return res\n }\n\n protected buildStandardComponentTemplate (comp: Component, level: number) {\n const children = this.getChildren(comp, level)\n const nodeAlias = comp.nodeAlias\n\n let nodeName = ''\n switch (comp.nodeName) {\n case 'slot':\n case 'slot-view':\n case 'catch-view':\n case 'static-view':\n case 'pure-view':\n nodeName = 'view'\n break\n case 'static-text':\n nodeName = 'text'\n break\n case 'static-image':\n nodeName = 'image'\n break\n case 'native-slot':\n nodeName = 'slot'\n break\n default:\n nodeName = comp.nodeName\n break\n }\n\n let res = `\n<template name=\"tmpl_${level}_${nodeAlias}\">\n <${nodeName} ${this.buildAttribute(comp.attributes, comp.nodeName)} id=\"{{i.uid||i.sid}}\" data-sid=\"{{i.sid}}\">${children}</${nodeName}>\n</template>\n`\n\n if (isFunction(this.modifyTemplateResult)) {\n res = this.modifyTemplateResult(res, comp.nodeName, level, children)\n }\n\n return res\n }\n\n protected buildPlainTextTemplate (level: number): string {\n return `\n<template name=\"tmpl_${level}_${this.componentsAlias['#text']._num}\">\n <block>{{i.${Shortcuts.Text}}}</block>\n</template>\n`\n }\n\n protected buildThirdPartyTemplate (level: number, componentConfig: ComponentConfig) {\n const { Adapter, isSupportRecursive, supportXS, nestElements } = this\n const nextLevel = isSupportRecursive ? 0 : level + 1\n let template = ''\n\n const data = !isSupportRecursive && supportXS\n ? `${this.dataKeymap('i:item,l:l')}`\n : this.dataKeymap('i:item')\n\n componentConfig.thirdPartyComponents.forEach((attrs, compName) => {\n if (compName === 'custom-wrapper') {\n template += `\n<template name=\"tmpl_${level}_${compName}\">\n <${compName} i=\"{{i}}\" l=\"{{l}}\" id=\"{{i.uid||i.sid}}\" data-sid=\"{{i.sid}}\">\n </${compName}>\n</template>\n `\n } else {\n if (!isSupportRecursive && supportXS && nestElements.has(compName) && level + 1 > nestElements.get(compName)!) return\n\n let child = supportXS\n ? `<template is=\"{{xs.e(${isSupportRecursive ? 0 : 'cid+1'})}}\" data=\"{{${data}}}\" />`\n : `<template is=\"tmpl_${nextLevel}_${Shortcuts.Container}\" data=\"{{${data}}}\" />`\n\n if (isFunction(this.modifyThirdPartyLoopBody)) {\n child = this.modifyThirdPartyLoopBody(child, compName)\n }\n\n template += `\n<template name=\"tmpl_${level}_${compName}\">\n <${compName} ${this.buildThirdPartyAttr(attrs, this.thirdPartyPatcher[compName] || {})} id=\"{{i.uid||i.sid}}\" data-sid=\"{{i.sid}}\">\n <block ${Adapter.for}=\"{{i.${Shortcuts.Childnodes}}}\" ${Adapter.key}=\"sid\">\n ${child}\n </block>\n </${compName}>\n</template>\n `\n }\n })\n\n return template\n }\n\n protected buildContainerTemplate (level: number, restart = false) {\n let tmpl = ''\n if (restart) {\n tmpl = `<block ${this.Adapter.if}=\"{{i.nn === '#text'}}\">\n <template is=\"tmpl_0_#text\" data=\"{{i:i}}\" />\n </block>\n <block ${this.Adapter.else}>\n ${!this.isSupportRecursive && this.supportXS ? '<comp i=\"{{i}}\" l=\"{{l}}\" />' : '<comp i=\"{{i}}\" />'}\n </block>`\n } else {\n const xs = !this.isSupportRecursive\n ? `xs.a(${level}, i.${Shortcuts.NodeName}, l)`\n : `xs.a(${level}, i.${Shortcuts.NodeName})`\n\n const data = !this.isSupportRecursive\n ? `${this.dataKeymap(`i:i,cid:${level},l:xs.f(l,i.${Shortcuts.NodeName})`)}`\n : `${this.dataKeymap('i:i')}`\n\n tmpl = this.supportXS\n ? `<template is=\"{{${xs}}}\" data=\"{{${data}}}\" />`\n : `<template is=\"{{'tmpl_${level}_' + i.${Shortcuts.NodeName}}}\" data=\"{{${this.dataKeymap('i:i')}}}\" />`\n }\n return `\n<template name=\"tmpl_${level}_${Shortcuts.Container}\">\n ${tmpl}\n</template>\n`\n }\n\n protected dataKeymap (keymap: string) {\n return keymap\n }\n\n protected getEvents (): any {\n return events\n }\n\n protected getAttrValue (value: string, _key: string, _nodeName: string) {\n return `{${value}}`\n }\n\n protected buildXsTemplate () {\n return ''\n }\n\n public buildPageTemplate = (baseTempPath: string) => {\n const template = `<import src=\"${baseTempPath}\"/>\n<template is=\"taro_tmpl\" data=\"{{${this.dataKeymap('root:root')}}}\" />`\n\n return template\n }\n\n public buildBaseComponentTemplate = (ext: string) => {\n const data = !this.isSupportRecursive && this.supportXS\n ? this.dataKeymap('i:i,l:l')\n : this.dataKeymap('i:i')\n\n return `<import src=\"./base${ext}\" />\n<template is=\"tmpl_0_${Shortcuts.Container}\" data=\"{{${data}}}\" />`\n }\n\n public buildCustomComponentTemplate = (ext: string) => {\n const Adapter = this.Adapter\n const data = !this.isSupportRecursive && this.supportXS\n ? `${this.dataKeymap('i:item,l:\\'\\'')}`\n : this.dataKeymap('i:item')\n return `<import src=\"./base${ext}\" />\n <block ${Adapter.for}=\"{{i.${Shortcuts.Childnodes}}}\" ${Adapter.key}=\"sid\">\n <template is=\"tmpl_0_container\" data=\"{{${data}}}\" />\n </block>`\n }\n\n public buildXScript = () => {\n return `${this.exportExpr} {\n a: ${this.buildXSTmplName()},\n b: function (a, b) {\n return a === undefined ? b : a\n },\n c: ${this.buildXSTepFocus(Shortcuts.NodeName)},\n d: function (i, v) {\n return i === undefined ? v : i\n },\n e: function (n) {\n return 'tmpl_' + n + '_${Shortcuts.Container}'\n },\n ${this.buildXSTmpExtra()}\n}`\n }\n\n public mergeComponents (ctx, patch: Record<string, Record<string, string>>) {\n ctx.helper.recursiveMerge(this.internalComponents, patch)\n }\n\n public mergeThirdPartyComponents (patch: Record<string, Record<string, string>>) {\n this.thirdPartyPatcher = patch\n }\n\n protected buildXSTmplName () {\n return `function (l, n) {\n return 'tmpl_' + l + '_' + n\n }`\n }\n\n protected buildXSTepFocus (nn: string) {\n return `function(i, prefix) {\n var s = i.focus !== undefined ? 'focus' : 'blur'\n return prefix + i.${nn} + '_' + s\n }`\n }\n\n protected buildXSTmpExtra () {\n return ''\n }\n}\n\nexport class RecursiveTemplate extends BaseTemplate {\n public isSupportRecursive = true\n\n public buildTemplate = (componentConfig: ComponentConfig) => {\n let template = this.buildBaseTemplate()\n if (!this.miniComponents) {\n this.componentsAlias = getComponentsAlias(this.internalComponents)\n this.miniComponents = this.createMiniComponents(this.internalComponents)\n }\n const ZERO_FLOOR = 0\n const components = Object.keys(this.miniComponents)\n .filter(c => componentConfig.includes.size && !componentConfig.includeAll ? componentConfig.includes.has(c) : true)\n\n template = components.reduce((current, nodeName) => {\n const attributes: Attributes = this.miniComponents[nodeName]\n const nodeAlias = this.componentsAlias[nodeName]._num\n return current + this.buildComponentTemplate({ nodeName, nodeAlias, attributes }, ZERO_FLOOR)\n }, template)\n\n template += this.buildPlainTextTemplate(ZERO_FLOOR)\n template += this.buildThirdPartyTemplate(ZERO_FLOOR, componentConfig)\n template += this.buildContainerTemplate(ZERO_FLOOR)\n\n return template\n }\n}\n\nexport class UnRecursiveTemplate extends BaseTemplate {\n isSupportRecursive = false\n private _baseLevel = 16\n private componentConfig: ComponentConfig\n\n set baseLevel (lv) {\n this._baseLevel = lv\n }\n\n get baseLevel () {\n return this._baseLevel\n }\n\n public buildTemplate = (componentConfig: ComponentConfig) => {\n this.componentConfig = componentConfig\n if (!this.miniComponents) {\n this.componentsAlias = getComponentsAlias(this.internalComponents)\n this.miniComponents = this.createMiniComponents(this.internalComponents)\n }\n const components = Object.keys(this.miniComponents)\n .filter(c => componentConfig.includes.size && !componentConfig.includeAll ? componentConfig.includes.has(c) : true)\n\n let template = this.buildBaseTemplate()\n for (let i = 0; i < this.baseLevel; i++) {\n template += this.supportXS\n ? this.buildOptimizeFloor(i, components, this.baseLevel === i + 1)\n : this.buildFloor(i, components, this.baseLevel === i + 1)\n }\n\n return template\n }\n\n protected buildFloor (level: number, components: string[], restart = false) {\n if (restart) return this.buildContainerTemplate(level, restart)\n\n let template = components.reduce((current, nodeName) => {\n const attributes: Attributes = this.miniComponents[nodeName]\n const nodeAlias = this.componentsAlias[nodeName]._num\n return current + this.buildComponentTemplate({ nodeName, nodeAlias, attributes }, level)\n }, '')\n\n template += this.buildPlainTextTemplate(level)\n template += this.buildThirdPartyTemplate(level, this.componentConfig)\n template += this.buildContainerTemplate(level, restart)\n\n return template\n }\n\n protected buildOptimizeFloor (level: number, components: string[], restart = false) {\n if (restart) return this.buildContainerTemplate(level, restart)\n\n let template = components.reduce((current, nodeName) => {\n if (level !== 0) {\n if (!this.nestElements.has(nodeName)) {\n // 不可嵌套自身的组件只需输出一层模板\n return current\n } else {\n // 部分可嵌套自身的组件实际上不会嵌套过深,这里按阈值限制层数\n const max = this.nestElements.get(nodeName)!\n if (max > 0 && level >= max) {\n return current\n }\n }\n }\n const attributes: Attributes = this.miniComponents[nodeName]\n const nodeAlias = this.componentsAlias[nodeName]._num\n return current + this.buildComponentTemplate({ nodeName, nodeAlias, attributes }, level)\n }, '')\n\n if (level === 0) template += this.buildPlainTextTemplate(level)\n template += this.buildThirdPartyTemplate(level, this.componentConfig)\n template += this.buildContainerTemplate(level)\n\n return template\n }\n\n protected buildXSTmplName () {\n const isLoopComps = [\n ...Array.from(this.nestElements.keys()),\n ...Array.from(this.componentConfig.thirdPartyComponents.keys())\n ]\n const isLoopCompsSet = new Set(isLoopComps)\n const hasMaxComps: string[] = []\n this.nestElements.forEach((max, comp) => {\n if (max > 1) {\n hasMaxComps.push(comp)\n } else if (max === 1 && isLoopCompsSet.has(comp)) {\n isLoopCompsSet.delete(comp)\n }\n })\n\n const componentsAlias = this.componentsAlias\n const listA = Array.from(isLoopCompsSet).map(item => componentsAlias[item]?._num || item)\n const listB = hasMaxComps.map(item => componentsAlias[item]?._num || item)\n\n return `function (l, n, s) {\n var a = ${JSON.stringify(listA)}\n var b = ${JSON.stringify(listB)}\n if (a.indexOf(n) === -1) {\n l = 0\n }\n if (b.indexOf(n) > -1) {\n var u = s.split(',')\n var depth = 0\n for (var i = 0; i < u.length; i++) {\n if (u[i] === n) depth++\n }\n l = depth\n }\n return 'tmpl_' + l + '_' + n\n }`\n }\n\n protected buildXSTmpExtra () {\n const hasMaxComps: string[] = []\n this.nestElements.forEach((max, comp) => {\n if (max > 1) hasMaxComps.push(comp)\n })\n\n const componentsAlias = this.componentsAlias\n const listA = hasMaxComps.map(item => componentsAlias[item]?._num || item)\n\n return `f: function (l, n) {\n var b = ${JSON.stringify(listA)}\n if (b.indexOf(n) > -1) {\n if (l) l += ','\n l += n\n }\n return l\n }`\n }\n}\n\nexport {\n capitalize,\n internalComponents,\n Shortcuts,\n toCamelCase\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"template.js","sources":["../src/components.ts","../src/is.ts","../src/constants.ts","../src/event-emitter.ts","../src/runtime-hooks.ts","../src/utils.ts","../src/template.ts"],"sourcesContent":["const DEFAULT_EMPTY_ARRAY = '[]'\nconst NO_DEFAULT_VALUE = ''\nconst DEFAULT_TRUE = '!0'\nconst DEFAULT_FALSE = '!1'\n\nexport const touchEvents = {\n bindTouchStart: NO_DEFAULT_VALUE,\n bindTouchMove: NO_DEFAULT_VALUE,\n bindTouchEnd: NO_DEFAULT_VALUE,\n bindTouchCancel: NO_DEFAULT_VALUE,\n bindLongTap: NO_DEFAULT_VALUE\n}\n\nexport const animation = {\n animation: NO_DEFAULT_VALUE,\n bindAnimationStart: NO_DEFAULT_VALUE,\n bindAnimationIteration: NO_DEFAULT_VALUE,\n bindAnimationEnd: NO_DEFAULT_VALUE,\n bindTransitionEnd: NO_DEFAULT_VALUE\n}\n\nexport function singleQuote (s: string) {\n return `'${s}'`\n}\n\nconst View = {\n 'hover-class': singleQuote('none'),\n 'hover-stop-propagation': DEFAULT_FALSE,\n 'hover-start-time': '50',\n 'hover-stay-time': '400',\n ...touchEvents,\n ...animation\n}\n\nconst Icon = {\n type: NO_DEFAULT_VALUE,\n size: '23',\n color: NO_DEFAULT_VALUE\n}\n\nconst MapComp = {\n longitude: NO_DEFAULT_VALUE,\n latitude: NO_DEFAULT_VALUE,\n scale: '16',\n markers: DEFAULT_EMPTY_ARRAY,\n covers: NO_DEFAULT_VALUE,\n polyline: DEFAULT_EMPTY_ARRAY,\n circles: DEFAULT_EMPTY_ARRAY,\n controls: DEFAULT_EMPTY_ARRAY,\n 'include-points': DEFAULT_EMPTY_ARRAY,\n 'show-location': NO_DEFAULT_VALUE,\n 'layer-style': '1',\n bindMarkerTap: NO_DEFAULT_VALUE,\n bindControlTap: NO_DEFAULT_VALUE,\n bindCalloutTap: NO_DEFAULT_VALUE,\n bindUpdated: NO_DEFAULT_VALUE,\n ...touchEvents\n}\n\nconst Progress = {\n percent: NO_DEFAULT_VALUE,\n 'stroke-width': '6',\n color: singleQuote('#09BB07'),\n activeColor: singleQuote('#09BB07'),\n backgroundColor: singleQuote('#EBEBEB'),\n active: DEFAULT_FALSE,\n 'active-mode': singleQuote('backwards'),\n 'show-info': DEFAULT_FALSE\n}\n\nconst RichText = {\n nodes: DEFAULT_EMPTY_ARRAY\n}\n\nconst Text = {\n selectable: DEFAULT_FALSE,\n space: NO_DEFAULT_VALUE,\n decode: DEFAULT_FALSE\n}\n\nconst Button = {\n size: singleQuote('default'),\n type: NO_DEFAULT_VALUE,\n plain: DEFAULT_FALSE,\n disabled: NO_DEFAULT_VALUE,\n loading: DEFAULT_FALSE,\n 'form-type': NO_DEFAULT_VALUE,\n 'open-type': NO_DEFAULT_VALUE,\n 'hover-class': singleQuote('button-hover'),\n 'hover-stop-propagation': DEFAULT_FALSE,\n 'hover-start-time': '20',\n 'hover-stay-time': '70',\n name: NO_DEFAULT_VALUE,\n ...touchEvents\n}\n\nconst Checkbox = {\n value: NO_DEFAULT_VALUE,\n disabled: NO_DEFAULT_VALUE,\n checked: DEFAULT_FALSE,\n color: singleQuote('#09BB07'),\n name: NO_DEFAULT_VALUE\n}\n\nconst CheckboxGroup = {\n bindChange: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE\n}\n\nconst Form = {\n 'report-submit': DEFAULT_FALSE,\n bindSubmit: NO_DEFAULT_VALUE,\n bindReset: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE\n}\n\nconst Input = {\n value: NO_DEFAULT_VALUE,\n type: singleQuote(NO_DEFAULT_VALUE),\n password: DEFAULT_FALSE,\n placeholder: NO_DEFAULT_VALUE,\n 'placeholder-style': NO_DEFAULT_VALUE,\n 'placeholder-class': singleQuote('input-placeholder'),\n disabled: NO_DEFAULT_VALUE,\n maxlength: '140',\n 'cursor-spacing': '0',\n focus: DEFAULT_FALSE,\n 'confirm-type': singleQuote('done'),\n 'confirm-hold': DEFAULT_FALSE,\n cursor: '-1',\n 'selection-start': '-1',\n 'selection-end': '-1',\n bindInput: NO_DEFAULT_VALUE,\n bindFocus: NO_DEFAULT_VALUE,\n bindBlur: NO_DEFAULT_VALUE,\n bindConfirm: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE\n}\n\nconst Label = {\n for: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE\n}\n\nconst Picker = {\n mode: singleQuote('selector'),\n disabled: NO_DEFAULT_VALUE,\n range: NO_DEFAULT_VALUE,\n 'range-key': NO_DEFAULT_VALUE,\n value: NO_DEFAULT_VALUE,\n start: NO_DEFAULT_VALUE,\n end: NO_DEFAULT_VALUE,\n fields: singleQuote('day'),\n 'custom-item': NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE,\n bindCancel: NO_DEFAULT_VALUE,\n bindChange: NO_DEFAULT_VALUE,\n bindColumnChange: NO_DEFAULT_VALUE\n}\n\nconst PickerView = {\n value: NO_DEFAULT_VALUE,\n 'indicator-style': NO_DEFAULT_VALUE,\n 'indicator-class': NO_DEFAULT_VALUE,\n 'mask-style': NO_DEFAULT_VALUE,\n 'mask-class': NO_DEFAULT_VALUE,\n bindChange: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE\n}\n\nconst PickerViewColumn = {\n name: NO_DEFAULT_VALUE\n}\n\nconst Radio = {\n value: NO_DEFAULT_VALUE,\n checked: DEFAULT_FALSE,\n disabled: NO_DEFAULT_VALUE,\n color: singleQuote('#09BB07'),\n name: NO_DEFAULT_VALUE\n}\n\nconst RadioGroup = {\n bindChange: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE\n}\n\nconst Slider = {\n min: '0',\n max: '100',\n step: '1',\n disabled: NO_DEFAULT_VALUE,\n value: '0',\n activeColor: singleQuote('#1aad19'),\n backgroundColor: singleQuote('#e9e9e9'),\n 'block-size': '28',\n 'block-color': singleQuote('#ffffff'),\n 'show-value': DEFAULT_FALSE,\n bindChange: NO_DEFAULT_VALUE,\n bindChanging: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE\n}\n\nconst Switch = {\n checked: DEFAULT_FALSE,\n disabled: NO_DEFAULT_VALUE,\n type: singleQuote('switch'),\n color: singleQuote('#04BE02'),\n bindChange: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE\n}\n\nconst Textarea = {\n value: NO_DEFAULT_VALUE,\n placeholder: NO_DEFAULT_VALUE,\n 'placeholder-style': NO_DEFAULT_VALUE,\n 'placeholder-class': singleQuote('textarea-placeholder'),\n disabled: NO_DEFAULT_VALUE,\n maxlength: '140',\n 'auto-focus': DEFAULT_FALSE,\n focus: DEFAULT_FALSE,\n 'auto-height': DEFAULT_FALSE,\n fixed: DEFAULT_FALSE,\n 'cursor-spacing': '0',\n cursor: '-1',\n 'selection-start': '-1',\n 'selection-end': '-1',\n bindFocus: NO_DEFAULT_VALUE,\n bindBlur: NO_DEFAULT_VALUE,\n bindLineChange: NO_DEFAULT_VALUE,\n bindInput: NO_DEFAULT_VALUE,\n bindConfirm: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE\n}\n\nconst CoverImage = {\n src: NO_DEFAULT_VALUE,\n bindLoad: 'eh',\n bindError: 'eh'\n}\n\nconst CoverView = {\n 'scroll-top': DEFAULT_FALSE,\n ...touchEvents\n}\n\nconst MovableArea = {\n 'scale-area': DEFAULT_FALSE\n}\n\nconst MovableView = {\n direction: 'none',\n inertia: DEFAULT_FALSE,\n 'out-of-bounds': DEFAULT_FALSE,\n x: NO_DEFAULT_VALUE,\n y: NO_DEFAULT_VALUE,\n damping: '20',\n friction: '2',\n disabled: NO_DEFAULT_VALUE,\n scale: DEFAULT_FALSE,\n 'scale-min': '0.5',\n 'scale-max': '10',\n 'scale-value': '1',\n bindChange: NO_DEFAULT_VALUE,\n bindScale: NO_DEFAULT_VALUE,\n bindHTouchMove: NO_DEFAULT_VALUE,\n bindVTouchMove: NO_DEFAULT_VALUE,\n width: singleQuote('10px'),\n height: singleQuote('10px'),\n ...touchEvents,\n ...animation\n}\n\nconst ScrollView = {\n 'scroll-x': DEFAULT_FALSE,\n 'scroll-y': DEFAULT_FALSE,\n 'upper-threshold': '50',\n 'lower-threshold': '50',\n 'scroll-top': NO_DEFAULT_VALUE,\n 'scroll-left': NO_DEFAULT_VALUE,\n 'scroll-into-view': NO_DEFAULT_VALUE,\n 'scroll-with-animation': DEFAULT_FALSE,\n 'enable-back-to-top': DEFAULT_FALSE,\n bindScrollToUpper: NO_DEFAULT_VALUE,\n bindScrollToLower: NO_DEFAULT_VALUE,\n bindScroll: NO_DEFAULT_VALUE,\n ...touchEvents,\n ...animation\n}\n\nconst Swiper = {\n 'indicator-dots': DEFAULT_FALSE,\n 'indicator-color': singleQuote('rgba(0, 0, 0, .3)'),\n 'indicator-active-color': singleQuote('#000000'),\n autoplay: DEFAULT_FALSE,\n current: '0',\n interval: '5000',\n duration: '500',\n circular: DEFAULT_FALSE,\n vertical: DEFAULT_FALSE,\n 'previous-margin': singleQuote('0px'),\n 'next-margin': singleQuote('0px'),\n 'display-multiple-items': '1',\n bindChange: NO_DEFAULT_VALUE,\n bindTransition: NO_DEFAULT_VALUE,\n bindAnimationFinish: NO_DEFAULT_VALUE,\n ...touchEvents\n}\n\nconst SwiperItem = {\n 'item-id': NO_DEFAULT_VALUE\n}\n\nconst Navigator = {\n url: NO_DEFAULT_VALUE,\n 'open-type': singleQuote('navigate'),\n delta: '1',\n 'hover-class': singleQuote('navigator-hover'),\n 'hover-stop-propagation': DEFAULT_FALSE,\n 'hover-start-time': '50',\n 'hover-stay-time': '600',\n bindSuccess: NO_DEFAULT_VALUE,\n bindFail: NO_DEFAULT_VALUE,\n bindComplete: NO_DEFAULT_VALUE\n}\n\nconst Audio = {\n id: NO_DEFAULT_VALUE,\n src: NO_DEFAULT_VALUE,\n loop: DEFAULT_FALSE,\n controls: DEFAULT_FALSE,\n poster: NO_DEFAULT_VALUE,\n name: NO_DEFAULT_VALUE,\n author: NO_DEFAULT_VALUE,\n bindError: NO_DEFAULT_VALUE,\n bindPlay: NO_DEFAULT_VALUE,\n bindPause: NO_DEFAULT_VALUE,\n bindTimeUpdate: NO_DEFAULT_VALUE,\n bindEnded: NO_DEFAULT_VALUE\n}\n\nconst Camera = {\n 'device-position': singleQuote('back'),\n flash: singleQuote('auto'),\n bindStop: NO_DEFAULT_VALUE,\n bindError: NO_DEFAULT_VALUE\n}\n\nconst Image = {\n src: NO_DEFAULT_VALUE,\n mode: singleQuote('scaleToFill'),\n 'lazy-load': DEFAULT_FALSE,\n bindError: NO_DEFAULT_VALUE,\n bindLoad: NO_DEFAULT_VALUE,\n ...touchEvents\n}\n\nconst LivePlayer = {\n src: NO_DEFAULT_VALUE,\n autoplay: DEFAULT_FALSE,\n muted: DEFAULT_FALSE,\n orientation: singleQuote('vertical'),\n 'object-fit': singleQuote('contain'),\n 'background-mute': DEFAULT_FALSE,\n 'min-cache': '1',\n 'max-cache': '3',\n bindStateChange: NO_DEFAULT_VALUE,\n bindFullScreenChange: NO_DEFAULT_VALUE,\n bindNetStatus: NO_DEFAULT_VALUE,\n ...animation\n}\n\nconst Video = {\n src: NO_DEFAULT_VALUE,\n duration: NO_DEFAULT_VALUE,\n controls: DEFAULT_TRUE,\n 'danmu-list': NO_DEFAULT_VALUE,\n 'danmu-btn': NO_DEFAULT_VALUE,\n 'enable-danmu': NO_DEFAULT_VALUE,\n autoplay: DEFAULT_FALSE,\n loop: DEFAULT_FALSE,\n muted: DEFAULT_FALSE,\n 'initial-time': '0',\n 'page-gesture': DEFAULT_FALSE,\n direction: NO_DEFAULT_VALUE,\n 'show-progress': DEFAULT_TRUE,\n 'show-fullscreen-btn': DEFAULT_TRUE,\n 'show-play-btn': DEFAULT_TRUE,\n 'show-center-play-btn': DEFAULT_TRUE,\n 'enable-progress-gesture': DEFAULT_TRUE,\n 'object-fit': singleQuote('contain'),\n poster: NO_DEFAULT_VALUE,\n 'show-mute-btn': DEFAULT_FALSE,\n bindPlay: NO_DEFAULT_VALUE,\n bindPause: NO_DEFAULT_VALUE,\n bindEnded: NO_DEFAULT_VALUE,\n bindTimeUpdate: NO_DEFAULT_VALUE,\n bindFullScreenChange: NO_DEFAULT_VALUE,\n bindWaiting: NO_DEFAULT_VALUE,\n bindError: NO_DEFAULT_VALUE,\n ...animation\n}\n\nconst Canvas = {\n 'canvas-id': NO_DEFAULT_VALUE,\n 'disable-scroll': DEFAULT_FALSE,\n bindError: NO_DEFAULT_VALUE,\n ...touchEvents\n}\n\nconst Ad = {\n 'unit-id': NO_DEFAULT_VALUE,\n 'ad-intervals': NO_DEFAULT_VALUE,\n bindLoad: NO_DEFAULT_VALUE,\n bindError: NO_DEFAULT_VALUE,\n bindClose: NO_DEFAULT_VALUE\n}\n\nconst WebView = {\n src: NO_DEFAULT_VALUE,\n bindMessage: NO_DEFAULT_VALUE,\n bindLoad: NO_DEFAULT_VALUE,\n bindError: NO_DEFAULT_VALUE\n}\n\nconst Block = {}\n\n// For Vue,因为 slot 标签被 vue 占用了\nconst SlotView = {\n name: NO_DEFAULT_VALUE\n}\n\n// For React\n// Slot 和 SlotView 最终都会编译成 <view slot={{ i.name }} />\n// 因为 <slot name=\"{{ i.name }}\" /> 适用性没有前者高(无法添加类和样式)\n// 不给 View 直接加 slot 属性的原因是性能损耗\nconst Slot = {\n name: NO_DEFAULT_VALUE\n}\n\nconst NativeSlot = {\n name: NO_DEFAULT_VALUE\n}\n\nexport const internalComponents: Record<string, Record<string, string>> = {\n View,\n Icon,\n Progress,\n RichText,\n Text,\n Button,\n Checkbox,\n CheckboxGroup,\n Form,\n Input,\n Label,\n Picker,\n PickerView,\n PickerViewColumn,\n Radio,\n RadioGroup,\n Slider,\n Switch,\n CoverImage,\n Textarea,\n CoverView,\n MovableArea,\n MovableView,\n ScrollView,\n Swiper,\n SwiperItem,\n Navigator,\n Audio,\n Camera,\n Image,\n LivePlayer,\n Video,\n Canvas,\n Ad,\n WebView,\n Block,\n Map: MapComp,\n Slot,\n SlotView,\n NativeSlot,\n}\n\nexport const controlledComponent = new Set([\n 'input',\n 'checkbox',\n 'picker',\n 'picker-view',\n 'radio',\n 'slider',\n 'switch',\n 'textarea'\n])\n\nexport const focusComponents = new Set([\n 'input',\n 'textarea'\n])\n\nexport const voidElements = new Set([\n 'progress',\n 'icon',\n 'rich-text',\n 'input',\n 'textarea',\n 'slider',\n 'switch',\n 'audio',\n 'ad',\n 'official-account',\n 'open-data',\n 'navigation-bar'\n])\n\nexport const nestElements = new Map([\n ['view', -1],\n ['catch-view', -1],\n ['cover-view', -1],\n ['static-view', -1],\n ['pure-view', -1],\n ['block', -1],\n ['text', -1],\n ['static-text', 6],\n ['slot', 8],\n ['slot-view', 8],\n ['label', 6],\n ['form', 4],\n ['scroll-view', 4],\n ['swiper', 4],\n ['swiper-item', 4]\n])\n","export function isString (o: unknown): o is string {\n return typeof o === 'string'\n}\n\nexport function isUndefined (o: unknown): o is undefined {\n return typeof o === 'undefined'\n}\n\nexport function isNull (o: unknown): o is null {\n return o === null\n}\n\nexport function isObject<T> (o: unknown): o is T {\n return o !== null && typeof o === 'object'\n}\n\nexport function isBoolean (o: unknown): o is boolean {\n return o === true || o === false\n}\n\nexport function isFunction (o: unknown): o is (...args: any[]) => any {\n return typeof o === 'function'\n}\n\nexport function isNumber (o: unknown): o is number {\n return typeof o === 'number'\n}\n\nexport function isBooleanStringLiteral (o: unknown): o is string {\n return o === 'true' || o === 'false'\n}\n\nexport const isArray = Array.isArray\n\nexport const isWebPlatform = () => process.env.TARO_ENV === 'h5' || process.env.TARO_PLATFORM === 'web'\n","export enum PLATFORM_TYPE {\n MINI = 'mini',\n WEB = 'web',\n RN = 'rn',\n HARMONY = 'harmony',\n QUICK = 'quickapp'\n}\n\nexport const PLATFORM_CONFIG_MAP = {\n h5: {\n type: PLATFORM_TYPE.WEB\n },\n harmony: {\n type: PLATFORM_TYPE.HARMONY\n },\n mini: {\n type: PLATFORM_TYPE.MINI\n },\n rn: {\n type: PLATFORM_TYPE.RN\n },\n quickapp: {\n type: PLATFORM_TYPE.QUICK\n }\n}\n","type EventName = string | symbol\ntype EventCallbacks = Record<EventName, Record<'next' | 'tail', unknown>>\n\nexport class Events {\n protected callbacks?: EventCallbacks\n static eventSplitter = ',' // Note: Harmony ACE API 8 开发板不支持使用正则 split 字符串 /\\s+/\n\n constructor (opts?) {\n this.callbacks = opts?.callbacks ?? {}\n }\n\n on (eventName: EventName, callback: (...args: any[]) => void, context?: any): this {\n let event: EventName | undefined, tail, _eventName: EventName[]\n if (!callback) {\n return this\n }\n if (typeof eventName === 'symbol') {\n _eventName = [eventName]\n } else {\n _eventName = eventName.split(Events.eventSplitter)\n }\n this.callbacks ||= {}\n const calls = this.callbacks\n while ((event = _eventName.shift())) {\n const list = calls[event]\n const node: any = 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: EventName, callback: (...r: any[]) => void, context?: any): this {\n const wrapper = (...args: any[]) => {\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?: EventName, callback?: (...args: any[]) => void, context?: any) {\n let event: EventName | undefined, calls: EventCallbacks | undefined, _events: EventName[]\n if (!(calls = this.callbacks)) {\n return this\n }\n if (!(events || callback || context)) {\n delete this.callbacks\n return this\n }\n if (typeof events === 'symbol') {\n _events = [events]\n } else {\n _events = events ? events.split(Events.eventSplitter) : Object.keys(calls)\n }\n while ((event = _events.shift())) {\n let node: any = calls[event]\n delete calls[event]\n if (!node || !(callback || context)) {\n continue\n }\n const tail = node.tail\n while ((node = node.next) !== tail) {\n const cb = node.callback\n const 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 (events: EventName, ...args: any[]) {\n let event: EventName | undefined, node, calls: EventCallbacks | undefined, _events: EventName[]\n if (!(calls = this.callbacks)) {\n return this\n }\n if (typeof events === 'symbol') {\n _events = [events]\n } else {\n _events = events.split(Events.eventSplitter)\n }\n while ((event = _events.shift())) {\n if ((node = calls[event])) {\n const tail = node.tail\n while ((node = node.next) !== tail) {\n node.callback.apply(node.context || this, args)\n }\n }\n }\n return this\n }\n}\n","import { Events } from './event-emitter'\nimport { isFunction } from './is'\n\nimport type { Shortcuts } from './template'\n\ntype Func = (...args: any[]) => any\n\nexport enum HOOK_TYPE {\n SINGLE,\n MULTI,\n WATERFALL\n}\n\ninterface Hook {\n type: HOOK_TYPE\n initial?: Func | null\n}\n\ninterface Node {\n next: Node\n context?: any\n callback?: Func\n}\n\ninterface MiniLifecycle {\n app: [\n string, /** onLaunch */\n string, /** onShow */\n string /** onHide */\n ]\n page: [\n string, /** onLoad */\n string, /** onUnload */\n string, /** onReady */\n string, /** onShow */\n string, /** onHide */\n string[], /** others */\n string[] /** side-effects */\n ]\n component: [\n string, /** attached */\n string, /** detached */\n ]\n}\n\ninterface MiniElementData {\n [Shortcuts.Childnodes]?: MiniData[]\n [Shortcuts.NodeName]: string\n [Shortcuts.Class]?: string\n [Shortcuts.Style]?: string\n uid?: string\n sid: string\n [key: string]: unknown\n}\n\ninterface MiniTextData {\n [Shortcuts.Text]: string\n [Shortcuts.NodeName]: string\n}\n\ntype MiniData = MiniElementData | MiniTextData\n\ninterface UpdatePayload {\n path: string\n value: string | boolean | (() => MiniData | MiniData[])\n}\n\ntype Target = Record<string, unknown> & { dataset: Record<string, unknown>, id: string }\n\ninterface MpEvent {\n type: string\n detail: Record<string, unknown>\n target: Target\n currentTarget: Target\n}\n\nconst 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 'onShareAppMessage',\n 'onShareTimeline'\n ]\n ],\n component: [\n 'attached',\n 'detached'\n ]\n}\n\nexport function TaroHook (type: HOOK_TYPE, initial?: Func): Hook {\n return {\n type,\n initial: initial || null\n }\n}\n\nexport class TaroHooks<T extends Record<string, Func> = any> extends Events {\n hooks: Record<keyof T, Hook>\n\n constructor (hooks: Record<keyof T, Hook>, opts?) {\n super(opts)\n this.hooks = hooks\n for (const hookName in hooks) {\n const { initial } = hooks[hookName]\n if (isFunction(initial)) {\n this.on(hookName, initial)\n }\n }\n }\n\n private tapOneOrMany<K extends Extract<keyof T, string>> (hookName: K, callback: T[K] | T[K][]) {\n const list = isFunction(callback) ? [callback] : callback\n list.forEach(cb => this.on(hookName, cb))\n }\n\n tap<K extends Extract<keyof T, string>> (hookName: K, callback: T[K] | T[K][]) {\n const hooks = this.hooks\n const { type, initial } = hooks[hookName]\n if (type === HOOK_TYPE.SINGLE) {\n this.off(hookName)\n this.on(hookName, isFunction(callback) ? callback : callback[callback.length - 1])\n } else {\n initial && this.off(hookName, initial)\n this.tapOneOrMany(hookName, callback)\n }\n }\n\n call<K extends Extract<keyof T, string>> (hookName: K, ...rest: Parameters<T[K]>): ReturnType<T[K]> | undefined {\n const hook = this.hooks[hookName]\n if (!hook) return\n\n const { type } = hook\n\n const calls = this.callbacks\n if (!calls) return\n\n const list = calls[hookName] as { tail: Node, next: Node }\n\n if (list) {\n const tail = list.tail\n let node: Node = list.next\n let args = rest\n let res\n\n while (node !== tail) {\n res = node.callback?.apply(node.context || this, args)\n if (type === HOOK_TYPE.WATERFALL) {\n const params: any = [res]\n args = params\n }\n node = node.next\n }\n return res\n }\n }\n\n isExist (hookName: string) {\n return Boolean(this.callbacks?.[hookName])\n }\n}\n\ntype ITaroHooks = {\n /** 小程序端 App、Page 构造对象的生命周期方法名称 */\n getMiniLifecycle: (defaultConfig: MiniLifecycle) => MiniLifecycle\n getMiniLifecycleImpl: () => MiniLifecycle\n /** 解决 React 生命周期名称的兼容问题 */\n getLifecycle: (instance, lifecyle) => Func | Array<Func> | undefined\n /** 解决百度小程序的模版语法问题 */\n getPathIndex: (indexOfNode: number) => string\n /** 解决支付宝小程序分包时全局作用域不一致的问题 */\n getEventCenter: (EventsClass: typeof Events) => Events\n isBubbleEvents: (eventName: string) => boolean\n getSpecialNodes: () => string[]\n /** 解决 Vue2 布尔值属性值的设置问题 */\n onRemoveAttribute: (element, qualifiedName: string) => boolean\n /** 用于把 React 同一事件回调中的所有 setState 合并到同一个更新处理中 */\n batchedEventUpdates: (cb: Func) => void\n /** 用于处理 React 中的小程序生命周期 hooks */\n mergePageInstance: (prev, next) => void\n /** 用于修改传递给小程序 Page 构造器的对象 */\n modifyPageObject: (config: Record<any, any>) => void\n /** H5 下拉刷新 wrapper */\n createPullDownComponent: (el, path: string, framework, customWrapper?: any, stampId?: string) => void\n /** H5 获取原生 DOM 对象 */\n getDOMNode: (instance) => any\n /**\n * @todo: multi\n * 修改 Taro DOM 序列化数据\n **/\n modifyHydrateData:(data: Record<string, any>) => void\n /**\n * @todo: multi\n * 修改 Taro DOM 序列化数据\n **/\n modifySetAttrPayload: (element, key: string, payload: UpdatePayload, componentsAlias: Record<string, any>) => void\n /**\n * @todo: multi\n * 修改 Taro DOM 序列化数据\n **/\n modifyRmAttrPayload: (element, key: string, payload: UpdatePayload, componentsAlias: Record<string, any>) => void\n /**\n * @todo: multi\n * 调用 addEventListener 时触发\n **/\n onAddEvent: (type: string, handler, options: any, node) => void\n /** 用于修改小程序原生事件对象 */\n modifyMpEvent: (event: MpEvent) => void\n modifyMpEventImpl: (event: MpEvent) => void\n /** 用于修改 Taro DOM 事件对象 */\n modifyTaroEvent: (event, element) => void\n\n dispatchTaroEvent: (event, element) => void\n dispatchTaroEventFinish: (event, element) => void\n\n modifyDispatchEvent: (event, element) => void\n injectNewStyleProperties: (styleProperties: string[]) => void\n initNativeApi: (taro: Record<string, any>) => void\n patchElement: (node) => void\n\n /** 解 Proxy */\n proxyToRaw: (proxyObj) => Record<any, any>\n}\n\nexport const hooks = new TaroHooks<ITaroHooks>({\n getMiniLifecycle: TaroHook(HOOK_TYPE.SINGLE, defaultConfig => defaultConfig),\n\n getMiniLifecycleImpl: TaroHook(HOOK_TYPE.SINGLE, function (this: TaroHooks<ITaroHooks>) {\n return this.call('getMiniLifecycle', defaultMiniLifecycle)\n }),\n\n getLifecycle: TaroHook(HOOK_TYPE.SINGLE, (instance, lifecycle) => instance[lifecycle]),\n\n getPathIndex: TaroHook(HOOK_TYPE.SINGLE, indexOfNode => `[${indexOfNode}]`),\n\n getEventCenter: TaroHook(HOOK_TYPE.SINGLE, Events => new Events()),\n\n isBubbleEvents: TaroHook(HOOK_TYPE.SINGLE, eventName => {\n /**\n * 支持冒泡的事件, 除 支付宝小程序外,其余的可冒泡事件都和微信保持一致\n * 详见 见 https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/event.html\n */\n 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\n return BUBBLE_EVENTS.has(eventName)\n }),\n\n getSpecialNodes: TaroHook(HOOK_TYPE.SINGLE, () => ['view', 'text', 'image']),\n\n onRemoveAttribute: TaroHook(HOOK_TYPE.SINGLE),\n\n batchedEventUpdates: TaroHook(HOOK_TYPE.SINGLE),\n\n mergePageInstance: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyPageObject: TaroHook(HOOK_TYPE.SINGLE),\n\n createPullDownComponent: TaroHook(HOOK_TYPE.SINGLE),\n\n getDOMNode: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyHydrateData: TaroHook(HOOK_TYPE.SINGLE),\n\n modifySetAttrPayload: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyRmAttrPayload: TaroHook(HOOK_TYPE.SINGLE),\n\n onAddEvent: TaroHook(HOOK_TYPE.SINGLE),\n\n proxyToRaw: TaroHook(HOOK_TYPE.SINGLE, function (proxyObj) {\n return proxyObj\n }),\n\n modifyMpEvent: TaroHook(HOOK_TYPE.MULTI),\n\n modifyMpEventImpl: TaroHook(HOOK_TYPE.SINGLE, function (this: TaroHooks<ITaroHooks>, e: MpEvent) {\n try {\n // 有些小程序的事件对象的某些属性只读\n this.call('modifyMpEvent', e)\n } catch (error) {\n console.warn('[Taro modifyMpEvent hook Error]: ' + error?.message)\n }\n }),\n\n injectNewStyleProperties: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyTaroEvent: TaroHook(HOOK_TYPE.MULTI),\n\n dispatchTaroEvent: TaroHook(HOOK_TYPE.SINGLE, (e, node) => {\n node.dispatchEvent(e)\n }),\n\n dispatchTaroEventFinish: TaroHook(HOOK_TYPE.MULTI),\n\n modifyDispatchEvent: TaroHook(HOOK_TYPE.MULTI),\n\n initNativeApi: TaroHook(HOOK_TYPE.MULTI),\n\n patchElement: TaroHook(HOOK_TYPE.MULTI)\n})\n","import { internalComponents } from './components'\nimport { PLATFORM_CONFIG_MAP, PLATFORM_TYPE } from './constants'\nimport { hooks } from './runtime-hooks'\n\nexport const EMPTY_OBJ: any = {}\n\nexport const EMPTY_ARR = []\n\nexport const noop = (..._: unknown[]) => {}\n\n/**\n * Boxed value.\n *\n * @typeparam T Value type.\n */\nexport interface Box<T> {\n v: T\n}\n\n/**\n * box creates a boxed value.\n *\n * @typeparam T Value type.\n * @param v Value.\n * @returns Boxed value.\n */\nexport const box = <T>(v: T) => ({ v })\n\n/**\n * box creates a boxed value.\n *\n * @typeparam T Value type.\n * @param b Boxed value.\n * @returns Value.\n */\nexport const unbox = <T>(b: Box<T>) => b.v\n\nexport function toDashed (s: string) {\n return s.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase()\n}\n\nexport function toCamelCase (s: string) {\n let camel = ''\n let nextCap = false\n for (let i = 0; i < s.length; i++) {\n if (s[i] !== '-') {\n camel += nextCap ? s[i].toUpperCase() : s[i]\n nextCap = false\n } else {\n nextCap = true\n }\n }\n return camel\n}\n\nexport const toKebabCase = function (string) {\n return string.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()\n}\n\nexport function capitalize (s: string) {\n return s.charAt(0).toUpperCase() + s.slice(1)\n}\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty\n\nexport const hasOwn = (\n val: Record<any, any>,\n key: string | symbol\n) => hasOwnProperty.call(val, key)\n\n/**\n * ensure takes a condition and throw a error if the condition fails,\n * like failure::ensure: https://docs.rs/failure/0.1.1/failure/macro.ensure.html\n * @param condition condition.\n * @param msg error message.\n */\nexport function ensure (condition: boolean, msg: string): asserts condition {\n if (!condition) {\n if (process.env.NODE_ENV !== 'production') {\n const reportIssue = '\\n如有疑问,请提交 issue 至:https://github.com/nervjs/taro/issues'\n throw new Error(msg + reportIssue)\n } else {\n throw new Error(msg)\n }\n }\n}\n\nexport function warn (condition: boolean, msg: string) {\n if (process.env.NODE_ENV !== 'production') {\n if (condition) {\n console.warn(`[taro warn] ${msg}`)\n }\n }\n}\n\nexport function queryToJson (str) {\n const dec = decodeURIComponent\n const qp = str.split('&')\n const ret = {}\n let name\n let val\n for (let i = 0, l = qp.length, item; i < l; ++i) {\n item = qp[i]\n if (item.length) {\n const s = item.indexOf('=')\n if (s < 0) {\n name = dec(item)\n val = ''\n } else {\n name = dec(item.slice(0, s))\n val = dec(item.slice(s + 1))\n }\n if (typeof ret[name] === 'string') { // inline'd type check\n ret[name] = [ret[name]]\n }\n\n if (Array.isArray(ret[name])) {\n ret[name].push(val)\n } else {\n ret[name] = val\n }\n }\n }\n return ret // Object\n}\n\nlet _uniqueId = 1\nconst _loadTime = (new Date()).getTime().toString()\n\nexport function getUniqueKey () {\n return _loadTime + (_uniqueId++)\n}\n\nconst cacheData = {}\n\nexport function cacheDataSet (key, val) {\n cacheData[key] = val\n}\n\nexport function cacheDataGet (key, delelteAfterGet?) {\n const temp = cacheData[key]\n delelteAfterGet && delete cacheData[key]\n return temp\n}\n\nexport function cacheDataHas (key) {\n return key in cacheData\n}\n\nexport function mergeInternalComponents (components) {\n Object.keys(components).forEach(name => {\n if (name in internalComponents) {\n Object.assign(internalComponents[name], components[name])\n } else {\n internalComponents[name] = components[name]\n }\n })\n return internalComponents\n}\n\nexport function getComponentsAlias (origin: typeof internalComponents) {\n const mapping = {}\n const viewAttrs = origin.View\n const extraList = {\n '#text': {},\n StaticView: viewAttrs,\n StaticImage: origin.Image,\n StaticText: origin.Text,\n PureView: viewAttrs,\n CatchView: viewAttrs\n }\n origin = { ...origin, ...extraList }\n Object.keys(origin)\n .sort((a, b) => {\n const reg = /^(Static|Pure|Catch)*(View|Image|Text)$/\n const isACommonly = reg.test(a)\n const isBCommonly = reg.test(b)\n if (isACommonly && isBCommonly) {\n return a > b ? 1 : -1\n } else if (isACommonly) {\n return -1\n } else if (isBCommonly) {\n return 1\n } else {\n return a >= b ? 1 : -1\n }\n })\n .forEach((key, num) => {\n const obj = {\n _num: String(num)\n }\n Object.keys(origin[key])\n .filter(attr => !(/^bind/.test(attr)) && !['focus', 'blur'].includes(attr))\n .sort()\n .forEach((attr, index) => {\n obj[toCamelCase(attr)] = 'p' + index\n })\n mapping[toDashed(key)] = obj\n })\n\n return mapping\n}\n\nexport function getPlatformType (platform = 'weapp', configNameOrType: string = PLATFORM_TYPE.MINI): PLATFORM_TYPE {\n if (Object.keys(PLATFORM_CONFIG_MAP).includes(platform)) {\n configNameOrType = platform\n }\n const param = PLATFORM_CONFIG_MAP[configNameOrType] || {}\n return param.type || configNameOrType\n}\n\nexport function mergeReconciler (hostConfig, hooksForTest?) {\n const obj = hooksForTest || hooks\n const keys = Object.keys(hostConfig)\n keys.forEach(key => {\n obj.tap(key, hostConfig[key])\n })\n}\n\nexport function nonsupport (api) {\n return function () {\n console.warn(`小程序暂不支持 ${api}`)\n }\n}\n\nexport function setUniqueKeyToRoute (key: string, obj) {\n const routerParamsPrivateKey = '__key_'\n const useDataCacheApis = [\n 'navigateTo',\n 'redirectTo',\n 'reLaunch',\n 'switchTab'\n ]\n\n if (useDataCacheApis.indexOf(key) > -1) {\n const url = obj.url = obj.url || ''\n const hasMark = url.indexOf('?') > -1\n const cacheKey = getUniqueKey()\n obj.url += (hasMark ? '&' : '?') + `${routerParamsPrivateKey}=${cacheKey}`\n }\n}\n\nexport function indent (str: string, size: number): string {\n return str.split('\\n')\n .map((line, index) => {\n const indent = index === 0 ? '' : Array(size).fill(' ').join('')\n return indent + line\n })\n .join('\\n')\n}\n","/**\n * 这里我们需要关心的小程序种类有两类:\n * 1. 模板递归:\n * - 支持:tmpl0 套 tmpl0\n * - 不支持:这就使得我们必须生成多级的模板,tmpl0 套 tmpl1,tmpl1 套 tmpl2……\n * 直到超过阈值 N (N = config.miniapp.baseLevel) tmplN 会套组件 comp,组件 comp 重新再套 tmpl0。\n * 2. 小程序脚本语言(wxs, sjs, etc...):\n * - 支持:可以在模板使用函数缩减模板大小或提高性能(存疑),例如判断一个值是不是假值(falsy value)。\n * 将来或许会把数据序列化^1 的操作也放到小程序脚本语言里。\n * - 不支持:使用纯 *xml 语法\n *\n * ^1: packages/taro-runtime/src/hydrate.ts\n*/\n\nimport {\n focusComponents,\n internalComponents,\n nestElements,\n singleQuote,\n voidElements\n} from './components'\nimport { isBooleanStringLiteral, isFunction, isNumber, isString } from './is'\nimport { Shortcuts } from './shortcuts'\nimport { capitalize, getComponentsAlias, hasOwn, indent, toCamelCase, toDashed, toKebabCase } from './utils'\n\ninterface Component {\n nodeName: string\n nodeAlias: string\n attributes: Attributes\n}\n\ninterface Components {\n [key: string]: Record<string, string>\n}\n\ninterface ComponentConfig {\n includes: Set<string>\n exclude: Set<string>\n thirdPartyComponents: Map<string, Set<string>>\n includeAll: boolean\n}\n\nexport interface IAdapter {\n if: string\n else: string\n elseif: string\n for: string\n forItem: string\n forIndex: string\n key: string\n xs?: string\n type: string\n}\n\nexport type Attributes = Record<string, string>\n\nexport const styles = {\n style: `i.${Shortcuts.Style}`,\n class: `i.${Shortcuts.Class}`\n}\n\nexport const events = {\n bindtap: 'eh'\n}\n\nconst weixinAdapter: IAdapter = {\n if: 'wx:if',\n else: 'wx:else',\n elseif: 'wx:elif',\n for: 'wx:for',\n forItem: 'wx:for-item',\n forIndex: 'wx:for-index',\n key: 'wx:key',\n xs: 'wxs',\n type: 'weapp'\n}\n\nexport class BaseTemplate {\n protected _baseLevel = 0\n protected exportExpr = 'module.exports ='\n protected isSupportRecursive: boolean\n protected miniComponents: Components\n protected thirdPartyPatcher: Record<string, Record<string, string>> = {}\n protected modifyCompProps?: (compName: string, target: Record<string, string>) => Record<string, string>\n protected modifyLoopBody?: (child: string, nodeName: string) => string\n protected modifyLoopContainer?: (children: string, nodeName: string) => string\n protected modifyTemplateResult?: (res: string, nodeName: string, level: number, children: string) => string\n protected modifyThirdPartyLoopBody?: (child: string, nodeName: string) => string\n public supportXS = false\n public Adapter = weixinAdapter\n /** 组件列表 */\n public internalComponents = internalComponents\n /** 可以 focus 聚焦的组件 */\n public focusComponents: Set<string> = focusComponents\n /** 不需要渲染子节点的元素 */\n public voidElements: Set<string> = voidElements\n /** 可以递归调用自身的组件 */\n public nestElements: Map<string, number> = nestElements\n public componentsAlias\n\n set baseLevel (lv) {\n this._baseLevel = lv\n }\n\n get baseLevel () {\n return this._baseLevel\n }\n\n private buildAttribute (attrs: Attributes, nodeName: string): string {\n return Object.keys(attrs)\n .map(k => `${k}=\"${k.startsWith('bind') || k.startsWith('on') || k.startsWith('catch') ? attrs[k] : `{${this.getAttrValue(attrs[k], k, nodeName)}}`}\" `)\n .join('')\n }\n\n protected replacePropName (name: string, value: string, _componentName?: string, _componentAlias?) {\n if (value === 'eh') return name.toLowerCase()\n return name\n }\n\n protected createMiniComponents (components: Components) {\n const result: Components = Object.create(null)\n\n for (const key in components) {\n if (hasOwn(components, key)) {\n let component = components[key]\n const compName = toDashed(key)\n const newComp: Record<string, string> = Object.create(null)\n const componentAlias = this.componentsAlias[compName]\n\n if (isFunction(this.modifyCompProps)) {\n component = this.modifyCompProps(compName, component)\n }\n\n for (let prop in component) {\n if (hasOwn(component, prop)) {\n let propValue = component[prop]\n if (prop.startsWith('bind') || propValue === 'eh') {\n propValue = 'eh'\n } else if (propValue === '') {\n const propInCamelCase = toCamelCase(prop)\n const propAlias = componentAlias[propInCamelCase] || propInCamelCase\n propValue = `i.${propAlias}`\n } else if (isBooleanStringLiteral(propValue) || isNumber(+propValue)) {\n const propInCamelCase = toCamelCase(prop)\n const propAlias = componentAlias[propInCamelCase] || propInCamelCase\n\n // cursor 默认取最后输入框最后一位 fix #13809\n if (prop === 'cursor') {\n propValue = `i.${componentAlias.value}?i.${componentAlias.value}.length:-1`\n }\n\n propValue = this.supportXS\n ? `xs.b(i.${propAlias},${propValue})`\n : `i.${propAlias}===undefined?${propValue}:i.${propAlias}`\n } else {\n const propInCamelCase = toCamelCase(prop)\n const propAlias = componentAlias[propInCamelCase] || propInCamelCase\n propValue = `i.${propAlias}||${propValue || singleQuote('')}`\n }\n\n prop = this.replacePropName(prop, propValue, compName, componentAlias)\n\n newComp[prop] = propValue\n }\n }\n if (compName !== 'block') {\n Object.assign(newComp, styles, this.getEvents())\n }\n\n if (compName === 'swiper-item') {\n delete newComp.style\n }\n\n if (compName === 'view') {\n const reg = /^(bind|on)(touchmove|TouchMove)$/\n const comp = { ...newComp }\n Object.keys(comp).forEach(originKey => {\n if (!reg.test(originKey)) return\n\n const key = originKey.replace(reg, 'catch$2')\n comp[key] = comp[originKey]\n delete comp[originKey]\n })\n\n result['catch-view'] = comp\n }\n\n if (compName === 'view' || compName === 'text' || compName === 'image') {\n const comp: Record<any, any> = {}\n Object.keys(newComp).forEach(key => {\n const value = newComp[key]\n if (value !== 'eh') comp[key] = value\n })\n result[`static-${compName}`] = comp\n if (compName === 'view') {\n result['pure-view'] = {\n style: comp.style,\n class: comp.class\n }\n }\n }\n\n if (compName === 'slot' || compName === 'slot-view') {\n result[compName] = {\n slot: newComp?.name,\n ...styles\n }\n } else if (compName === 'native-slot') {\n result[compName] = {\n name: newComp?.name,\n }\n } else {\n result[compName] = newComp\n }\n }\n }\n\n return result\n }\n\n protected buildBaseTemplate () {\n const Adapter = this.Adapter\n const data = !this.isSupportRecursive && this.supportXS\n ? `${this.dataKeymap('i:item,c:1,l:\\'\\'')}`\n : this.isSupportRecursive\n ? this.dataKeymap('i:item')\n : this.dataKeymap('i:item,c:1')\n const xs = this.supportXS\n ? `xs.a(0, item.${Shortcuts.NodeName})`\n : \"'tmpl_0_' + item.nn\"\n return `${this.buildXsTemplate()}\n<template name=\"taro_tmpl\">\n <block ${Adapter.for}=\"{{root.cn}}\" ${Adapter.key}=\"sid\">\n <template is=\"{{${xs}}}\" data=\"{{${data}}}\" />\n </block>\n</template>\n`\n }\n\n protected buildThirdPartyAttr (attrs: Set<string>, patcher: Record<string, string> = {}) {\n return Array.from(attrs).reduce((str, attr) => {\n if (attr.startsWith('@')) {\n // vue2\n let value = attr.slice(1)\n if (value.indexOf('-') > -1) {\n value = `:${value}`\n }\n return str + `bind${value}=\"eh\" `\n } else if (attr.startsWith('bind')) {\n return str + `${attr}=\"eh\" `\n } else if (attr.startsWith('on')) {\n // react, vue3\n let value = toKebabCase(attr.slice(2))\n if (value.indexOf('-') > -1) {\n // 兼容如 vant 某些组件的 bind:a-b 这类属性\n value = `:${value}`\n }\n return str + `bind${value}=\"eh\" `\n } else if (attr === 'class') {\n return str + `class=\"{{i.${Shortcuts.Class}}}\" `\n } else if (attr === 'style') {\n return str + `style=\"{{i.${Shortcuts.Style}}}\" `\n }\n\n const patchValue = patcher[attr]\n if (isBooleanStringLiteral(patchValue) || isNumber(patchValue) || isString(patchValue)) {\n const propValue = this.supportXS\n ? `xs.b(i.${toCamelCase(attr)},${patchValue})`\n : `i.${toCamelCase(attr)}===undefined?${patchValue}:i.${toCamelCase(attr)}`\n return str + `${attr}=\"{{${propValue}}}\" `\n }\n return str + `${attr}=\"{{i.${toCamelCase(attr)}}}\" `\n }, '')\n }\n\n protected buildComponentTemplate (comp: Component, level: number) {\n return this.focusComponents.has(comp.nodeName)\n ? this.buildFocusComponentTemplate(comp, level)\n : this.buildStandardComponentTemplate(comp, level)\n }\n\n private getChildrenTemplate (level: number) {\n const { isSupportRecursive, supportXS } = this\n const isLastRecursiveComp = !isSupportRecursive && level + 1 === this.baseLevel\n const isUseXs = !this.isSupportRecursive && this.supportXS\n \n if (isLastRecursiveComp) {\n const data = isUseXs\n ? `${this.dataKeymap('i:item,c:c,l:l')}`\n : this.isSupportRecursive\n ? this.dataKeymap('i:item')\n : this.dataKeymap('i:item,c:c')\n\n return supportXS\n ? `<template is=\"{{xs.e(${level})}}\" data=\"{{${data}}}\" />`\n : `<template is=\"tmpl_${level}_${Shortcuts.Container}\" data=\"{{${data}}}\" />`\n } else {\n const data = isUseXs\n ? `${this.dataKeymap(`i:item,c:c+1,l:xs.f(l,item.${Shortcuts.NodeName})`)}`\n : this.isSupportRecursive\n ? `${this.dataKeymap('i:item')}`\n : `${this.dataKeymap('i:item,c:c+1')}`\n\n const xs = !this.isSupportRecursive\n ? `xs.a(c, item.${Shortcuts.NodeName}, l)`\n : `xs.a(0, item.${Shortcuts.NodeName})`\n\n return supportXS\n ? `<template is=\"{{${xs}}}\" data=\"{{${data}}}\" />`\n : `<template is=\"{{'tmpl_' + c + '_' + item.nn}}\" data=\"{{${data}}}\" />`\n }\n \n }\n\n private getChildren (comp: Component, level: number): string {\n const { isSupportRecursive, Adapter } = this\n const nextLevel = isSupportRecursive ? 0 : level + 1\n \n let child = this.getChildrenTemplate(nextLevel)\n \n if (isFunction(this.modifyLoopBody)) {\n child = this.modifyLoopBody(child, comp.nodeName)\n }\n\n let children = this.voidElements.has(comp.nodeName)\n ? ''\n : `\n <block ${Adapter.for}=\"{{i.${Shortcuts.Childnodes}}}\" ${Adapter.key}=\"sid\">\n ${indent(child, 6)}\n </block>\n `\n\n if (isFunction(this.modifyLoopContainer)) {\n children = this.modifyLoopContainer(children, comp.nodeName)\n }\n\n return children\n }\n\n protected buildFocusComponentTemplate (comp: Component, level: number) {\n const children = this.getChildren(comp, level)\n const nodeName = comp.nodeName\n const nodeAlias = comp.nodeAlias\n const attrs = { ...comp.attributes }\n const templateName = this.supportXS\n ? `xs.c(i, 'tmpl_${level}_')`\n : `i.focus ? 'tmpl_${level}_${nodeAlias}_focus' : 'tmpl_${level}_${nodeAlias}_blur'`\n delete attrs.focus\n\n let res = `\n<template name=\"tmpl_${level}_${nodeAlias}\">\n <template is=\"{{${templateName}}}\" data=\"{{${this.isSupportRecursive ? this.dataKeymap('i:i') : this.dataKeymap('i:i,c:c')}}}\" />\n</template>\n\n<template name=\"tmpl_${level}_${nodeAlias}_focus\">\n <${nodeName} ${this.buildAttribute(comp.attributes, nodeName)} id=\"{{i.uid||i.sid}}\" data-sid=\"{{i.sid}}\">${children}</${nodeName}>\n</template>\n\n<template name=\"tmpl_${level}_${nodeAlias}_blur\">\n <${nodeName} ${this.buildAttribute(attrs, nodeName)} id=\"{{i.uid||i.sid}}\" data-sid=\"{{i.sid}}\">${children}</${nodeName}>\n</template>\n`\n if (isFunction(this.modifyTemplateResult)) {\n res = this.modifyTemplateResult(res, nodeName, level, children)\n }\n\n return res\n }\n\n protected buildStandardComponentTemplate (comp: Component, level: number) {\n const children = this.getChildren(comp, level)\n const nodeAlias = comp.nodeAlias\n\n let nodeName = ''\n switch (comp.nodeName) {\n case 'slot':\n case 'slot-view':\n case 'catch-view':\n case 'static-view':\n case 'pure-view':\n nodeName = 'view'\n break\n case 'static-text':\n nodeName = 'text'\n break\n case 'static-image':\n nodeName = 'image'\n break\n case 'native-slot':\n nodeName = 'slot'\n break\n default:\n nodeName = comp.nodeName\n break\n }\n\n let res = `\n<template name=\"tmpl_${level}_${nodeAlias}\">\n <${nodeName} ${this.buildAttribute(comp.attributes, comp.nodeName)} id=\"{{i.uid||i.sid}}\" data-sid=\"{{i.sid}}\">${children}</${nodeName}>\n</template>\n`\n\n if (isFunction(this.modifyTemplateResult)) {\n res = this.modifyTemplateResult(res, comp.nodeName, level, children)\n }\n\n return res\n }\n\n protected buildPlainTextTemplate (level: number): string {\n return `\n<template name=\"tmpl_${level}_${this.componentsAlias['#text']._num}\">\n <block>{{i.${Shortcuts.Text}}}</block>\n</template>\n`\n }\n\n protected buildThirdPartyTemplate (level: number, componentConfig: ComponentConfig) {\n const { Adapter, isSupportRecursive, supportXS, nestElements } = this\n const nextLevel = isSupportRecursive ? 0 : level + 1\n let template = ''\n\n componentConfig.thirdPartyComponents.forEach((attrs, compName) => {\n if (compName === 'custom-wrapper') {\n template += `\n<template name=\"tmpl_${level}_${compName}\">\n <${compName} i=\"{{i}}\" l=\"{{l}}\" id=\"{{i.uid||i.sid}}\" data-sid=\"{{i.sid}}\">\n </${compName}>\n</template>\n `\n } else {\n if (!isSupportRecursive && supportXS && nestElements.has(compName) && level + 1 > nestElements.get(compName)!) return\n\n let child = this.getChildrenTemplate(nextLevel)\n\n if (isFunction(this.modifyThirdPartyLoopBody)) {\n child = this.modifyThirdPartyLoopBody(child, compName)\n }\n\n template += `\n<template name=\"tmpl_${level}_${compName}\">\n <${compName} ${this.buildThirdPartyAttr(attrs, this.thirdPartyPatcher[compName] || {})} id=\"{{i.uid||i.sid}}\" data-sid=\"{{i.sid}}\">\n <block ${Adapter.for}=\"{{i.${Shortcuts.Childnodes}}}\" ${Adapter.key}=\"sid\">\n ${child}\n </block>\n </${compName}>\n</template>\n `\n }\n })\n\n return template\n }\n\n // 最后一层的 comp 需要引用 container 进行重新的模版循环,其他情况不需要 container\n protected buildContainerTemplate (level: number) {\n const tmpl = `<block ${this.Adapter.if}=\"{{i.nn === '#text'}}\">\n <template is=\"tmpl_0_#text\" data=\"{{${this.dataKeymap('i:i')}}}\" />\n </block>\n <block ${this.Adapter.else}>\n ${!this.isSupportRecursive && this.supportXS ? '<comp i=\"{{i}}\" l=\"{{l}}\" />' : '<comp i=\"{{i}}\" />'}\n </block>`\n\n return `\n<template name=\"tmpl_${level}_${Shortcuts.Container}\">\n ${tmpl}\n</template>\n`\n }\n\n protected dataKeymap (keymap: string) {\n return keymap\n }\n\n protected getEvents (): any {\n return events\n }\n\n protected getAttrValue (value: string, _key: string, _nodeName: string) {\n return `{${value}}`\n }\n\n protected buildXsTemplate () {\n return ''\n }\n\n public buildPageTemplate = (baseTempPath: string) => {\n const template = `<import src=\"${baseTempPath}\"/>\n<template is=\"taro_tmpl\" data=\"{{${this.dataKeymap('root:root')}}}\" />`\n\n return template\n }\n\n public buildBaseComponentTemplate = (ext: string) => {\n const data = !this.isSupportRecursive && this.supportXS\n ? this.dataKeymap('i:i,c:1,l:l')\n : this.isSupportRecursive\n ? this.dataKeymap('i:i')\n : this.dataKeymap('i:i,c:1')\n\n return `<import src=\"./base${ext}\" />\n<template is=\"{{'tmpl_0_' + i.nn}}\" data=\"{{${data}}}\" />`\n }\n\n public buildCustomComponentTemplate = (ext: string) => {\n const Adapter = this.Adapter\n const data = !this.isSupportRecursive && this.supportXS\n ? `${this.dataKeymap('i:item,c:1,l:\\'\\'')}`\n : this.isSupportRecursive\n ? this.dataKeymap('i:item')\n : this.dataKeymap('i:item,c:1')\n\n return `<import src=\"./base${ext}\" />\n <block ${Adapter.for}=\"{{i.${Shortcuts.Childnodes}}}\" ${Adapter.key}=\"sid\">\n <template is=\"{{'tmpl_0_' + item.nn}}\" data=\"{{${data}}}\" />\n </block>`\n }\n\n public buildXScript = () => {\n return `${this.exportExpr} {\n a: ${this.buildXSTmplName()},\n b: function (a, b) {\n return a === undefined ? b : a\n },\n c: ${this.buildXSTepFocus(Shortcuts.NodeName)},\n e: function (n) {\n return 'tmpl_' + n + '_${Shortcuts.Container}'\n },\n ${this.buildXSTmpExtra()}\n}`\n }\n\n public mergeComponents (ctx, patch: Record<string, Record<string, string>>) {\n ctx.helper.recursiveMerge(this.internalComponents, patch)\n }\n\n public mergeThirdPartyComponents (patch: Record<string, Record<string, string>>) {\n this.thirdPartyPatcher = patch\n }\n\n protected buildXSTmplName () {\n return `function (l, n) {\n return 'tmpl_' + l + '_' + n\n }`\n }\n\n protected buildXSTepFocus (nn: string) {\n return `function(i, prefix) {\n var s = i.focus !== undefined ? 'focus' : 'blur'\n return prefix + i.${nn} + '_' + s\n }`\n }\n\n protected buildXSTmpExtra () {\n return ''\n }\n}\n\nexport class RecursiveTemplate extends BaseTemplate {\n public isSupportRecursive = true\n\n public buildTemplate = (componentConfig: ComponentConfig) => {\n let template = this.buildBaseTemplate()\n if (!this.miniComponents) {\n this.componentsAlias = getComponentsAlias(this.internalComponents)\n this.miniComponents = this.createMiniComponents(this.internalComponents)\n }\n const ZERO_FLOOR = 0\n const components = Object.keys(this.miniComponents)\n .filter(c => componentConfig.includes.size && !componentConfig.includeAll ? componentConfig.includes.has(c) : true)\n\n template = components.reduce((current, nodeName) => {\n const attributes: Attributes = this.miniComponents[nodeName]\n const nodeAlias = this.componentsAlias[nodeName]._num\n return current + this.buildComponentTemplate({ nodeName, nodeAlias, attributes }, ZERO_FLOOR)\n }, template)\n\n template += this.buildPlainTextTemplate(ZERO_FLOOR)\n template += this.buildThirdPartyTemplate(ZERO_FLOOR, componentConfig)\n\n return template\n }\n}\n\nexport class UnRecursiveTemplate extends BaseTemplate {\n isSupportRecursive = false\n protected _baseLevel = 16\n private componentConfig: ComponentConfig\n\n public buildTemplate = (componentConfig: ComponentConfig) => {\n this.componentConfig = componentConfig\n if (!this.miniComponents) {\n this.componentsAlias = getComponentsAlias(this.internalComponents)\n this.miniComponents = this.createMiniComponents(this.internalComponents)\n }\n const components = Object.keys(this.miniComponents)\n .filter(c => componentConfig.includes.size && !componentConfig.includeAll ? componentConfig.includes.has(c) : true)\n\n let template = this.buildBaseTemplate()\n for (let i = 0; i < this.baseLevel; i++) {\n template += this.supportXS\n ? this.buildOptimizeFloor(i, components, this.baseLevel === i + 1)\n : this.buildFloor(i, components, this.baseLevel === i + 1)\n }\n\n return template\n }\n\n protected buildFloor (level: number, components: string[], restart = false) {\n if (restart) return this.buildContainerTemplate(level)\n\n let template = components.reduce((current, nodeName) => {\n const attributes: Attributes = this.miniComponents[nodeName]\n const nodeAlias = this.componentsAlias[nodeName]._num\n return current + this.buildComponentTemplate({ nodeName, nodeAlias, attributes }, level)\n }, '')\n\n template += this.buildPlainTextTemplate(level)\n template += this.buildThirdPartyTemplate(level, this.componentConfig)\n\n return template\n }\n\n protected buildOptimizeFloor (level: number, components: string[], restart = false) {\n if (restart) return this.buildContainerTemplate(level)\n\n let template = components.reduce((current, nodeName) => {\n if (level !== 0) {\n if (!this.nestElements.has(nodeName)) {\n // 不可嵌套自身的组件只需输出一层模板\n return current\n } else {\n // 部分可嵌套自身的组件实际上不会嵌套过深,这里按阈值限制层数\n const max = this.nestElements.get(nodeName)!\n if (max > 0 && level >= max) {\n return current\n }\n }\n }\n const attributes: Attributes = this.miniComponents[nodeName]\n const nodeAlias = this.componentsAlias[nodeName]._num\n return current + this.buildComponentTemplate({ nodeName, nodeAlias, attributes }, level)\n }, '')\n\n if (level === 0) template += this.buildPlainTextTemplate(level)\n template += this.buildThirdPartyTemplate(level, this.componentConfig)\n\n return template\n }\n\n protected buildXSTmplName () {\n const isLoopComps = [\n ...Array.from(this.nestElements.keys()),\n ...Array.from(this.componentConfig.thirdPartyComponents.keys())\n ]\n const isLoopCompsSet = new Set(isLoopComps)\n const hasMaxComps: string[] = []\n this.nestElements.forEach((max, comp) => {\n if (max > 1) {\n hasMaxComps.push(comp)\n } else if (max === 1 && isLoopCompsSet.has(comp)) {\n isLoopCompsSet.delete(comp)\n }\n })\n\n const componentsAlias = this.componentsAlias\n const listA = Array.from(isLoopCompsSet).map(item => componentsAlias[item]?._num || item)\n const listB = hasMaxComps.map(item => componentsAlias[item]?._num || item)\n\n return `function (l, n, s) {\n var a = ${JSON.stringify(listA)}\n var b = ${JSON.stringify(listB)}\n if (a.indexOf(n) === -1) {\n l = 0\n }\n if (b.indexOf(n) > -1) {\n var u = s.split(',')\n var depth = 0\n for (var i = 0; i < u.length; i++) {\n if (u[i] === n) depth++\n }\n l = depth\n }\n return 'tmpl_' + l + '_' + n\n }`\n }\n\n protected buildXSTmpExtra () {\n const hasMaxComps: string[] = []\n this.nestElements.forEach((max, comp) => {\n if (max > 1) hasMaxComps.push(comp)\n })\n\n const componentsAlias = this.componentsAlias\n const listA = hasMaxComps.map(item => componentsAlias[item]?._num || item)\n\n return `f: function (l, n) {\n var b = ${JSON.stringify(listA)}\n if (b.indexOf(n) > -1) {\n if (l) l += ','\n l += n\n }\n return l\n }`\n }\n}\n\nexport {\n capitalize,\n internalComponents,\n Shortcuts,\n toCamelCase\n}\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED