@tarojs/plugin-platform-ascf 3.6.38-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +174 -0
- package/README.md +3 -0
- package/dist/components-react.js +60 -0
- package/dist/components-react.js.map +1 -0
- package/dist/index.js +540 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime-utils.js +416 -0
- package/dist/runtime-utils.js.map +1 -0
- package/dist/runtime.js +417 -0
- package/dist/runtime.js.map +1 -0
- package/index.js +4 -0
- package/package.json +43 -0
- package/types/components-react.d.ts +17 -0
- package/types/index.d.ts +59 -0
- package/types/runtime-utils.d.ts +344 -0
- package/types/runtime.d.ts +1 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,540 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var service = require('@tarojs/service');
|
|
6
|
+
var template = require('@tarojs/shared/dist/template');
|
|
7
|
+
|
|
8
|
+
/******************************************************************************
|
|
9
|
+
Copyright (c) Microsoft Corporation.
|
|
10
|
+
|
|
11
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
12
|
+
purpose with or without fee is hereby granted.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
15
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
16
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
17
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
18
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
19
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
20
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
21
|
+
***************************************************************************** */
|
|
22
|
+
|
|
23
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
24
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
25
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
26
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
27
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
28
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
29
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
34
|
+
var e = new Error(message);
|
|
35
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
const _true = 'true';
|
|
39
|
+
const _false = 'false';
|
|
40
|
+
const _empty = '';
|
|
41
|
+
const _zero = '0';
|
|
42
|
+
const components = {
|
|
43
|
+
// ======== 调整属性 ========
|
|
44
|
+
Progress: {
|
|
45
|
+
'border-radius': _zero,
|
|
46
|
+
'font-size': '16',
|
|
47
|
+
duration: '30',
|
|
48
|
+
bindActiveEnd: _empty
|
|
49
|
+
},
|
|
50
|
+
RichText: {
|
|
51
|
+
space: _empty,
|
|
52
|
+
'user-select': _false
|
|
53
|
+
},
|
|
54
|
+
Text: {
|
|
55
|
+
'user-select': _false
|
|
56
|
+
},
|
|
57
|
+
Map: {
|
|
58
|
+
polygons: '[]',
|
|
59
|
+
subkey: _empty,
|
|
60
|
+
rotate: _zero,
|
|
61
|
+
skew: _zero,
|
|
62
|
+
'max-scale': '20',
|
|
63
|
+
'min-scale': '3',
|
|
64
|
+
'enable-3D': _false,
|
|
65
|
+
'show-compass': _false,
|
|
66
|
+
'show-scale': _false,
|
|
67
|
+
'enable-overlooking': _false,
|
|
68
|
+
'enable-zoom': _true,
|
|
69
|
+
'enable-scroll': _true,
|
|
70
|
+
'enable-rotate': _false,
|
|
71
|
+
'enable-satellite': _false,
|
|
72
|
+
'enable-traffic': _false,
|
|
73
|
+
'enable-poi': _true,
|
|
74
|
+
'enable-building': _true,
|
|
75
|
+
setting: '[]',
|
|
76
|
+
bindLabelTap: _empty,
|
|
77
|
+
bindRegionChange: _empty,
|
|
78
|
+
bindPoiTap: _empty,
|
|
79
|
+
bindAnchorPointTap: _empty
|
|
80
|
+
},
|
|
81
|
+
Button: {
|
|
82
|
+
lang: 'en',
|
|
83
|
+
'session-from': _empty,
|
|
84
|
+
'send-message-title': _empty,
|
|
85
|
+
'send-message-path': _empty,
|
|
86
|
+
'send-message-img': _empty,
|
|
87
|
+
'app-parameter': _empty,
|
|
88
|
+
'show-message-card': _false,
|
|
89
|
+
'business-id': _empty,
|
|
90
|
+
bindGetUserInfo: _empty,
|
|
91
|
+
bindContact: _empty,
|
|
92
|
+
bindGetPhoneNumber: _empty,
|
|
93
|
+
bindChooseAvatar: _empty,
|
|
94
|
+
bindError: _empty,
|
|
95
|
+
bindOpenSetting: _empty,
|
|
96
|
+
bindLaunchApp: _empty
|
|
97
|
+
},
|
|
98
|
+
Form: {
|
|
99
|
+
'report-submit-timeout': _zero
|
|
100
|
+
},
|
|
101
|
+
Input: {
|
|
102
|
+
'always-embed': _false,
|
|
103
|
+
'adjust-position': _true,
|
|
104
|
+
'hold-keyboard': _false,
|
|
105
|
+
'safe-password-cert-path': '',
|
|
106
|
+
'safe-password-length': '',
|
|
107
|
+
'safe-password-time-stamp': '',
|
|
108
|
+
'safe-password-nonce': '',
|
|
109
|
+
'safe-password-salt': '',
|
|
110
|
+
'safe-password-custom-hash': '',
|
|
111
|
+
'auto-fill': _empty,
|
|
112
|
+
bindKeyboardHeightChange: _empty,
|
|
113
|
+
bindNicknameReview: _empty
|
|
114
|
+
},
|
|
115
|
+
Picker: {
|
|
116
|
+
'header-text': _empty
|
|
117
|
+
},
|
|
118
|
+
PickerView: {
|
|
119
|
+
'immediate-change': _false,
|
|
120
|
+
bindPickStart: _empty,
|
|
121
|
+
bindPickEnd: _empty
|
|
122
|
+
},
|
|
123
|
+
Slider: {
|
|
124
|
+
color: "'#e9e9e9'",
|
|
125
|
+
'selected-color': "'#1aad19'"
|
|
126
|
+
},
|
|
127
|
+
Textarea: {
|
|
128
|
+
'show-confirm-bar': _true,
|
|
129
|
+
'adjust-position': _true,
|
|
130
|
+
'hold-keyboard': _false,
|
|
131
|
+
'disable-default-padding': _false,
|
|
132
|
+
'confirm-type': "'return'",
|
|
133
|
+
'confirm-hold': _false,
|
|
134
|
+
bindKeyboardHeightChange: _empty
|
|
135
|
+
},
|
|
136
|
+
ScrollView: {
|
|
137
|
+
'enable-flex': _false,
|
|
138
|
+
'scroll-anchoring': _false,
|
|
139
|
+
'refresher-enabled': _false,
|
|
140
|
+
'refresher-threshold': '45',
|
|
141
|
+
'refresher-default-style': "'black'",
|
|
142
|
+
'refresher-background': "'#FFF'",
|
|
143
|
+
'refresher-triggered': _false,
|
|
144
|
+
enhanced: _false,
|
|
145
|
+
bounces: _true,
|
|
146
|
+
'show-scrollbar': _true,
|
|
147
|
+
'paging-enabled': _false,
|
|
148
|
+
'fast-deceleration': _false,
|
|
149
|
+
bindDragStart: _empty,
|
|
150
|
+
bindDragging: _empty,
|
|
151
|
+
bindDragEnd: _empty,
|
|
152
|
+
bindRefresherPulling: _empty,
|
|
153
|
+
bindRefresherRefresh: _empty,
|
|
154
|
+
bindRefresherRestore: _empty,
|
|
155
|
+
bindRefresherAbort: _empty
|
|
156
|
+
},
|
|
157
|
+
Swiper: {
|
|
158
|
+
'snap-to-edge': _false,
|
|
159
|
+
'easing-function': "'default'"
|
|
160
|
+
},
|
|
161
|
+
SwiperItem: {
|
|
162
|
+
'skip-hidden-item-layout': _false
|
|
163
|
+
},
|
|
164
|
+
Navigator: {
|
|
165
|
+
target: "'self'",
|
|
166
|
+
'app-id': _empty,
|
|
167
|
+
path: _empty,
|
|
168
|
+
'extra-data': _empty,
|
|
169
|
+
version: "'version'"
|
|
170
|
+
},
|
|
171
|
+
Camera: {
|
|
172
|
+
mode: "'normal'",
|
|
173
|
+
resolution: "'medium'",
|
|
174
|
+
'frame-size': "'medium'",
|
|
175
|
+
bindInitDone: _empty,
|
|
176
|
+
bindScanCode: _empty
|
|
177
|
+
},
|
|
178
|
+
Image: {
|
|
179
|
+
webp: _false,
|
|
180
|
+
'show-menu-by-longpress': _false
|
|
181
|
+
},
|
|
182
|
+
LivePlayer: {
|
|
183
|
+
mode: "'live'",
|
|
184
|
+
'sound-mode': "'speaker'",
|
|
185
|
+
'auto-pause-if-navigate': _true,
|
|
186
|
+
'auto-pause-if-open-native': _true,
|
|
187
|
+
'picture-in-picture-mode': '[]',
|
|
188
|
+
bindstatechange: _empty,
|
|
189
|
+
bindfullscreenchange: _empty,
|
|
190
|
+
bindnetstatus: _empty,
|
|
191
|
+
bindAudioVolumeNotify: _empty,
|
|
192
|
+
bindEnterPictureInPicture: _empty,
|
|
193
|
+
bindLeavePictureInPicture: _empty
|
|
194
|
+
},
|
|
195
|
+
Video: {
|
|
196
|
+
title: _empty,
|
|
197
|
+
'play-btn-position': "'bottom'",
|
|
198
|
+
'enable-play-gesture': _false,
|
|
199
|
+
'auto-pause-if-navigate': _true,
|
|
200
|
+
'auto-pause-if-open-native': _true,
|
|
201
|
+
'vslide-gesture': _false,
|
|
202
|
+
'vslide-gesture-in-fullscreen': _true,
|
|
203
|
+
'ad-unit-id': _empty,
|
|
204
|
+
'poster-for-crawler': _empty,
|
|
205
|
+
'show-casting-button': _false,
|
|
206
|
+
'picture-in-picture-mode': '[]',
|
|
207
|
+
// picture-in-picture-show-progress 属性先注释掉的原因如下:
|
|
208
|
+
// 该属性超过了 hxml 属性的长度限制,实际无法使用且导致编译报错。可等微信官方修复后再放开。
|
|
209
|
+
// 参考1:https://developers.weixin.qq.com/community/develop/doc/000a429beb87f0eac07acc0fc5b400
|
|
210
|
+
// 参考2: https://developers.weixin.qq.com/community/develop/doc/0006883619c48054286a4308258c00?_at=vyxqpllafi
|
|
211
|
+
// 'picture-in-picture-show-progress': 'false',
|
|
212
|
+
'enable-auto-rotation': _false,
|
|
213
|
+
'show-screen-lock-button': _false,
|
|
214
|
+
'show-snapshot-button': _false,
|
|
215
|
+
'show-background-playback-button': _false,
|
|
216
|
+
'background-poster': _empty,
|
|
217
|
+
bindProgress: _empty,
|
|
218
|
+
bindLoadedMetadata: _empty,
|
|
219
|
+
bindControlsToggle: _empty,
|
|
220
|
+
bindEnterPictureInPicture: _empty,
|
|
221
|
+
bindLeavePictureInPicture: _empty,
|
|
222
|
+
bindSeekComplete: _empty,
|
|
223
|
+
bindAdLoad: _empty,
|
|
224
|
+
bindAdError: _empty,
|
|
225
|
+
bindAdClose: _empty,
|
|
226
|
+
bindAdPlay: _empty
|
|
227
|
+
},
|
|
228
|
+
Canvas: {
|
|
229
|
+
type: _empty
|
|
230
|
+
},
|
|
231
|
+
Ad: {
|
|
232
|
+
'ad-type': "'banner'",
|
|
233
|
+
'ad-theme': "'white'"
|
|
234
|
+
},
|
|
235
|
+
CoverView: {
|
|
236
|
+
'marker-id': _empty,
|
|
237
|
+
slot: _empty
|
|
238
|
+
},
|
|
239
|
+
// ======== 额外组件 ========
|
|
240
|
+
Editor: {
|
|
241
|
+
'read-only': _false,
|
|
242
|
+
placeholder: _empty,
|
|
243
|
+
'show-img-size': _false,
|
|
244
|
+
'show-img-toolbar': _false,
|
|
245
|
+
'show-img-resize': _false,
|
|
246
|
+
focus: _false,
|
|
247
|
+
bindReady: _empty,
|
|
248
|
+
bindFocus: _empty,
|
|
249
|
+
bindBlur: _empty,
|
|
250
|
+
bindInput: _empty,
|
|
251
|
+
bindStatusChange: _empty,
|
|
252
|
+
name: _empty
|
|
253
|
+
},
|
|
254
|
+
MatchMedia: {
|
|
255
|
+
'min-width': _empty,
|
|
256
|
+
'max-width': _empty,
|
|
257
|
+
width: _empty,
|
|
258
|
+
'min-height': _empty,
|
|
259
|
+
'max-height': _empty,
|
|
260
|
+
height: _empty,
|
|
261
|
+
orientation: _empty
|
|
262
|
+
},
|
|
263
|
+
FunctionalPageNavigator: {
|
|
264
|
+
version: "'release'",
|
|
265
|
+
name: _empty,
|
|
266
|
+
args: _empty,
|
|
267
|
+
bindSuccess: _empty,
|
|
268
|
+
bindFail: _empty,
|
|
269
|
+
bindCancel: _empty
|
|
270
|
+
},
|
|
271
|
+
LivePusher: {
|
|
272
|
+
url: _empty,
|
|
273
|
+
mode: "'RTC'",
|
|
274
|
+
autopush: _false,
|
|
275
|
+
muted: _false,
|
|
276
|
+
'enable-camera': _true,
|
|
277
|
+
'auto-focus': _true,
|
|
278
|
+
orientation: "'vertical'",
|
|
279
|
+
beauty: _zero,
|
|
280
|
+
whiteness: _zero,
|
|
281
|
+
aspect: "'9:16'",
|
|
282
|
+
'min-bitrate': '200',
|
|
283
|
+
'max-bitrate': '1000',
|
|
284
|
+
'audio-quality': "'high'",
|
|
285
|
+
'waiting-image': _empty,
|
|
286
|
+
'waiting-image-hash': _empty,
|
|
287
|
+
zoom: _false,
|
|
288
|
+
'device-position': "'front'",
|
|
289
|
+
'background-mute': _false,
|
|
290
|
+
mirror: _false,
|
|
291
|
+
'remote-mirror': _false,
|
|
292
|
+
'local-mirror': _false,
|
|
293
|
+
'audio-reverb-type': _zero,
|
|
294
|
+
'enable-mic': _true,
|
|
295
|
+
'enable-agc': _false,
|
|
296
|
+
'enable-ans': _false,
|
|
297
|
+
'audio-volume-type': "'voicecall'",
|
|
298
|
+
'video-width': '360',
|
|
299
|
+
'video-height': '640',
|
|
300
|
+
'beauty-style': "'smooth'",
|
|
301
|
+
filter: "'standard'",
|
|
302
|
+
animation: _empty,
|
|
303
|
+
bindStateChange: _empty,
|
|
304
|
+
bindNetStatus: _empty,
|
|
305
|
+
bindBgmStart: _empty,
|
|
306
|
+
bindBgmProgress: _empty,
|
|
307
|
+
bindBgmComplete: _empty,
|
|
308
|
+
bindAudioVolumeNotify: _empty
|
|
309
|
+
},
|
|
310
|
+
OfficialAccount: {
|
|
311
|
+
bindLoad: _empty,
|
|
312
|
+
bindError: _empty
|
|
313
|
+
},
|
|
314
|
+
OpenData: {
|
|
315
|
+
type: _empty,
|
|
316
|
+
'open-gid': _empty,
|
|
317
|
+
lang: "'en'",
|
|
318
|
+
'default-text': _empty,
|
|
319
|
+
'default-avatar': _empty,
|
|
320
|
+
bindError: _empty
|
|
321
|
+
},
|
|
322
|
+
NavigationBar: {
|
|
323
|
+
title: _empty,
|
|
324
|
+
loading: _false,
|
|
325
|
+
'front-color': _empty,
|
|
326
|
+
'background-color': _empty,
|
|
327
|
+
'color-animation-duration': _zero,
|
|
328
|
+
'color-animation-timing-func': "'linear'"
|
|
329
|
+
},
|
|
330
|
+
PageMeta: {
|
|
331
|
+
'background-text-style': _empty,
|
|
332
|
+
'background-color': _empty,
|
|
333
|
+
'background-color-top': _empty,
|
|
334
|
+
'background-color-bottom': _empty,
|
|
335
|
+
'scroll-top': "''",
|
|
336
|
+
'scroll-duration': '300',
|
|
337
|
+
'page-style': "''",
|
|
338
|
+
'root-font-size': "''",
|
|
339
|
+
bindResize: _empty,
|
|
340
|
+
bindScroll: _empty,
|
|
341
|
+
bindScrollDone: _empty
|
|
342
|
+
},
|
|
343
|
+
VoipRoom: {
|
|
344
|
+
openid: _empty,
|
|
345
|
+
mode: "'camera'",
|
|
346
|
+
'device-position': "'front'",
|
|
347
|
+
bindError: _empty
|
|
348
|
+
},
|
|
349
|
+
AdCustom: {
|
|
350
|
+
'unit-id': _empty,
|
|
351
|
+
'ad-intervals': _empty,
|
|
352
|
+
bindLoad: _empty,
|
|
353
|
+
bindError: _empty
|
|
354
|
+
},
|
|
355
|
+
PageContainer: {
|
|
356
|
+
show: _false,
|
|
357
|
+
duration: '300',
|
|
358
|
+
'z-index': '100',
|
|
359
|
+
overlay: _true,
|
|
360
|
+
position: "'bottom'",
|
|
361
|
+
round: _false,
|
|
362
|
+
'close-on-slide-down': _false,
|
|
363
|
+
'overlay-style': _empty,
|
|
364
|
+
'custom-style': _empty,
|
|
365
|
+
bindBeforeEnter: _empty,
|
|
366
|
+
bindEnter: _empty,
|
|
367
|
+
bindAfterEnter: _empty,
|
|
368
|
+
bindBeforeLeave: _empty,
|
|
369
|
+
bindLeave: _empty,
|
|
370
|
+
bindAfterLeave: _empty,
|
|
371
|
+
bindClickOverlay: _empty
|
|
372
|
+
},
|
|
373
|
+
ShareElement: {
|
|
374
|
+
mapkey: _empty,
|
|
375
|
+
transform: _false,
|
|
376
|
+
duration: '300',
|
|
377
|
+
'easing-function': "'ease-out'"
|
|
378
|
+
},
|
|
379
|
+
KeyboardAccessory: {},
|
|
380
|
+
RootPortal: {},
|
|
381
|
+
ChannelLive: {
|
|
382
|
+
feedId: _empty,
|
|
383
|
+
finderUserName: _empty
|
|
384
|
+
}
|
|
385
|
+
};
|
|
386
|
+
|
|
387
|
+
class Template extends template.UnRecursiveTemplate {
|
|
388
|
+
constructor(pluginOptions) {
|
|
389
|
+
super();
|
|
390
|
+
this.supportXS = true;
|
|
391
|
+
this.Adapter = {
|
|
392
|
+
if: 'has:if',
|
|
393
|
+
else: 'has:else',
|
|
394
|
+
elseif: 'has:elif',
|
|
395
|
+
for: 'has:for',
|
|
396
|
+
forItem: 'has:for-item',
|
|
397
|
+
forIndex: 'has:for-index',
|
|
398
|
+
key: 'has:key',
|
|
399
|
+
xs: 'hjs',
|
|
400
|
+
type: 'ascf'
|
|
401
|
+
};
|
|
402
|
+
this.modifyTemplateResult = (res, nodeName, _level, children) => {
|
|
403
|
+
if (nodeName === 'keyboard-accessory')
|
|
404
|
+
return '';
|
|
405
|
+
if ((nodeName === 'textarea' || nodeName === 'input') && this.pluginOptions.enablekeyboardAccessory) {
|
|
406
|
+
const list = res.split('</template>');
|
|
407
|
+
const componentAlias = this.componentsAlias[nodeName];
|
|
408
|
+
const nodeNameAlias = componentAlias._num;
|
|
409
|
+
const target = `
|
|
410
|
+
<keyboard-accessory style="{{i.cn[0].st}}" class="{{i.cn[0].cl}}" bindtap="eh" id="{{i.cn[0].uid||i.cn[0].sid}}" data-sid="{{i.cn[0].sid}}">
|
|
411
|
+
<block has:for="{{i.cn[0].cn}}" has:key="sid">
|
|
412
|
+
<template is="{{xs.e(cid+1)}}" data="{{i:item,l:l}}" />
|
|
413
|
+
</block>
|
|
414
|
+
</keyboard-accessory>
|
|
415
|
+
`;
|
|
416
|
+
const templateFocus = list[1]
|
|
417
|
+
.replace(children, target)
|
|
418
|
+
.replace(`_${nodeNameAlias}_focus`, `_${nodeNameAlias}_focus_ka`);
|
|
419
|
+
const templateBlur = list[2]
|
|
420
|
+
.replace(children, target)
|
|
421
|
+
.replace(`_${nodeNameAlias}_blur`, `_${nodeNameAlias}_blur_ka`);
|
|
422
|
+
list.splice(3, 0, templateFocus, templateBlur);
|
|
423
|
+
return list.join('</template>');
|
|
424
|
+
}
|
|
425
|
+
return res;
|
|
426
|
+
};
|
|
427
|
+
this.pluginOptions = pluginOptions || {};
|
|
428
|
+
}
|
|
429
|
+
buildXsTemplate() {
|
|
430
|
+
return '<hjs module="xs" src="./utils.hjs" />';
|
|
431
|
+
}
|
|
432
|
+
replacePropName(name, value, componentName, componentAlias) {
|
|
433
|
+
if (value === 'eh') {
|
|
434
|
+
const nameLowerCase = name.toLowerCase();
|
|
435
|
+
if (nameLowerCase === 'bindlongtap' && componentName !== 'canvas')
|
|
436
|
+
return 'bindlongpress';
|
|
437
|
+
return nameLowerCase;
|
|
438
|
+
}
|
|
439
|
+
if (componentName === 'share-element') {
|
|
440
|
+
const mapKeyAlias = componentAlias.mapkey;
|
|
441
|
+
if (value === `i.${mapKeyAlias}`)
|
|
442
|
+
return 'key';
|
|
443
|
+
}
|
|
444
|
+
return name;
|
|
445
|
+
}
|
|
446
|
+
buildXSTepFocus(nn) {
|
|
447
|
+
if (this.pluginOptions.enablekeyboardAccessory) {
|
|
448
|
+
const textarea = this.componentsAlias.textarea._num;
|
|
449
|
+
const input = this.componentsAlias.input._num;
|
|
450
|
+
const ka = this.componentsAlias['keyboard-accessory']._num;
|
|
451
|
+
return `function(i, prefix) {
|
|
452
|
+
var s = i.focus !== undefined ? 'focus' : 'blur'
|
|
453
|
+
var r = prefix + i.${nn} + '_' + s
|
|
454
|
+
if ((i.nn === '${textarea}' || i.nn === '${input}') && i.cn[0] && i.cn[0].nn === '${ka}') {
|
|
455
|
+
r = r + '_ka'
|
|
456
|
+
}
|
|
457
|
+
return r
|
|
458
|
+
}`;
|
|
459
|
+
}
|
|
460
|
+
else {
|
|
461
|
+
return super.buildXSTepFocus(nn);
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
const PACKAGE_NAME = '@tarojs/plugin-platform-ascf';
|
|
467
|
+
class AscfApp extends service.TaroPlatformBase {
|
|
468
|
+
/**
|
|
469
|
+
* 1. setupTransaction - init
|
|
470
|
+
* 2. setup
|
|
471
|
+
* 3. setupTransaction - close
|
|
472
|
+
* 4. buildTransaction - init
|
|
473
|
+
* 5. build
|
|
474
|
+
* 6. buildTransaction - close
|
|
475
|
+
*/
|
|
476
|
+
constructor(ctx, config, pluginOptions) {
|
|
477
|
+
super(ctx, config);
|
|
478
|
+
this.platform = 'ascf';
|
|
479
|
+
this.globalObject = 'has';
|
|
480
|
+
this.projectConfigJson = this.config.projectConfigName || 'ascf.config.json';
|
|
481
|
+
this.runtimePath = `${PACKAGE_NAME}/dist/runtime`;
|
|
482
|
+
this.taroComponentsPath = `${PACKAGE_NAME}/dist/components-react`;
|
|
483
|
+
this.fileType = {
|
|
484
|
+
templ: '.hxml',
|
|
485
|
+
style: '.css',
|
|
486
|
+
config: '.json',
|
|
487
|
+
script: '.js',
|
|
488
|
+
xs: '.hjs'
|
|
489
|
+
};
|
|
490
|
+
this.template = new Template(pluginOptions);
|
|
491
|
+
this.setupTransaction.addWrapper({
|
|
492
|
+
close() {
|
|
493
|
+
this.modifyTemplate(pluginOptions);
|
|
494
|
+
this.modifyWebpackConfig();
|
|
495
|
+
}
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
/**
|
|
499
|
+
* 增加组件或修改组件属性
|
|
500
|
+
*/
|
|
501
|
+
modifyTemplate(pluginOptions) {
|
|
502
|
+
const template = this.template;
|
|
503
|
+
template.mergeComponents(this.ctx, components);
|
|
504
|
+
template.voidElements.add('voip-room');
|
|
505
|
+
template.focusComponents.add('editor');
|
|
506
|
+
if (pluginOptions === null || pluginOptions === void 0 ? void 0 : pluginOptions.enablekeyboardAccessory) {
|
|
507
|
+
template.voidElements.delete('input');
|
|
508
|
+
template.voidElements.delete('textarea');
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
/**
|
|
512
|
+
* 修改 Webpack 配置
|
|
513
|
+
*/
|
|
514
|
+
modifyWebpackConfig() {
|
|
515
|
+
this.ctx.modifyWebpackChain(({ chain }) => {
|
|
516
|
+
// 解决微信小程序 sourcemap 映射失败的问题,#9412
|
|
517
|
+
chain.output.devtoolModuleFilenameTemplate((info) => {
|
|
518
|
+
const resourcePath = info.resourcePath.replace(/[/\\]/g, '_');
|
|
519
|
+
return `webpack://${info.namespace}/${resourcePath}`;
|
|
520
|
+
});
|
|
521
|
+
});
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
var index = (ctx, options) => {
|
|
526
|
+
ctx.registerPlatform({
|
|
527
|
+
name: 'ascf',
|
|
528
|
+
useConfigName: 'mini',
|
|
529
|
+
fn({ config }) {
|
|
530
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
531
|
+
const program = new AscfApp(ctx, config, options || {});
|
|
532
|
+
yield program.start();
|
|
533
|
+
});
|
|
534
|
+
}
|
|
535
|
+
});
|
|
536
|
+
};
|
|
537
|
+
|
|
538
|
+
exports.AscfApp = AscfApp;
|
|
539
|
+
exports["default"] = index;
|
|
540
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/components.ts","../src/template.ts","../src/program.ts","../src/index.ts"],"sourcesContent":["const _true = 'true'\r\nconst _false = 'false'\r\nconst _empty = ''\r\nconst _zero = '0'\r\n\r\nexport const components = {\r\n // ======== 调整属性 ========\r\n Progress: {\r\n 'border-radius': _zero,\r\n 'font-size': '16',\r\n duration: '30',\r\n bindActiveEnd: _empty\r\n },\r\n RichText: {\r\n space: _empty,\r\n 'user-select': _false\r\n },\r\n Text: {\r\n 'user-select': _false\r\n },\r\n Map: {\r\n polygons: '[]',\r\n subkey: _empty,\r\n rotate: _zero,\r\n skew: _zero,\r\n 'max-scale': '20',\r\n 'min-scale': '3',\r\n 'enable-3D': _false,\r\n 'show-compass': _false,\r\n 'show-scale': _false,\r\n 'enable-overlooking': _false,\r\n 'enable-zoom': _true,\r\n 'enable-scroll': _true,\r\n 'enable-rotate': _false,\r\n 'enable-satellite': _false,\r\n 'enable-traffic': _false,\r\n 'enable-poi': _true,\r\n 'enable-building': _true,\r\n setting: '[]',\r\n bindLabelTap: _empty,\r\n bindRegionChange: _empty,\r\n bindPoiTap: _empty,\r\n bindAnchorPointTap: _empty\r\n },\r\n Button: {\r\n lang: 'en',\r\n 'session-from': _empty,\r\n 'send-message-title': _empty,\r\n 'send-message-path': _empty,\r\n 'send-message-img': _empty,\r\n 'app-parameter': _empty,\r\n 'show-message-card': _false,\r\n 'business-id': _empty,\r\n bindGetUserInfo: _empty,\r\n bindContact: _empty,\r\n bindGetPhoneNumber: _empty,\r\n bindChooseAvatar: _empty,\r\n bindError: _empty,\r\n bindOpenSetting: _empty,\r\n bindLaunchApp: _empty\r\n },\r\n Form: {\r\n 'report-submit-timeout': _zero\r\n },\r\n Input: {\r\n 'always-embed': _false,\r\n 'adjust-position': _true,\r\n 'hold-keyboard': _false,\r\n 'safe-password-cert-path': '',\r\n 'safe-password-length': '',\r\n 'safe-password-time-stamp': '',\r\n 'safe-password-nonce': '',\r\n 'safe-password-salt': '',\r\n 'safe-password-custom-hash': '',\r\n 'auto-fill': _empty,\r\n bindKeyboardHeightChange: _empty,\r\n bindNicknameReview: _empty\r\n },\r\n Picker: {\r\n 'header-text': _empty\r\n },\r\n PickerView: {\r\n 'immediate-change': _false,\r\n bindPickStart: _empty,\r\n bindPickEnd: _empty\r\n },\r\n Slider: {\r\n color: \"'#e9e9e9'\",\r\n 'selected-color': \"'#1aad19'\"\r\n },\r\n Textarea: {\r\n 'show-confirm-bar': _true,\r\n 'adjust-position': _true,\r\n 'hold-keyboard': _false,\r\n 'disable-default-padding': _false,\r\n 'confirm-type': \"'return'\",\r\n 'confirm-hold': _false,\r\n bindKeyboardHeightChange: _empty\r\n },\r\n ScrollView: {\r\n 'enable-flex': _false,\r\n 'scroll-anchoring': _false,\r\n 'refresher-enabled': _false,\r\n 'refresher-threshold': '45',\r\n 'refresher-default-style': \"'black'\",\r\n 'refresher-background': \"'#FFF'\",\r\n 'refresher-triggered': _false,\r\n enhanced: _false,\r\n bounces: _true,\r\n 'show-scrollbar': _true,\r\n 'paging-enabled': _false,\r\n 'fast-deceleration': _false,\r\n bindDragStart: _empty,\r\n bindDragging: _empty,\r\n bindDragEnd: _empty,\r\n bindRefresherPulling: _empty,\r\n bindRefresherRefresh: _empty,\r\n bindRefresherRestore: _empty,\r\n bindRefresherAbort: _empty\r\n },\r\n Swiper: {\r\n 'snap-to-edge': _false,\r\n 'easing-function': \"'default'\"\r\n },\r\n SwiperItem: {\r\n 'skip-hidden-item-layout': _false\r\n },\r\n Navigator: {\r\n target: \"'self'\",\r\n 'app-id': _empty,\r\n path: _empty,\r\n 'extra-data': _empty,\r\n version: \"'version'\"\r\n },\r\n Camera: {\r\n mode: \"'normal'\",\r\n resolution: \"'medium'\",\r\n 'frame-size': \"'medium'\",\r\n bindInitDone: _empty,\r\n bindScanCode: _empty\r\n },\r\n Image: {\r\n webp: _false,\r\n 'show-menu-by-longpress': _false\r\n },\r\n LivePlayer: {\r\n mode: \"'live'\",\r\n 'sound-mode': \"'speaker'\",\r\n 'auto-pause-if-navigate': _true,\r\n 'auto-pause-if-open-native': _true,\r\n 'picture-in-picture-mode': '[]',\r\n bindstatechange: _empty,\r\n bindfullscreenchange: _empty,\r\n bindnetstatus: _empty,\r\n bindAudioVolumeNotify: _empty,\r\n bindEnterPictureInPicture: _empty,\r\n bindLeavePictureInPicture: _empty\r\n },\r\n Video: {\r\n title: _empty,\r\n 'play-btn-position': \"'bottom'\",\r\n 'enable-play-gesture': _false,\r\n 'auto-pause-if-navigate': _true,\r\n 'auto-pause-if-open-native': _true,\r\n 'vslide-gesture': _false,\r\n 'vslide-gesture-in-fullscreen': _true,\r\n 'ad-unit-id': _empty,\r\n 'poster-for-crawler': _empty,\r\n 'show-casting-button': _false,\r\n 'picture-in-picture-mode': '[]',\r\n // picture-in-picture-show-progress 属性先注释掉的原因如下:\r\n // 该属性超过了 hxml 属性的长度限制,实际无法使用且导致编译报错。可等微信官方修复后再放开。\r\n // 参考1:https://developers.weixin.qq.com/community/develop/doc/000a429beb87f0eac07acc0fc5b400\r\n // 参考2: https://developers.weixin.qq.com/community/develop/doc/0006883619c48054286a4308258c00?_at=vyxqpllafi\r\n // 'picture-in-picture-show-progress': 'false',\r\n 'enable-auto-rotation': _false,\r\n 'show-screen-lock-button': _false,\r\n 'show-snapshot-button': _false,\r\n 'show-background-playback-button': _false,\r\n 'background-poster': _empty,\r\n bindProgress: _empty,\r\n bindLoadedMetadata: _empty,\r\n bindControlsToggle: _empty,\r\n bindEnterPictureInPicture: _empty,\r\n bindLeavePictureInPicture: _empty,\r\n bindSeekComplete: _empty,\r\n bindAdLoad: _empty,\r\n bindAdError: _empty,\r\n bindAdClose: _empty,\r\n bindAdPlay: _empty\r\n },\r\n Canvas: {\r\n type: _empty\r\n },\r\n Ad: {\r\n 'ad-type': \"'banner'\",\r\n 'ad-theme': \"'white'\"\r\n },\r\n CoverView: {\r\n 'marker-id': _empty,\r\n slot: _empty\r\n },\r\n // ======== 额外组件 ========\r\n Editor: {\r\n 'read-only': _false,\r\n placeholder: _empty,\r\n 'show-img-size': _false,\r\n 'show-img-toolbar': _false,\r\n 'show-img-resize': _false,\r\n focus: _false,\r\n bindReady: _empty,\r\n bindFocus: _empty,\r\n bindBlur: _empty,\r\n bindInput: _empty,\r\n bindStatusChange: _empty,\r\n name: _empty\r\n },\r\n MatchMedia: {\r\n 'min-width': _empty,\r\n 'max-width': _empty,\r\n width: _empty,\r\n 'min-height': _empty,\r\n 'max-height': _empty,\r\n height: _empty,\r\n orientation: _empty\r\n },\r\n FunctionalPageNavigator: {\r\n version: \"'release'\",\r\n name: _empty,\r\n args: _empty,\r\n bindSuccess: _empty,\r\n bindFail: _empty,\r\n bindCancel: _empty\r\n },\r\n LivePusher: {\r\n url: _empty,\r\n mode: \"'RTC'\",\r\n autopush: _false,\r\n muted: _false,\r\n 'enable-camera': _true,\r\n 'auto-focus': _true,\r\n orientation: \"'vertical'\",\r\n beauty: _zero,\r\n whiteness: _zero,\r\n aspect: \"'9:16'\",\r\n 'min-bitrate': '200',\r\n 'max-bitrate': '1000',\r\n 'audio-quality': \"'high'\",\r\n 'waiting-image': _empty,\r\n 'waiting-image-hash': _empty,\r\n zoom: _false,\r\n 'device-position': \"'front'\",\r\n 'background-mute': _false,\r\n mirror: _false,\r\n 'remote-mirror': _false,\r\n 'local-mirror': _false,\r\n 'audio-reverb-type': _zero,\r\n 'enable-mic': _true,\r\n 'enable-agc': _false,\r\n 'enable-ans': _false,\r\n 'audio-volume-type': \"'voicecall'\",\r\n 'video-width': '360',\r\n 'video-height': '640',\r\n 'beauty-style': \"'smooth'\",\r\n filter: \"'standard'\",\r\n animation: _empty,\r\n bindStateChange: _empty,\r\n bindNetStatus: _empty,\r\n bindBgmStart: _empty,\r\n bindBgmProgress: _empty,\r\n bindBgmComplete: _empty,\r\n bindAudioVolumeNotify: _empty\r\n },\r\n OfficialAccount: {\r\n bindLoad: _empty,\r\n bindError: _empty\r\n },\r\n OpenData: {\r\n type: _empty,\r\n 'open-gid': _empty,\r\n lang: \"'en'\",\r\n 'default-text': _empty,\r\n 'default-avatar': _empty,\r\n bindError: _empty\r\n },\r\n NavigationBar: {\r\n title: _empty,\r\n loading: _false,\r\n 'front-color': _empty,\r\n 'background-color': _empty,\r\n 'color-animation-duration': _zero,\r\n 'color-animation-timing-func': \"'linear'\"\r\n },\r\n PageMeta: {\r\n 'background-text-style': _empty,\r\n 'background-color': _empty,\r\n 'background-color-top': _empty,\r\n 'background-color-bottom': _empty,\r\n 'scroll-top': \"''\",\r\n 'scroll-duration': '300',\r\n 'page-style': \"''\",\r\n 'root-font-size': \"''\",\r\n bindResize: _empty,\r\n bindScroll: _empty,\r\n bindScrollDone: _empty\r\n },\r\n VoipRoom: {\r\n openid: _empty,\r\n mode: \"'camera'\",\r\n 'device-position': \"'front'\",\r\n bindError: _empty\r\n },\r\n AdCustom: {\r\n 'unit-id': _empty,\r\n 'ad-intervals': _empty,\r\n bindLoad: _empty,\r\n bindError: _empty\r\n },\r\n PageContainer: {\r\n show: _false,\r\n duration: '300',\r\n 'z-index': '100',\r\n overlay: _true,\r\n position: \"'bottom'\",\r\n round: _false,\r\n 'close-on-slide-down': _false,\r\n 'overlay-style': _empty,\r\n 'custom-style': _empty,\r\n bindBeforeEnter: _empty,\r\n bindEnter: _empty,\r\n bindAfterEnter: _empty,\r\n bindBeforeLeave: _empty,\r\n bindLeave: _empty,\r\n bindAfterLeave: _empty,\r\n bindClickOverlay: _empty\r\n },\r\n ShareElement: {\r\n mapkey: _empty,\r\n transform: _false,\r\n duration: '300',\r\n 'easing-function': \"'ease-out'\"\r\n },\r\n KeyboardAccessory: {},\r\n RootPortal: {},\r\n ChannelLive: {\r\n feedId: _empty,\r\n finderUserName: _empty\r\n }\r\n}\r\n","import { UnRecursiveTemplate } from '@tarojs/shared/dist/template'\r\n\r\nimport type { IOptions } from './index'\r\n\r\nexport class Template extends UnRecursiveTemplate {\r\n pluginOptions: IOptions\r\n supportXS = true\r\n Adapter = {\r\n if: 'has:if',\r\n else: 'has:else',\r\n elseif: 'has:elif',\r\n for: 'has:for',\r\n forItem: 'has:for-item',\r\n forIndex: 'has:for-index',\r\n key: 'has:key',\r\n xs: 'hjs',\r\n type: 'ascf'\r\n }\r\n\r\n constructor (pluginOptions?: IOptions) {\r\n super()\r\n this.pluginOptions = pluginOptions || {}\r\n }\r\n\r\n buildXsTemplate () {\r\n return '<hjs module=\"xs\" src=\"./utils.hjs\" />'\r\n }\r\n\r\n replacePropName (name: string, value: string, componentName: string, componentAlias) {\r\n if (value === 'eh') {\r\n const nameLowerCase = name.toLowerCase()\r\n if (nameLowerCase === 'bindlongtap' && componentName !== 'canvas') return 'bindlongpress'\r\n return nameLowerCase\r\n }\r\n if (componentName === 'share-element') {\r\n const mapKeyAlias = componentAlias.mapkey\r\n if (value === `i.${mapKeyAlias}`) return 'key'\r\n }\r\n return name\r\n }\r\n\r\n buildXSTepFocus (nn: string) {\r\n if (this.pluginOptions.enablekeyboardAccessory) {\r\n const textarea = this.componentsAlias.textarea._num\r\n const input = this.componentsAlias.input._num\r\n const ka = this.componentsAlias['keyboard-accessory']._num\r\n return `function(i, prefix) {\r\n var s = i.focus !== undefined ? 'focus' : 'blur'\r\n var r = prefix + i.${nn} + '_' + s\r\n if ((i.nn === '${textarea}' || i.nn === '${input}') && i.cn[0] && i.cn[0].nn === '${ka}') {\r\n r = r + '_ka'\r\n }\r\n return r\r\n }`\r\n } else {\r\n return super.buildXSTepFocus(nn)\r\n }\r\n }\r\n\r\n modifyTemplateResult = (res: string, nodeName: string, _level, children) => {\r\n if (nodeName === 'keyboard-accessory') return ''\r\n\r\n if ((nodeName === 'textarea' || nodeName === 'input') && this.pluginOptions.enablekeyboardAccessory) {\r\n const list = res.split('</template>')\r\n const componentAlias = this.componentsAlias[nodeName]\r\n const nodeNameAlias = componentAlias._num\r\n\r\n const target = `\r\n <keyboard-accessory style=\"{{i.cn[0].st}}\" class=\"{{i.cn[0].cl}}\" bindtap=\"eh\" id=\"{{i.cn[0].uid||i.cn[0].sid}}\" data-sid=\"{{i.cn[0].sid}}\">\r\n <block has:for=\"{{i.cn[0].cn}}\" has:key=\"sid\">\r\n <template is=\"{{xs.e(cid+1)}}\" data=\"{{i:item,l:l}}\" />\r\n </block>\r\n </keyboard-accessory>\r\n `\r\n\r\n const templateFocus = list[1]\r\n .replace(children, target)\r\n .replace(`_${nodeNameAlias}_focus`, `_${nodeNameAlias}_focus_ka`)\r\n\r\n const templateBlur = list[2]\r\n .replace(children, target)\r\n .replace(`_${nodeNameAlias}_blur`, `_${nodeNameAlias}_blur_ka`)\r\n\r\n list.splice(3, 0, templateFocus, templateBlur)\r\n return list.join('</template>')\r\n }\r\n\r\n return res\r\n }\r\n}\r\n","import { TaroPlatformBase } from '@tarojs/service'\r\n\r\nimport { components } from './components'\r\nimport { Template } from './template'\r\n\r\nimport type { IOptions } from './index'\r\n\r\nconst PACKAGE_NAME = '@tarojs/plugin-platform-ascf'\r\n\r\nexport default class AscfApp extends TaroPlatformBase {\r\n template: Template\r\n platform = 'ascf'\r\n globalObject = 'has'\r\n projectConfigJson: string = this.config.projectConfigName || 'ascf.config.json'\r\n runtimePath = `${PACKAGE_NAME}/dist/runtime`\r\n taroComponentsPath = `${PACKAGE_NAME}/dist/components-react`\r\n fileType = {\r\n templ: '.hxml',\r\n style: '.css',\r\n config: '.json',\r\n script: '.js',\r\n xs: '.hjs'\r\n }\r\n\r\n /**\r\n * 1. setupTransaction - init\r\n * 2. setup\r\n * 3. setupTransaction - close\r\n * 4. buildTransaction - init\r\n * 5. build\r\n * 6. buildTransaction - close\r\n */\r\n constructor (ctx, config, pluginOptions?: IOptions) {\r\n super(ctx, config)\r\n this.template = new Template(pluginOptions)\r\n this.setupTransaction.addWrapper({\r\n close () {\r\n this.modifyTemplate(pluginOptions)\r\n this.modifyWebpackConfig()\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * 增加组件或修改组件属性\r\n */\r\n modifyTemplate (pluginOptions?: IOptions) {\r\n const template = this.template\r\n template.mergeComponents(this.ctx, components)\r\n template.voidElements.add('voip-room')\r\n template.focusComponents.add('editor')\r\n if (pluginOptions?.enablekeyboardAccessory) {\r\n template.voidElements.delete('input')\r\n template.voidElements.delete('textarea')\r\n }\r\n }\r\n\r\n /**\r\n * 修改 Webpack 配置\r\n */\r\n modifyWebpackConfig () {\r\n this.ctx.modifyWebpackChain(({ chain }) => {\r\n // 解决微信小程序 sourcemap 映射失败的问题,#9412\r\n chain.output.devtoolModuleFilenameTemplate((info) => {\r\n const resourcePath = info.resourcePath.replace(/[/\\\\]/g, '_')\r\n return `webpack://${info.namespace}/${resourcePath}`\r\n })\r\n })\r\n }\r\n}\r\n","import AscfApp from './program'\r\n\r\nimport type { IPluginContext } from '@tarojs/service'\r\n\r\n// 让其它平台插件可以继承此平台\r\nexport { AscfApp }\r\n\r\nexport interface IOptions {\r\n enablekeyboardAccessory?: boolean\r\n}\r\n\r\nexport default (ctx: IPluginContext, options: IOptions) => {\r\n ctx.registerPlatform({\r\n name: 'ascf',\r\n useConfigName: 'mini',\r\n async fn ({ config }) {\r\n const program = new AscfApp(ctx, config, options || {})\r\n await program.start()\r\n }\r\n })\r\n}\r\n"],"names":["UnRecursiveTemplate","TaroPlatformBase"],"mappings":"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"}
|