@tarojs/with-weapp 3.5.0-beta.1 → 3.5.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/lifecycle.ts","../src/utils.ts","../src/diff.js","../src/clone.js","../src/index.ts"],"sourcesContent":["interface LifecycleMap {\n [key: string]: string[]\n}\n\nexport enum TaroLifeCycles {\n WillMount = 'componentWillMount',\n DidMount = 'componentDidMount',\n DidShow = 'componentDidShow',\n DidHide = 'componentDidHide',\n WillUnmount = 'componentWillUnmount'\n}\n\nexport const lifecycleMap: LifecycleMap = {\n [TaroLifeCycles.WillMount]: ['created'],\n [TaroLifeCycles.DidMount]: ['attached'],\n [TaroLifeCycles.DidShow]: ['onShow'],\n [TaroLifeCycles.DidHide]: ['onHide'],\n [TaroLifeCycles.WillUnmount]: ['detached', 'onUnload']\n}\n\nexport const lifecycles = new Set<string>(['ready'])\n\nfor (const key in lifecycleMap) {\n const lifecycle = lifecycleMap[key]\n lifecycle.forEach(l => lifecycles.add(l))\n}\n\nexport const uniquePageLifecycle = [\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onShareAppMessage',\n 'onShareTimeline',\n 'onAddToFavorites',\n 'onPageScroll',\n 'onResize',\n 'onTabItemTap'\n]\n\nexport const appOptions = [\n 'onLaunch',\n 'onShow',\n 'onHide',\n 'onError',\n 'onPageNotFound',\n 'onUnhandledRejection',\n 'onThemeChange'\n]\n","/**\n * Simple bind, faster than native\n */\nexport function bind (fn /*: Function */, ctx /*: Object */) /*: Function */ {\n if (!fn) return false\n\n function boundFn (a) {\n const l /*: number */ = arguments.length\n return l ? (l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a)) : fn.call(ctx)\n }\n\n // record original fn length\n boundFn._length = fn.length\n return boundFn\n}\n\nexport function isEqual (obj1, obj2) {\n return JSON.stringify(obj1) === JSON.stringify(obj2)\n}\n\nexport function noop (..._: unknown[]) {\n //\n}\n\nconst sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n}\n\nexport function proxy (target, sourceKey: string, key: string) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n }\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val\n }\n Object.defineProperty(target, key, sharedPropertyDefinition)\n}\n\nexport function safeGet (obj, propsArg, defaultValue?) {\n if (!obj) {\n return defaultValue\n }\n let props, prop\n if (Array.isArray(propsArg)) {\n props = propsArg.slice(0)\n }\n if (typeof propsArg === 'string') {\n props = propsArg.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof propsArg === 'symbol') {\n props = [propsArg]\n }\n if (!Array.isArray(props)) {\n throw new Error('props arg must be an array, a string or a symbol')\n }\n while (props.length) {\n prop = props.shift()\n if (!obj) {\n return defaultValue\n }\n obj = obj[prop]\n if (obj === undefined) {\n return defaultValue\n }\n }\n return obj\n}\n\nexport function safeSet (obj, props, value) {\n if (typeof props === 'string') {\n props = props.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof props === 'symbol') {\n props = [props]\n }\n const lastProp = props.pop()\n if (!lastProp) {\n return false\n }\n let thisProp\n while ((thisProp = props.shift())) {\n if (typeof obj[thisProp] === 'undefined') {\n obj[thisProp] = {}\n }\n\n // 直接按路径修改 this.state 可能会导致 nextProps 也被修改\n // 因此按路径寻找时,每一层都复制一遍\n if (Array.isArray(obj[thisProp])) {\n obj[thisProp] = [...obj[thisProp]]\n } else if (typeof obj[thisProp] === 'object') {\n obj[thisProp] = { ...obj[thisProp] }\n }\n\n obj = obj[thisProp]\n if (!obj || typeof obj !== 'object') {\n return false\n }\n }\n obj[lastProp] = value\n return true\n}\n\nexport function report (msg) {\n console.warn('[Taro Convert Warning] ' + msg)\n}\n\nexport const unsupport = new Map([\n ['onError', '不支持 App 的 onError 生命周期方法。'],\n ['onPageNotFound', '不支持 App 的 onPageNotFound 生命周期方法。'],\n ['onUnhandledRejection', '不支持 App 的 onUnhandledRejection 生命周期方法。'],\n ['onThemeChange', '不支持 App 的 onThemeChange 生命周期方法。'],\n ['moved', '不支持自定义组件的 moved 生命周期。'],\n ['externalClasses', '不支持自定义组件的 externalClasses 功能。'],\n ['relations', '不支持自定义组件的 relations 功能。'],\n ['options', '不支持自定义组件的 options 功能。'],\n ['definitionFilter', '不支持自定义组件的 definitionFilter 功能。'],\n ['selectComponent', 'selectComponent 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectAllComponents', 'selectAllComponents 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectOwnerComponent', 'selectOwnerComponent 方法产生不到目标效果,请使用 React 语法重构。'],\n ['groupSetData', 'groupSetData 方法产生不到目标效果,请使用 React 语法重构。']\n])\n\nexport function flattenBehaviors (behavior, behaviorMap: Map<string, any[]>) {\n if (typeof behavior === 'string') {\n return report(`不支持使用内置 Behavior: [${behavior}]`)\n }\n const subBehaviors = behavior.behaviors\n if (subBehaviors?.length) {\n subBehaviors.forEach(subBehavior => flattenBehaviors(subBehavior, behaviorMap))\n }\n\n Object.keys(behavior).forEach(key => {\n // 不支持的属性\n if (unsupport.has(key)) {\n const advise = unsupport.get(key)\n return report(advise)\n }\n\n if (behaviorMap.has(key)) {\n const list = behaviorMap.get(key)!\n const value = behavior[key]\n list.push(value)\n }\n })\n}\n","/*eslint-disable*/\nconst ARRAYTYPE = '[object Array]'\nconst OBJECTTYPE = '[object Object]'\nconst FUNCTIONTYPE = '[object Function]'\n\nexport function diff (current, pre) {\n const result = {}\n syncKeys(current, pre)\n _diff(current, pre, '', result)\n return result\n}\n\nfunction syncKeys (current, pre) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n // if(Object.keys(current).length >= Object.keys(pre).length){\n for (let key in pre) {\n const currentValue = current[key]\n if (currentValue === undefined) {\n current[key] = null\n } else {\n syncKeys(currentValue, pre[key])\n }\n }\n // }\n } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n if (current.length >= pre.length) {\n pre.forEach((item, index) => {\n syncKeys(current[index], item)\n })\n }\n }\n}\n\nfunction _diff (current, pre, path, result) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE) {\n if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n setResult(result, path, current)\n } else {\n for (let key in current) {\n const currentValue = current[key]\n const preValue = pre[key]\n const currentType = type(currentValue)\n const preType = type(preValue)\n if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n if (currentValue != pre[key]) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n }\n } else if (currentType == ARRAYTYPE) {\n if (preType != ARRAYTYPE) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n if (currentValue.length < preValue.length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n currentValue.forEach((item, index) => {\n _diff(item, preValue[index], (path == '' ? '' : path + '.') + key + '[' + index + ']', result)\n })\n }\n }\n } else if (currentType == OBJECTTYPE) {\n if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n for (let subKey in currentValue) {\n _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + '.') + key + '.' + subKey, result)\n }\n }\n }\n }\n }\n } else if (rootCurrentType == ARRAYTYPE) {\n if (rootPreType != ARRAYTYPE) {\n setResult(result, path, current)\n } else {\n if (current.length < pre.length) {\n setResult(result, path, current)\n } else {\n current.forEach((item, index) => {\n _diff(item, pre[index], path + '[' + index + ']', result)\n })\n }\n }\n } else {\n setResult(result, path, current)\n }\n}\n\nfunction setResult (result, k, v) {\n if (type(v) != FUNCTIONTYPE) {\n result[k] = v\n }\n}\n\nfunction type (obj) {\n return Object.prototype.toString.call(obj)\n}\n","const json = JSON\n\nexport const clone = (obj) => json.parse(stringify(obj))\n\nconst isArray = Array.isArray || function (x) {\n return {}.toString.call(x) === '[object Array]'\n}\n\nconst objectKeys = Object.keys || function (obj) {\n const has = Object.prototype.hasOwnProperty || function () { return true }\n const keys = []\n for (const key in obj) {\n if (has.call(obj, key)) keys.push(key)\n }\n return keys\n}\n\nfunction stringify (obj, opts) {\n if (!opts) opts = {}\n if (typeof opts === 'function') opts = { cmp: opts }\n let space = opts.space || ''\n if (typeof space === 'number') space = Array(space + 1).join(' ')\n const cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false\n const replacer = opts.replacer || function (key, value) { return value }\n\n const cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n const aobj = { key: a, value: node[a] }\n const bobj = { key: b, value: node[b] }\n return f(aobj, bobj)\n }\n }\n })(opts.cmp)\n\n const seen = []\n return (function stringify (parent, key, node, level) {\n const indent = space ? ('\\n' + new Array(level + 1).join(space)) : ''\n const colonSeparator = space ? ': ' : ':'\n\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON()\n }\n\n node = replacer.call(parent, key, node)\n\n if (node === undefined) {\n return\n }\n if (typeof node !== 'object' || node === null) {\n return json.stringify(node)\n }\n if (isArray(node)) {\n const out = []\n for (let i = 0; i < node.length; i++) {\n const item = stringify(node, i, node[i], level + 1) || json.stringify(null)\n out.push(indent + space + item)\n }\n return '[' + out.join(',') + indent + ']'\n } else {\n if (seen.indexOf(node) !== -1) {\n if (cycles) return json.stringify('__cycle__')\n throw new TypeError('Converting circular structure to JSON')\n } else seen.push(node)\n\n const keys = objectKeys(node).sort(cmp && cmp(node))\n const out = []\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n const value = stringify(node, key, node[key], level + 1)\n\n if (!value) continue\n\n const keyValue = json.stringify(key) +\n colonSeparator +\n value\n\n out.push(indent + space + keyValue)\n }\n seen.splice(seen.indexOf(node), 1)\n return '{' + out.join(',') + indent + '}'\n }\n })({ '': obj }, '', obj, 0)\n}\n","import { ComponentLifecycle, eventCenter, nextTick } from '@tarojs/taro'\nimport { getCurrentInstance } from '@tarojs/runtime'\nimport { lifecycles, lifecycleMap, TaroLifeCycles, uniquePageLifecycle, appOptions } from './lifecycle'\nimport { bind, isEqual, safeGet, safeSet, report, unsupport, flattenBehaviors } from './utils'\nimport { diff } from './diff'\nimport { clone } from './clone'\n\ntype Observer = (newProps, oldProps, changePath: string) => void\ntype Func = (...args: any[]) => void\n\ninterface ObserverProperties {\n name: string,\n observer: string | Observer\n}\n\ninterface ComponentClass<P = Record<string, any>, S = Record<string, any>> extends ComponentLifecycle<P, S> {\n new (props: P)\n externalClasses: Record<string, unknown>\n defaultProps?: Partial<P>\n _observeProps?: ObserverProperties[]\n observers?: Record<string, Func>\n}\n\ninterface WxOptions {\n methods?: {\n [key: string]: Func;\n }\n properties?: Record<string, Record<string, unknown> | Func>\n props?: Record<string, unknown>\n data?: Record<string, unknown>,\n observers?: Record<string, Func>\n lifetimes?: Record<string, Func>\n behaviors?: any[]\n}\n\nfunction defineGetter (component, key: string, getter: string) {\n Object.defineProperty(component, key, {\n enumerable: true,\n configurable: true,\n get: () => {\n if (getter === 'props') {\n return component.props\n }\n return {\n ...component.state,\n ...component.props\n }\n }\n })\n}\n\nfunction isFunction (o): o is Func {\n return typeof o === 'function'\n}\n\nexport default function withWeapp (weappConf: WxOptions, isApp = false) {\n if (typeof weappConf === 'object' && Object.keys(weappConf).length === 0) {\n report('withWeapp 请传入“App/页面/组件“的配置对象。如果原生写法使用了基类,请将基类组合后的配置对象传入,详情请参考文档。')\n }\n return (ConnectComponent: ComponentClass<any, any>) => {\n const behaviorMap = new Map<string, any[]>([\n ['properties', []],\n ['data', []],\n ['methods', []],\n ['created', []],\n ['attached', []],\n ['ready', []],\n ['detached', []]\n ])\n const behaviorProperties = {}\n if (weappConf.behaviors?.length) {\n const { behaviors } = weappConf\n behaviors.forEach(behavior => flattenBehaviors(behavior, behaviorMap))\n\n const propertiesList = behaviorMap.get('properties')!\n if (propertiesList.length) {\n propertiesList.forEach(property => {\n Object.assign(behaviorProperties, property)\n })\n Object.keys(behaviorProperties).forEach(propName => {\n const propValue = behaviorProperties[propName]\n if (!weappConf.properties) {\n weappConf.properties = {}\n }\n if (!weappConf.properties.hasOwnProperty(propName)) {\n if (propValue && typeof propValue === 'object' && propValue.value) {\n propValue.value = clone(propValue.value)\n }\n weappConf.properties[propName] = propValue\n }\n })\n }\n }\n\n class BaseComponent<P = Record<string, any>, S = Record<string, any>> extends ConnectComponent {\n private _observeProps: ObserverProperties[] = []\n\n // mixins 可以多次调用生命周期\n private willMounts: Func[] = []\n\n private didMounts: Func[] = []\n\n private didHides: Func[] = []\n\n private didShows: Func[] = []\n\n private willUnmounts: Func[] = []\n\n private eventDistoryList: Func[] = []\n\n private current: any = getCurrentInstance()\n\n public observers?: Record<string, Func>\n\n public taroGlobalData: Record<any, any> = Object.create(null)\n\n public data: any\n\n constructor (props) {\n super(props)\n this.state = this.state || {}\n this.init(weappConf)\n defineGetter(this, 'data', 'state')\n defineGetter(this, 'properties', 'props')\n }\n\n private initProps (props: any) {\n for (const propKey in props) {\n if (props.hasOwnProperty(propKey)) {\n const propValue = props[propKey]\n // propValue 可能是 null, 构造函数, 对象\n if (propValue && !isFunction(propValue)) {\n if (propValue.observer) {\n this._observeProps.push({\n name: propKey,\n observer: propValue.observer\n })\n }\n }\n }\n }\n }\n\n private init (options: WxOptions) {\n // 处理 Behaviors\n if (options.behaviors?.length) {\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'created':\n case 'attached':\n case 'detached':\n case 'ready':\n list.forEach(fn => this.initLifeCycles(key, fn))\n break\n }\n }\n }\n\n for (const confKey in options) {\n // 不支持的属性\n if (unsupport.has(confKey)) {\n const advise = unsupport.get(confKey)\n report(advise)\n }\n\n const confValue = options[confKey]\n\n switch (confKey) {\n case 'behaviors':\n break\n case 'data': {\n if (isApp) {\n this[confKey] = confValue\n if (!appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n } else {\n this.state = {\n ...confValue,\n ...this.state\n }\n }\n break\n }\n case 'properties':\n this.initProps(Object.assign(behaviorProperties, confValue))\n break\n case 'methods':\n for (const key in confValue) {\n const method = confValue[key]\n this[key] = bind(method, this)\n }\n break\n case 'lifetimes':\n for (const key in confValue) {\n this.initLifeCycles(key, confValue[key])\n }\n break\n case 'pageLifetimes':\n for (const key in confValue) {\n const cb = confValue[key]\n switch (key) {\n case 'show': {\n this.initLifeCycleListener('show', cb)\n break\n }\n case 'hide': {\n this.initLifeCycleListener('hide', cb)\n break\n }\n case 'resize': {\n report('不支持组件所在页面的生命周期 pageLifetimes.resize。')\n break\n }\n }\n }\n break\n default:\n if (lifecycles.has(confKey)) {\n // 优先使用 lifetimes 中定义的生命周期\n if (options.lifetimes?.[confKey]) {\n break\n }\n\n const lifecycle = options[confKey]\n this.initLifeCycles(confKey, lifecycle)\n } else if (isFunction(confValue)) {\n this[confKey] = bind(confValue, this)\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n\n // 原生页面和 Taro 页面中共计只能定义一次的生命周期\n if (uniquePageLifecycle.includes(confKey) && ConnectComponent.prototype[confKey]) {\n report(`生命周期 ${confKey} 已在原生部分进行定义,React 部分的定义将不会被执行。`)\n }\n } else {\n this[confKey] = confValue\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n }\n\n break\n }\n }\n\n // 处理 Behaviors\n if (options.behaviors?.length) {\n const behaviorData = {}\n const methods = {}\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'data':\n [...list, this.state].forEach((dataObject, index) => {\n Object.keys(dataObject).forEach(dataKey => {\n const value = dataObject[dataKey]\n const preValue = behaviorData[dataKey]\n const valueType = typeof value\n const preValueType = typeof preValue\n if (valueType === 'object') {\n if (!value) {\n behaviorData[dataKey] = value\n } else if (preValueType !== 'object' || !preValueType || Array.isArray(value)) {\n behaviorData[dataKey] = index === list.length ? value : clone(value)\n } else {\n const newVal = Object.assign({}, preValue, value)\n behaviorData[dataKey] = index === list.length ? newVal : clone(newVal)\n }\n } else {\n behaviorData[dataKey] = value\n }\n })\n })\n this.state = behaviorData\n break\n case 'methods':\n list.forEach(methodsObject => {\n Object.assign(methods, methodsObject)\n })\n Object.keys(methods).forEach(methodName => {\n if (!this[methodName]) {\n const method = methods[methodName]\n this[methodName] = bind(method, this)\n }\n })\n break\n default:\n break\n }\n }\n }\n }\n\n private initLifeCycles (lifecycleName: string, lifecycle: (...args: any[]) => any) {\n // 不支持的生命周期\n if (unsupport.has(lifecycleName)) {\n const advise = unsupport.get(lifecycleName)\n return report(advise)\n }\n\n if (lifecycleName === 'ready') {\n // 如果组件是延时渲染的,页面 onReady 的事件已经 emit 了,因此使用 componentDidMount + nextTick 模拟\n if (this.current.page.onReady.called) {\n this.didMounts.push(function (...args: unknown[]) {\n nextTick(() => {\n if (isFunction(lifecycle)) {\n lifecycle.apply(this, args)\n }\n })\n })\n } else {\n this.initLifeCycleListener('ready', lifecycle)\n }\n } else {\n for (const lifecycleKey in lifecycleMap) {\n const cycleNames = lifecycleMap[lifecycleKey]\n if (cycleNames.indexOf(lifecycleName) !== -1) {\n switch (lifecycleKey) {\n case TaroLifeCycles.DidHide:\n this.didHides.push(lifecycle)\n break\n case TaroLifeCycles.DidMount:\n this.didMounts.push(lifecycle)\n break\n case TaroLifeCycles.DidShow:\n this.didShows.push(lifecycle)\n break\n case TaroLifeCycles.WillMount:\n this.willMounts.push(lifecycle)\n break\n case TaroLifeCycles.WillUnmount:\n this.willUnmounts.push(lifecycle)\n break\n default:\n break\n }\n }\n }\n }\n\n // mixins 不会覆盖已经设置的生命周期,加入到 this 是为了形如 this.created() 的调用\n if (!isFunction(this[lifecycleName])) {\n this[lifecycleName] = lifecycle\n }\n }\n\n private safeExecute = (func?: Func, ...args: unknown[]) => {\n if (isFunction(func)) func.apply(this, args)\n }\n\n private initLifeCycleListener (name: string, cb: (...args: any[]) => void) {\n // 组件的 ready、show、hide 需要利用页面事件触发\n const { router } = this.current\n const lifecycleName = `on${name[0].toUpperCase()}${name.slice(1)}`\n cb = cb.bind(this)\n router?.[lifecycleName] && eventCenter.on(router[lifecycleName], cb)\n // unMount 时需要取消事件监听\n this.eventDistoryList.push(() => eventCenter.off(router[lifecycleName], cb))\n }\n\n private executeLifeCycles (funcs: Func[], ...args: unknown[]) {\n for (let i = 0; i < funcs.length; i++) {\n const func = funcs[i]\n this.safeExecute(func, ...args)\n }\n }\n\n private triggerPropertiesObservers (prevProps, nextProps) {\n this._observeProps.forEach(({ name: key, observer }) => {\n const prop = prevProps?.[key]\n const nextProp = nextProps[key]\n // 小程序是深比较不同之后才 trigger observer\n if (!isEqual(prop, nextProp)) {\n if (typeof observer === 'string') {\n const ob = this[observer]\n if (isFunction(ob)) {\n ob.call(this, nextProp, prop, key)\n }\n } else if (isFunction(observer)) {\n observer.call(this, nextProp, prop, key)\n }\n }\n })\n }\n\n private triggerObservers (current, prev) {\n const observers = this.observers\n if (observers == null) {\n return\n }\n\n if (Object.keys(observers).length === 0) {\n return\n }\n\n const result = diff(current, prev)\n const resultKeys = Object.keys(result)\n if (resultKeys.length === 0) {\n return\n }\n\n for (const observerKey in observers) {\n if (/\\*\\*/.test(observerKey)) {\n report('数据监听器 observers 不支持使用通配符 **。')\n continue\n }\n\n const keys = observerKey.split(',').map(k => k.trim())\n let isModified = false\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n for (let j = 0; j < resultKeys.length; j++) {\n const resultKey = resultKeys[j]\n if (\n resultKey.startsWith(key) ||\n (key.startsWith(resultKey) && key.endsWith(']'))\n ) {\n isModified = true\n }\n }\n }\n if (isModified) {\n observers[observerKey].apply(this, keys.map(key => safeGet(current, key)))\n }\n }\n }\n\n private defineProperty (target, key, data) {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: true,\n set (value) {\n data[key] = value\n },\n get () {\n return data[key]\n }\n })\n }\n\n public privateStopNoop (...args) {\n let e\n let fn\n if (args.length === 2) {\n fn = args[0]\n e = args[1]\n } else if (args.length === 1) {\n e = args[0]\n }\n if (e.type === 'touchmove') {\n report('catchtouchmove 转换后只能停止回调函数的冒泡,不能阻止滚动穿透。如要阻止滚动穿透,可以手动给编译后的 View 组件加上 catchMove 属性')\n }\n e.stopPropagation()\n isFunction(fn) && fn(e)\n }\n\n // ================ React 生命周期 ================\n\n public componentWillMount () {\n this.safeExecute(super.componentWillMount)\n this.executeLifeCycles(this.willMounts, this.current.router || {})\n this.triggerObservers(this.data, BaseComponent.defaultProps)\n this.triggerPropertiesObservers(BaseComponent.defaultProps, this.props)\n }\n\n public componentDidMount () {\n this.safeExecute(super.componentDidMount)\n this.executeLifeCycles(this.didMounts)\n }\n\n public componentWillUnmount () {\n this.eventDistoryList.forEach(fn => fn())\n this.safeExecute(super.componentWillUnmount)\n this.executeLifeCycles(this.willUnmounts)\n }\n\n public componentDidHide () {\n this.safeExecute(super.componentDidHide)\n this.executeLifeCycles(this.didHides)\n }\n\n public componentDidShow () {\n this.safeExecute(super.componentDidShow, this.current.router || {})\n this.executeLifeCycles(this.didShows, this.current.router || {})\n }\n\n public componentWillReceiveProps (nextProps: P) {\n this.triggerObservers(nextProps, this.props)\n this.triggerPropertiesObservers(this.props, nextProps)\n this.safeExecute(super.componentWillReceiveProps)\n }\n\n // ================ 小程序 App, Page, Component 实例属性与方法 ================\n\n get is () {\n return this.current.page.is\n }\n\n get id () {\n return this.current.page.id\n }\n\n get dataset () {\n return this.current.page.dataset\n }\n\n public setData = (obj: S, callback?: () => void) => {\n let oldState\n if (this.observers && Object.keys(Object.keys(this.observers))) {\n oldState = clone(this.state)\n }\n Object.keys(obj).forEach(key => {\n safeSet(this.state, key, obj[key])\n })\n this.setState(this.state, () => {\n this.triggerObservers(this.state, oldState)\n if (callback) {\n callback.call(this)\n }\n })\n }\n\n public triggerEvent = (eventName: string, detail, options) => {\n if (options) {\n report('triggerEvent 不支持事件选项。')\n }\n\n const props = this.props\n const dataset = {}\n for (const key in props) {\n if (!key.startsWith('data-')) continue\n dataset[key.replace(/^data-/, '')] = props[key]\n }\n\n const func = props[`on${eventName[0].toUpperCase()}${eventName.slice(1)}`]\n if (isFunction(func)) {\n func.call(this, {\n type: eventName,\n detail,\n target: {\n id: props.id || '',\n dataset\n },\n currentTarget: {\n id: props.id || '',\n dataset\n }\n })\n }\n }\n\n private componentMethodsProxy (method: string) {\n return (...args: any[]) => {\n const page = this.current.page\n if (page?.[method]) {\n return page[method](...args)\n } else {\n console.error(`page 下没有 ${method} 方法`)\n }\n }\n }\n\n public hasBehavior = this.componentMethodsProxy('hasBehavior')\n public createSelectorQuery = this.componentMethodsProxy('createSelectorQuery')\n public createIntersectionObserver = this.componentMethodsProxy('createIntersectionObserver')\n public createMediaQueryObserver = this.componentMethodsProxy('createMediaQueryObserver')\n public getRelationNodes = this.componentMethodsProxy('getRelationNodes')\n public getTabBar = this.componentMethodsProxy('getTabBar')\n public getPageId = this.componentMethodsProxy('getPageId')\n public animate = this.componentMethodsProxy('animate')\n public clearAnimation = this.componentMethodsProxy('clearAnimation')\n public setUpdatePerformanceListener = this.componentMethodsProxy('setUpdatePerformanceListener')\n\n public selectComponent () {\n report(unsupport.get('selectComponent'))\n }\n\n public selectAllComponents () {\n report(unsupport.get('selectAllComponents'))\n }\n\n public selectOwnerComponent () {\n report(unsupport.get('selectOwnerComponent'))\n }\n\n public groupSetData () {\n report(unsupport.get('groupSetData'))\n }\n }\n\n const props = weappConf.properties\n\n if (props) {\n for (const propKey in props) {\n const propValue = props[propKey]\n if (propValue != null && !isFunction(propValue)) {\n if (propValue.value !== undefined) { // 如果是 null 也赋值到 defaultProps\n BaseComponent.defaultProps = {\n [propKey]: propValue.value,\n ...BaseComponent.defaultProps\n }\n }\n }\n }\n }\n\n const staticOptions = ['externalClasses', 'relations', 'options']\n\n staticOptions.forEach(option => {\n const value = weappConf[option]\n if (value != null) {\n BaseComponent[option] = value\n }\n })\n\n return BaseComponent\n }\n}\n"],"names":["TaroLifeCycles","lifecycleMap","WillMount","DidMount","_defineProperty","DidShow","DidHide","WillUnmount","lifecycles","Set","key","lifecycle","forEach","l","add","uniquePageLifecycle","appOptions","bind","fn","ctx","boundFn","a","arguments","length","apply","call","_length","isEqual","obj1","obj2","JSON","stringify","safeGet","obj","propsArg","defaultValue","props","prop","Array","isArray","slice","replace","split","_typeof","Error","shift","undefined","safeSet","value","lastProp","pop","thisProp","Object","assign","report","msg","console","warn","unsupport","Map","flattenBehaviors","behavior","behaviorMap","subBehaviors","behaviors","subBehavior","keys","has","advise","get","list","push","ARRAYTYPE","OBJECTTYPE","FUNCTIONTYPE","diff","current","pre","result","syncKeys","_diff","rootCurrentType","type","rootPreType","currentValue","item","index","path","setResult","preValue","currentType","preType","subKey","k","v","prototype","toString","json","clone","parse","x","objectKeys","hasOwnProperty","opts","cmp","space","join","cycles","replacer","f","node","b","aobj","bobj","seen","parent","level","indent","colonSeparator","toJSON","out","i","indexOf","TypeError","sort","keyValue","splice","defineGetter","component","getter","defineProperty","enumerable","configurable","state","isFunction","o","withWeapp","weappConf","isApp","ConnectComponent","behaviorProperties","_a","propertiesList","property","propName","propValue","properties","BaseComponent","_inherits","_classCallCheck","_observeProps","willMounts","didMounts","didHides","didShows","willUnmounts","eventDistoryList","getCurrentInstance","taroGlobalData","create","safeExecute","func","args","_assertThisInitialized","setData","callback","oldState","observers","setState","triggerObservers","triggerEvent","eventName","detail","options","dataset","startsWith","toUpperCase","target","id","currentTarget","hasBehavior","componentMethodsProxy","createSelectorQuery","createIntersectionObserver","createMediaQueryObserver","getRelationNodes","getTabBar","getPageId","animate","clearAnimation","setUpdatePerformanceListener","init","_createClass","propKey","observer","name","entries","_slicedToArray","initLifeCycles","confKey","confValue","includes","initProps","method","cb","initLifeCycleListener","lifetimes","_b","_c","behaviorData","methods","_toConsumableArray","dataObject","dataKey","valueType","preValueType","newVal","methodsObject","methodName","lifecycleName","page","onReady","called","nextTick","lifecycleKey","cycleNames","router","eventCenter","on","off","funcs","prevProps","nextProps","nextProp","ob","prev","resultKeys","observerKey","test","map","trim","isModified","j","resultKey","endsWith","data","set","e","stopPropagation","_get","_getPrototypeOf","executeLifeCycles","defaultProps","triggerPropertiesObservers","is","error","staticOptions","option"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/clone.js","../src/diff.js","../src/lifecycle.ts","../src/utils.ts","../src/index.ts"],"sourcesContent":["const json = JSON\n\nexport const clone = (obj) => json.parse(stringify(obj))\n\nconst isArray = Array.isArray || function (x) {\n return {}.toString.call(x) === '[object Array]'\n}\n\nconst objectKeys = Object.keys || function (obj) {\n const has = Object.prototype.hasOwnProperty || function () { return true }\n const keys = []\n for (const key in obj) {\n if (has.call(obj, key)) keys.push(key)\n }\n return keys\n}\n\nfunction stringify (obj, opts) {\n if (!opts) opts = {}\n if (typeof opts === 'function') opts = { cmp: opts }\n let space = opts.space || ''\n if (typeof space === 'number') space = Array(space + 1).join(' ')\n const cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false\n const replacer = opts.replacer || function (key, value) { return value }\n\n const cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n const aobj = { key: a, value: node[a] }\n const bobj = { key: b, value: node[b] }\n return f(aobj, bobj)\n }\n }\n })(opts.cmp)\n\n const seen = []\n return (function stringify (parent, key, node, level) {\n const indent = space ? ('\\n' + new Array(level + 1).join(space)) : ''\n const colonSeparator = space ? ': ' : ':'\n\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON()\n }\n\n node = replacer.call(parent, key, node)\n\n if (node === undefined) {\n return\n }\n if (typeof node !== 'object' || node === null) {\n return json.stringify(node)\n }\n if (isArray(node)) {\n const out = []\n for (let i = 0; i < node.length; i++) {\n const item = stringify(node, i, node[i], level + 1) || json.stringify(null)\n out.push(indent + space + item)\n }\n return '[' + out.join(',') + indent + ']'\n } else {\n if (seen.indexOf(node) !== -1) {\n if (cycles) return json.stringify('__cycle__')\n throw new TypeError('Converting circular structure to JSON')\n } else seen.push(node)\n\n const keys = objectKeys(node).sort(cmp && cmp(node))\n const out = []\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n const value = stringify(node, key, node[key], level + 1)\n\n if (!value) continue\n\n const keyValue = json.stringify(key) +\n colonSeparator +\n value\n\n out.push(indent + space + keyValue)\n }\n seen.splice(seen.indexOf(node), 1)\n return '{' + out.join(',') + indent + '}'\n }\n })({ '': obj }, '', obj, 0)\n}\n","/*eslint-disable*/\nconst ARRAYTYPE = '[object Array]'\nconst OBJECTTYPE = '[object Object]'\nconst FUNCTIONTYPE = '[object Function]'\n\nexport function diff (current, pre) {\n const result = {}\n syncKeys(current, pre)\n _diff(current, pre, '', result)\n return result\n}\n\nfunction syncKeys (current, pre) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n // if(Object.keys(current).length >= Object.keys(pre).length){\n for (let key in pre) {\n const currentValue = current[key]\n if (currentValue === undefined) {\n current[key] = null\n } else {\n syncKeys(currentValue, pre[key])\n }\n }\n // }\n } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n if (current.length >= pre.length) {\n pre.forEach((item, index) => {\n syncKeys(current[index], item)\n })\n }\n }\n}\n\nfunction _diff (current, pre, path, result) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE) {\n if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n setResult(result, path, current)\n } else {\n for (let key in current) {\n const currentValue = current[key]\n const preValue = pre[key]\n const currentType = type(currentValue)\n const preType = type(preValue)\n if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n if (currentValue != pre[key]) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n }\n } else if (currentType == ARRAYTYPE) {\n if (preType != ARRAYTYPE) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n if (currentValue.length < preValue.length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n currentValue.forEach((item, index) => {\n _diff(item, preValue[index], (path == '' ? '' : path + '.') + key + '[' + index + ']', result)\n })\n }\n }\n } else if (currentType == OBJECTTYPE) {\n if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n for (let subKey in currentValue) {\n _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + '.') + key + '.' + subKey, result)\n }\n }\n }\n }\n }\n } else if (rootCurrentType == ARRAYTYPE) {\n if (rootPreType != ARRAYTYPE) {\n setResult(result, path, current)\n } else {\n if (current.length < pre.length) {\n setResult(result, path, current)\n } else {\n current.forEach((item, index) => {\n _diff(item, pre[index], path + '[' + index + ']', result)\n })\n }\n }\n } else {\n setResult(result, path, current)\n }\n}\n\nfunction setResult (result, k, v) {\n if (type(v) != FUNCTIONTYPE) {\n result[k] = v\n }\n}\n\nfunction type (obj) {\n return Object.prototype.toString.call(obj)\n}\n","interface LifecycleMap {\n [key: string]: string[]\n}\n\nexport enum TaroLifeCycles {\n WillMount = 'componentWillMount',\n DidMount = 'componentDidMount',\n DidShow = 'componentDidShow',\n DidHide = 'componentDidHide',\n WillUnmount = 'componentWillUnmount'\n}\n\nexport const lifecycleMap: LifecycleMap = {\n [TaroLifeCycles.WillMount]: ['created'],\n [TaroLifeCycles.DidMount]: ['attached'],\n [TaroLifeCycles.DidShow]: ['onShow'],\n [TaroLifeCycles.DidHide]: ['onHide'],\n [TaroLifeCycles.WillUnmount]: ['detached', 'onUnload']\n}\n\nexport const lifecycles = new Set<string>(['ready'])\n\nfor (const key in lifecycleMap) {\n const lifecycle = lifecycleMap[key]\n lifecycle.forEach(l => lifecycles.add(l))\n}\n\nexport const uniquePageLifecycle = [\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onShareAppMessage',\n 'onShareTimeline',\n 'onAddToFavorites',\n 'onPageScroll',\n 'onResize',\n 'onTabItemTap'\n]\n\nexport const appOptions = [\n 'onLaunch',\n 'onShow',\n 'onHide',\n 'onError',\n 'onPageNotFound',\n 'onUnhandledRejection',\n 'onThemeChange'\n]\n","/**\n * Simple bind, faster than native\n */\nexport function bind (fn /*: Function */, ctx /*: Object */) /*: Function */ {\n if (!fn) return false\n\n function boundFn (a) {\n const l /*: number */ = arguments.length\n return l ? (l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a)) : fn.call(ctx)\n }\n\n // record original fn length\n boundFn._length = fn.length\n return boundFn\n}\n\nexport function isEqual (obj1, obj2) {\n return JSON.stringify(obj1) === JSON.stringify(obj2)\n}\n\nexport function noop (..._: unknown[]) {\n //\n}\n\nconst sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n}\n\nexport function proxy (target, sourceKey: string, key: string) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n }\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val\n }\n Object.defineProperty(target, key, sharedPropertyDefinition)\n}\n\nexport function safeGet (obj, propsArg, defaultValue?) {\n if (!obj) {\n return defaultValue\n }\n let props, prop\n if (Array.isArray(propsArg)) {\n props = propsArg.slice(0)\n }\n if (typeof propsArg === 'string') {\n props = propsArg.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof propsArg === 'symbol') {\n props = [propsArg]\n }\n if (!Array.isArray(props)) {\n throw new Error('props arg must be an array, a string or a symbol')\n }\n while (props.length) {\n prop = props.shift()\n if (!obj) {\n return defaultValue\n }\n obj = obj[prop]\n if (obj === undefined) {\n return defaultValue\n }\n }\n return obj\n}\n\nexport function safeSet (obj, props, value) {\n if (typeof props === 'string') {\n props = props.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof props === 'symbol') {\n props = [props]\n }\n const lastProp = props.pop()\n if (!lastProp) {\n return false\n }\n let thisProp\n while ((thisProp = props.shift())) {\n if (typeof obj[thisProp] === 'undefined') {\n obj[thisProp] = {}\n }\n\n // 直接按路径修改 this.state 可能会导致 nextProps 也被修改\n // 因此按路径寻找时,每一层都复制一遍\n if (Array.isArray(obj[thisProp])) {\n obj[thisProp] = [...obj[thisProp]]\n } else if (typeof obj[thisProp] === 'object') {\n obj[thisProp] = { ...obj[thisProp] }\n }\n\n obj = obj[thisProp]\n if (!obj || typeof obj !== 'object') {\n return false\n }\n }\n obj[lastProp] = value\n return true\n}\n\nexport function report (msg) {\n console.warn('[Taro Convert Warning] ' + msg)\n}\n\nexport const nonsupport = new Map([\n ['onError', '不支持 App 的 onError 生命周期方法。'],\n ['onPageNotFound', '不支持 App 的 onPageNotFound 生命周期方法。'],\n ['onUnhandledRejection', '不支持 App 的 onUnhandledRejection 生命周期方法。'],\n ['onThemeChange', '不支持 App 的 onThemeChange 生命周期方法。'],\n ['moved', '不支持自定义组件的 moved 生命周期。'],\n ['externalClasses', '不支持自定义组件的 externalClasses 功能。'],\n ['relations', '不支持自定义组件的 relations 功能。'],\n ['options', '不支持自定义组件的 options 功能。'],\n ['definitionFilter', '不支持自定义组件的 definitionFilter 功能。'],\n ['selectComponent', 'selectComponent 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectAllComponents', 'selectAllComponents 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectOwnerComponent', 'selectOwnerComponent 方法产生不到目标效果,请使用 React 语法重构。'],\n ['groupSetData', 'groupSetData 方法产生不到目标效果,请使用 React 语法重构。']\n])\n\nexport function flattenBehaviors (behavior, behaviorMap: Map<string, any[]>) {\n if (typeof behavior === 'string') {\n return report(`不支持使用内置 Behavior: [${behavior}]`)\n }\n const subBehaviors = behavior.behaviors\n if (subBehaviors?.length) {\n subBehaviors.forEach(subBehavior => flattenBehaviors(subBehavior, behaviorMap))\n }\n\n Object.keys(behavior).forEach(key => {\n // 不支持的属性\n if (nonsupport.has(key)) {\n const advise = nonsupport.get(key)\n return report(advise)\n }\n\n if (behaviorMap.has(key)) {\n const list = behaviorMap.get(key)!\n const value = behavior[key]\n list.push(value)\n }\n })\n}\n","import { Func, getCurrentInstance } from '@tarojs/runtime'\nimport { ComponentLifecycle, eventCenter, nextTick } from '@tarojs/taro'\n\nimport { clone } from './clone'\nimport { diff } from './diff'\nimport { appOptions, lifecycleMap, lifecycles, TaroLifeCycles, uniquePageLifecycle } from './lifecycle'\nimport { bind, flattenBehaviors, isEqual, nonsupport, report, safeGet, safeSet } from './utils'\n\ntype Observer = (newProps, oldProps, changePath: string) => void\n\ninterface ObserverProperties {\n name: string\n observer: string | Observer\n}\n\ninterface ComponentClass<P = Record<string, any>, S = Record<string, any>> extends ComponentLifecycle<P, S> {\n new (props: P)\n externalClasses: Record<string, unknown>\n defaultProps?: Partial<P>\n _observeProps?: ObserverProperties[]\n observers?: Record<string, Func>\n}\n\ninterface WxOptions {\n methods?: Record<string, Func>\n properties?: Record<string, Record<string, unknown> | Func>\n props?: Record<string, unknown>\n data?: Record<string, unknown>\n observers?: Record<string, Func>\n lifetimes?: Record<string, Func>\n behaviors?: any[]\n}\n\nfunction defineGetter (component, key: string, getter: string) {\n Object.defineProperty(component, key, {\n enumerable: true,\n configurable: true,\n get: () => {\n if (getter === 'props') {\n return component.props\n }\n return {\n ...component.state,\n ...component.props\n }\n }\n })\n}\n\nfunction isFunction (o): o is Func {\n return typeof o === 'function'\n}\n\nexport default function withWeapp (weappConf: WxOptions, isApp = false) {\n if (typeof weappConf === 'object' && Object.keys(weappConf).length === 0) {\n report('withWeapp 请传入“App/页面/组件“的配置对象。如果原生写法使用了基类,请将基类组合后的配置对象传入,详情请参考文档。')\n }\n return (ConnectComponent: ComponentClass<any, any>) => {\n const behaviorMap = new Map<string, any[]>([\n ['properties', []],\n ['data', []],\n ['methods', []],\n ['created', []],\n ['attached', []],\n ['ready', []],\n ['detached', []]\n ])\n const behaviorProperties = {}\n if (weappConf.behaviors?.length) {\n const { behaviors } = weappConf\n behaviors.forEach(behavior => flattenBehaviors(behavior, behaviorMap))\n\n const propertiesList = behaviorMap.get('properties')!\n if (propertiesList.length) {\n propertiesList.forEach(property => {\n Object.assign(behaviorProperties, property)\n })\n Object.keys(behaviorProperties).forEach(propName => {\n const propValue = behaviorProperties[propName]\n if (!weappConf.properties) {\n weappConf.properties = {}\n }\n if (!weappConf.properties.hasOwnProperty(propName)) {\n if (propValue && typeof propValue === 'object' && propValue.value) {\n propValue.value = clone(propValue.value)\n }\n weappConf.properties[propName] = propValue\n }\n })\n }\n }\n\n class BaseComponent<P = Record<string, any>, S = Record<string, any>> extends ConnectComponent {\n private _observeProps: ObserverProperties[] = []\n\n // mixins 可以多次调用生命周期\n private willMounts: Func[] = []\n\n private didMounts: Func[] = []\n\n private didHides: Func[] = []\n\n private didShows: Func[] = []\n\n private willUnmounts: Func[] = []\n\n private eventDestroyList: Func[] = []\n\n private current: any = getCurrentInstance()\n\n public observers?: Record<string, Func>\n\n public taroGlobalData: Record<any, any> = Object.create(null)\n\n public data: any\n\n constructor (props) {\n super(props)\n this.state = this.state || {}\n this.init(weappConf)\n defineGetter(this, 'data', 'state')\n defineGetter(this, 'properties', 'props')\n }\n\n private initProps (props: any) {\n for (const propKey in props) {\n if (props.hasOwnProperty(propKey)) {\n const propValue = props[propKey]\n // propValue 可能是 null, 构造函数, 对象\n if (propValue && !isFunction(propValue)) {\n if (propValue.observer) {\n this._observeProps.push({\n name: propKey,\n observer: propValue.observer\n })\n }\n }\n }\n }\n }\n\n private init (options: WxOptions) {\n // 处理 Behaviors\n if (options.behaviors?.length) {\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'created':\n case 'attached':\n case 'detached':\n case 'ready':\n list.forEach(fn => this.initLifeCycles(key, fn))\n break\n }\n }\n }\n\n for (const confKey in options) {\n // 不支持的属性\n if (nonsupport.has(confKey)) {\n const advise = nonsupport.get(confKey)\n report(advise)\n }\n\n const confValue = options[confKey]\n\n switch (confKey) {\n case 'behaviors':\n break\n case 'data': {\n if (isApp) {\n this[confKey] = confValue\n if (!appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n } else {\n this.state = {\n ...confValue,\n ...this.state\n }\n }\n break\n }\n case 'properties':\n this.initProps(Object.assign(behaviorProperties, confValue))\n break\n case 'methods':\n for (const key in confValue) {\n const method = confValue[key]\n this[key] = bind(method, this)\n }\n break\n case 'lifetimes':\n for (const key in confValue) {\n this.initLifeCycles(key, confValue[key])\n }\n break\n case 'pageLifetimes':\n for (const key in confValue) {\n const cb = confValue[key]\n switch (key) {\n case 'show': {\n this.initLifeCycleListener('show', cb)\n break\n }\n case 'hide': {\n this.initLifeCycleListener('hide', cb)\n break\n }\n case 'resize': {\n report('不支持组件所在页面的生命周期 pageLifetimes.resize。')\n break\n }\n }\n }\n break\n default:\n if (lifecycles.has(confKey)) {\n // 优先使用 lifetimes 中定义的生命周期\n if (options.lifetimes?.[confKey]) {\n break\n }\n\n const lifecycle = options[confKey]\n this.initLifeCycles(confKey, lifecycle)\n } else if (isFunction(confValue)) {\n this[confKey] = bind(confValue, this)\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n\n // 原生页面和 Taro 页面中共计只能定义一次的生命周期\n if (uniquePageLifecycle.includes(confKey) && ConnectComponent.prototype[confKey]) {\n report(`生命周期 ${confKey} 已在原生部分进行定义,React 部分的定义将不会被执行。`)\n }\n } else {\n this[confKey] = confValue\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n }\n\n break\n }\n }\n\n // 处理 Behaviors\n if (options.behaviors?.length) {\n const behaviorData = {}\n const methods = {}\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'data':\n [...list, this.state].forEach((dataObject, index) => {\n Object.keys(dataObject).forEach(dataKey => {\n const value = dataObject[dataKey]\n const preValue = behaviorData[dataKey]\n const valueType = typeof value\n const preValueType = typeof preValue\n if (valueType === 'object') {\n if (!value) {\n behaviorData[dataKey] = value\n } else if (preValueType !== 'object' || !preValueType || Array.isArray(value)) {\n behaviorData[dataKey] = index === list.length ? value : clone(value)\n } else {\n const newVal = Object.assign({}, preValue, value)\n behaviorData[dataKey] = index === list.length ? newVal : clone(newVal)\n }\n } else {\n behaviorData[dataKey] = value\n }\n })\n })\n this.state = behaviorData\n break\n case 'methods':\n list.forEach(methodsObject => {\n Object.assign(methods, methodsObject)\n })\n Object.keys(methods).forEach(methodName => {\n if (!this[methodName]) {\n const method = methods[methodName]\n this[methodName] = bind(method, this)\n }\n })\n break\n default:\n break\n }\n }\n }\n }\n\n private initLifeCycles (lifecycleName: string, lifecycle: Func) {\n // 不支持的生命周期\n if (nonsupport.has(lifecycleName)) {\n const advise = nonsupport.get(lifecycleName)\n return report(advise)\n }\n\n if (lifecycleName === 'ready') {\n // 如果组件是延时渲染的,页面 onReady 的事件已经 emit 了,因此使用 componentDidMount + nextTick 模拟\n if (this.current.page.onReady.called) {\n this.didMounts.push(function (...args: unknown[]) {\n nextTick(() => {\n if (isFunction(lifecycle)) {\n lifecycle.apply(this, args)\n }\n })\n })\n } else {\n this.initLifeCycleListener('ready', lifecycle)\n }\n } else {\n for (const lifecycleKey in lifecycleMap) {\n const cycleNames = lifecycleMap[lifecycleKey]\n if (cycleNames.indexOf(lifecycleName) !== -1) {\n switch (lifecycleKey) {\n case TaroLifeCycles.DidHide:\n this.didHides.push(lifecycle)\n break\n case TaroLifeCycles.DidMount:\n this.didMounts.push(lifecycle)\n break\n case TaroLifeCycles.DidShow:\n this.didShows.push(lifecycle)\n break\n case TaroLifeCycles.WillMount:\n this.willMounts.push(lifecycle)\n break\n case TaroLifeCycles.WillUnmount:\n this.willUnmounts.push(lifecycle)\n break\n default:\n break\n }\n }\n }\n }\n\n // mixins 不会覆盖已经设置的生命周期,加入到 this 是为了形如 this.created() 的调用\n if (!isFunction(this[lifecycleName])) {\n this[lifecycleName] = lifecycle\n }\n }\n\n private safeExecute = (func?: Func, ...args: unknown[]) => {\n if (isFunction(func)) func.apply(this, args)\n }\n\n private initLifeCycleListener (name: string, cb: (...args: any[]) => void) {\n // 组件的 ready、show、hide 需要利用页面事件触发\n const { router } = this.current\n const lifecycleName = `on${name[0].toUpperCase()}${name.slice(1)}`\n cb = cb.bind(this)\n router?.[lifecycleName] && eventCenter.on(router[lifecycleName], cb)\n // unMount 时需要取消事件监听\n this.eventDestroyList.push(() => eventCenter.off(router[lifecycleName], cb))\n }\n\n private executeLifeCycles (funcs: Func[], ...args: unknown[]) {\n for (let i = 0; i < funcs.length; i++) {\n const func = funcs[i]\n this.safeExecute(func, ...args)\n }\n }\n\n private triggerPropertiesObservers (prevProps, nextProps) {\n this._observeProps.forEach(({ name: key, observer }) => {\n const prop = prevProps?.[key]\n const nextProp = nextProps[key]\n // 小程序是深比较不同之后才 trigger observer\n if (!isEqual(prop, nextProp)) {\n if (typeof observer === 'string') {\n const ob = this[observer]\n if (isFunction(ob)) {\n ob.call(this, nextProp, prop, key)\n }\n } else if (isFunction(observer)) {\n observer.call(this, nextProp, prop, key)\n }\n }\n })\n }\n\n private triggerObservers (current, prev) {\n const observers = this.observers\n if (observers == null) {\n return\n }\n\n if (Object.keys(observers).length === 0) {\n return\n }\n\n const result = diff(current, prev)\n const resultKeys = Object.keys(result)\n if (resultKeys.length === 0) {\n return\n }\n\n for (const observerKey in observers) {\n if (/\\*\\*/.test(observerKey)) {\n report('数据监听器 observers 不支持使用通配符 **。')\n continue\n }\n\n const keys = observerKey.split(',').map(k => k.trim())\n let isModified = false\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n for (let j = 0; j < resultKeys.length; j++) {\n const resultKey = resultKeys[j]\n if (\n resultKey.startsWith(key) ||\n (key.startsWith(resultKey) && key.endsWith(']'))\n ) {\n isModified = true\n }\n }\n }\n if (isModified) {\n observers[observerKey].apply(this, keys.map(key => safeGet(current, key)))\n }\n }\n }\n\n private defineProperty (target, key, data) {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: true,\n set (value) {\n data[key] = value\n },\n get () {\n return data[key]\n }\n })\n }\n\n public privateStopNoop (...args) {\n let e\n let fn\n if (args.length === 2) {\n fn = args[0]\n e = args[1]\n } else if (args.length === 1) {\n e = args[0]\n }\n if (e.type === 'touchmove') {\n report('catchtouchmove 转换后只能停止回调函数的冒泡,不能阻止滚动穿透。如要阻止滚动穿透,可以手动给编译后的 View 组件加上 catchMove 属性')\n }\n e.stopPropagation()\n isFunction(fn) && fn(e)\n }\n\n // ================ React 生命周期 ================\n\n public componentWillMount () {\n this.safeExecute(super.componentWillMount)\n this.executeLifeCycles(this.willMounts, this.current.router || {})\n this.triggerObservers(this.data, BaseComponent.defaultProps)\n this.triggerPropertiesObservers(BaseComponent.defaultProps, this.props)\n }\n\n public componentDidMount () {\n this.safeExecute(super.componentDidMount)\n this.executeLifeCycles(this.didMounts)\n }\n\n public componentWillUnmount () {\n this.eventDestroyList.forEach(fn => fn())\n this.safeExecute(super.componentWillUnmount)\n this.executeLifeCycles(this.willUnmounts)\n }\n\n public componentDidHide () {\n this.safeExecute(super.componentDidHide)\n this.executeLifeCycles(this.didHides)\n }\n\n public componentDidShow () {\n this.safeExecute(super.componentDidShow, this.current.router || {})\n this.executeLifeCycles(this.didShows, this.current.router || {})\n }\n\n public componentWillReceiveProps (nextProps: P) {\n this.triggerObservers(nextProps, this.props)\n this.triggerPropertiesObservers(this.props, nextProps)\n this.safeExecute(super.componentWillReceiveProps)\n }\n\n // ================ 小程序 App, Page, Component 实例属性与方法 ================\n\n get is () {\n return this.current.page.is\n }\n\n get id () {\n return this.current.page.id\n }\n\n get dataset () {\n return this.current.page.dataset\n }\n\n public setData = (obj: S, callback?: () => void) => {\n let oldState\n if (this.observers && Object.keys(Object.keys(this.observers))) {\n oldState = clone(this.state)\n }\n Object.keys(obj).forEach(key => {\n safeSet(this.state, key, obj[key])\n })\n this.setState(this.state, () => {\n this.triggerObservers(this.state, oldState)\n if (callback) {\n callback.call(this)\n }\n })\n }\n\n public triggerEvent = (eventName: string, detail, options) => {\n if (options) {\n report('triggerEvent 不支持事件选项。')\n }\n\n const props = this.props\n const dataset = {}\n for (const key in props) {\n if (!key.startsWith('data-')) continue\n dataset[key.replace(/^data-/, '')] = props[key]\n }\n\n const func = props[`on${eventName[0].toUpperCase()}${eventName.slice(1)}`]\n if (isFunction(func)) {\n func.call(this, {\n type: eventName,\n detail,\n target: {\n id: props.id || '',\n dataset\n },\n currentTarget: {\n id: props.id || '',\n dataset\n }\n })\n }\n }\n\n private componentMethodsProxy (method: string) {\n return (...args: any[]) => {\n const page = this.current.page\n if (page?.[method]) {\n return page[method](...args)\n } else {\n console.error(`page 下没有 ${method} 方法`)\n }\n }\n }\n\n public hasBehavior = this.componentMethodsProxy('hasBehavior')\n public createSelectorQuery = this.componentMethodsProxy('createSelectorQuery')\n public createIntersectionObserver = this.componentMethodsProxy('createIntersectionObserver')\n public createMediaQueryObserver = this.componentMethodsProxy('createMediaQueryObserver')\n public getRelationNodes = this.componentMethodsProxy('getRelationNodes')\n public getTabBar = this.componentMethodsProxy('getTabBar')\n public getPageId = this.componentMethodsProxy('getPageId')\n public animate = this.componentMethodsProxy('animate')\n public clearAnimation = this.componentMethodsProxy('clearAnimation')\n public setUpdatePerformanceListener = this.componentMethodsProxy('setUpdatePerformanceListener')\n\n public selectComponent () {\n report(nonsupport.get('selectComponent'))\n }\n\n public selectAllComponents () {\n report(nonsupport.get('selectAllComponents'))\n }\n\n public selectOwnerComponent () {\n report(nonsupport.get('selectOwnerComponent'))\n }\n\n public groupSetData () {\n report(nonsupport.get('groupSetData'))\n }\n }\n\n const props = weappConf.properties\n\n if (props) {\n for (const propKey in props) {\n const propValue = props[propKey]\n if (propValue != null && !isFunction(propValue)) {\n if (propValue.value !== undefined) { // 如果是 null 也赋值到 defaultProps\n BaseComponent.defaultProps = {\n [propKey]: propValue.value,\n ...BaseComponent.defaultProps\n }\n }\n }\n }\n }\n\n const staticOptions = ['externalClasses', 'relations', 'options']\n\n staticOptions.forEach(option => {\n const value = weappConf[option]\n if (value != null) {\n BaseComponent[option] = value\n }\n })\n\n return BaseComponent\n }\n}\n"],"names":["json","JSON","clone","obj","parse","stringify","isArray","Array","x","toString","call","objectKeys","Object","keys","has","prototype","hasOwnProperty","key","push","opts","cmp","space","join","cycles","replacer","value","f","node","a","b","aobj","bobj","seen","parent","level","indent","colonSeparator","toJSON","undefined","_typeof","out","i","length","item","indexOf","TypeError","sort","keyValue","splice","ARRAYTYPE","OBJECTTYPE","FUNCTIONTYPE","diff","current","pre","result","syncKeys","_diff","rootCurrentType","type","rootPreType","currentValue","forEach","index","path","setResult","preValue","currentType","preType","subKey","k","v","TaroLifeCycles","lifecycleMap","WillMount","DidMount","_defineProperty","DidShow","DidHide","WillUnmount","lifecycles","Set","lifecycle","l","add","uniquePageLifecycle","appOptions","bind","fn","ctx","boundFn","arguments","apply","_length","isEqual","obj1","obj2","safeGet","propsArg","defaultValue","props","prop","slice","replace","split","Error","shift","safeSet","lastProp","pop","thisProp","assign","report","msg","console","warn","nonsupport","Map","flattenBehaviors","behavior","behaviorMap","subBehaviors","behaviors","subBehavior","advise","get","list","defineGetter","component","getter","defineProperty","enumerable","configurable","state","isFunction","o","withWeapp","weappConf","isApp","ConnectComponent","behaviorProperties","_a","propertiesList","property","propName","propValue","properties","BaseComponent","_inherits","_classCallCheck","_observeProps","willMounts","didMounts","didHides","didShows","willUnmounts","eventDestroyList","getCurrentInstance","taroGlobalData","create","safeExecute","func","args","_assertThisInitialized","setData","callback","oldState","observers","setState","triggerObservers","triggerEvent","eventName","detail","options","dataset","startsWith","toUpperCase","target","id","currentTarget","hasBehavior","componentMethodsProxy","createSelectorQuery","createIntersectionObserver","createMediaQueryObserver","getRelationNodes","getTabBar","getPageId","animate","clearAnimation","setUpdatePerformanceListener","init","_createClass","propKey","observer","name","entries","_slicedToArray","initLifeCycles","confKey","confValue","includes","initProps","method","cb","initLifeCycleListener","lifetimes","_b","_c","behaviorData","methods","_toConsumableArray","dataObject","dataKey","valueType","preValueType","newVal","methodsObject","methodName","lifecycleName","page","onReady","called","nextTick","lifecycleKey","cycleNames","router","eventCenter","on","off","funcs","prevProps","nextProps","nextProp","ob","prev","resultKeys","observerKey","test","map","trim","isModified","j","resultKey","endsWith","data","set","e","stopPropagation","_get","_getPrototypeOf","executeLifeCycles","defaultProps","triggerPropertiesObservers","is","error","staticOptions","option"],"mappings":"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"}