@tarojs/taro-h5 4.0.0-beta.8 → 4.0.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/api/base/index.d.ts +1 -1
  2. package/dist/api/base/index.js +1 -1
  3. package/dist/api/base/index.js.map +1 -1
  4. package/dist/api/device/clipboard.js +6 -0
  5. package/dist/api/device/clipboard.js.map +1 -1
  6. package/dist/api/device/network.js.map +1 -1
  7. package/dist/api/index.js +1 -0
  8. package/dist/api/index.js.map +1 -1
  9. package/dist/api/location/chooseLocation.js +2 -2
  10. package/dist/api/location/chooseLocation.js.map +1 -1
  11. package/dist/api/network/request/index.js +9 -7
  12. package/dist/api/network/request/index.js.map +1 -1
  13. package/dist/api/network/websocket/index.d.ts +2 -1
  14. package/dist/api/network/websocket/index.js +1 -1
  15. package/dist/api/network/websocket/index.js.map +1 -1
  16. package/dist/api/ui/animation/index.js +68 -38
  17. package/dist/api/ui/animation/index.js.map +1 -1
  18. package/dist/api/ui/interaction/actionSheet.d.ts +12 -0
  19. package/dist/api/ui/interaction/actionSheet.js +34 -12
  20. package/dist/api/ui/interaction/actionSheet.js.map +1 -1
  21. package/dist/api/ui/interaction/index.js +2 -1
  22. package/dist/api/ui/interaction/index.js.map +1 -1
  23. package/dist/api/ui/interaction/modal.d.ts +2 -0
  24. package/dist/api/ui/interaction/modal.js +3 -1
  25. package/dist/api/ui/interaction/modal.js.map +1 -1
  26. package/dist/api/ui/navigation-bar/index.js +3 -2
  27. package/dist/api/ui/navigation-bar/index.js.map +1 -1
  28. package/dist/api/wxml/IntersectionObserver.js +2 -1
  29. package/dist/api/wxml/IntersectionObserver.js.map +1 -1
  30. package/dist/api/wxml/index.js.map +1 -1
  31. package/dist/api/wxml/nodesRef.js +5 -2
  32. package/dist/api/wxml/nodesRef.js.map +1 -1
  33. package/dist/index.cjs.d.ts +26 -2
  34. package/dist/index.cjs.js +2130 -2059
  35. package/dist/index.cjs.js.map +1 -1
  36. package/dist/index.esm.d.ts +26 -2
  37. package/dist/index.esm.js +2131 -2061
  38. package/dist/index.esm.js.map +1 -1
  39. package/dist/index.js +1 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/utils/handler.js +4 -0
  42. package/dist/utils/handler.js.map +1 -1
  43. package/package.json +7 -8
@@ -5,7 +5,7 @@ declare const env: {
5
5
  TARO_VERSION: string | undefined;
6
6
  };
7
7
  declare function arrayBufferToBase64(arrayBuffer: ArrayBuffer): string;
8
- declare function base64ToArrayBuffer(base64: string): Uint8Array;
8
+ declare function base64ToArrayBuffer(base64: string): ArrayBufferLike;
9
9
  export { env, arrayBufferToBase64, base64ToArrayBuffer };
10
10
  export * from "./crypto.js";
11
11
  export * from "./debug.js";
@@ -19,7 +19,7 @@ function arrayBufferToBase64(arrayBuffer) {
19
19
  return fromByteArray(arrayBuffer);
20
20
  }
21
21
  function base64ToArrayBuffer(base64) {
22
- return toByteArray(base64);
22
+ return toByteArray(base64).buffer;
23
23
  }
24
24
 
25
25
  export { arrayBufferToBase64, base64ToArrayBuffer, env };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/api/base/index.ts"],"sourcesContent":["import { fromByteArray, toByteArray } from 'base64-js'\n\nexport const env = {\n FRAMEWORK: process.env.FRAMEWORK,\n TARO_ENV: process.env.TARO_ENV,\n TARO_PLATFORM: process.env.TARO_PLATFORM,\n TARO_VERSION: process.env.TARO_VERSION,\n}\n\n// Note: 该方法由 taro-plugin-platform-h5 实现\n// export const canIUse = /* @__PURE__ */ temporarilyNotSupport('canIUse')\n\nexport function arrayBufferToBase64 (arrayBuffer: ArrayBuffer) {\n return fromByteArray(arrayBuffer as Uint8Array)\n}\n\nexport function base64ToArrayBuffer (base64: string) {\n return toByteArray(base64)\n}\n\nexport * from './crypto'\nexport * from './debug'\nexport * from './performance'\nexport * from './system'\nexport * from './update'\nexport * from './weapp/app-event'\nexport * from './weapp/life-cycle'\n"],"names":[],"mappings":";;;;;;;;;AAEa,MAAA,GAAG,GAAG;AACjB,IAAA,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS;AAChC,IAAA,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;AAC9B,IAAA,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;AACxC,IAAA,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;EACvC;AAED;AAC0E;AAEpE,SAAU,mBAAmB,CAAE,WAAwB,EAAA;AAC3D,IAAA,OAAO,aAAa,CAAC,WAAyB,CAAC,CAAA;AACjD,CAAC;AAEK,SAAU,mBAAmB,CAAE,MAAc,EAAA;AACjD,IAAA,OAAO,WAAW,CAAC,MAAM,CAAC,CAAA;AAC5B;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/api/base/index.ts"],"sourcesContent":["import { fromByteArray, toByteArray } from 'base64-js'\n\nexport const env = {\n FRAMEWORK: process.env.FRAMEWORK,\n TARO_ENV: process.env.TARO_ENV,\n TARO_PLATFORM: process.env.TARO_PLATFORM,\n TARO_VERSION: process.env.TARO_VERSION,\n}\n\n// Note: 该方法由 taro-plugin-platform-h5 实现\n// export const canIUse = /* @__PURE__ */ temporarilyNotSupport('canIUse')\n\nexport function arrayBufferToBase64 (arrayBuffer: ArrayBuffer) {\n return fromByteArray(arrayBuffer as Uint8Array)\n}\n\nexport function base64ToArrayBuffer (base64: string) {\n return toByteArray(base64).buffer\n}\n\nexport * from './crypto'\nexport * from './debug'\nexport * from './performance'\nexport * from './system'\nexport * from './update'\nexport * from './weapp/app-event'\nexport * from './weapp/life-cycle'\n"],"names":[],"mappings":";;;;;;;;;AAEa,MAAA,GAAG,GAAG;AACjB,IAAA,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS;AAChC,IAAA,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;AAC9B,IAAA,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;AACxC,IAAA,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;EACvC;AAED;AAC0E;AAEpE,SAAU,mBAAmB,CAAE,WAAwB,EAAA;AAC3D,IAAA,OAAO,aAAa,CAAC,WAAyB,CAAC,CAAA;AACjD,CAAC;AAEK,SAAU,mBAAmB,CAAE,MAAc,EAAA;AACjD,IAAA,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,CAAA;AACnC;;;;"}
@@ -2,6 +2,7 @@ import { __awaiter } from 'tslib';
2
2
  import { isFunction } from '@tarojs/shared';
3
3
  import { MethodHandler } from '../../utils/handler.js';
4
4
  import { setStorage, setStorageSync, getStorageSync } from '../storage/index.js';
5
+ import { showToast } from '../ui/interaction/index.js';
5
6
 
