@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.
- package/dist/api/base/index.d.ts +1 -1
- package/dist/api/base/index.js +1 -1
- package/dist/api/base/index.js.map +1 -1
- package/dist/api/device/clipboard.js +6 -0
- package/dist/api/device/clipboard.js.map +1 -1
- package/dist/api/device/network.js.map +1 -1
- package/dist/api/index.js +1 -0
- package/dist/api/index.js.map +1 -1
- package/dist/api/location/chooseLocation.js +2 -2
- package/dist/api/location/chooseLocation.js.map +1 -1
- package/dist/api/network/request/index.js +9 -7
- package/dist/api/network/request/index.js.map +1 -1
- package/dist/api/network/websocket/index.d.ts +2 -1
- package/dist/api/network/websocket/index.js +1 -1
- package/dist/api/network/websocket/index.js.map +1 -1
- package/dist/api/ui/animation/index.js +68 -38
- package/dist/api/ui/animation/index.js.map +1 -1
- package/dist/api/ui/interaction/actionSheet.d.ts +12 -0
- package/dist/api/ui/interaction/actionSheet.js +34 -12
- package/dist/api/ui/interaction/actionSheet.js.map +1 -1
- package/dist/api/ui/interaction/index.js +2 -1
- package/dist/api/ui/interaction/index.js.map +1 -1
- package/dist/api/ui/interaction/modal.d.ts +2 -0
- package/dist/api/ui/interaction/modal.js +3 -1
- package/dist/api/ui/interaction/modal.js.map +1 -1
- package/dist/api/ui/navigation-bar/index.js +3 -2
- package/dist/api/ui/navigation-bar/index.js.map +1 -1
- package/dist/api/wxml/IntersectionObserver.js +2 -1
- package/dist/api/wxml/IntersectionObserver.js.map +1 -1
- package/dist/api/wxml/index.js.map +1 -1
- package/dist/api/wxml/nodesRef.js +5 -2
- package/dist/api/wxml/nodesRef.js.map +1 -1
- package/dist/index.cjs.d.ts +26 -2
- package/dist/index.cjs.js +2130 -2059
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.d.ts +26 -2
- package/dist/index.esm.js +2131 -2061
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/handler.js +4 -0
- package/dist/utils/handler.js.map +1 -1
- package/package.json +7 -8
package/dist/api/base/index.d.ts
CHANGED
|
@@ -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):
|
|
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";
|
package/dist/api/base/index.js
CHANGED
|
@@ -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;
|
|
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":"
|
|
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":";;;;;;AAAA;;;;;AAKG;AASH,MAAM,sBAAsB,GAAG,gBAAgB,CAAA;AAE/C,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAK;;AACrC,IAAA,UAAU,CAAC;AACT,QAAA,GAAG,EAAE,sBAAsB;QAC3B,IAAI,EAAE,MAAA,MAAM,CAAC,YAAY,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,EAAE;AACxC,KAAA,CAAC,CAAC,KAAK,CAAC,CAAC,IAAG;AACX,QAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAClB,KAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF;;AAEG;AACI,MAAM,gBAAgB,GAAiC,CAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAI,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AACxG,IAAA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IACvF,IAAI;AACF,QAAA,cAAc,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAA;AAC5C;;;;AAIG;AACH,QAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;AACnD,YAAA,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAA;AACxB,YAAA,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAA;AACrB,YAAA,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAA;AACpC,YAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAA;AAC9B,YAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAA;AAChC,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;YACnC,QAAQ,CAAC,MAAM,EAAE,CAAA;YACjB,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;AACpD,YAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;AAC5B,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;AACpC,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;AACnE,SAAA;AACD,QAAA,SAAS,CAAC;AACR,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC,CAAA;AACF,QAAA,OAAO,MAAM,CAAC,OAAO,EAAE,CAAA;AACxB,KAAA;AAAC,IAAA,OAAO,CAAC,EAAE;AACV,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAC1C,KAAA;AACH,CAAC,EAAA;AAED;;AAEG;AACI,MAAM,gBAAgB,GAAiC,CAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAI,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AACvG,IAAA,MAAM,MAAM,GAAG,IAAI,aAAa,CAA8C,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IACpI,IAAI;AACF,QAAA,MAAM,IAAI,GAAW,cAAc,CAAC,sBAAsB,CAAC,CAAA;QAC3D,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;AAChC,KAAA;AAAC,IAAA,OAAO,CAAC,EAAE;AACV,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAC1C,KAAA;AACH,CAAC;;;;"}
|
|
@@ -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()\
|
|
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';
|
package/dist/api/index.js.map
CHANGED
|
@@ -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 (
|
|
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
|
|
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":";;;;;AAOA,IAAI,SAAS,GAA0B,IAAI,CAAA;AAC3C,SAAS,qBAAqB,CAAE,OAAO,EAAE,GAAG,GAAG,eAAe,EAAE,MAAA,GAAgD,EAAE,EAAA;;AAChH,IAAA,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAc,GAAA,MAAM,EAAf,IAAI,GAAK,MAAA,CAAA,MAAM,EAAzC,CAAA,UAAA,EAAA,WAAA,CAAgC,CAAS,CAAA;IAC/C,MAAM,KAAK,GACT,MAAA,CAAA,MAAA,CAAA,EAAA,GAAG,EACH,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAG,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,SAAS,CAAE,CAAA,GAAG,SAAS,EAChH,OAAO,EAAE,OAAO,EAAA,EACb,IAAI,CACR,CAAA;IACD,IAAI,CAAC,SAAS,EAAE;AACd,QAAA,MAAM,IAAI,GAAG,CAAA;;;;;;;AAO2F,0GAAA,EAAA,SAAS,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;;CAErK,CAAA;AACG,QAAA,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;AACzC,QAAA,SAAS,CAAC,SAAS,GAAG,IAAI,CAAA;AAC3B,KAAA;IACD,MAAM,IAAI,GAAmB,SAAS,CAAC,aAAa,CAAC,uBAAuB,CAAmB,CAAA;AAE/F,IAAA,SAAS,IAAI,GAAA;QACX,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAA;AACtB,SAAC,CAAC,CAAA;KACH;AAED,IAAA,SAAS,IAAI,GAAA;AACX,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAA;KACxB;AAED,IAAA,SAAS,IAAI,GAAA;AACX,QAAA,IAAI,EAAE,CAAA;AACN,QAAA,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;KAC9B;AAED,IAAA,SAAS,MAAM,GAAA;AACb,QAAA,IAAI,EAAE,CAAA;AACN,QAAA,OAAO,EAAE,CAAA;KACV;AAED,IAAA,SAAS,MAAM,GAAA;AACb,QAAA,SAAS,aAAT,SAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAT,SAAS,CAAE,MAAM,EAAE,CAAA;QACnB,SAAS,GAAG,IAAI,CAAA;AAChB,QAAA,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;KAC7C;AAED,IAAA,CAAA,EAAA,GAAA,SAAS,CAAC,aAAa,CAAC,4BAA4B,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AACtF,IAAA,CAAA,EAAA,GAAA,SAAS,CAAC,aAAa,CAAC,8BAA8B,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;AAE1F,IAAA,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IAEzC,OAAO;QACL,IAAI;QACJ,MAAM;QACN,SAAS;KACV,CAAA;AACH,CAAC;AAED;;AAEG;AACU,MAAA,cAAc,GAA+B,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,KAAI;AACtG,IAAA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IACrF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;QACrC,MAAM,cAAc,GAAuD,EAAE,CAAA;AAC7E,QAAA,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE;AAC1C,YAAA,OAAO,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAA;YACtF,OAAO,MAAM,CAAC,IAAI,CAAC;AACjB,gBAAA,MAAM,EAAE,wBAAwB;AACjC,aAAA,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;AACxB,SAAA;QAED,MAAM,GAAG,GAAG,eAAe,CAAA;AAE3B,QAAA,MAAM,SAAS,GAAG,KAAK,IAAG;;AAExB,YAAA,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAA;;AAGtB,YAAA,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,gBAAgB;gBAAE,OAAM;AAEnD,YAAA,cAAc,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAA;AACjC,YAAA,cAAc,CAAC,OAAO,GAAG,GAAG,CAAC,UAAU,CAAA;YACvC,cAAc,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAA;YACxC,cAAc,CAAC,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAA;AAC3C,SAAC,CAAA;AAED,QAAA,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,IAAG;YAC1C,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;YACvD,UAAU,CAAC,MAAK;gBACd,OAAO,CAAC,MAAM,EAAE,CAAA;aACjB,EAAE,GAAG,CAAC,CAAA;AACP,YAAA,IAAI,GAAG,EAAE;AACP,gBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;AAC7C,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,SAAS,EAAE;AACvD,oBAAA,OAAO,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;AAC3D,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;AAC5C,iBAAA;AACF,aAAA;AACH,SAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;QAEhB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAE5C,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;QACpD,OAAO,CAAC,IAAI,EAAE,CAAA;AAChB,KAAC,CAAC,CAAA;AACJ;;;;"}
|
|
@@ -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
|
|
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
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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 = [
|
|
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('
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
253
|
-
|
|
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 !== ''
|
|
287
|
+
.filter((item) => item !== '')
|
|
258
288
|
.join(';'));
|
|
259
289
|
// 清空 rules 和 transform
|
|
260
290
|
this.rules = [];
|
|
261
|
-
this.transform = [
|
|
291
|
+
this.transform = [];
|
|
262
292
|
return this;
|
|
263
293
|
}
|
|
264
294
|
// 创建底层数据
|