@tarojs/shared 4.1.7-alpha.0 → 4.1.7-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sources":["../src/components.ts","../src/constants.ts","../src/is.ts","../src/shortcuts.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 ...touchEvents\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 bindagreeprivacyauthorization: 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 ...touchEvents\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\nconst Script = {}\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 Script,\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 ['click-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 enum PLATFORM_TYPE {\n MINI = 'mini',\n ASCF = 'ascf',\n WEB = 'web',\n RN = 'rn',\n HARMONY = 'harmony',\n QUICK = 'quickapp',\n}\n\nexport const COMPILE_MODE_IDENTIFIER_PREFIX = 'f'\n\nexport const COMPILE_MODE_SUB_RENDER_FN = 'subRenderFn'\n\nexport const PLATFORM_CONFIG_MAP = {\n h5: {\n type: PLATFORM_TYPE.WEB\n },\n harmony: {\n type: PLATFORM_TYPE.HARMONY\n },\n ascf: {\n type: PLATFORM_TYPE.ASCF\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","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 if (Number.isFinite) return Number.isFinite(o)\n return typeof o === 'number'\n}\n\nexport function isBooleanStringLiteral (o: unknown): o is string {\n return o === 'true' || o === 'false' || o === '!0' || o === '!1'\n}\n\nexport function isObjectStringLiteral (o: unknown): o is string {\n return o === '{}'\n}\n\nexport const isArray = Array.isArray\n\nexport const isWebPlatform = () => process.env.TARO_ENV === 'h5' || process.env.TARO_PLATFORM === 'web'\n","// 字符串简写\nexport const enum Shortcuts {\n Container = 'container',\n Childnodes = 'cn',\n Text = 'v',\n NodeType = 'nt',\n NodeName = 'nn',\n\n // Attributes\n Sid = 'sid',\n Style = 'st',\n Class = 'cl',\n Src = 'src'\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\n// Note: @tarojs/runtime 不依赖 @tarojs/taro, 所以不能改为从 @tarojs/taro 引入 (可能导致循环依赖)\ntype TFunc = (...args: any[]) => any\n\nexport enum HOOK_TYPE {\n SINGLE,\n MULTI,\n WATERFALL\n}\n\ninterface Hook {\n type: HOOK_TYPE\n initial?: TFunc | null\n}\n\ninterface Node {\n next: Node\n context?: any\n callback?: TFunc\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 'defer:onTabItemTap', // defer: 需要等页面组件挂载后再调用\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?: TFunc): Hook {\n return {\n type,\n initial: initial || null\n }\n}\n\nexport class TaroHooks<T extends Record<string, TFunc> = 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) => TFunc | Array<TFunc> | undefined\n /** 提供Hook,为不同平台提供修改生命周期配置 */\n modifyRecursiveComponentConfig: (defaultConfig:MiniLifecycle, options:any) => any\n /** 解决百度小程序的模版语法问题 */\n getPathIndex: (indexOfNode: number) => string\n /** 解决支付宝小程序分包时全局作用域不一致的问题 */\n getEventCenter: (EventsClass: typeof Events) => Events\n isBubbleEvents: (eventName: string) => boolean\n getSpecialNodes: () => string[]\n onRemoveAttribute: (element, qualifiedName: string) => boolean\n /** 用于把 React 同一事件回调中的所有 setState 合并到同一个更新处理中 */\n batchedEventUpdates: (cb: TFunc) => 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>, node) => void\n /**\n * 自定义处理 Taro DOM 序列化数据,如使其脱离 data 树\n */\n transferHydrateData: (data: Record<string, any>, element, componentsAlias: 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 modifyTaroEventReturn: (node, event, returnVal) => any\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 modifyAddEventListener: (element, sideEffect: boolean, getComponentsAlias: () => Record<string, any>) => void\n /** 元素删除事件监听钩子 */\n modifyRemoveEventListener: (element, sideEffect: boolean, getComponentsAlias: () => Record<string, any>) => void\n /** 鸿蒙用于监听 memory 等级的钩子 */\n getMemoryLevel: (level: { level: number }) => void\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 modifyRecursiveComponentConfig: TaroHook(HOOK_TYPE.SINGLE, (defaultConfig) => defaultConfig),\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 transferHydrateData: 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 modifyTaroEventReturn: TaroHook(HOOK_TYPE.SINGLE, () => undefined),\n\n modifyDispatchEvent: TaroHook(HOOK_TYPE.MULTI),\n\n initNativeApi: TaroHook(HOOK_TYPE.MULTI),\n\n patchElement: TaroHook(HOOK_TYPE.MULTI),\n\n modifyAddEventListener: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyRemoveEventListener: TaroHook(HOOK_TYPE.SINGLE),\n\n getMemoryLevel: TaroHook(HOOK_TYPE.SINGLE),\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 ClickView: viewAttrs,\n }\n origin = { ...origin, ...extraList }\n Object.keys(origin)\n .sort((a, b) => {\n const reg = /^(Static|Pure|Catch|Click)*(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 { COMPILE_MODE_IDENTIFIER_PREFIX } from './constants'\nimport { isBooleanStringLiteral, isFunction, isNumber, isObjectStringLiteral, 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 _isUseXS = true\n protected _isUseCompileMode = false\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 isXMLSupportRecursiveReference = true\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 set isUseCompileMode (isUse) {\n this._isUseCompileMode = isUse\n }\n\n get isUseCompileMode () {\n return this._isUseCompileMode\n }\n\n set isUseXS (isUse) {\n this._isUseXS = this.supportXS && isUse\n }\n\n get isUseXS () {\n return this._isUseXS\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 public 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 const propInCamelCase = toCamelCase(prop)\n const propAlias = componentAlias[propInCamelCase] || propInCamelCase\n let propValue = component[prop]\n\n if (prop.startsWith('bind') || propValue === 'eh') {\n propValue = 'eh'\n } else if (propValue === '') {\n propValue = `i.${propAlias}`\n } else if (isBooleanStringLiteral(propValue) || isNumber(+propValue)) {\n propValue = this.isUseXS\n ? `xs.b(i.${propAlias},${propValue})`\n : `i.${propAlias}===undefined?${propValue}:i.${propAlias}`\n } else if (isObjectStringLiteral(propValue)) {\n propValue = this.isUseXS\n ? `xs.d(i.${propAlias})`\n : `i.${propAlias}===undefined?${propValue}:i.${propAlias}`\n } else {\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 result['click-view'] = {\n style: comp.style,\n class: comp.class,\n ...this.getClickEvent()\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 if (compName === 'list-builder') {\n result[compName] = {\n ...newComp,\n list: 'i.cn',\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.isUseXS\n ? `${this.dataKeymap(`i:item,c:1,l:xs.f('',item.${Shortcuts.NodeName})`)}`\n : this.isSupportRecursive\n ? this.dataKeymap('i:item')\n : this.dataKeymap('i:item,c:1')\n const xs = this.isUseXS\n ? (this.isSupportRecursive\n ? `xs.a(0, item.${Shortcuts.NodeName})`\n : `xs.a(0, item.${Shortcuts.NodeName}, '')`)\n : `'tmpl_0_' + item.${Shortcuts.NodeName}`\n return `${this.buildXsImportTemplate()}<template name=\"taro_tmpl\">\n <template is=\"{{${xs}}}\" data=\"{{${data}}}\" ${Adapter.for}=\"{{root.${Shortcuts.Childnodes}}}\" ${Adapter.key}=\"${Shortcuts.Sid}\" />\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 let propValue = ''\n\n if (this.isUseXS) {\n if (isObjectStringLiteral(patchValue)) {\n propValue = `xs.d(i.${toCamelCase(attr)})`\n }\n propValue = `xs.b(i.${toCamelCase(attr)},${patchValue})`\n } else {\n propValue = `i.${toCamelCase(attr)}===undefined?${patchValue}:i.${toCamelCase(attr)}`\n }\n\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, useSlotItem = false) {\n const { isSupportRecursive, isUseXS, Adapter, isUseCompileMode = true } = this\n const isLastRecursiveComp = !isSupportRecursive && level + 1 === this.baseLevel\n const isUnRecursiveXs = !this.isSupportRecursive && isUseXS\n\n const forAttribute = `${Adapter.for}=\"{{i.${Shortcuts.Childnodes}}}\" ${Adapter.key}=\"${Shortcuts.Sid}\"`\n if (isLastRecursiveComp) {\n const data = isUnRecursiveXs\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 const tmpl = isUseXS\n ? `<template is=\"{{xs.e(${level})}}\" data=\"{{${data}}}\" ${forAttribute} />`\n : `<template is=\"tmpl_${level}_${Shortcuts.Container}\" data=\"{{${data}}}\" ${forAttribute} />`\n if (useSlotItem) {\n return `<block slot:item slot:index>${tmpl.replace(forAttribute, '')}</block>`\n }\n return tmpl\n } else {\n const data = isUnRecursiveXs\n // TODO: 此处直接 c+1,不是最优解,变量 c 的作用是监测组件嵌套的层级是否大于 baselevel\n // 但目前的监测方法用于所有组件嵌套的总和,应该分开组件计算,单个组件嵌套层级大于 baselevel 时,再进入 comp 组件中进行新的嵌套\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 const tmpl = isUseXS\n ? `<template is=\"{{${xs}}}\" data=\"{{${data}}}\" ${forAttribute} />`\n : isSupportRecursive\n ? `<template is=\"{{'tmpl_0_' + item.${Shortcuts.NodeName}}}\" data=\"{{${data}}}\" ${forAttribute} />`\n : isUseCompileMode\n ? `<template is=\"{{'tmpl_' + (item.${Shortcuts.NodeName}[0]==='${COMPILE_MODE_IDENTIFIER_PREFIX}' ? 0 : c) + '_' + item.${Shortcuts.NodeName}}}\" data=\"{{${data}}}\" ${forAttribute} />`\n : `<template is=\"{{'tmpl_' + c + '_' + item.${Shortcuts.NodeName}}}\" data=\"{{${data}}}\" ${forAttribute} />`\n\n if (useSlotItem) {\n return `<block slot:item slot:index>${tmpl.replace(forAttribute, '')}</block>`\n }\n return tmpl\n }\n }\n\n private getChildren (comp: Component, level: number): string {\n const { isSupportRecursive } = this\n const nextLevel = isSupportRecursive ? 0 : level + 1\n const isListBuilder = comp.nodeName === 'list-builder'\n\n let child = this.getChildrenTemplate(nextLevel, isListBuilder)\n\n if (isFunction(this.modifyLoopBody)) {\n child = this.modifyLoopBody(child, comp.nodeName)\n }\n let children = this.voidElements.has(comp.nodeName)\n ? ''\n : `\n ${indent(child, 6)}\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.isUseXS\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 case 'click-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 { isSupportRecursive, isUseXS, 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}}\" ${!isSupportRecursive && isUseXS ? 'l=\"{{l}}\"' : ''} id=\"{{i.uid||i.sid}}\" data-sid=\"{{i.sid}}\">\n </${compName}>\n</template>\n `\n } else {\n if (!isSupportRecursive && isUseXS && 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 const children = this.voidElements.has(compName)\n ? ''\n : `\n ${child}\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}}\">${children}</${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 === '${this.componentsAlias['#text']._num}'}}\">\n <template is=\"tmpl_0_${this.componentsAlias['#text']._num}\" data=\"{{${this.dataKeymap('i:i')}}}\" />\n </block>\n <block ${this.Adapter.else}>\n ${!this.isSupportRecursive && this.isUseXS ? '<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 getClickEvent (): any {\n return { bindtap: 'eh' }\n }\n\n protected getAttrValue (value: string, _key: string, _nodeName: string) {\n return `{${value}}`\n }\n\n public buildXsTemplate (_filePath?: string) {\n return ''\n }\n\n public buildXsImportTemplate (_filePath?: string) {\n return this.isUseXS ? this.buildXsTemplate(_filePath) + '\\n' : ''\n }\n\n public buildPageTemplate = (baseTempPath: string, _page?: { content: Record<string, any>, path: 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.isUseXS\n ? this.dataKeymap(`i:i,c:1,l:xs.f('',i.${Shortcuts.NodeName})`)\n : this.isSupportRecursive\n ? this.dataKeymap('i:i')\n : this.dataKeymap('i:i,c:1')\n\n // 此处需要重新引入 xs 函数,否则会出现 ws.f() 在 comp.wxml 和 custom-wrapper.wxml 中永远返回 undefined 的问题 #14599\n return `<import src=\"./base${ext}\" />\n${this.buildXsImportTemplate()}<template is=\"{{'tmpl_0_' + i.${Shortcuts.NodeName}}}\" data=\"{{${data}}}\" />`\n }\n\n public buildCustomComponentTemplate = (ext: string) => {\n const Adapter = this.Adapter\n const data = !this.isSupportRecursive && this.isUseXS\n ? `${this.dataKeymap(`i:item,c:1,l:xs.f('',item.${Shortcuts.NodeName})`)}`\n : this.isSupportRecursive\n ? this.dataKeymap('i:item')\n : this.dataKeymap('i:item,c:1')\n\n // 此处需要重新引入 xs 函数,否则会出现 ws.f() 在 comp.wxml 和 custom-wrapper.wxml 中永远返回 undefined 的问题 #14599\n return `<import src=\"./base${ext}\" />\n${this.buildXsImportTemplate()}<template is=\"{{'tmpl_0_' + item.${Shortcuts.NodeName}}}\" data=\"{{${data}}}\" ${Adapter.for}=\"{{i.${Shortcuts.Childnodes}}}\" ${Adapter.key}=\"${Shortcuts.Sid}\" />\n`\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 (a) {\n return a === undefined ? {} : a\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\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.isUseXS\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 const containerLevel = this.baseLevel - 1\n\n // l >= containerLevel 是为了避免 baselevel 倒数两三层几层组件恰好不是 listA 中的组件,而最后一个组件又刚好是 listA 的组件,导致出现 l >= baselevel 却没有走入新的嵌套循环的问题 #14883\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 if (l >= ${containerLevel}) {\n return 'tmpl_${containerLevel}_${Shortcuts.Container}'\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":["Shortcuts"],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sources":["../src/components.ts","../src/constants.ts","../src/is.ts","../src/shortcuts.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 ...touchEvents\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 bindagreeprivacyauthorization: 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 ...touchEvents\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\nconst Script = {}\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 Script,\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 ['click-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 enum PLATFORM_TYPE {\n MINI = 'mini',\n ASCF = 'ascf',\n WEB = 'web',\n RN = 'rn',\n HARMONY = 'harmony',\n QUICK = 'quickapp',\n}\n\nexport const COMPILE_MODE_IDENTIFIER_PREFIX = 'f'\n\nexport const COMPILE_MODE_SUB_RENDER_FN = 'subRenderFn'\n\nexport const PLATFORM_CONFIG_MAP = {\n h5: {\n type: PLATFORM_TYPE.WEB\n },\n harmony: {\n type: PLATFORM_TYPE.HARMONY\n },\n ascf: {\n type: PLATFORM_TYPE.ASCF\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","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 if (Number.isFinite) return Number.isFinite(o)\n return typeof o === 'number'\n}\n\nexport function isBooleanStringLiteral (o: unknown): o is string {\n return o === 'true' || o === 'false' || o === '!0' || o === '!1'\n}\n\nexport function isObjectStringLiteral (o: unknown): o is string {\n return o === '{}'\n}\n\nexport const isArray = Array.isArray\n\nexport const isWebPlatform = () => process.env.TARO_ENV === 'h5' || process.env.TARO_PLATFORM === 'web'\n","// 字符串简写\nexport const enum Shortcuts {\n Container = 'container',\n Childnodes = 'cn',\n Text = 'v',\n NodeType = 'nt',\n NodeName = 'nn',\n\n // Attributes\n Sid = 'sid',\n Style = 'st',\n Class = 'cl',\n Src = 'src'\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\n// Note: @tarojs/runtime 不依赖 @tarojs/taro, 所以不能改为从 @tarojs/taro 引入 (可能导致循环依赖)\ntype TFunc = (...args: any[]) => any\n\nexport enum HOOK_TYPE {\n SINGLE,\n MULTI,\n WATERFALL\n}\n\ninterface Hook {\n type: HOOK_TYPE\n initial?: TFunc | null\n}\n\ninterface Node {\n next: Node\n context?: any\n callback?: TFunc\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 'defer:onTabItemTap', // defer: 需要等页面组件挂载后再调用\n 'onTitleClick',\n 'onOptionMenuClick',\n 'events:onKeyboardHeight', // events: 支付宝平台需要挂载到 config.events 上\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?: TFunc): Hook {\n return {\n type,\n initial: initial || null\n }\n}\n\nexport class TaroHooks<T extends Record<string, TFunc> = 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) => TFunc | Array<TFunc> | undefined\n /** 提供Hook,为不同平台提供修改生命周期配置 */\n modifyRecursiveComponentConfig: (defaultConfig:MiniLifecycle, options:any) => any\n /** 解决百度小程序的模版语法问题 */\n getPathIndex: (indexOfNode: number) => string\n /** 解决支付宝小程序分包时全局作用域不一致的问题 */\n getEventCenter: (EventsClass: typeof Events) => Events\n isBubbleEvents: (eventName: string) => boolean\n getSpecialNodes: () => string[]\n onRemoveAttribute: (element, qualifiedName: string) => boolean\n /** 用于把 React 同一事件回调中的所有 setState 合并到同一个更新处理中 */\n batchedEventUpdates: (cb: TFunc) => 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>, node) => void\n /**\n * 自定义处理 Taro DOM 序列化数据,如使其脱离 data 树\n */\n transferHydrateData: (data: Record<string, any>, element, componentsAlias: 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 modifyTaroEventReturn: (node, event, returnVal) => any\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 modifyAddEventListener: (element, sideEffect: boolean, getComponentsAlias: () => Record<string, any>) => void\n /** 元素删除事件监听钩子 */\n modifyRemoveEventListener: (element, sideEffect: boolean, getComponentsAlias: () => Record<string, any>) => void\n /** 鸿蒙用于监听 memory 等级的钩子 */\n getMemoryLevel: (level: { level: number }) => void\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 modifyRecursiveComponentConfig: TaroHook(HOOK_TYPE.SINGLE, (defaultConfig) => defaultConfig),\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 transferHydrateData: 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 modifyTaroEventReturn: TaroHook(HOOK_TYPE.SINGLE, () => undefined),\n\n modifyDispatchEvent: TaroHook(HOOK_TYPE.MULTI),\n\n initNativeApi: TaroHook(HOOK_TYPE.MULTI),\n\n patchElement: TaroHook(HOOK_TYPE.MULTI),\n\n modifyAddEventListener: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyRemoveEventListener: TaroHook(HOOK_TYPE.SINGLE),\n\n getMemoryLevel: TaroHook(HOOK_TYPE.SINGLE),\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 ClickView: viewAttrs,\n }\n origin = { ...origin, ...extraList }\n Object.keys(origin)\n .sort((a, b) => {\n const reg = /^(Static|Pure|Catch|Click)*(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 { COMPILE_MODE_IDENTIFIER_PREFIX } from './constants'\nimport { isBooleanStringLiteral, isFunction, isNumber, isObjectStringLiteral, 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 _isUseXS = true\n protected _isUseCompileMode = false\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 isXMLSupportRecursiveReference = true\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 set isUseCompileMode (isUse) {\n this._isUseCompileMode = isUse\n }\n\n get isUseCompileMode () {\n return this._isUseCompileMode\n }\n\n set isUseXS (isUse) {\n this._isUseXS = this.supportXS && isUse\n }\n\n get isUseXS () {\n return this._isUseXS\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 public 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 const propInCamelCase = toCamelCase(prop)\n const propAlias = componentAlias[propInCamelCase] || propInCamelCase\n let propValue = component[prop]\n\n if (prop.startsWith('bind') || propValue === 'eh') {\n propValue = 'eh'\n } else if (propValue === '') {\n propValue = `i.${propAlias}`\n } else if (isBooleanStringLiteral(propValue) || isNumber(+propValue)) {\n propValue = this.isUseXS\n ? `xs.b(i.${propAlias},${propValue})`\n : `i.${propAlias}===undefined?${propValue}:i.${propAlias}`\n } else if (isObjectStringLiteral(propValue)) {\n propValue = this.isUseXS\n ? `xs.d(i.${propAlias})`\n : `i.${propAlias}===undefined?${propValue}:i.${propAlias}`\n } else {\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 result['click-view'] = {\n style: comp.style,\n class: comp.class,\n ...this.getClickEvent()\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 if (compName === 'list-builder') {\n result[compName] = {\n ...newComp,\n list: 'i.cn',\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.isUseXS\n ? `${this.dataKeymap(`i:item,c:1,l:xs.f('',item.${Shortcuts.NodeName})`)}`\n : this.isSupportRecursive\n ? this.dataKeymap('i:item')\n : this.dataKeymap('i:item,c:1')\n const xs = this.isUseXS\n ? (this.isSupportRecursive\n ? `xs.a(0, item.${Shortcuts.NodeName})`\n : `xs.a(0, item.${Shortcuts.NodeName}, '')`)\n : `'tmpl_0_' + item.${Shortcuts.NodeName}`\n return `${this.buildXsImportTemplate()}<template name=\"taro_tmpl\">\n <template is=\"{{${xs}}}\" data=\"{{${data}}}\" ${Adapter.for}=\"{{root.${Shortcuts.Childnodes}}}\" ${Adapter.key}=\"${Shortcuts.Sid}\" />\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 let propValue = ''\n\n if (this.isUseXS) {\n if (isObjectStringLiteral(patchValue)) {\n propValue = `xs.d(i.${toCamelCase(attr)})`\n }\n propValue = `xs.b(i.${toCamelCase(attr)},${patchValue})`\n } else {\n propValue = `i.${toCamelCase(attr)}===undefined?${patchValue}:i.${toCamelCase(attr)}`\n }\n\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, useSlotItem = false) {\n const { isSupportRecursive, isUseXS, Adapter, isUseCompileMode = true } = this\n const isLastRecursiveComp = !isSupportRecursive && level + 1 === this.baseLevel\n const isUnRecursiveXs = !this.isSupportRecursive && isUseXS\n\n const forAttribute = `${Adapter.for}=\"{{i.${Shortcuts.Childnodes}}}\" ${Adapter.key}=\"${Shortcuts.Sid}\"`\n if (isLastRecursiveComp) {\n const data = isUnRecursiveXs\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 const tmpl = isUseXS\n ? `<template is=\"{{xs.e(${level})}}\" data=\"{{${data}}}\" ${forAttribute} />`\n : `<template is=\"tmpl_${level}_${Shortcuts.Container}\" data=\"{{${data}}}\" ${forAttribute} />`\n if (useSlotItem) {\n return `<block slot:item slot:index>${tmpl.replace(forAttribute, '')}</block>`\n }\n return tmpl\n } else {\n const data = isUnRecursiveXs\n // TODO: 此处直接 c+1,不是最优解,变量 c 的作用是监测组件嵌套的层级是否大于 baselevel\n // 但目前的监测方法用于所有组件嵌套的总和,应该分开组件计算,单个组件嵌套层级大于 baselevel 时,再进入 comp 组件中进行新的嵌套\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 const tmpl = isUseXS\n ? `<template is=\"{{${xs}}}\" data=\"{{${data}}}\" ${forAttribute} />`\n : isSupportRecursive\n ? `<template is=\"{{'tmpl_0_' + item.${Shortcuts.NodeName}}}\" data=\"{{${data}}}\" ${forAttribute} />`\n : isUseCompileMode\n ? `<template is=\"{{'tmpl_' + (item.${Shortcuts.NodeName}[0]==='${COMPILE_MODE_IDENTIFIER_PREFIX}' ? 0 : c) + '_' + item.${Shortcuts.NodeName}}}\" data=\"{{${data}}}\" ${forAttribute} />`\n : `<template is=\"{{'tmpl_' + c + '_' + item.${Shortcuts.NodeName}}}\" data=\"{{${data}}}\" ${forAttribute} />`\n\n if (useSlotItem) {\n return `<block slot:item slot:index>${tmpl.replace(forAttribute, '')}</block>`\n }\n return tmpl\n }\n }\n\n private getChildren (comp: Component, level: number): string {\n const { isSupportRecursive } = this\n const nextLevel = isSupportRecursive ? 0 : level + 1\n const isListBuilder = comp.nodeName === 'list-builder'\n\n let child = this.getChildrenTemplate(nextLevel, isListBuilder)\n\n if (isFunction(this.modifyLoopBody)) {\n child = this.modifyLoopBody(child, comp.nodeName)\n }\n let children = this.voidElements.has(comp.nodeName)\n ? ''\n : `\n ${indent(child, 6)}\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.isUseXS\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 case 'click-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 { isSupportRecursive, isUseXS, 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}}\" ${!isSupportRecursive && isUseXS ? 'l=\"{{l}}\"' : ''} id=\"{{i.uid||i.sid}}\" data-sid=\"{{i.sid}}\">\n </${compName}>\n</template>\n `\n } else {\n if (!isSupportRecursive && isUseXS && 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 const children = this.voidElements.has(compName)\n ? ''\n : `\n ${child}\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}}\">${children}</${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 === '${this.componentsAlias['#text']._num}'}}\">\n <template is=\"tmpl_0_${this.componentsAlias['#text']._num}\" data=\"{{${this.dataKeymap('i:i')}}}\" />\n </block>\n <block ${this.Adapter.else}>\n ${!this.isSupportRecursive && this.isUseXS ? '<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 getClickEvent (): any {\n return { bindtap: 'eh' }\n }\n\n protected getAttrValue (value: string, _key: string, _nodeName: string) {\n return `{${value}}`\n }\n\n public buildXsTemplate (_filePath?: string) {\n return ''\n }\n\n public buildXsImportTemplate (_filePath?: string) {\n return this.isUseXS ? this.buildXsTemplate(_filePath) + '\\n' : ''\n }\n\n public buildPageTemplate = (baseTempPath: string, _page?: { content: Record<string, any>, path: 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.isUseXS\n ? this.dataKeymap(`i:i,c:1,l:xs.f('',i.${Shortcuts.NodeName})`)\n : this.isSupportRecursive\n ? this.dataKeymap('i:i')\n : this.dataKeymap('i:i,c:1')\n\n // 此处需要重新引入 xs 函数,否则会出现 ws.f() 在 comp.wxml 和 custom-wrapper.wxml 中永远返回 undefined 的问题 #14599\n return `<import src=\"./base${ext}\" />\n${this.buildXsImportTemplate()}<template is=\"{{'tmpl_0_' + i.${Shortcuts.NodeName}}}\" data=\"{{${data}}}\" />`\n }\n\n public buildCustomComponentTemplate = (ext: string) => {\n const Adapter = this.Adapter\n const data = !this.isSupportRecursive && this.isUseXS\n ? `${this.dataKeymap(`i:item,c:1,l:xs.f('',item.${Shortcuts.NodeName})`)}`\n : this.isSupportRecursive\n ? this.dataKeymap('i:item')\n : this.dataKeymap('i:item,c:1')\n\n // 此处需要重新引入 xs 函数,否则会出现 ws.f() 在 comp.wxml 和 custom-wrapper.wxml 中永远返回 undefined 的问题 #14599\n return `<import src=\"./base${ext}\" />\n${this.buildXsImportTemplate()}<template is=\"{{'tmpl_0_' + item.${Shortcuts.NodeName}}}\" data=\"{{${data}}}\" ${Adapter.for}=\"{{i.${Shortcuts.Childnodes}}}\" ${Adapter.key}=\"${Shortcuts.Sid}\" />\n`\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 (a) {\n return a === undefined ? {} : a\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\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.isUseXS\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 const containerLevel = this.baseLevel - 1\n\n // l >= containerLevel 是为了避免 baselevel 倒数两三层几层组件恰好不是 listA 中的组件,而最后一个组件又刚好是 listA 的组件,导致出现 l >= baselevel 却没有走入新的嵌套循环的问题 #14883\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 if (l >= ${containerLevel}) {\n return 'tmpl_${containerLevel}_${Shortcuts.Container}'\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":["Shortcuts"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tarojs/shared",
3
- "version": "4.1.7-alpha.0",
3
+ "version": "4.1.7-alpha.2",
4
4
  "description": "Taro utils internal use.",
5
5
  "author": "O2Team",
6
6
  "license": "MIT",