6
7
  /**
7
8
  * 剪贴板部分的api参考了Chameleon项目的实现:
@@ -47,6 +48,11 @@ const setClipboardData = ({ data, success, fail, complete }) => __awaiter(void 0
47
48
  else {
48
49
  throw new Error('Unsupported Function: \'document.execCommand\'.');
49
50
  }
51
+ showToast({
52
+ title: '内容已复制',
53
+ icon: 'none',
54
+ duration: 1500
55
+ });
50
56
  return handle.success();
51
57
  }
52
58
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"clipboard.js","sources":["../../../src/api/device/clipboard.ts"],"sourcesContent":["/**\r\n * 剪贴板部分的api参考了Chameleon项目的实现:\r\n *\r\n * setClipboardData: https://github.com/chameleon-team/chameleon-api/tree/master/src/interfaces/setClipBoardData\r\n * getClipboardData: https://github.com/chameleon-team/chameleon-api/tree/master/src/interfaces/getClipBoardData\r\n */\r\n\r\nimport Taro from '@tarojs/api'\r\nimport { isFunction } from '@tarojs/shared'\r\n\r\nimport { MethodHandler } from '../../utils/handler'\r\nimport { getStorageSync, setStorage, setStorageSync } from '../storage/index'\r\n\r\nconst CLIPBOARD_STORAGE_NAME = 'taro_clipboard'\r\n\r\ndocument.addEventListener('copy', () => {\r\n setStorage({\r\n key: CLIPBOARD_STORAGE_NAME,\r\n data: window.getSelection()?.toString()\r\n }).catch(e => {\r\n console.error(e)\r\n })\r\n})\r\n\r\n/**\r\n * 设置系统剪贴板的内容\r\n */\r\nexport const setClipboardData: typeof Taro.setClipboardData = async ({ data, success, fail, complete }) => {\r\n const handle = new MethodHandler({ name: 'setClipboardData', success, fail, complete })\r\n try {\r\n setStorageSync(CLIPBOARD_STORAGE_NAME, data)\r\n /**\r\n * 已于 iPhone 6s Plus iOS 13.1.3 上的 Safari 测试通过\r\n * iOS < 10 的系统可能无法使用编程方式访问剪贴板,参考:\r\n * https://stackoverflow.com/questions/34045777/copy-to-clipboard-using-javascript-in-ios/34046084\r\n */\r\n if (isFunction(document.execCommand)) {\r\n const textarea = document.createElement('textarea')\r\n textarea.readOnly = true\r\n textarea.value = data\r\n textarea.style.position = 'absolute'\r\n textarea.style.width = '100px'\r\n textarea.style.left = '-10000px'\r\n document.body.appendChild(textarea)\r\n textarea.select()\r\n textarea.setSelectionRange(0, textarea.value.length)\r\n document.execCommand('copy')\r\n document.body.removeChild(textarea)\r\n } else {\r\n throw new Error('Unsupported Function: \\'document.execCommand\\'.')\r\n }\r\n return handle.success()\r\n } catch (e) {\r\n return handle.fail({ errMsg: e.message })\r\n }\r\n}\r\n\r\n/**\r\n * 获取系统剪贴板的内容\r\n */\r\nexport const getClipboardData: typeof Taro.getClipboardData = async ({ success, fail, complete } = {}) => {\r\n const handle = new MethodHandler<Taro.getClipboardData.SuccessCallbackOption>({ name: 'getClipboardData', success, fail, complete })\r\n try {\r\n const data: string = getStorageSync(CLIPBOARD_STORAGE_NAME)\r\n return handle.success({ data })\r\n } catch (e) {\r\n return handle.fail({ errMsg: e.message })\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clipboard.js","sources":["../../../src/api/device/clipboard.ts"],"sourcesContent":["/**\r\n * 剪贴板部分的api参考了Chameleon项目的实现:\r\n *\r\n * setClipboardData: https://github.com/chameleon-team/chameleon-api/tree/master/src/interfaces/setClipBoardData\r\n * getClipboardData: https://github.com/chameleon-team/chameleon-api/tree/master/src/interfaces/getClipBoardData\r\n */\r\n\r\nimport Taro from '@tarojs/api'\r\nimport { isFunction } from '@tarojs/shared'\r\n\r\nimport { MethodHandler } from '../../utils/handler'\r\nimport { getStorageSync, setStorage, setStorageSync } from '../storage/index'\r\nimport { showToast } from '../ui/interaction'\r\n\r\nconst CLIPBOARD_STORAGE_NAME = 'taro_clipboard'\r\n\r\ndocument.addEventListener('copy', () => {\r\n setStorage({\r\n key: CLIPBOARD_STORAGE_NAME,\r\n data: window.getSelection()?.toString()\r\n }).catch(e => {\r\n console.error(e)\r\n })\r\n})\r\n\r\n/**\r\n * 设置系统剪贴板的内容\r\n */\r\nexport const setClipboardData: typeof Taro.setClipboardData = async ({ data, success, fail, complete }) => {\r\n const handle = new MethodHandler({ name: 'setClipboardData', success, fail, complete })\r\n try {\r\n setStorageSync(CLIPBOARD_STORAGE_NAME, data)\r\n /**\r\n * 已于 iPhone 6s Plus iOS 13.1.3 上的 Safari 测试通过\r\n * iOS < 10 的系统可能无法使用编程方式访问剪贴板,参考:\r\n * https://stackoverflow.com/questions/34045777/copy-to-clipboard-using-javascript-in-ios/34046084\r\n */\r\n if (isFunction(document.execCommand)) {\r\n const textarea = document.createElement('textarea')\r\n textarea.readOnly = true\r\n textarea.value = data\r\n textarea.style.position = 'absolute'\r\n textarea.style.width = '100px'\r\n textarea.style.left = '-10000px'\r\n document.body.appendChild(textarea)\r\n textarea.select()\r\n textarea.setSelectionRange(0, textarea.value.length)\r\n document.execCommand('copy')\r\n document.body.removeChild(textarea)\r\n } else {\r\n throw new Error('Unsupported Function: \\'document.execCommand\\'.')\r\n }\r\n showToast({\r\n title: '内容已复制',\r\n icon: 'none',\r\n duration: 1500\r\n })\r\n return handle.success()\r\n } catch (e) {\r\n return handle.fail({ errMsg: e.message })\r\n }\r\n}\r\n\r\n/**\r\n * 获取系统剪贴板的内容\r\n */\r\nexport const getClipboardData: typeof Taro.getClipboardData = async ({ success, fail, complete } = {}) => {\r\n const handle = new MethodHandler<Taro.getClipboardData.SuccessCallbackOption>({ name: 'getClipboardData', success, fail, complete })\r\n try {\r\n const data: string = getStorageSync(CLIPBOARD_STORAGE_NAME)\r\n return handle.success({ data })\r\n } catch (e) {\r\n return handle.fail({ errMsg: e.message })\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sources":["../../../src/api/device/network.ts"],"sourcesContent":["import Taro from '@tarojs/api'\n\nimport { temporarilyNotSupport } from '../../utils'\nimport { CallbackManager, MethodHandler } from '../../utils/handler'\n\nfunction getConnection () {\n // @ts-ignore\n return navigator.connection || navigator.mozConnection || navigator.webkitConnection || navigator.msConnection\n}\n\nexport const getNetworkType: typeof Taro.getNetworkType = (options = {}) => {\n const connection = getConnection()\n const { success, fail, complete } = options\n const handle = new MethodHandler<Taro.getNetworkType.SuccessCallbackResult>({ name: 'getNetworkType', success, fail, complete })\n\n let networkType: keyof Taro.getNetworkType.NetworkType = 'unknown'\n // 浏览器不支持获取网络状态\n if (!connection) {\n return handle.success({ networkType })\n }\n\n // Supports only the navigator.connection.type value which doesn't match the latest spec.\n // https://www.davidbcalhoun.com/2010/using-navigator-connection-android/\n if (!isNaN(Number(connection.type))) {\n switch (connection.type) {\n // @ts-ignore\n case connection.WIFI:\n networkType = 'wifi'\n break\n // @ts-ignore\n case connection.CELL_3G:\n networkType = '3g'\n break\n // @ts-ignore\n case connection.CELL_2G:\n networkType = '2g'\n break\n default:\n // ETHERNET, UNKNOWN\n networkType = 'unknown'\n }\n } else if (connection.type) {\n // @ts-ignore\n networkType = connection.type // Only supports the type value.\n // @ts-ignore\n } else if (connection.effectiveType) {\n // @ts-ignore\n networkType = connection.effectiveType\n }\n\n return handle.success({ networkType })\n}\n\nconst networkStatusManager = new CallbackManager()\n\nconst networkStatusListener = async () => {\n const { networkType } = await getNetworkType()\n const isConnected = networkType !== 'none'\n const obj = { isConnected, networkType }\n networkStatusManager.trigger(obj)\n}\n\n/**\n * 在最近的八次网络请求中, 出现下列三个现象之一则判定弱网。\n * - 出现三次以上连接超时\n * - 出现三次 rtt 超过 400\n * - 出现三次以上的丢包\n * > 弱网事件通知规则是: 弱网状态变化时立即通知, 状态不变时 30s 内最多通知一次。\n */\nexport const onNetworkWeakChange = /* @__PURE__ */ temporarilyNotSupport('onNetworkWeakChange')\n\nexport const onNetworkStatusChange: typeof Taro.onNetworkStatusChange = callback => {\n networkStatusManager.add(callback)\n const connection = getConnection()\n if (connection && networkStatusManager.count() === 1) {\n connection.addEventListener('change', networkStatusListener)\n }\n}\n\nexport const offNetworkWeakChange = /* @__PURE__ */ temporarilyNotSupport('offNetworkWeakChange')\n\nexport const offNetworkStatusChange: typeof Taro.offNetworkStatusChange = callback => {\n networkStatusManager.remove(callback)\n const connection = getConnection()\n if (connection && networkStatusManager.count() === 0) {\n connection.removeEventListener('change', networkStatusListener)\n }\n}\n\nexport const getLocalIPAddress = /* @__PURE__ */ temporarilyNotSupport('getLocalIPAddress')\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network.js","sources":["../../../src/api/device/network.ts"],"sourcesContent":["import Taro from '@tarojs/api'\n\nimport { temporarilyNotSupport } from '../../utils'\nimport { CallbackManager, MethodHandler } from '../../utils/handler'\n\nfunction getConnection () {\n // @ts-ignore\n return navigator.connection || navigator.mozConnection || navigator.webkitConnection || navigator.msConnection\n}\n\nexport const getNetworkType: typeof Taro.getNetworkType = (options = {}) => {\n const connection = getConnection()\n const { success, fail, complete } = options\n const handle = new MethodHandler<Taro.getNetworkType.SuccessCallbackResult>({ name: 'getNetworkType', success, fail, complete })\n\n let networkType: keyof Taro.getNetworkType.NetworkType = 'unknown'\n // 浏览器不支持获取网络状态\n if (!connection) {\n return handle.success({ networkType })\n }\n\n // Supports only the navigator.connection.type value which doesn't match the latest spec.\n // https://www.davidbcalhoun.com/2010/using-navigator-connection-android/\n if (!isNaN(Number(connection.type))) {\n switch (connection.type) {\n // @ts-ignore\n case connection.WIFI:\n networkType = 'wifi'\n break\n // @ts-ignore\n case connection.CELL_3G:\n networkType = '3g'\n break\n // @ts-ignore\n case connection.CELL_2G:\n networkType = '2g'\n break\n default:\n // ETHERNET, UNKNOWN\n networkType = 'unknown'\n }\n } else if (connection.type) {\n // @ts-ignore\n networkType = connection.type // Only supports the type value.\n // @ts-ignore\n } else if (connection.effectiveType) {\n // @ts-ignore\n networkType = connection.effectiveType\n }\n\n return handle.success({ networkType })\n}\n\nconst networkStatusManager = new CallbackManager()\nconst networkStatusListener = async () => {\n const { networkType } = await getNetworkType()\n const isConnected = networkType !== 'none'\n const obj = { isConnected, networkType }\n networkStatusManager.trigger(obj)\n}\n\n/**\n * 在最近的八次网络请求中, 出现下列三个现象之一则判定弱网。\n * - 出现三次以上连接超时\n * - 出现三次 rtt 超过 400\n * - 出现三次以上的丢包\n * > 弱网事件通知规则是: 弱网状态变化时立即通知, 状态不变时 30s 内最多通知一次。\n */\nexport const onNetworkWeakChange = /* @__PURE__ */ temporarilyNotSupport('onNetworkWeakChange')\n\nexport const onNetworkStatusChange: typeof Taro.onNetworkStatusChange = callback => {\n networkStatusManager.add(callback)\n const connection = getConnection()\n if (connection && networkStatusManager.count() === 1) {\n connection.addEventListener('change', networkStatusListener)\n }\n}\n\nexport const offNetworkWeakChange = /* @__PURE__ */ temporarilyNotSupport('offNetworkWeakChange')\n\nexport const offNetworkStatusChange: typeof Taro.offNetworkStatusChange = callback => {\n networkStatusManager.remove(callback)\n\n const connection = getConnection()\n if (connection && networkStatusManager.count() === 0) {\n connection.removeEventListener('change', networkStatusListener)\n }\n}\n\nexport const getLocalIPAddress = /* @__PURE__ */ temporarilyNotSupport('getLocalIPAddress')\n"],"names":[],"mappings":"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"}
package/dist/api/index.js CHANGED
@@ -91,6 +91,7 @@ export { createTCPSocket } from './network/tcp.js';
91
91
  export { createUDPSocket } from './network/udp.js';
92
92
  export { uploadFile } from './network/upload.js';
93
93
  export { closeSocket, connectSocket, onSocketClose, onSocketError, onSocketMessage, onSocketOpen, sendSocketMessage } from './network/websocket/index.js';
94
+ export { SocketTask } from './network/websocket/socketTask.js';
94
95
  export { getAccountInfoSync } from './open-api/account.js';
95
96
  export { chooseAddress } from './open-api/address.js';
96
97
  export { authorize, authorizeForMiniProgram } from './open-api/authorize.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -57,16 +57,16 @@ function createLocationChooser(handler, key = LOCATION_APIKEY, mapOpt = {}) {
57
57
  * 打开地图选择位置。
58
58
  */
59
59
  const chooseLocation = ({ success, fail, complete, mapOpts } = {}) => {
60
- const key = LOCATION_APIKEY;
61
60
  const handle = new MethodHandler({ name: 'chooseLocation', success, fail, complete });
62
61
  return new Promise((resolve, reject) => {
63
62
  const chooseLocation = {};
64
- if (!key) {
63
+ if (typeof LOCATION_APIKEY === 'undefined') {
65
64
  console.warn('chooseLocation api 依赖腾讯地图定位api,需要在 defineConstants 中配置 LOCATION_APIKEY');
66
65
  return handle.fail({
67
66
  errMsg: 'LOCATION_APIKEY needed'
68
67
  }, { resolve, reject });
69
68
  }
69
+ const key = LOCATION_APIKEY;
70
70
  const onMessage = event => {
71
71
  // 接收位置信息,用户选择确认位置点后选点组件会触发该事件,回传用户的位置信息
72
72
  const loc = event.data;
@@ -1 +1 @@
1
- {"version":3,"file":"chooseLocation.js","sources":["../../../src/api/location/chooseLocation.ts"],"sourcesContent":["import './style.scss'\r\n\r\nimport Taro from '@tarojs/api'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { MethodHandler } from '../../utils/handler'\r\n\r\nlet container: HTMLDivElement | null = null\r\nfunction createLocationChooser (handler, key = LOCATION_APIKEY, mapOpt: Taro.chooseLocation.Option['mapOpts'] = {}) {\r\n const { latitude, longitude, ...opts } = mapOpt\r\n const query = {\r\n key,\r\n type: 1,\r\n coord: mapOpt.coord ?? [latitude, longitude].every(e => Number(e) >= 0) ? `${latitude},${longitude}` : undefined,\r\n referer: 'myapp',\r\n ...opts\r\n }\r\n if (!container) {\r\n const html = `\r\n<div class='taro_choose_location'>\r\n <div class='taro_choose_location_bar'>\r\n <div class='taro_choose_location_back'></div>\r\n <p class='taro_choose_location_title'>位置</p>\r\n <button class='taro_choose_location_submit'>完成</button>\r\n </div>\r\n <iframe class='taro_choose_location_frame' frameborder='0' src=\"https://apis.map.qq.com/tools/locpicker?${stringify(query, { arrayFormat: 'comma', skipNull: true })}\" />\r\n</div>\r\n`\r\n container = document.createElement('div')\r\n container.innerHTML = html\r\n }\r\n const main: HTMLDivElement = container.querySelector('.taro_choose_location') as HTMLDivElement\r\n\r\n function show () {\r\n setTimeout(() => {\r\n main.style.top = '0'\r\n })\r\n }\r\n\r\n function hide () {\r\n main.style.top = '100%'\r\n }\r\n\r\n function back () {\r\n hide()\r\n handler({ errMsg: 'cancel' })\r\n }\r\n\r\n function submit () {\r\n hide()\r\n handler()\r\n }\r\n\r\n function remove () {\r\n container?.remove()\r\n container = null\r\n window.removeEventListener('popstate', back)\r\n }\r\n\r\n container.querySelector('.taro_choose_location_back')?.addEventListener('click', back)\r\n container.querySelector('.taro_choose_location_submit')?.addEventListener('click', submit)\r\n\r\n window.addEventListener('popstate', back)\r\n\r\n return {\r\n show,\r\n remove,\r\n container,\r\n }\r\n}\r\n\r\n/**\r\n * 打开地图选择位置。\r\n */\r\nexport const chooseLocation: typeof Taro.chooseLocation = ({ success, fail, complete, mapOpts } = {}) => {\r\n const key = LOCATION_APIKEY\r\n const handle = new MethodHandler({ name: 'chooseLocation', success, fail, complete })\r\n return new Promise((resolve, reject) => {\r\n const chooseLocation: Partial<Taro.chooseLocation.SuccessCallbackResult> = {}\r\n if (!key) {\r\n console.warn('chooseLocation api 依赖腾讯地图定位api,需要在 defineConstants 中配置 LOCATION_APIKEY')\r\n return handle.fail({\r\n errMsg: 'LOCATION_APIKEY needed'\r\n }, { resolve, reject })\r\n }\r\n\r\n const onMessage = event => {\r\n // 接收位置信息,用户选择确认位置点后选点组件会触发该事件,回传用户的位置信息\r\n const loc = event.data\r\n\r\n // 防止其他应用也会向该页面 post 信息,需判断 module 是否为'locationPicker'\r\n if (!loc || loc.module !== 'locationPicker') return\r\n\r\n chooseLocation.name = loc.poiname\r\n chooseLocation.address = loc.poiaddress\r\n chooseLocation.latitude = loc.latlng.lat\r\n chooseLocation.longitude = loc.latlng.lng\r\n }\r\n\r\n const chooser = createLocationChooser(res => {\r\n window.removeEventListener('message', onMessage, false)\r\n setTimeout(() => {\r\n chooser.remove()\r\n }, 300)\r\n if (res) {\r\n return handle.fail(res, { resolve, reject })\r\n } else {\r\n if (chooseLocation.latitude && chooseLocation.longitude) {\r\n return handle.success(chooseLocation, { resolve, reject })\r\n } else {\r\n return handle.fail({}, { resolve, reject })\r\n }\r\n }\r\n }, key, mapOpts)\r\n\r\n document.body.appendChild(chooser.container)\r\n\r\n window.addEventListener('message', onMessage, false)\r\n chooser.show()\r\n })\r\n}\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chooseLocation.js","sources":["../../../src/api/location/chooseLocation.ts"],"sourcesContent":["import './style.scss'\r\n\r\nimport Taro from '@tarojs/api'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { MethodHandler } from '../../utils/handler'\r\n\r\nlet container: HTMLDivElement | null = null\r\nfunction createLocationChooser (handler, key = LOCATION_APIKEY, mapOpt: Taro.chooseLocation.Option['mapOpts'] = {}) {\r\n const { latitude, longitude, ...opts } = mapOpt\r\n const query = {\r\n key,\r\n type: 1,\r\n coord: mapOpt.coord ?? [latitude, longitude].every(e => Number(e) >= 0) ? `${latitude},${longitude}` : undefined,\r\n referer: 'myapp',\r\n ...opts\r\n }\r\n if (!container) {\r\n const html = `\r\n<div class='taro_choose_location'>\r\n <div class='taro_choose_location_bar'>\r\n <div class='taro_choose_location_back'></div>\r\n <p class='taro_choose_location_title'>位置</p>\r\n <button class='taro_choose_location_submit'>完成</button>\r\n </div>\r\n <iframe class='taro_choose_location_frame' frameborder='0' src=\"https://apis.map.qq.com/tools/locpicker?${stringify(query, { arrayFormat: 'comma', skipNull: true })}\" />\r\n</div>\r\n`\r\n container = document.createElement('div')\r\n container.innerHTML = html\r\n }\r\n const main: HTMLDivElement = container.querySelector('.taro_choose_location') as HTMLDivElement\r\n\r\n function show () {\r\n setTimeout(() => {\r\n main.style.top = '0'\r\n })\r\n }\r\n\r\n function hide () {\r\n main.style.top = '100%'\r\n }\r\n\r\n function back () {\r\n hide()\r\n handler({ errMsg: 'cancel' })\r\n }\r\n\r\n function submit () {\r\n hide()\r\n handler()\r\n }\r\n\r\n function remove () {\r\n container?.remove()\r\n container = null\r\n window.removeEventListener('popstate', back)\r\n }\r\n\r\n container.querySelector('.taro_choose_location_back')?.addEventListener('click', back)\r\n container.querySelector('.taro_choose_location_submit')?.addEventListener('click', submit)\r\n\r\n window.addEventListener('popstate', back)\r\n\r\n return {\r\n show,\r\n remove,\r\n container,\r\n }\r\n}\r\n\r\n/**\r\n * 打开地图选择位置。\r\n */\r\nexport const chooseLocation: typeof Taro.chooseLocation = ({ success, fail, complete, mapOpts } = {}) => {\r\n const handle = new MethodHandler({ name: 'chooseLocation', success, fail, complete })\r\n return new Promise((resolve, reject) => {\r\n const chooseLocation: Partial<Taro.chooseLocation.SuccessCallbackResult> = {}\r\n if (typeof LOCATION_APIKEY === 'undefined') {\r\n console.warn('chooseLocation api 依赖腾讯地图定位api,需要在 defineConstants 中配置 LOCATION_APIKEY')\r\n return handle.fail({\r\n errMsg: 'LOCATION_APIKEY needed'\r\n }, { resolve, reject })\r\n }\r\n \r\n const key = LOCATION_APIKEY\r\n\r\n const onMessage = event => {\r\n // 接收位置信息,用户选择确认位置点后选点组件会触发该事件,回传用户的位置信息\r\n const loc = event.data\r\n\r\n // 防止其他应用也会向该页面 post 信息,需判断 module 是否为'locationPicker'\r\n if (!loc || loc.module !== 'locationPicker') return\r\n\r\n chooseLocation.name = loc.poiname\r\n chooseLocation.address = loc.poiaddress\r\n chooseLocation.latitude = loc.latlng.lat\r\n chooseLocation.longitude = loc.latlng.lng\r\n }\r\n\r\n const chooser = createLocationChooser(res => {\r\n window.removeEventListener('message', onMessage, false)\r\n setTimeout(() => {\r\n chooser.remove()\r\n }, 300)\r\n if (res) {\r\n return handle.fail(res, { resolve, reject })\r\n } else {\r\n if (chooseLocation.latitude && chooseLocation.longitude) {\r\n return handle.success(chooseLocation, { resolve, reject })\r\n } else {\r\n return handle.fail({}, { resolve, reject })\r\n }\r\n }\r\n }, key, mapOpts)\r\n\r\n document.body.appendChild(chooser.container)\r\n\r\n window.addEventListener('message', onMessage, false)\r\n chooser.show()\r\n })\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import Taro from '@tarojs/api';
5
5
  import { isFunction } from '@tarojs/shared';
6
6
  import jsonpRetry from 'jsonp-retry';
7
7
  import { serializeParams } from '../../../utils/index.js';
8
+ import { NETWORK_TIMEOUT } from '../utils.js';
8
9
 
9
10
  // @ts-ignore
10
11
  const { Link } = Taro;
@@ -20,7 +21,10 @@ function _request(options = {}) {
20
21
  const { success, complete, fail } = options;
21
22
  const params = {};
22
23
  const res = {};
23
- let { cache = 'default', credentials, data, dataType, header = {}, jsonp, method = 'GET', mode, responseType, signal, timeout = 60000, url = '' } = options, opts = __rest(options, ["cache", "credentials", "data", "dataType", "header", "jsonp", "method", "mode", "responseType", "signal", "timeout", "url"]);
24
+ let { cache = 'default', credentials, data, dataType, header = {}, jsonp, method = 'GET', mode, responseType, signal, timeout, url = '' } = options, opts = __rest(options, ["cache", "credentials", "data", "dataType", "header", "jsonp", "method", "mode", "responseType", "signal", "timeout", "url"]);
25
+ if (typeof timeout !== 'number') {
26
+ timeout = NETWORK_TIMEOUT;
27
+ }
24
28
  Object.assign(params, opts);
25
29
  if (jsonp) {
26
30
  // @ts-ignore
@@ -86,12 +90,10 @@ function _request(options = {}) {
86
90
  else {
87
91
  controller = new window.AbortController();
88
92
  params.signal = controller.signal;
89
- if (typeof timeout === 'number') {
90
- timeoutTimer = setTimeout(function () {
91
- if (controller)
92
- controller.abort();
93
- }, timeout);
94
- }
93
+ timeoutTimer = setTimeout(function () {
94
+ if (controller)
95
+ controller.abort();
96
+ }, timeout);
95
97
  }
96
98
  params.credentials = credentials;
97
99
  const p = fetch(url, params)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/api/network/request/index.ts"],"sourcesContent":["import 'whatwg-fetch'\nimport 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'\n\nimport Taro from '@tarojs/api'\nimport { isFunction } from '@tarojs/shared'\nimport jsonpRetry from 'jsonp-retry'\n\nimport { serializeParams } from '../../../utils'\n\ninterface RequestTask<T> extends Promise<T> {\n abort?: (cb?: any) => void\n}\n\n// @ts-ignore\nconst { Link } = Taro\n\nfunction generateRequestUrlWithParams (url = '', params?: unknown) {\n params = typeof params === 'string' ? params : serializeParams(params)\n if (params) {\n url += (~url.indexOf('?') ? '&' : '?') + params\n }\n url = url.replace('?&', '?')\n return url\n}\n\nfunction _request (options: Partial<Taro.request.Option> = {}) {\n const { success, complete, fail } = options\n const params: RequestInit = {}\n const res: any = {}\n let {\n cache = 'default',\n credentials,\n data, dataType,\n header = {},\n jsonp,\n method = 'GET',\n mode,\n responseType,\n signal,\n timeout = 60000,\n url = '',\n ...opts\n } = options\n Object.assign(params, opts)\n if (jsonp) {\n // @ts-ignore\n params.params = data\n params.cache = opts.jsonpCache\n // @ts-ignore\n params.timeout = timeout\n if (typeof jsonp === 'string') {\n // @ts-ignore\n params.name = jsonp\n }\n // Note: https://github.com/luckyadam/jsonp-retry\n return jsonpRetry(url, params)\n .then(data => {\n res.statusCode = 200\n res.data = data\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return res\n })\n .catch(err => {\n isFunction(fail) && fail(err)\n isFunction(complete) && complete(res)\n return Promise.reject(err)\n })\n }\n params.method = method\n const methodUpper = params.method.toUpperCase()\n params.cache = cache\n if (methodUpper === 'GET' || methodUpper === 'HEAD') {\n url = generateRequestUrlWithParams(url, data)\n } else if (['[object Array]', '[object Object]'].indexOf(Object.prototype.toString.call(data)) >= 0) {\n const keyOfContentType = Object.keys(header).find(item => item.toLowerCase() === 'content-type')\n if (!keyOfContentType) {\n header['Content-Type'] = 'application/json'\n }\n const contentType = header[keyOfContentType || 'Content-Type']\n\n if (contentType.indexOf('application/json') >= 0) {\n params.body = JSON.stringify(data)\n } else if (contentType.indexOf('application/x-www-form-urlencoded') >= 0) {\n params.body = serializeParams(data)\n } else {\n params.body = data\n }\n } else {\n params.body = data\n }\n if (header) {\n params.headers = header\n }\n if (mode) {\n params.mode = mode\n }\n let timeoutTimer: ReturnType<typeof setTimeout> | null = null\n let controller: AbortController | null = null\n if (signal) {\n params.signal = signal\n } else {\n controller = new window.AbortController()\n params.signal = controller.signal\n if (typeof timeout === 'number') {\n timeoutTimer = setTimeout(function () {\n if (controller) controller.abort()\n }, timeout)\n }\n }\n params.credentials = credentials\n const p: RequestTask<any> = fetch(url, params)\n .then(response => {\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n timeoutTimer = null\n }\n if (controller) {\n controller = null\n }\n if (!response) {\n const errorResponse = { ok: false }\n throw errorResponse\n }\n res.statusCode = response.status\n res.header = {}\n for (const key of response.headers.keys()) {\n res.header[key] = response.headers.get(key)\n }\n if (responseType === 'arraybuffer') {\n return response.arrayBuffer()\n }\n if (res.statusCode !== 204) {\n if (dataType === 'json' || typeof dataType === 'undefined') {\n return response.json().catch(() => {\n return null\n })\n }\n }\n if (responseType === 'text' || dataType === 'text') {\n return response.text()\n }\n return Promise.resolve(null)\n })\n .then(data => {\n res.data = data\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return res\n })\n .catch(err => {\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n timeoutTimer = null\n }\n if (controller) {\n controller = null\n }\n isFunction(fail) && fail(err)\n isFunction(complete) && complete(res)\n err.statusCode = res.statusCode\n err.errMsg = err.message\n return Promise.reject(err)\n })\n if (!p.abort && controller) {\n p.abort = cb => {\n if (controller) {\n cb && cb()\n controller.abort()\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n timeoutTimer = null\n }\n }\n }\n }\n return p\n}\n\nfunction taroInterceptor (chain) {\n return _request(chain.requestParams)\n}\n\nconst link = new Link(taroInterceptor)\n\nexport const request = (<T extends Partial<Taro.request.Option> = TaroGeneral.IAnyObject>(...args: [string | T, T]) => {\n const [url = '', options = {} as T] = args\n if (typeof url === 'string') {\n options.url = url\n } else {\n Object.assign(options, url)\n }\n return link.request(options)\n}) as typeof Taro.request\nexport const addInterceptor = link.addInterceptor.bind(link)\nexport const cleanInterceptors = link.cleanInterceptors.bind(link)\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/api/network/request/index.ts"],"sourcesContent":["import 'whatwg-fetch'\nimport 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'\n\nimport Taro from '@tarojs/api'\nimport { isFunction } from '@tarojs/shared'\nimport jsonpRetry from 'jsonp-retry'\n\nimport { serializeParams } from '../../../utils'\nimport { NETWORK_TIMEOUT } from '../utils'\n\ninterface RequestTask<T> extends Promise<T> {\n abort?: (cb?: any) => void\n}\n\n// @ts-ignore\nconst { Link } = Taro\n\nfunction generateRequestUrlWithParams (url = '', params?: unknown) {\n params = typeof params === 'string' ? params : serializeParams(params)\n if (params) {\n url += (~url.indexOf('?') ? '&' : '?') + params\n }\n url = url.replace('?&', '?')\n return url\n}\n\nfunction _request (options: Partial<Taro.request.Option> = {}) {\n const { success, complete, fail } = options\n const params: RequestInit = {}\n const res: any = {}\n let {\n cache = 'default',\n credentials,\n data, dataType,\n header = {},\n jsonp,\n method = 'GET',\n mode,\n responseType,\n signal,\n timeout,\n url = '',\n ...opts\n } = options\n if (typeof timeout !== 'number') {\n timeout = NETWORK_TIMEOUT\n }\n Object.assign(params, opts)\n if (jsonp) {\n // @ts-ignore\n params.params = data\n params.cache = opts.jsonpCache\n // @ts-ignore\n params.timeout = timeout\n if (typeof jsonp === 'string') {\n // @ts-ignore\n params.name = jsonp\n }\n // Note: https://github.com/luckyadam/jsonp-retry\n return jsonpRetry(url, params)\n .then(data => {\n res.statusCode = 200\n res.data = data\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return res\n })\n .catch(err => {\n isFunction(fail) && fail(err)\n isFunction(complete) && complete(res)\n return Promise.reject(err)\n })\n }\n params.method = method\n const methodUpper = params.method.toUpperCase()\n params.cache = cache\n if (methodUpper === 'GET' || methodUpper === 'HEAD') {\n url = generateRequestUrlWithParams(url, data)\n } else if (['[object Array]', '[object Object]'].indexOf(Object.prototype.toString.call(data)) >= 0) {\n const keyOfContentType = Object.keys(header).find(item => item.toLowerCase() === 'content-type')\n if (!keyOfContentType) {\n header['Content-Type'] = 'application/json'\n }\n const contentType = header[keyOfContentType || 'Content-Type']\n\n if (contentType.indexOf('application/json') >= 0) {\n params.body = JSON.stringify(data)\n } else if (contentType.indexOf('application/x-www-form-urlencoded') >= 0) {\n params.body = serializeParams(data)\n } else {\n params.body = data\n }\n } else {\n params.body = data\n }\n if (header) {\n params.headers = header\n }\n if (mode) {\n params.mode = mode\n }\n let timeoutTimer: ReturnType<typeof setTimeout> | null = null\n let controller: AbortController | null = null\n if (signal) {\n params.signal = signal\n } else {\n controller = new window.AbortController()\n params.signal = controller.signal\n timeoutTimer = setTimeout(function () {\n if (controller) controller.abort()\n }, timeout)\n }\n params.credentials = credentials\n const p: RequestTask<any> = fetch(url, params)\n .then(response => {\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n timeoutTimer = null\n }\n if (controller) {\n controller = null\n }\n if (!response) {\n const errorResponse = { ok: false }\n throw errorResponse\n }\n res.statusCode = response.status\n res.header = {}\n for (const key of response.headers.keys()) {\n res.header[key] = response.headers.get(key)\n }\n if (responseType === 'arraybuffer') {\n return response.arrayBuffer()\n }\n if (res.statusCode !== 204) {\n if (dataType === 'json' || typeof dataType === 'undefined') {\n return response.json().catch(() => {\n return null\n })\n }\n }\n if (responseType === 'text' || dataType === 'text') {\n return response.text()\n }\n return Promise.resolve(null)\n })\n .then(data => {\n res.data = data\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return res\n })\n .catch(err => {\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n timeoutTimer = null\n }\n if (controller) {\n controller = null\n }\n isFunction(fail) && fail(err)\n isFunction(complete) && complete(res)\n err.statusCode = res.statusCode\n err.errMsg = err.message\n return Promise.reject(err)\n })\n if (!p.abort && controller) {\n p.abort = cb => {\n if (controller) {\n cb && cb()\n controller.abort()\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n timeoutTimer = null\n }\n }\n }\n }\n return p\n}\n\nfunction taroInterceptor (chain) {\n return _request(chain.requestParams)\n}\n\nconst link = new Link(taroInterceptor)\n\nexport const request = (<T extends Partial<Taro.request.Option> = TaroGeneral.IAnyObject>(...args: [string | T, T]) => {\n const [url = '', options = {} as T] = args\n if (typeof url === 'string') {\n options.url = url\n } else {\n Object.assign(options, url)\n }\n return link.request(options)\n}) as typeof Taro.request\nexport const addInterceptor = link.addInterceptor.bind(link)\nexport const cleanInterceptors = link.cleanInterceptors.bind(link)\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { SocketTask } from "./socketTask.js";
1
2
  declare function sendSocketMessage(): void;
2
3
  declare function onSocketOpen(): void;
3
4
  declare function onSocketMessage(): void;
@@ -5,4 +6,4 @@ declare function onSocketError(): void;
5
6
  declare function onSocketClose(): void;
6
7
  declare function connectSocket(options?: Taro.connectSocket.Option): Promise<unknown>;
7
8
  declare function closeSocket(): void;
8
- export { sendSocketMessage, onSocketOpen, onSocketMessage, onSocketError, onSocketClose, connectSocket, closeSocket };
9
+ export { sendSocketMessage, onSocketOpen, onSocketMessage, onSocketError, onSocketClose, connectSocket, closeSocket, SocketTask };
@@ -70,5 +70,5 @@ function closeSocket() {
70
70
  console.warn('Deprecated.Please use socketTask.close instead.');
71
71
  }
72
72
 
73
- export { closeSocket, connectSocket, onSocketClose, onSocketError, onSocketMessage, onSocketOpen, sendSocketMessage };
73
+ export { SocketTask, closeSocket, connectSocket, onSocketClose, onSocketError, onSocketMessage, onSocketOpen, sendSocketMessage };
74
74
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/api/network/websocket/index.ts"],"sourcesContent":["import { getParameterError, shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\nimport { SocketTask } from './socketTask'\n\nlet socketTasks: SocketTask[] = []\nlet socketsCounter = 1\n\nexport function sendSocketMessage () {\n console.warn('Deprecated.Please use socketTask.send instead.')\n}\n\nexport function onSocketOpen () {\n console.warn('Deprecated.Please use socketTask.onOpen instead.')\n}\n\nexport function onSocketMessage () {\n console.warn('Deprecated.Please use socketTask.onMessage instead.')\n}\n\nexport function onSocketError () {\n console.warn('Deprecated.Please use socketTask.onError instead.')\n}\n\nexport function onSocketClose () {\n console.warn('Deprecated.Please use socketTask.onClose instead.')\n}\n\nexport function connectSocket (options?: Taro.connectSocket.Option) {\n const name = 'connectSocket'\n\n return new Promise((resolve, reject) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `${name}:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return reject(res)\n }\n const { url, protocols, success, fail, complete } = options as Exclude<typeof options, undefined>\n const handle = new MethodHandler<{\n socketTaskId?: number\n }>({ name, success, fail, complete })\n\n // options.url must be String\n if (typeof url !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'url',\n correct: 'String',\n wrong: url\n })\n }, { resolve, reject })\n }\n\n // options.url must be invalid\n if (!url.startsWith('ws://') && !url.startsWith('wss://')) {\n return handle.fail({\n errMsg: `request:fail invalid url \"${url}\"`\n }, { resolve, reject })\n }\n\n // protocols must be array\n const _protocols = Array.isArray(protocols) ? protocols : null\n\n // 2 connection at most\n if (socketTasks.length >= 5) {\n return handle.fail({\n errMsg: '同时最多发起 5 个 socket 请求,更多请参考文档。'\n }, { resolve, reject })\n }\n\n const task = new SocketTask(url, _protocols)\n task._destroyWhenClose = function () {\n socketTasks = socketTasks.filter(socketTask => socketTask !== this)\n }\n socketTasks.push(task)\n\n handle.success({\n socketTaskId: socketsCounter++\n })\n\n return resolve(task)\n })\n}\n\nexport function closeSocket () {\n console.warn('Deprecated.Please use socketTask.close instead.')\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/api/network/websocket/index.ts"],"sourcesContent":["import { getParameterError, shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\nimport { SocketTask } from './socketTask'\n\nlet socketTasks: SocketTask[] = []\nlet socketsCounter = 1\n\nexport function sendSocketMessage () {\n console.warn('Deprecated.Please use socketTask.send instead.')\n}\n\nexport function onSocketOpen () {\n console.warn('Deprecated.Please use socketTask.onOpen instead.')\n}\n\nexport function onSocketMessage () {\n console.warn('Deprecated.Please use socketTask.onMessage instead.')\n}\n\nexport function onSocketError () {\n console.warn('Deprecated.Please use socketTask.onError instead.')\n}\n\nexport function onSocketClose () {\n console.warn('Deprecated.Please use socketTask.onClose instead.')\n}\n\nexport function connectSocket (options?: Taro.connectSocket.Option) {\n const name = 'connectSocket'\n\n return new Promise((resolve, reject) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `${name}:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return reject(res)\n }\n const { url, protocols, success, fail, complete } = options as Exclude<typeof options, undefined>\n const handle = new MethodHandler<{\n socketTaskId?: number\n }>({ name, success, fail, complete })\n\n // options.url must be String\n if (typeof url !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'url',\n correct: 'String',\n wrong: url\n })\n }, { resolve, reject })\n }\n\n // options.url must be invalid\n if (!url.startsWith('ws://') && !url.startsWith('wss://')) {\n return handle.fail({\n errMsg: `request:fail invalid url \"${url}\"`\n }, { resolve, reject })\n }\n\n // protocols must be array\n const _protocols = Array.isArray(protocols) ? protocols : null\n\n // 2 connection at most\n if (socketTasks.length >= 5) {\n return handle.fail({\n errMsg: '同时最多发起 5 个 socket 请求,更多请参考文档。'\n }, { resolve, reject })\n }\n\n const task = new SocketTask(url, _protocols)\n task._destroyWhenClose = function () {\n socketTasks = socketTasks.filter(socketTask => socketTask !== this)\n }\n socketTasks.push(task)\n\n handle.success({\n socketTaskId: socketsCounter++\n })\n\n return resolve(task)\n })\n}\n\nexport function closeSocket () {\n console.warn('Deprecated.Please use socketTask.close instead.')\n}\n\nexport { SocketTask }\n"],"names":[],"mappings":"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"}
@@ -62,13 +62,17 @@ class Animation {
62
62
  // 属性组合
63
63
  this.rules = [];
64
64
  // transform 对象
65
- this.transform = [`${TRANSFORM}:`];
65
+ this.transform = [];
66
66
  // 组合动画
67
67
  this.steps = [];
68
68
  // 动画 map ----- 永久保留
69
69
  this.animationMap = {};
70
70
  // animationMap 的长度
71
71
  this.animationMapCount = 0;
72
+ // 历史动画
73
+ this.historyAnimations = [];
74
+ // 历史规则
75
+ this.historyRules = [];
72
76
  // 默认值
73
77
  this.setDefault(duration, delay, timingFunction, transformOrigin);
74
78
  this.unit = unit;
@@ -96,9 +100,9 @@ class Animation {
96
100
  if (stepIndex < animStepsMaxIndex) {
97
101
  // 播放下一个关键帧(因为 nerv 和 react 有差异所以 animation & data-animation 都需要写)
98
102
  target.setAttribute(animAttr, `${animName}__${animIndex}--${stepIndex + 1}`);
99
- if (animAttr === 'animation') {
103
+ if (animAttr === 'data-animation') {
100
104
  // Nerv 环境,animation & data-animation 双重保险
101
- target.setAttribute('data-animation', `${animName}__${animIndex}--${stepIndex + 1}`);
105
+ target.setAttribute('animation', `${animName}__${animIndex}--${stepIndex + 1}`);
102
106
  }
103
107
  }
104
108
  }
@@ -116,149 +120,175 @@ class Animation {
116
120
  this.DEFAULT = { duration, delay, timingFunction, transformOrigin };
117
121
  }
118
122
  matrix(a, b, c, d, tx, ty) {
119
- this.transform.push(`matrix(${a}, ${b}, ${c}, ${d}, ${tx}, ${ty})`);
123
+ this.transform.push({ key: 'matrix', transform: `matrix(${a}, ${b}, ${c}, ${d}, ${tx}, ${ty})` });
120
124
  return this;
121
125
  }
122
126
  matrix3d(a1, b1, c1, d1, a2, b2, c2, d2, a3, b3, c3, d3, a4, b4, c4, d4) {
123
- this.transform.push(`matrix3d(${a1}, ${b1}, ${c1}, ${d1}, ${a2}, ${b2}, ${c2}, ${d2}, ${a3}, ${b3}, ${c3}, ${d3}, ${a4}, ${b4}, ${c4}, ${d4})`);
127
+ this.transform.push({
128
+ key: 'matrix3d',
129
+ transform: `matrix3d(${a1}, ${b1}, ${c1}, ${d1}, ${a2}, ${b2}, ${c2}, ${d2}, ${a3}, ${b3}, ${c3}, ${d3}, ${a4}, ${b4}, ${c4}, ${d4})`,
130
+ });
124
131
  return this;
125
132
  }
126
133
  rotate(angle) {
127
- this.transform.push(`rotate(${angle}deg)`);
134
+ this.transform.push({ key: 'rotate', transform: `rotate(${angle}deg)` });
128
135
  return this;
129
136
  }
130
137
  rotate3d(x, y, z, angle) {
131
138
  if (typeof y !== 'number') {
132
- this.transform.push(`rotate3d(${x})`);
139
+ this.transform.push({ key: 'rotate3d', transform: `rotate3d(${x})` });
133
140
  }
134
141
  else {
135
- this.transform.push(`rotate3d(${x}, ${y || 0}, ${z || 0}, ${angle || 0}deg)`);
142
+ this.transform.push({ key: 'rotate3d', transform: `rotate3d(${x}, ${y || 0}, ${z || 0}, ${angle || 0}deg)` });
136
143
  }
137
144
  return this;
138
145
  }
139
146
  rotateX(angle) {
140
- this.transform.push(`rotateX(${angle}deg)`);
147
+ this.transform.push({ key: 'rotateX', transform: `rotateX(${angle}deg)` });
141
148
  return this;
142
149
  }
143
150
  rotateY(angle) {
144
- this.transform.push(`rotateY(${angle}deg)`);
151
+ this.transform.push({ key: 'rotateY', transform: `rotateY(${angle}deg)` });
145
152
  return this;
146
153
  }
147
154
  rotateZ(angle) {
148
- this.transform.push(`rotateZ(${angle}deg)`);
155
+ this.transform.push({ key: 'rotateZ', transform: `rotateZ(${angle}deg)` });
149
156
  return this;
150
157
  }
151
158
  scale(x, y) {
152
- this.transform.push(`scale(${x}, ${y})`);
159
+ const scaleY = (typeof y !== 'undefined' && y !== null) ? y : x;
160
+ this.transform.push({ key: 'scale', transform: `scale(${x}, ${scaleY})` });
153
161
  return this;
154
162
  }
155
163
  scale3d(x, y, z) {
156
- this.transform.push(`scale3d(${x}, ${y}, ${z})`);
164
+ this.transform.push({ key: 'scale3d', transform: `scale3d(${x}, ${y}, ${z})` });
157
165
  return this;
158
166
  }
159
167
  scaleX(scale) {
160
- this.transform.push(`scaleX(${scale})`);
168
+ this.transform.push({ key: 'scaleX', transform: `scaleX(${scale})` });
161
169
  return this;
162
170
  }
163
171
  scaleY(scale) {
164
- this.transform.push(`scaleY(${scale})`);
172
+ this.transform.push({ key: 'scaleY', transform: `scaleY(${scale})` });
165
173
  return this;
166
174
  }
167
175
  scaleZ(scale) {
168
- this.transform.push(`scaleZ(${scale})`);
176
+ this.transform.push({ key: 'scaleZ', transform: `scaleZ(${scale})` });
169
177
  return this;
170
178
  }
171
179
  skew(x, y) {
172
- this.transform.push(`skew(${x}, ${y})`);
180
+ this.transform.push({ key: 'skew', transform: `skew(${x}deg, ${y}deg)` });
173
181
  return this;
174
182
  }
175
183
  skewX(angle) {
176
- this.transform.push(`skewX(${angle})`);
184
+ this.transform.push({ key: 'skewX', transform: `skewX(${angle}deg)` });
177
185
  return this;
178
186
  }
179
187
  skewY(angle) {
180
- this.transform.push(`skewY(${angle})`);
188
+ this.transform.push({ key: 'skewY', transform: `skewY(${angle}deg)` });
181
189
  return this;
182
190
  }
183
191
  translate(x, y) {
184
192
  [x, y] = this.transformUnit(x, y);
185
- this.transform.push(`translate(${x}, ${y})`);
193
+ this.transform.push({ key: 'translate', transform: `translate(${x}, ${y})` });
186
194
  return this;
187
195
  }
188
196
  translate3d(x, y, z) {
189
197
  [x, y, z] = this.transformUnit(x, y, z);
190
- this.transform.push(`translate3d(${x}, ${y}, ${z})`);
198
+ this.transform.push({ key: 'translate3d', transform: `translate3d(${x}, ${y}, ${z})` });
191
199
  return this;
192
200
  }
193
201
  translateX(translate) {
194
202
  [translate] = this.transformUnit(translate);
195
- this.transform.push(`translateX(${translate})`);
203
+ this.transform.push({ key: 'translateX', transform: `translateX(${translate})` });
196
204
  return this;
197
205
  }
198
206
  translateY(translate) {
199
207
  [translate] = this.transformUnit(translate);
200
- this.transform.push(`translateY(${translate})`);
208
+ this.transform.push({ key: 'translateY', transform: `translateY(${translate})` });
201
209
  return this;
202
210
  }
203
211
  translateZ(translate) {
204
212
  [translate] = this.transformUnit(translate);
205
- this.transform.push(`translateZ(${translate})`);
213
+ this.transform.push({ key: 'translateZ', transform: `translateZ(${translate})` });
206
214
  return this;
207
215
  }
208
216
  opacity(value) {
209
- this.rules.push(`opacity: ${value}`);
217
+ this.rules.push({ key: 'opacity', rule: `opacity: ${value}` });
210
218
  return this;
211
219
  }
212
220
  backgroundColor(value) {
213
- this.rules.push(`background-color: ${value}`);
221
+ this.rules.push({ key: 'backgroundColor', rule: `background-color: ${value}` });
214
222
  return this;
215
223
  }
216
224
  width(value) {
217
225
  [value] = this.transformUnit(value);
218
- this.rules.push(`width: ${value}`);
226
+ this.rules.push({ key: 'width', rule: `width: ${value}` });
219
227
  return this;
220
228
  }
221
229
  height(value) {
222
230
  [value] = this.transformUnit(value);
223
- this.rules.push(`height: ${value}`);
231
+ this.rules.push({ key: 'height', rule: `height: ${value}` });
224
232
  return this;
225
233
  }
226
234
  top(value) {
227
235
  [value] = this.transformUnit(value);
228
- this.rules.push(`top: ${value}`);
236
+ this.rules.push({ key: 'top', rule: `top: ${value}` });
229
237
  return this;
230
238
  }
231
239
  right(value) {
232
240
  [value] = this.transformUnit(value);
233
- this.rules.push(`right: ${value}`);
241
+ this.rules.push({ key: 'right', rule: `right: ${value}` });
234
242
  return this;
235
243
  }
236
244
  bottom(value) {
237
245
  [value] = this.transformUnit(value);
238
- this.rules.push(`bottom: ${value}`);
246
+ this.rules.push({ key: 'bottom', rule: `bottom: ${value}` });
239
247
  return this;
240
248
  }
241
249
  left(value) {
242
250
  [value] = this.transformUnit(value);
243
- this.rules.push(`left: ${value}`);
251
+ this.rules.push({ key: 'left', rule: `left: ${value}` });
244
252
  return this;
245
253
  }
246
254
  // 关键帧载入
247
255
  step(arg = {}) {
248
256
  const { DEFAULT } = this;
249
- const { duration = DEFAULT.duration, delay = DEFAULT.delay, timingFunction = DEFAULT.timingFunction, transformOrigin = DEFAULT.transformOrigin } = arg;
257
+ const { duration = DEFAULT.duration, delay = DEFAULT.delay, timingFunction = DEFAULT.timingFunction, transformOrigin = DEFAULT.transformOrigin, } = arg;
250
258
  // 生成一条 transition 动画
259
+ this.transform.map((t0) => {
260
+ const index = this.historyAnimations.findIndex((t1) => t1.key === t0.key);
261
+ if (index === -1) {
262
+ this.historyAnimations.push(t0);
263
+ }
264
+ else {
265
+ this.historyAnimations[index] = t0;
266
+ }
267
+ });
268
+ const transforms = this.historyAnimations.map((t) => t.transform);
269
+ const transformSequence = transforms.length > 0 ? `${TRANSFORM}:${transforms.join(' ')}!important` : '';
270
+ this.rules.map((r0) => {
271
+ const index = this.historyRules.findIndex((r1) => r1.key === r0.key);
272
+ if (index === -1) {
273
+ this.historyRules.push(r0);
274
+ }
275
+ else {
276
+ this.historyRules[index] = r0;
277
+ }
278
+ });
279
+ const rules = this.historyRules.map((t) => t.rule);
280
+ const ruleSequence = rules.length > 0 ? rules.map((rule) => `${rule}!important`).join(';') : '';
251
281
  this.steps.push([
252
- this.rules.map(rule => `${rule}!important`).join(';'),
253
- `${this.transform.join(' ')}!important`,
282
+ ruleSequence,
283
+ transformSequence,
254
284
  `${TRANSFORM}-origin: ${transformOrigin}`,
255
- `transition: all ${duration}ms ${timingFunction} ${delay}ms`
285
+ `transition: all ${duration}ms ${timingFunction} ${delay}ms`,
256
286
  ]
257
- .filter(item => item !== '' && item !== `${TRANSFORM}:`)
287
+ .filter((item) => item !== '')
258
288
  .join(';'));
259
289
  // 清空 rules 和 transform
260
290
  this.rules = [];
261
- this.transform = [`${TRANSFORM}:`];
291
+ this.transform = [];
262
292
  return this;
263
293
  }
264
294
  // 创建底层数据