diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7c64f52 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +# Dependency directories +node_modules +*.log* +*.lock +.eslintrc.js +package-lock.json +.history +dist/ +h5/ +dist.zip +wxAppPatient.zip diff --git a/TUIService/TUIKit/.github/README.md b/TUIService/TUIKit/.github/README.md new file mode 100644 index 0000000..869844c --- /dev/null +++ b/TUIService/TUIKit/.github/README.md @@ -0,0 +1,374 @@ +## 关于腾讯云即时通信 IM + +腾讯云即时通信(Instant Messaging,IM)基于 QQ 底层 IM 能力开发,仅需植入 SDK 即可轻松集成聊天、会话、群组、资料管理能力,帮助您实现文字、图片、短语音、短视频等富媒体消息收发,全面满足通信需要。 + +## 关于 chat-uikit-wechat + +chat-uikit-wechat 是基于腾讯云 IM SDK 的一款 小程序 UI 组件库,它提供了一些通用的 UI 组件,包含会话、聊天、群组、音视频通话等功能。基于 UI 组件您可以像搭积木一样快速搭建起自己的业务逻辑。 +chat-uikit-wechat 中的组件在实现 UI 功能的同时,会调用 IM SDK 相应的接口实现 IM 相关逻辑和数据的处理,因而开发者在使用 chat-uikit-wechat 时只需关注自身业务或个性化扩展即可。 +chat-uikit-wechat 效果如下图所示: + + +本文介绍如何快速集成腾讯云 Web IM SDK 的 VUE UI 组件库。对于其他平台,请参考文档: + +[**chat-uikit-vue**](https://github.com/TencentCloud/chat-uikit-vue) + +[**chat-uikit-react**](https://github.com/TencentCloud/chat-uikit-react) + +[**chat-uikit-uniapp**](https://github.com/TencentCloud/chat-uikit-uniapp) + +[**chat-uikit-ios**](https://github.com/TencentCloud/chat-uikit-ios) + +[**chat-uikit-android**](https://github.com/TencentCloud/chat-uikit-android) + +[**chat-uikit-flutter**](https://github.com/TencentCloud/chat-uikit-flutter) + + + +## 发送您的第一条消息 + +### 开发环境要求 + +- 微信开发者工具 +- JavaScript + + +### TUIKit 源码集成 - github方式集成 + +#### 步骤1:创建项目 + +在微信开发者工具上创建一个小程序项目,选择不使用模版。 + + + +#### 步骤2:下载 TUIKit 组件 + +在微信开发者工具内新建终端。 + + + +通过 `git clone` 方式下载 TUIKit 组件及其相关依赖, 为了方便您的后续使用,建议您通过以下命令将整个 `chat-uikit-wechat` 复制到您项目的根目录下,并重命名为 TUIKit: + + + ```shell + # 项目根目录命令行执行 + git clone https://github.com/TencentCloud/chat-uikit-wechat.git + + +# 移动并重命名到项目的根目录下 + # macOS + mv chat-uikit-wechat ./TUIKit + # windows + move chat-uikit-wechat .\TUIKit + + ``` + +成功后目录结构如图所示: + + +#### 步骤3:引入 TUIKit 组件 + +##### 方式一: 主包引入 (适用于业务逻辑简单的小程序) +在 page 页面引用 TUIKit 组件,为此您需要分别修改 index.wxml 、index.js 和 index.json。 + +wxml 文件 + + + +```javascript + + + +``` + +js 文件 + + + +```javascript +import TIM from '../../TUIKit/lib/tim-wx-sdk'; +import { genTestUserSig } from '../../TUIKit/debug/GenerateTestUserSig'; +import TIMUploadPlugin from '../../TUIKit/lib/tim-upload-plugin'; +import TIMProfanityFilterPlugin from '../../TUIKit/lib/tim-profanity-filter-plugin'; + + +Page({ + data: { + config: { + userID: '', //User ID + SDKAPPID: 0, // Your SDKAppID + SECRETKEY: '', // Your secretKey + EXPIRETIME: 604800, + } + }, + + onLoad() { + const userSig = genTestUserSig(this.data.config).userSig + wx.$TUIKit = TIM.create({ + SDKAppID: this.data.config.SDKAPPID + }) + wx.$chat_SDKAppID = this.data.config.SDKAPPID; + wx.$chat_userID = this.data.config.userID; + wx.$chat_userSig = userSig; + wx.$TUIKitTIM = TIM; + wx.$TUIKit.registerPlugin({ 'tim-upload-plugin': TIMUploadPlugin }); + wx.$TUIKit.registerPlugin({ 'tim-profanity-filter-plugin': TIMProfanityFilterPlugin }); + wx.$TUIKit.login({ + userID: this.data.config.userID, + userSig + }); + wx.setStorage({ + key: 'currentUserID', + data: [], + }); + wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.SDK_READY, this.onSDKReady,this); + }, + onUnload() { + wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.SDK_READY, this.onSDKReady,this); + }, + onSDKReady() { + const TUIKit = this.selectComponent('#TUIKit'); + TUIKit.init(); + } +}); +``` + json 文件 + + + +```javascript +{ + "usingComponents": { + "TUIKit": "../../TUIKit/index" + }, + "navigationStyle": "custom" +} +``` + +##### 方式二:分包引入 (适用于业务逻辑复杂,按需载入的小程序) +小程序分包有如下好处: +- 规避所有逻辑代码放主包,导致主包文件体积超限问题 +- 支持按需载入,降低小程序载入耗时和页面渲染耗时 +- 支持更加复杂的功能 +分包流程: +1.在自己项目里创建分包,本文以 TUI-CustomerService 为例。和 pages 同级创建 TUI-CustomerService 文件夹,并在文件夹内部创建 pages 文件夹并且在其下创建 index 页面。 +创建后的目录结构: + + + +2.在 app.json 文件注册分包。 + +```javascript +{ + "pages": [ + "pages/index/index" + ], + "subPackages": [ + { + "root": "TUI-CustomerService", + "name": "TUI-CustomerService", + "pages": [ + "pages/index" + ], + "independent": false + } + ], + "window": { + "backgroundTextStyle": "light", + "navigationBarBackgroundColor": "#fff", + "navigationBarTitleText": "Weixin", + "navigationBarTextStyle": "black" + }, + "style": "v2", + "sitemapLocation": "sitemap.json" +} +``` +3.将 TUIKit 文件夹复制到分包目录下。 +成功后的目录结构: + + + +4.将 TUIKit 文件夹下的 debug 和 lib 文件夹复制到主包。 + + + +5. 在分包内引用 TUIKit组件,为此需要分别修改分包内部 index.wxml 、index.js 、index.json 文件,以及 app.js 文件。 + +wxml 文件 + + + +```javascript + + + +``` + + js 文件 + + + +```javascript +Page({ + +// 其他代码 + + onLoad() { + const TUIKit = this.selectComponent('#TUIKit'); + TUIKit.init(); + }, +}); +``` + + json 文件 + + + +```javascript + { + "usingComponents": { + "TUIKit": "../TUIKit/index" + }, + "navigationStyle": "custom" + } +``` +app.js 文件 + + + +```javascript +import TIM from './lib/tim-wx-sdk'; +import TIMUploadPlugin from './lib/tim-upload-plugin'; +import TIMProfanityFilterPlugin from './lib/tim-profanity-filter-plugin'; +import { genTestUserSig } from './debug/GenerateTestUserSig'; +App({ + onLaunch: function () { + wx.$TUIKit = TIM.create({ + SDKAppID: this.globalData.config.SDKAPPID, + }); + const userSig = genTestUserSig(this.globalData.config).userSig + wx.$chat_SDKAppID = this.globalData.config.SDKAPPID; + wx.$TUIKitTIM = TIM; + wx.$chat_userID = this.globalData.config.userID; + wx.$chat_userSig = userSig; + wx.$TUIKit.registerPlugin({ 'tim-upload-plugin': TIMUploadPlugin }); + wx.$TUIKit.registerPlugin({ 'tim-profanity-filter-plugin': TIMProfanityFilterPlugin }); + wx.$TUIKit.login({ + userID: this.globalData.config.userID, + userSig + }); + // 监听系统级事件 + wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.SDK_READY, this.onSDKReady); + }, + globalData: { + config: { + userID: '', //User ID + SECRETKEY: '', // Your secretKey + SDKAPPID: 0, // Your SDKAppID + EXPIRETIME: 604800, + }, + }, + onSDKReady() { + }, +}); +``` +6. 按需载入分包,您需要修改主包 pages 下的 index.wxml 、index.js。 + +wxml 文件 + + + +```javascript + + 载入腾讯云 IM 分包 + +``` + +js 文件 + + + +```javascript +Page({ + handleJump() { + app.method.navigateTo({ + url: '../../TUI-CustomerService/pages/index', + }) + } +}) +``` + +#### 步骤4: 获取 SDKAppID 、密钥与 userID + +设置步骤3示例代码中的相关参数 SDKAPPID、SECRETKEY 以及 userID ,其中 SDKAppID 和密钥等信息,可通过 [即时通信 IM 控制台](https://console.cloud.tencent.com/im) 获取,单击目标应用卡片,进入应用的基础配置页面。例如: + +userID 信息,可通过 [即时通信 IM 控制台](https://console.cloud.tencent.com/im) 进行创建和获取,单击目标应用卡片,进入应用的账号管理页面,即可创建账号并获取 userID。例如: + + +### 步骤5:编译小程序 + +- 请在本地设置里面勾选上“不校验合法域名、web-view (业务域名)、 TLS 版本以及 HTTPS 证书”。 + + + +- 点击【清缓存】->【全部清除】,避免开发者工具的缓存造成渲染异常。 + + + +- 点击【编译】。 + + + +### 步骤6:发送您的第一条消息 + + + +### 常见问题 +#### 1. 什么是 UserSig? + +UserSig 是用户登录即时通信 IM 的密码,其本质是对 UserID 等信息加密后得到的密文。 + +#### 2. 如何生成 UserSig? + + UserSig 签发方式是将 UserSig 的计算代码集成到您的服务端,并提供面向项目的接口,在需要 UserSig 时由您的项目向业务服务器发起请求获取动态 UserSig。更多详情请参见 [服务端生成 UserSig](https://cloud.tencent.com/document/product/269/32688#GeneratingdynamicUserSig)。 + +> ! +> +> 本文示例代码采用的获取 UserSig 的方案是在客户端代码中配置 SECRETKEY,该方法中 SECRETKEY 很容易被反编译逆向破解,一旦您的密钥泄露,攻击者就可以盗用您的腾讯云流量,因此**该方法仅适合本地跑通功能调试**。 正确的 UserSig 签发方式请参见上文。 + +### 3. 小程序如果需要上线或者部署正式环境怎么办? +请在**微信公众平台**>**开发**>**开发管理**>**开发设置**>**服务器域名**中进行域名配置: + +从v2.11.2起 SDK 支持了 WebSocket,WebSocket 版本须添加以下域名到 **socket 合法域名**: + +| 域名 | 说明 | 是否必须 | +|-------|---------|----| +|`wss://wss.im.qcloud.com`| Web IM 业务域名 | 必须| +|`wss://wss.tim.qq.com`| Web IM 业务域名 | 必须| + +将以下域名添加到 **request 合法域名**: + +| 域名 | 说明 | 是否必须 | +|-------|---------|----| +|`https://web.sdk.qcloud.com`| Web IM 业务域名 | 必须| +|`https://webim.tim.qq.com` | Web IM 业务域名 | 必须| +|`https://api.im.qcloud.com` | Web IM 业务域名 | 必须| + + +将以下域名添加到 **uploadFile 合法域名**: + +| 域名 | 说明 | 是否必须 | +|-------|---------|----| +|`https://cos.ap-shanghai.myqcloud.com` | 文件上传域名 | 必须| +|`https://cos.ap-shanghai.tencentcos.cn` | 文件上传域名 | 必须| +|`https://cos.ap-guangzhou.myqcloud.com` | 文件上传域名 | 必须| + + +将以下域名添加到 **downloadFile 合法域名**: + +| 域名 | 说明 | 是否必须 | +|-------|---------|----| +|`https://cos.ap-shanghai.myqcloud.com` | 文件下载域名 | 必须| +|`https://cos.ap-shanghai.tencentcos.cn` | 文件下载域名 | 必须| +|`https://cos.ap-guangzhou.myqcloud.com` | 文件下载域名 | 必须| + diff --git a/TUIService/TUIKit/CHANGELOG.md b/TUIService/TUIKit/CHANGELOG.md new file mode 100644 index 0000000..f8b50c5 --- /dev/null +++ b/TUIService/TUIKit/CHANGELOG.md @@ -0,0 +1,37 @@ +## 1.0.12 (2023-1-4) +### 新增 +- 支持本地消息审核[需在控制台开启](https://console.cloud.tencent.com/im/local-audit-setting) +### 修复 +- 修复发送图片重复问题 +- 修复群提示消息展示问题 + +## 1.0.10 (2022-12-10) +### 新增 +- 支持群通话[音视频通话](https://cloud.tencent.com/document/product/269/68378) +### 修复 +- 修复已知问题,提升稳定性 + +## 1.0.8 (2022-11-20) +### 新增 +- 支持 github 仓库形式接入源码 +### 修复 +- 修复已知问题,提升稳定性 + + +## 1.0.5 (2022-10-10) + +### 新增 +- 支持集成 1V1 音视频通话[音视频通话](https://cloud.tencent.com/document/product/269/68378) +- 提供分包接入解决方案 +### 修复 +- 修复已知问题,提升稳定性 + +## 1.0.0 (2022-09-15) + +- 支持组件形式集成 + +### 新增 +- [TUIKit界面库 - 小程序](https://cloud.tencent.com/document/product/269/79721) +- [集成基础功能 - 小程序](https://cloud.tencent.com/document/product/269/62768) +- [设置界面风格 - 小程序](https://cloud.tencent.com/document/product/269/79083) +- [添加自定义消息 - 小程序](https://cloud.tencent.com/document/product/269/62789) \ No newline at end of file diff --git a/TUIService/TUIKit/README.md b/TUIService/TUIKit/README.md new file mode 100644 index 0000000..8eaa676 --- /dev/null +++ b/TUIService/TUIKit/README.md @@ -0,0 +1,358 @@ +## 关于腾讯云即时通信 IM + +腾讯云即时通信(Instant Messaging,IM)基于 QQ 底层 IM 能力开发,仅需植入 SDK 即可轻松集成聊天、会话、群组、资料管理能力,帮助您实现文字、图片、短语音、短视频等富媒体消息收发,全面满足通信需要。 + +## 关于 chat-uikit-wechat + +chat-uikit-wechat 是基于腾讯云 IM SDK 的一款 小程序 UI 组件库,它提供了一些通用的 UI 组件,包含会话、聊天、群组、音视频通话等功能。基于 UI 组件您可以像搭积木一样快速搭建起自己的业务逻辑。 +chat-uikit-wechat 中的组件在实现 UI 功能的同时,会调用 IM SDK 相应的接口实现 IM 相关逻辑和数据的处理,因而开发者在使用 chat-uikit-wechat 时只需关注自身业务或个性化扩展即可。 +chat-uikit-wechat 效果如下图所示: + + + +## 发送您的第一条消息 + +### 开发环境要求 + +- 微信开发者工具 +- JavaScript +- node(12.13.0 <= node版本 <= 17.0.0, 推荐使用 Node.js 官方 LTS 版本 16.17.0) +- npm(版本请与 node 版本匹配) + +### TUIKit 源码集成 + +#### 步骤1:创建项目 + +在微信开发者工具上创建一个小程序项目,选择不使用模版。 + + + +#### 步骤2:下载 TUIKit 组件 + +微信开发者工具创建的小程序不会默认创建 package.json 文件,因此您需要先创建 package.json 文件。新建终端,如下: + + + +输入: + +```javascript +npm init +``` +然后通过 npm 方式下载 TUIKit 组件, 为了方便您后续的拓展,建议您将 TUIKit 组件复制到自己的小程序目录下: + +macOS端 +```javascript +npm i @tencentcloud/chat-uikit-wechat +``` +```javascript +mkdir -p ./TUIKit && cp -r node_modules/@tencentcloud/chat-uikit-wechat/ ./TUIKit +``` +Windows端 +```javascript +npm i @tencentcloud/chat-uikit-wechat +``` +```javascript +xcopy node_modules\@tencentcloud\chat-uikit-wechat .\TUIKit /i /e +``` +成功后目录结构如图所示: + + +#### 步骤3:引入 TUIKit 组件 + +##### 方式一: 主包引入 (适用于业务逻辑简单的小程序) +在 page 页面引用 TUIKit 组件,为此您需要分别修改 index.wxml 、index.js 和 index.json。 + +wxml 文件 + + + +```javascript + + + +``` + +js 文件 + + + +```javascript +import TIM from '../../TUIKit/lib/tim-wx-sdk'; +import { genTestUserSig } from '../../TUIKit/debug/GenerateTestUserSig'; +import TIMUploadPlugin from '../../TUIKit/lib/tim-upload-plugin'; +import TIMProfanityFilterPlugin from '../../TUIKit/lib/tim-profanity-filter-plugin'; + +Page({ + data: { + config: { + userID: '', //User ID + SDKAPPID: 0, // Your SDKAppID + SECRETKEY: '', // Your secretKey + EXPIRETIME: 604800, + } + }, + + onLoad() { + const userSig = genTestUserSig(this.data.config).userSig + wx.$TUIKit = TIM.create({ + SDKAppID: this.data.config.SDKAPPID + }) + wx.$chat_SDKAppID = this.data.config.SDKAPPID; + wx.$chat_userID = this.data.config.userID; + wx.$chat_userSig = userSig; + wx.$TUIKitTIM = TIM; + wx.$TUIKit.registerPlugin({ 'tim-upload-plugin': TIMUploadPlugin }); + wx.$TUIKit.registerPlugin({ 'tim-profanity-filter-plugin': TIMProfanityFilterPlugin }); + wx.$TUIKit.login({ + userID: this.data.config.userID, + userSig + }); + wx.setStorage({ + key: 'currentUserID', + data: [], + }); + wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.SDK_READY, this.onSDKReady,this); + }, + onUnload() { + wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.SDK_READY, this.onSDKReady,this); + }, + onSDKReady() { + const TUIKit = this.selectComponent('#TUIKit'); + TUIKit.init(); + } +}); +``` + json 文件 + + + +```javascript +{ + "usingComponents": { + "TUIKit": "../../TUIKit/index" + }, + "navigationStyle": "custom" +} +``` + +##### 方式二:分包引入 (适用于业务逻辑复杂,按需载入的小程序) +小程序分包有如下好处: +- 规避所有逻辑代码放主包,导致主包文件体积超限问题 +- 支持按需载入,降低小程序载入耗时和页面渲染耗时 +- 支持更加复杂的功能 +分包流程: +1.在自己项目里创建分包,本文以 TUI—CustomerService 为例。和 pages 同级创建 TUI—CustomerService 文件夹,并在文件夹内部创建 pages 文件夹并且其下创建 index 页面。 +创建后的目录结构: + + +2.在 app.json 文件注册分包。 + +```javascript +{ + "pages": [ + "pages/index/index" + ], + "subPackages": [ + { + "root": "TUI-CustomerService", + "name": "TUI-CustomerService", + "pages": [ + "pages/index" + ], + "independent": false + } + ], + "window": { + "backgroundTextStyle": "light", + "navigationBarBackgroundColor": "#fff", + "navigationBarTitleText": "Weixin", + "navigationBarTextStyle": "black" + }, + "style": "v2", + "sitemapLocation": "sitemap.json" +} +``` +3.将 TUIKit 文件夹复制到分包目录下。 +成功后的目录结构: + + +4.将 TUIKit 文件夹下的 debug 和 lib 文件夹复制到主包。 + + +5. 在分包内引用 TUIKit组件,为此需要分别修改分包内部 index.wxml 、index.js 、index.json 文件,以及 app.js 文件。 + +wxml 文件 + + + +```javascript + + + +``` + + js 文件 + + + +```javascript +Page({ + +// 其他代码 + + onLoad() { + const TUIKit = this.selectComponent('#TUIKit'); + TUIKit.init(); + }, +}); +``` + + json 文件 + + + +```javascript + { + "usingComponents": { + "TUIKit": "../TUIKit/index" + }, + "navigationStyle": "custom" + } +``` +app.js 文件 + + + +```javascript +import TIM from './lib/tim-wx-sdk'; +import TIMUploadPlugin from './lib/tim-upload-plugin'; +import TIMProfanityFilterPlugin from './lib/tim-profanity-filter-plugin'; +import { genTestUserSig } from './debug/GenerateTestUserSig'; +App({ + onLaunch: function () { + wx.$TUIKit = TIM.create({ + SDKAppID: this.globalData.config.SDKAPPID, + }); + const userSig = genTestUserSig(this.globalData.config).userSig + wx.$chat_SDKAppID = this.globalData.config.SDKAPPID; + wx.$TUIKitTIM = TIM; + wx.$chat_userID = this.globalData.config.userID; + wx.$chat_userSig = userSig; + wx.$TUIKit.registerPlugin({ 'tim-upload-plugin': TIMUploadPlugin }); + wx.$TUIKit.registerPlugin({ 'tim-profanity-filter-plugin': TIMProfanityFilterPlugin }); + wx.$TUIKit.login({ + userID: this.globalData.config.userID, + userSig + }); + // 监听系统级事件 + wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.SDK_READY, this.onSDKReady); + }, + globalData: { + config: { + userID: '', //User ID + SECRETKEY: '', // Your secretKey + SDKAPPID: 0, // Your SDKAppID + EXPIRETIME: 604800, + }, + }, + onSDKReady() { + }, +}); +``` +6. 按需载入分包,您需要修改主包 pages 下的 index.wxml 、index.js。 + +wxml 文件 + + + +```javascript + + 载入腾讯云 IM 分包 + +``` + +js 文件 + + + +```javascript +Page({ + handleJump() { + app.method.navigateTo({ + url: '../../TUI-CustomerService/pages/index', + }) + } +}) +``` + +#### 步骤4: 获取 SDKAppID 、密钥与 userID + +设置步骤3示例代码中的相关参数 SDKAPPID、SECRETKEY 以及 userID ,其中 SDKAppID 和密钥等信息,可通过 [即时通信 IM 控制台](https://console.cloud.tencent.com/im) 获取,单击目标应用卡片,进入应用的基础配置页面。例如: + +userID 信息,可通过 [即时通信 IM 控制台](https://console.cloud.tencent.com/im) 进行创建和获取,单击目标应用卡片,进入应用的账号管理页面,即可创建账号并获取 userID。例如: + + +### 步骤5:编译小程序 + +- 请在本地设置里面勾选上“不校验合法域名、web-view (业务域名)、 TLS 版本以及 HTTPS 证书”。 + + + +- 点击【清缓存】->【全部清除】,避免开发者工具的缓存造成渲染异常。 + + + +- 点击【编译】。 + + + +### 步骤6:发送您的第一条消息 + + + +### 常见问题 +#### 1. 什么是 UserSig? + +UserSig 是用户登录即时通信 IM 的密码,其本质是对 UserID 等信息加密后得到的密文。 + +#### 2. 如何生成 UserSig? + + UserSig 签发方式是将 UserSig 的计算代码集成到您的服务端,并提供面向项目的接口,在需要 UserSig 时由您的项目向业务服务器发起请求获取动态 UserSig。更多详情请参见 [服务端生成 UserSig](https://cloud.tencent.com/document/product/269/32688#GeneratingdynamicUserSig)。 + +> ! +> +> 本文示例代码采用的获取 UserSig 的方案是在客户端代码中配置 SECRETKEY,该方法中 SECRETKEY 很容易被反编译逆向破解,一旦您的密钥泄露,攻击者就可以盗用您的腾讯云流量,因此**该方法仅适合本地跑通功能调试**。 正确的 UserSig 签发方式请参见上文。 + +### 3. 小程序如果需要上线或者部署正式环境怎么办? +请在**微信公众平台**>**开发**>**开发管理**>**开发设置**>**服务器域名**中进行域名配置: + +从v2.11.2起 SDK 支持了 WebSocket,WebSocket 版本须添加以下域名到 **socket 合法域名**: + +| 域名 | 说明 | 是否必须 | +|-------|---------|----| +|`wss://wss.im.qcloud.com`| Web IM 业务域名 | 必须| +|`wss://wss.tim.qq.com`| Web IM 业务域名 | 必须| + +将以下域名添加到 **request 合法域名**: + +| 域名 | 说明 | 是否必须 | +|-------|---------|----| +|`https://web.sdk.qcloud.com`| Web IM 业务域名 | 必须| +|`https://webim.tim.qq.com` | Web IM 业务域名 | 必须| +|`https://api.im.qcloud.com` | Web IM 业务域名 | 必须| + + +| 域名 | 说明 | 是否必须 | +|-------|---------|----| +|`https://cos.ap-shanghai.myqcloud.com` | 文件上传域名 | 必须| +|`https://cos.ap-shanghai.tencentcos.cn` | 文件上传域名 | 必须| +|`https://cos.ap-guangzhou.myqcloud.com` | 文件上传域名 | 必须| + + +将以下域名添加到 **downloadFile 合法域名**: + +| 域名 | 说明 | 是否必须 | +|-------|---------|----| +|`https://cos.ap-shanghai.myqcloud.com` | 文件下载域名 | 必须| +|`https://cos.ap-shanghai.tencentcos.cn` | 文件下载域名 | 必须| +|`https://cos.ap-guangzhou.myqcloud.com` | 文件下载域名 | 必须| diff --git a/TUIService/TUIKit/components/TUICallKit/TUICallKit/TUICallKit.js b/TUIService/TUIKit/components/TUICallKit/TUICallKit/TUICallKit.js new file mode 100644 index 0000000..4b43351 --- /dev/null +++ b/TUIService/TUIKit/components/TUICallKit/TUICallKit/TUICallKit.js @@ -0,0 +1,3 @@ +Component({ + +}) \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUICallKit/TUICallKit/TUICallKit.json b/TUIService/TUIKit/components/TUICallKit/TUICallKit/TUICallKit.json new file mode 100644 index 0000000..52dd6e0 --- /dev/null +++ b/TUIService/TUIKit/components/TUICallKit/TUICallKit/TUICallKit.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + }, + "navigationStyle": "custom", + "disableScroll": true +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUICallKit/TUICallKit/TUICallKit.wxml b/TUIService/TUIKit/components/TUICallKit/TUICallKit/TUICallKit.wxml new file mode 100644 index 0000000..e69de29 diff --git a/TUIService/TUIKit/components/TUICallKit/TUICallKit/TUICallKit.wxss b/TUIService/TUIKit/components/TUICallKit/TUICallKit/TUICallKit.wxss new file mode 100644 index 0000000..e69de29 diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/AudioMessage/index.js b/TUIService/TUIKit/components/TUIChat/components/MessageElements/AudioMessage/index.js new file mode 100644 index 0000000..30ae25a --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/AudioMessage/index.js @@ -0,0 +1,151 @@ +import { parseAudio } from '../../../../../utils/message-parse'; + +// 创建audio控件 +const myaudio = wx.createInnerAudioContext(); +// eslint-disable-next-line no-undef +Component({ + /** + * 组件的属性列表 + */ + properties: { + message: { + type: Object, + value: {}, + observer(newVal) { + this.setData({ + renderDom: parseAudio(newVal), + message: newVal, + }); + }, + }, + messageList: { + type: Object, + value: {}, + observer(newVal) { + this.filtterAudioMessage(newVal); + this.setData({ + audioMessageList: newVal, + }); + }, + }, + isMine: { + type: Boolean, + value: true, + }, + }, + + lifetimes: { + detached() { + myaudio.stop(); + }, + }, + + /** + * 组件的初始数据 + */ + data: { + message: '', + renderDom: [], + Audio: [], + audioMessageList: [], + audioSave: [], + audKey: '', // 当前选中的音频key + indexAudio: Number, + isPlay: false, + }, + + /** + * 组件的方法列表 + */ + methods: { + // 过滤语音消息,从消息列表里面筛选出语音消息 + filtterAudioMessage(messageList) { + const list = []; + for (let index = 0; index < messageList.length; index++) { + if (messageList[index].type === 'TIMSoundElem') { + list.push(messageList[index]); + Object.assign(messageList[index], { + isPlaying: false, + }), + this.data.audioSave = list; + this.setData({ + audioSave: this.data.audioSave, + }); + } + } + }, + + // 音频播放 + audioPlay(e) { + const { id } = e.currentTarget.dataset; + const { audioSave } = this.data; + + // 设置状态 + audioSave.forEach((message, index) => { + message.isPlaying = false; + if (audioSave[index].ID == id) { + message.isPlaying = true; + const indexAudio = audioSave.findIndex(value => value.ID == audioSave[index].ID); + this.setData({ + indexAudio, + isPlay: false, + }); + } + }); + this.setData({ + audioSave, + audKey: this.data.indexAudio, + isPlay: true, + }); + myaudio.autoplay = true; + const { audKey } = this.data; + const playSrc = audioSave[audKey].payload.url; + myaudio.src = playSrc; + myaudio.play(); + // 开始监听 + myaudio.onPlay(() => { + console.log('开始播放'); + }); + + // 结束监听 + myaudio.onEnded(() => { + console.log('自动播放完毕'); + audioSave[this.data.indexAudio].isPlaying = false; + this.setData({ + audioSave, + isPlay: false, + }); + }); + + // 错误回调 + myaudio.onError((err) => { + console.log(err); + audioSave[this.data.indexAudio].isPlaying = false; + this.setData({ + audioSave, + }); + return; + }); + }, + + // 音频停止 + audioStop(e) { + const { key } = e.currentTarget.dataset; + const { audioSave } = this.data; + // 设置状态 + audioSave.forEach((message, index) => { + message.isPlaying = false; + }); + this.setData({ + audioSave, + isPlay: false, + }); + myaudio.stop(); + + // 停止监听 + myaudio.onStop(() => { + console.log('停止播放'); + }); + }, + }, +}); diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/AudioMessage/index.json b/TUIService/TUIKit/components/TUIChat/components/MessageElements/AudioMessage/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/AudioMessage/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/AudioMessage/index.wxml b/TUIService/TUIKit/components/TUIChat/components/MessageElements/AudioMessage/index.wxml new file mode 100644 index 0000000..a9764ea --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/AudioMessage/index.wxml @@ -0,0 +1,14 @@ + + + + + {{renderDom[0].second}}s + + + + {{renderDom[0].second}}s + + + + + diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/AudioMessage/index.wxss b/TUIService/TUIKit/components/TUIChat/components/MessageElements/AudioMessage/index.wxss new file mode 100644 index 0000000..4bfe7d2 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/AudioMessage/index.wxss @@ -0,0 +1,32 @@ +.audio-message { + padding: 10rpx 18rpx; + border-radius: 2px 10px 10px 10px; + border: 1px solid #D9D9D9; +} +.my-audio { + border-radius: 10px 2px 10px 10px; + background: rgba(0,110,255,0.10); + border: 1px solid rgba(0,110,255,0.30); +} +.audio { + /*border-radius: 2px 10px 10px 10px;*/ + height: 60rpx; + font-family: PingFangSC-Medium; + font-size: 28rpx; + color: #000000; + line-height: 28rpx; + display: flex; + align-items: center; + justify-content: flex-end; +} +.image{ + width: 16px; + height: 16px; + padding-left: 2px; + padding-right: 2px; +} +.my-image{ + width: 16px; + height: 16px; + transform:rotate(180deg) +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/CustomMessage/index.js b/TUIService/TUIKit/components/TUIChat/components/MessageElements/CustomMessage/index.js new file mode 100644 index 0000000..3385bd7 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/CustomMessage/index.js @@ -0,0 +1,329 @@ +import formateTime from '../../../../../utils/formate-time'; +import constant from '../../../../../utils/constant'; +import { + getCurrentPageUrl, + getCurrentPageParam +} from "../../../../../../../utils/getUrl" +import { + getRate +} from "../../../../../../../api/consultOrder" +const app = getApp() +// eslint-disable-next-line no-undef +Component({ + /** + * 组件的属性列表 + */ + properties: { + message: { + type: Object, + value: {}, + observer(newVal) { + this.setData({ + message: newVal, + renderDom: this.parseCustom(newVal), + }); + }, + }, + patient_data:{ + type: Object, + value: {}, + observer(newVal) { + this.setData({ + patient_data: newVal, + }); + } + }, + isMine: { + type: Boolean, + value: true, + }, + }, + pageLifetimes:{ + show: function() { + this.setData({ + img_host:app.hostConfig().imghost + }); + + }, + }, + + /** + * 组件的初始数据 + */ + data: { + displayServiceEvaluation: false, + score: 0, + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static', + commentDetail: null + }, + + /** + * 组件的方法列表 + */ + methods: { + // async getDom(id,renderDom){ + // let result = await this.handleGetRate(id,renderDom); + // return result + // }, + handleGetRate(id) { + getRate(id).then(data => { + let commentDetail = null; + if (data) { + commentDetail = data + } else { + commentDetail = { + avg_score: 0, + content: "", + evaluation_id: "", + is_evaluation: false, + order_inquiry_id:id, + reply_progress: 0, + reply_quality: 0, + service_attitude: 0 + + } + } + this.triggerEvent("popComment",commentDetail); + }) + }, + async handleAllRate(id, renderDom) { + let result = null; + await getRate(id).then(data => { + if (data) { + renderDom[0].is_evaluation = true; + renderDom[0].score = data.avg_score; + } + }) + + this.setData({ + renderDom: renderDom + }) + }, + showPop(event) { + let id = event.currentTarget.dataset.id; + console.log(id); + this.handleGetRate(id); + }, + + // 解析音视频通话消息 + extractCallingInfoFromMessage(message) { + const callingmessage = JSON.parse(message.payload.data); + if (callingmessage.businessID !== 1) { + return ''; + } + const objectData = JSON.parse(callingmessage.data); + switch (callingmessage.actionType) { + case 1: { + if (objectData.call_end >= 0) { + return `通话时长:${formateTime(objectData.call_end)}`; + } + if (objectData.data && objectData.data.cmd === 'switchToAudio') { + return '切换语音通话'; + } + if (objectData.data && objectData.data.cmd === 'switchToVideo') { + return '切换视频通话'; + } + return '发起通话'; + } + case 2: + return '取消通话'; + case 3: + if (objectData.data && objectData.data.cmd === 'switchToAudio') { + return '切换语音通话'; + } + if (objectData.data && objectData.data.cmd === 'switchToVideo') { + return '切换视频通话'; + } + return '已接听'; + case 4: + return '拒绝通话'; + case 5: + if (objectData.data && objectData.data.cmd === 'switchToAudio') { + return '切换语音通话'; + } + if (objectData.data && objectData.data.cmd === 'switchToVideo') { + return '切换视频通话'; + } + return '无应答'; + default: + return ''; + } + }, + parseCustom(message) { + const { + BUSINESS_ID_TEXT + } = constant; + // 群消息解析 + if (message.payload.data === BUSINESS_ID_TEXT.CREATE_GROUP) { + const renderDom = [{ + type: 'group_create', + text: message.payload.extension, + }]; + return renderDom; + } + try { + const customMessage = JSON.parse(message.payload.data); + let avastar = ''; + if (message.flow == "in") { + avastar = message.avatar; + } + // 约定自定义消息的 data 字段作为区分,不解析的不进行展示 + if (customMessage.businessID === BUSINESS_ID_TEXT.ORDER) { + const renderDom = [{ + type: 'order', + name: 'custom', + title: customMessage.title || '', + imageUrl: customMessage.imageUrl || '', + price: customMessage.price || 0, + description: customMessage.description, + }]; + return renderDom; + } + // 服务评价 + if (customMessage.businessID === BUSINESS_ID_TEXT.EVALUATION) { + const renderDom = [{ + type: 'evaluation', + title: message.payload.description, + score: customMessage.score, + description: customMessage.comment, + }]; + return renderDom; + } + // native 自定义消息解析 + if (customMessage.businessID === BUSINESS_ID_TEXT.LINK) { + const renderDom = [{ + type: 'text_link', + text: customMessage.text, + }]; + return renderDom; + } + // 自定义消息类型(1:消息内页横条 2:订单结束评价弹出 3:医生端系统通知 4:医生端服务通知 5:患者端系统消息 6:处方开具成功(医生端) 7:处方审核通过(患者端))", + if (customMessage.message_type == 1) { + const renderDom = [{ + type: 'msg_tip', + text: customMessage.title, + desc: customMessage.desc + }]; + return renderDom; + } + + if (customMessage.message_type == 2) { + let renderDom = [{ + type: 'msg_comment', + text: customMessage.title, + order_inquiry_id: customMessage.data.order_inquiry_id, + is_evaluation: false, + score: 0, + desc: customMessage.desc, + avatar: avastar + }]; + + this.handleAllRate(customMessage.data.order_inquiry_id, renderDom); + + return renderDom; + }; + if (customMessage.message_type == 7) { + let data = customMessage.data; + const renderDom = [{ + type: 'msg_prescribe', + product_name: data.product_name, + order_inquiry_id: data.order_inquiry_id, + order_prescription_id: data.order_prescription_id, + pharmacist_verify_time: data.pharmacist_verify_time.substring(0, 10), + }]; + return renderDom; + }; + if (customMessage.message_type == 10) { + let data = customMessage.data; + const renderDom = [{ + type: 'msg_checksugar', + title:customMessage.title, + order_no:data.order_no, + message_path:data.message_path, + disease_class_names: data.disease_class_names + }]; + return renderDom; + } + + } catch (error) {} + // 客服咨询 + try { + const extension = JSON.parse(message.payload.extension); + if (message.payload.data === BUSINESS_ID_TEXT.CONSULTION) { + const renderDom = [{ + type: 'consultion', + title: extension.title || '', + item: extension.item || 0, + description: extension.description, + }]; + return renderDom; + } + } catch (error) {} + // 音视频通话消息解析 + try { + const callingmessage = JSON.parse(message.payload.data); + if (callingmessage.businessID === 1) { + if (message.conversationType === wx.$TUIKitTIM.TYPES.CONV_GROUP) { + if (message.payload.data.actionType === 5) { + message.nick = message.payload.data.inviteeList ? message.payload.data.inviteeList.join(',') : message.from; + } + const _text = this.extractCallingInfoFromMessage(message); + const groupText = `${_text}`; + const renderDom = [{ + type: 'groupCalling', + text: groupText, + userIDList: [], + }]; + return renderDom; + } + if (message.conversationType === wx.$TUIKitTIM.TYPES.CONV_C2C) { + const c2cText = this.extractCallingInfoFromMessage(message); + const renderDom = [{ + type: 'c2cCalling', + text: c2cText, + }]; + return renderDom; + } + } + return [{ + type: 'notSupport', + text: '[自定义消息]', + }]; + } catch (error) {} + }, + openLink(e) { + if (e.currentTarget.dataset.value.key === '立即前往') { + app.method.navigateTo({ + url: '/pages/TUI-User-Center/webview/webview?url=https://cloud.tencent.com/act/pro/imnew?from=16975&wechatMobile', + }); + } else if (e.currentTarget.dataset.value.key === '立即体验') { + app.method.navigateTo({ + url: '/pages/TUI-User-Center/webview/webview?url=https://cloud.tencent.com/document/product/269/68091', + }); + } + }, + goReport(event){ + let {url,id} = event.currentTarget.dataset; + app.method.navigateTo({ + url: '/pages/checkOrderDetail/checkOrderDetail?order_detection_id='+id + }) + }, + goPrescriptDetail(event) { + let url = event.currentTarget.dataset.url; + let redirectUrl = getCurrentPageUrl(); + let options = getCurrentPageParam(); + let params = "" + for (const key in options) { + if (params) { + params = params + '&' + key + '=' + options[key]; + } else { + params = params + key + '=' + options[key]; + } + }; + //console.log(url + "&fromType=" + redirectUrl + "?" + params) + app.method.navigateTo({ + url: url + "&fromType=" + encodeURIComponent(redirectUrl + "?" + params) + }) + } + }, +}); \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/CustomMessage/index.json b/TUIService/TUIKit/components/TUIChat/components/MessageElements/CustomMessage/index.json new file mode 100644 index 0000000..785d068 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/CustomMessage/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-rate": "@vant/weapp/rate/index" + } +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/CustomMessage/index.wxml b/TUIService/TUIKit/components/TUIChat/components/MessageElements/CustomMessage/index.wxml new file mode 100644 index 0000000..680e1d4 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/CustomMessage/index.wxml @@ -0,0 +1,98 @@ + + + + + {{renderDom[0].title}} + {{renderDom[0].description}} + {{renderDom[0].price}} + + + + + + {{renderDom[0].title}} + {{renderDom[0].hyperlinks_text.key}} + {{item.key}} + + + {{renderDom[0].description}} + + + + + {{renderDom[0].title}} + + + + {{renderDom[0].description}} + + + + {{renderDom[0].text}} + 查看详情>> + + + {{renderDom[0].text}} + + + {{renderDom[0].text}} + + + {{renderDom[0].text}} + + + {{renderDom[0].text}} + {{renderDom[0].desc}} + + + + + 请您对本次问诊服务进行评价 + + + + + 点击评价 + 查看评价 + + + + + 处方已开具 + + + + + + + + RP:{{renderDom[0].product_name}} + 开方日期: {{renderDom[0].pharmacist_verify_time}} + + + 去购买 + + + + + + + + {{renderDom[0].title}}报告 + + + 就诊人:{{patient_data.patient_name}}(未知|{{patient_data.patient_age}}岁) + 所患疾病:{{renderDom[0].disease_class_names}} + + + + 查看报告 + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/CustomMessage/index.wxss b/TUIService/TUIKit/components/TUIChat/components/MessageElements/CustomMessage/index.wxss new file mode 100644 index 0000000..b9492d9 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/CustomMessage/index.wxss @@ -0,0 +1,324 @@ +.custom-message { + background: #FBFBFB; + border-radius: 4rpx 20rpx 20rpx 20rpx; + display: flex; + padding: 10rpx 24rpx; + background-color: #fff; + border: 1px solid #D9D9D9; +} +.content_prescribe{ + margin:0 20rpx; + display: flex; +} +.prescribeImg{ + margin-top: 25rpx; + flex-shrink: 0; + width:68rpx; + height:68rpx; +} +.my-custom { + border-radius: 10px 2px 10px 10px; + border: 1px solid rgba(0, 110, 255, 0.30); +} + +.custom-content-title { + font-family: PingFangSC-Medium; + max-width: 268rpx; + height: 34rpx; + font-size: 28rpx; + color: #000000; + letter-spacing: 0; + margin-bottom: 12rpx; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + +.custom-content-description { + font-family: PingFangSC-Regular; + width: 278rpx; + line-height: 34rpx; + font-size: 28rpx; + color: #999999; + letter-spacing: 0; + line-height: 40rpx; + font-size: 24rpx; + margin-bottom: 12rpx; + word-break: break-word; +} + +.custom-content-price { + font-family: PingFangSC-Medium; + line-height: 50rpx; + color: #FF7201; + letter-spacing: 0; +} + +.custom-image { + width: 135rpx; + height: 135rpx; + border-radius: 6rpx; + margin-right: 10rpx; + margin-top: 4rpx; +} + +.custom-content-score { + display: flex; + align-items: center; + padding-bottom: 12rpx; +} + +.custom-content-score .score-star { + width: 36rpx; + height: 36rpx; + margin-right: 10rpx; +} + +.text-message { + display: inline-flex; + max-width: 60vw; + line-height: 52rpx; + padding: 12rpx 24rpx; + background: #F8F8F8; + border: 1px solid #D9D9D9; + border-radius: 2px 10px 10px 10px; +} + +.my-text { + border-radius: 10px 2px 10px 10px; + border: 1px solid rgba(0, 110, 255, 0.30); + background: rgba(0, 110, 255, 0.10); +} + +.message-body-span { + display: flex; + align-items: center; + /*justify-content: flex-start;*/ + flex-wrap: wrap; + outline: none; + font-size: 28rpx; + color: #333333; + position: relative; + max-width: 60vw; +} + +.message-body-span-text { + /* width: 434rpx; */ + font-family: PingFangSC-Regular; + font-weight: 400; + font-size: 32rpx; + color: #000000; + letter-spacing: 0; + line-height: 42rpx; +} + +.message-body-span-link { + color: blue; +} + +.message-body-span-link { + color: blue; +} + +.message-body-span-link { + color: blue; +} + +.custom-content-text { + font-family: PingFangSC-Regular; + height: 25px; + line-height: 25px; + font-size: 28rpx; + letter-spacing: 0; +} + +.custom-content-hyperlinks { + font-family: PingFangSC-Regular; + font-weight: 400; + line-height: 40rpx; + font-size: 28rpx; + color: #006EFF; + letter-spacing: 0; + margin-bottom: 12rpx; +} +.custom-tip-message { + border: none; + border-radius: 0; + font-size: 28rpx; + font-family: PingFangSC-Regular; + font-weight: 400; + color: #333333; + flex-direction: column; + justify-content: center; + align-items: center; + max-width:95vw; + background: none; + flex-wrap: nowrap; +} +.custom-tip-message .message-body-span-text{ + max-width:95vw; + min-width: 60vw; + height: 40rpx; + text-align: center; + background: #E1E1E1; +} +.message-body-span-desc{ + margin-top: 30rpx; + width:90vw; + font-size: 24rpx; + text-align: center; +font-family: PingFangSC-Regular; +color: #666666; +line-height: 36rpx; +} +.commentbox{ + margin-top: 30rpx; + width:590rpx; + height:240rpx; + overflow: hidden; + background-color: #fff; + border-radius: 20rpx; + box-shadow: 0 0 10rpx 0 #ccc; +} +.commentbox .title{ + padding: 15rpx 0; + text-align: center; + font-size: 28rpx; +font-weight: 400; + +color: #333333; +} +.commentbox .ratebox{ + width:100%; + display: flex; + justify-content: center; + align-items: center; + margin-bottom: 32rpx; +} +.commentbox .button{ + height: 75rpx; + display: flex; + justify-content: center; + align-items: center; + background:#ebf9f8; + font-weight:500; + font-size: 34rpx; + color: #3CC7C0; +} +.custom_wrap{ + display: flex; + width:100%; + justify-content: flex-end; +} +.your-custom{ + justify-content: flex-start; +} + +.custom_wrap .custom-tip-message{ + margin:0 auto; +} +/* 开具处方样式 */ +.gdxz_custom_order_prescribe_message{ + width: 60vw; + position: relative; + border-radius: 10px 10px 10px 10px; + background: rgb(255, 255, 255); + border: 1rpx solid #D8D8D8; + /* background: rgb(255, 255, 255); + border: 1rpx solid #E7E7E7; */ +} +.gdxz_custom_order_prescribe_message::after{ + content:''; + position: absolute; + top: 35rpx; + left: 0; + transform: translate(-50%,-50%) rotate(45deg); + width: 16rpx; + height: 16rpx; + background: rgb(255, 255, 255); + border: 1rpx solid #D8D8D8; + border-style: none none solid solid +} +.prescribe_title{ + font-size: 34rpx; + border-bottom: 1px solid #E7E7E7; + margin: 0 20rpx; + padding: 20rpx 0; +} +.prescribe_box{ + margin: 0 20rpx; + padding: 20rpx 0; + font-size: 28rpx; +} +.prescribe_box_top_pharmacist_verify_time{ + margin-top: 20rpx; +} +.prescribe_box_bottom{ + display: flex; + justify-content: center; +} +.prescribe_box_buy{ + margin: 20rpx 20rpx 0 20rpx; + background-color: #3CC7C0; + color: #fff; + padding: 15rpx 30rpx; + border-radius: 40rpx; + font-size: 30rpx; +} +/* 糖组检测 */ + +.back{ + width:24rpx; + height:48rpx; + transform: rotate(180deg); +} +.sugarbox{ + + position: relative; + width: 420rpx; + background: rgb(212, 239, 241); + border: 1rpx solid #1ACAD3; + border-radius: 12rpx; +} +.sugarbox::after{ + content:''; + position: absolute; + top: 35rpx; + right: -19rpx; + transform: translate(-50%,-50%) rotate(-135deg); + width: 16rpx; + height: 16rpx; + background: rgb(212, 239, 241); + border: 1rpx solid #1ACAD3; + border-style: none none solid solid +} +.sugarcon{ + margin:0rpx 24rpx 0; + +} +.patient_info{ + font-size: 28rpx; +font-weight: 400; +color: rgba(0,0,0,0.65); +line-height: 40rpx; +} +.sugarcon{ + border-bottom: 1rpx solid rgba(0,0,0,0.12); + padding-bottom: 24rpx; +} +.sugarcon .title{ + margin:24rpx 0 20rpx; + font-size: 32rpx; + font-weight: 500; +color: #3CC7C0; +} +.sugarbox .detail{ + display: flex; + margin:0 24rpx; + height:88rpx; + font-size: 32rpx; +font-weight: 400; +color: rgba(0,0,0,0.85); + justify-content: space-between; + align-items: center; +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/Emoji/index.js b/TUIService/TUIKit/components/TUIChat/components/MessageElements/Emoji/index.js new file mode 100644 index 0000000..612fc80 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/Emoji/index.js @@ -0,0 +1,42 @@ +import { emojiName, emojiUrl, emojiMap } from '../../../../../utils/emojiMap'; +// eslint-disable-next-line no-undef +Component({ + /** + * 组件的属性列表 + */ + properties: { + + }, + + /** + * 组件的初始数据 + */ + data: { + emojiList: [], + }, + + lifetimes: { + attached() { + for (let i = 0; i < emojiName.length; i++) { + this.data.emojiList.push({ + emojiName: emojiName[i], + url: emojiUrl + emojiMap[emojiName[i]], + }); + } + this.setData({ + emojiList: this.data.emojiList, + }); + }, + }, + + /** + * 组件的方法列表 + */ + methods: { + handleEnterEmoji(event) { + this.triggerEvent('enterEmoji', { + message: event.currentTarget.dataset.name, + }); + }, + }, +}); diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/Emoji/index.json b/TUIService/TUIKit/components/TUIChat/components/MessageElements/Emoji/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/Emoji/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/Emoji/index.wxml b/TUIService/TUIKit/components/TUIChat/components/MessageElements/Emoji/index.wxml new file mode 100644 index 0000000..2fde9b9 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/Emoji/index.wxml @@ -0,0 +1,5 @@ + + + + > + \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/Emoji/index.wxss b/TUIService/TUIKit/components/TUIChat/components/MessageElements/Emoji/index.wxss new file mode 100644 index 0000000..4709c69 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/Emoji/index.wxss @@ -0,0 +1,19 @@ +.TUI-Emoji { + display: flex; + justify-content: flex-start; + flex-wrap: wrap; + width: 100%; + height: 100%; + margin-left: 4vw; +} + +.TUI-emoji-image { + width: 9vw; + height: 9vw; + margin: 2vw; +} + +.TUI-emoji-image > image { + width: 100%; + height: 100%; +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/FaceMessage/index.js b/TUIService/TUIKit/components/TUIChat/components/MessageElements/FaceMessage/index.js new file mode 100644 index 0000000..6ece322 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/FaceMessage/index.js @@ -0,0 +1,54 @@ +// eslint-disable-next-line no-undef +Component({ + /** + * 组件的属性列表 + */ + properties: { + message: { + type: Object, + value: {}, + observer(newVal) { + this.setData({ + renderDom: this.parseFace(newVal), + }); + }, + }, + isMine: { + type: Boolean, + value: true, + }, + }, + + /** + * 组件的初始数据 + */ + data: { + renderDom: [], + percent: 0, + faceUrl: 'https://web.sdk.qcloud.com/im/assets/face-elem/', + }, + + /** + * 组件的方法列表 + */ + methods: { + // 解析face 消息 + parseFace(message) { + // 兼容android的大表情格式 + if (message.payload.data.indexOf('@2x') < 0) { + message.payload.data = `${message.payload.data}@2x`; + } + const renderDom = { + src: `${this.data.faceUrl + message.payload.data}.png`, + }; + return renderDom; + }, + + previewImage() { + wx.previewImage({ + current: this.data.renderDom[0].src, // 当前显示图片的http链接 + urls: [this.data.renderDom[0].src], + }); + }, + }, +}); diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/FaceMessage/index.json b/TUIService/TUIKit/components/TUIChat/components/MessageElements/FaceMessage/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/FaceMessage/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/FaceMessage/index.wxml b/TUIService/TUIKit/components/TUIChat/components/MessageElements/FaceMessage/index.wxml new file mode 100644 index 0000000..02e81e4 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/FaceMessage/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/FaceMessage/index.wxss b/TUIService/TUIKit/components/TUIChat/components/MessageElements/FaceMessage/index.wxss new file mode 100644 index 0000000..f228025 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/FaceMessage/index.wxss @@ -0,0 +1,13 @@ +.TUI-faceMessage { + width: 150px; + height: 110px; + max-width: 60vw; +} +.face-message { + width: 100%; + height: 100%; + border-radius: 10px 10px 10px 10px; +} +.my-image { + border-radius: 10px 2px 10px 10px; +} diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/FileMessage/index.js b/TUIService/TUIKit/components/TUIChat/components/MessageElements/FileMessage/index.js new file mode 100644 index 0000000..964e4fa --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/FileMessage/index.js @@ -0,0 +1,58 @@ +// eslint-disable-next-line no-undef +Component({ + /** + * 组件的属性列表 + */ + properties: { + message: { + type: Object, + value: {}, + observer(newVal) { + this.setData({ + filePayload: newVal.payload, + }); + }, + }, + isMine: { + type: Boolean, + value: true, + }, + }, + + /** + * 组件的初始数据 + */ + data: { + Show: false, + filePayload: {}, + }, + + /** + * 组件的方法列表 + */ + methods: { + download() { + this.setData({ + Show: true, + }); + }, + downloadConfirm() { + wx.downloadFile({ + url: this.data.filePayload.fileUrl, + success(res) { + const filePath = res.tempFilePath; + wx.openDocument({ + filePath, + success() { + }, + }); + }, + }); + }, + cancel() { + this.setData({ + Show: false, + }); + }, + }, +}); diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/FileMessage/index.json b/TUIService/TUIKit/components/TUIChat/components/MessageElements/FileMessage/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/FileMessage/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/FileMessage/index.wxml b/TUIService/TUIKit/components/TUIChat/components/MessageElements/FileMessage/index.wxml new file mode 100644 index 0000000..c976dec --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/FileMessage/index.wxml @@ -0,0 +1,16 @@ + + + + + + + + + + + 下载 + + + 取消 + + diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/FileMessage/index.wxss b/TUIService/TUIKit/components/TUIChat/components/MessageElements/FileMessage/index.wxss new file mode 100644 index 0000000..cbe32aa --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/FileMessage/index.wxss @@ -0,0 +1,57 @@ +.TUI-fileMessage { + display: flex; + padding: 10rpx 24rpx; + background-color: #fff; + border-radius: 2px 10px 10px 10px; + border: 1px solid #D9D9D9; +} +.fileMessage{ + display: flex; +} +.fileMessage-box{ + display: flex; + background: white; + align-items: center; + height: 150rpx; +} +.file-icon { + width: 80rpx; + height: 80rpx; +} +.pop{ + position: fixed; + width: 50%; + bottom: 400rpx; + margin-left: 90rpx; + background: rgba(0, 0, 0, 0.3); + z-index: 99999; +} +.text-box{ + display: flex; + justify-content: center; + align-items: center; + height: 112rpx; +} +.download-confirm{ + font-family: PingFangSC-Regular; + font-size: 16px; + color: #E85454; + letter-spacing: 0; + text-align: center; + line-height: 22px; +} +.abandon{ + opacity: 0.8; + font-family: PingFangSC-Regular; + font-size: 16px; + color: #FFFFFF; + letter-spacing: 0; + text-align: center; + line-height: 22px; +} +.file-title { + max-width: 53vw; + display: inline; + word-wrap: break-word; + word-break: break-all; +} diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/ImageMessage/index.js b/TUIService/TUIKit/components/TUIChat/components/MessageElements/ImageMessage/index.js new file mode 100644 index 0000000..298c4f7 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/ImageMessage/index.js @@ -0,0 +1,54 @@ +import { parseImage } from '../../../../../utils/message-parse'; +// eslint-disable-next-line no-undef +Component({ + /** + * 组件的属性列表 + */ + properties: { + message: { + type: Object, + value: {}, + observer(newVal) { + this.setData({ + renderDom: parseImage(newVal), + percent: newVal.percent, + }); + }, + }, + isMine: { + type: Boolean, + value: true, + }, + }, + + /** + * 组件的初始数据 + */ + data: { + renderDom: [], + percent: 0, + showSave: false, + }, + + /** + * 组件的方法列表 + */ + methods: { + previewImage() { + wx.previewImage({ + current: this.data.renderDom[0].src, // 当前显示图片的http链接 + urls: [this.data.renderDom[0].src], // 图片链接必须是数组 + success: () => { + this.setData({ + showSave: true, + }); + }, + complete: () => { + this.setData({ + showSave: false, + }); + }, + }); + }, + }, +}); diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/ImageMessage/index.json b/TUIService/TUIKit/components/TUIChat/components/MessageElements/ImageMessage/index.json new file mode 100644 index 0000000..2d67c18 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/ImageMessage/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "van-image": "@vant/weapp/image/index", + "van-loading": "@vant/weapp/loading/index" + + } +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/ImageMessage/index.wxml b/TUIService/TUIKit/components/TUIChat/components/MessageElements/ImageMessage/index.wxml new file mode 100644 index 0000000..8f5ae07 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/ImageMessage/index.wxml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/ImageMessage/index.wxss b/TUIService/TUIKit/components/TUIChat/components/MessageElements/ImageMessage/index.wxss new file mode 100644 index 0000000..4573549 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/ImageMessage/index.wxss @@ -0,0 +1,25 @@ +.TUI-ImageMessage { + width: 150px; +} +.image-message { + width: 100%; + max-height: 300rpx; + height: 300rpx; + border-radius: 10px 10px 10px 10px; +} +.my-image { + height: 300rpx; + border-radius: 10px 10px 10px 10px; +} +.big-image { + width: 100vw; + height: 100vh; + position: fix; + top: 0; + left: 0; +} +van-image__error, .van-image__img, .van-image__loading { + display: block; + height: 100%; + width: 100%; +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/MergerMessage/index.js b/TUIService/TUIKit/components/TUIChat/components/MessageElements/MergerMessage/index.js new file mode 100644 index 0000000..8eb5bd6 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/MergerMessage/index.js @@ -0,0 +1,33 @@ +// eslint-disable-next-line no-undef +Component({ + /** + * 组件的属性列表 + */ + properties: { + message: { + type: Object, + value: {}, + observer(newVal) { + this.setData({ + message: newVal, + }); + }, + }, + isMine: { + type: Boolean, + value: true, + }, + }, + + /** + * 组件的初始数据 + */ + data: { + }, + + /** + * 组件的方法列表 + */ + methods: { + }, +}); diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/MergerMessage/index.json b/TUIService/TUIKit/components/TUIChat/components/MessageElements/MergerMessage/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/MergerMessage/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/MergerMessage/index.wxml b/TUIService/TUIKit/components/TUIChat/components/MessageElements/MergerMessage/index.wxml new file mode 100644 index 0000000..e90ca67 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/MergerMessage/index.wxml @@ -0,0 +1,2 @@ + +[聊天记录] \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/MergerMessage/index.wxss b/TUIService/TUIKit/components/TUIChat/components/MessageElements/MergerMessage/index.wxss new file mode 100644 index 0000000..cc017bb --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/MergerMessage/index.wxss @@ -0,0 +1,21 @@ +/* TUI-CustomerService/components/tui-chat/message-elements/relay-message/index.wxss */ +.message-body-span { + display: flex; + align-items: center; + /*justify-content: flex-start;*/ + flex-wrap: wrap; + outline: none; + font-size: 28rpx; + color: #333333; + position: relative; + max-width: 60vw; +} +.text-message { + display: inline-flex; + max-width: 60vw; + line-height: 52rpx; + padding: 12rpx 24rpx; + background: #F8F8F8; + border: 1px solid #D9D9D9; + border-radius: 2px 10px 10px 10px; +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/RevokeMessage/index.js b/TUIService/TUIKit/components/TUIChat/components/MessageElements/RevokeMessage/index.js new file mode 100644 index 0000000..cd2f5d5 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/RevokeMessage/index.js @@ -0,0 +1,39 @@ +// eslint-disable-next-line no-undef +Component({ + /** + * 组件的属性列表 + */ + properties: { + message: { + type: Object, + value: {}, + observer(newVal) { + this.setData({ + message: newVal, + }); + }, + }, + isMine: { + type: Boolean, + value: true, + }, + }, + + /** + * 组件的初始数据 + */ + data: { + message: '' + }, + + /** + * 组件的方法列表 + */ + methods: { + resendMessage(e) { + this.triggerEvent('resendMessage', { + message: e.currentTarget.dataset.value.payload.text + }); + } + }, +}); diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/RevokeMessage/index.json b/TUIService/TUIKit/components/TUIChat/components/MessageElements/RevokeMessage/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/RevokeMessage/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/RevokeMessage/index.wxml b/TUIService/TUIKit/components/TUIChat/components/MessageElements/RevokeMessage/index.wxml new file mode 100644 index 0000000..c4a31f8 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/RevokeMessage/index.wxml @@ -0,0 +1,6 @@ + + + + 撤回了一条消息 + 重新编辑 + diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/RevokeMessage/index.wxss b/TUIService/TUIKit/components/TUIChat/components/MessageElements/RevokeMessage/index.wxss new file mode 100644 index 0000000..192a5b7 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/RevokeMessage/index.wxss @@ -0,0 +1,18 @@ + +.revoke{ + display: flex; + justify-content: center; + align-items: center + } +.name { + border-radius: 8px; + font-size: 14px; + padding: 6px 0px; + } +.edit{ + font-family: PingFangSC-Regular; + font-size: 14px; + color: #006eff; + letter-spacing: 0; + padding-left: 8px +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/SystemMessage/index.js b/TUIService/TUIKit/components/TUIChat/components/MessageElements/SystemMessage/index.js new file mode 100644 index 0000000..addb341 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/SystemMessage/index.js @@ -0,0 +1,79 @@ +import { parseGroupSystemNotice } from '../../../../../utils/message-parse'; +import { caculateTimeago } from '../../../../../utils/common'; +// eslint-disable-next-line no-undef +Component({ + /** + * 组件的属性列表 + */ + properties: { + message: { + type: Object, + value: {}, + observer(newVal) { + this.setData({ + message: newVal, + messageTime: caculateTimeago(newVal.time * 1000), + renderDom: parseGroupSystemNotice(newVal), + }); + }, + }, + }, + + /** + * 组件的初始数据 + */ + data: { + message: {}, + options: '处理', + messageTime: '', + renderDom: '', + }, + lifetimes: { + attached() { + // 在组件实例进入页面节点树时执行 + }, + detached() { + // 在组件实例被从页面节点树移除时执行 + }, + }, + /** + * 组件的方法列表 + */ + methods: { + handleClick() { + wx.showActionSheet({ + itemList: ['同意', '拒绝'], + success: (res) => { + this.triggerEvent('changeSystemMessageList', { + message: this.data.message, + }); + const option = { + handleAction: 'Agree', + handleMessage: '欢迎进群', + message: this.data.message, + }; + if (res.tapIndex === 1) { + this.triggerEvent('changeSystemMessageList', { + message: this.data.message, + }); + option.handleAction = 'Reject'; + option.handleMessage = '拒绝申请'; + } + wx.$TUIKit.handleGroupApplication(option) + .then(() => { + wx.showToast({ title: option.handleAction === 'Agree' ? '已同意申请' : '已拒绝申请' }); + }) + .catch((error) => { + wx.showToast({ + title: error.message || '处理失败', + icon: 'none', + }); + }); + }, + }); + }, + + }, + + +}); diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/SystemMessage/index.json b/TUIService/TUIKit/components/TUIChat/components/MessageElements/SystemMessage/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/SystemMessage/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/SystemMessage/index.wxml b/TUIService/TUIKit/components/TUIChat/components/MessageElements/SystemMessage/index.wxml new file mode 100644 index 0000000..70d5ca3 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/SystemMessage/index.wxml @@ -0,0 +1,15 @@ + + + + {{messageTime}} + {{renderDom}} + + + {{options}} + + + + {{messageTime}} + {{renderDom}} + + diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/SystemMessage/index.wxss b/TUIService/TUIKit/components/TUIChat/components/MessageElements/SystemMessage/index.wxss new file mode 100644 index 0000000..5678623 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/SystemMessage/index.wxss @@ -0,0 +1,24 @@ +.handle { + display: flex; + justify-content: space-between; +} + +.card{ + font-size: 14px; + margin: 20px; + padding: 20px; + box-sizing: border-box; + border: 1px solid #abdcff; + background-color: #f0faff; + border-radius: 12px; +} +.time { + +} +.button{ + color: blue; + border-radius: 8px; + line-height: 30px; + font-size: 16px; + width: 70px; +} diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/TextMessage/index.js b/TUIService/TUIKit/components/TUIChat/components/MessageElements/TextMessage/index.js new file mode 100644 index 0000000..ca60a0e --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/TextMessage/index.js @@ -0,0 +1,44 @@ +import { parseText } from '../../../../../utils/message-parse'; +// eslint-disable-next-line no-undef +Component({ + /** + * 组件的属性列表 + */ + properties: { + message: { + type: Object, + value: {}, + observer(newVal) { + // console.log(parseText(newVal)); + this.setData({ + renderDom: parseText(newVal), + }); + }, + }, + isMine: { + type: Boolean, + value: true, + }, + }, + + /** + * 组件的初始数据 + */ + data: { + renderDom:[] + }, + lifetimes: { + attached() { + // 在组件实例进入页面节点树时执行 + }, + detached() { + // 在组件实例被从页面节点树移除时执行 + }, + }, + /** + * 组件的方法列表 + */ + methods: { + + }, +}); diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/TextMessage/index.json b/TUIService/TUIKit/components/TUIChat/components/MessageElements/TextMessage/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/TextMessage/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/TextMessage/index.wxml b/TUIService/TUIKit/components/TUIChat/components/MessageElements/TextMessage/index.wxml new file mode 100644 index 0000000..fdbbaf5 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/TextMessage/index.wxml @@ -0,0 +1,9 @@ + + + + + + {{item.text}} + + + diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/TextMessage/index.wxss b/TUIService/TUIKit/components/TUIChat/components/MessageElements/TextMessage/index.wxss new file mode 100644 index 0000000..3f2a4e0 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/TextMessage/index.wxss @@ -0,0 +1,80 @@ +.text-message { + max-width: 60vw; + min-height: 50rpx; + line-height: 50rpx; + padding: 10rpx 24rpx; + background: #F8F8F8; + border: 1rpx solid #D9D9D9; + border-radius: 2px 10px 10px 10px; + display: flex; + flex-direction: row; + flex-wrap: wrap; + white-space: pre-wrap; +} +.my-text { + position: relative; + border-radius: 10px 10px 10px 10px; + background: rgb(212, 239, 241); + border: 1rpx solid #1ACAD3; +} +.my-text::after{ + content:''; + position: absolute; + top: 35rpx; + right: -19rpx; + transform: translate(-50%,-50%) rotate(-135deg); + width: 16rpx; + height: 16rpx; + background: rgb(212, 239, 241); + border: 1rpx solid #1ACAD3; + border-style: none none solid solid +} +.your-text { + position: relative; + border-radius: 10px 10px 10px 10px; + background: rgb(255, 255, 255); + border: 1rpx solid #D8D8D8; +} +.your-text::after{ + content:''; + position: absolute; + top: 35rpx; + left: 0; + transform: translate(-50%,-50%) rotate(45deg); + width: 16rpx; + height: 16rpx; + background: rgb(255, 255, 255); + border: 1rpx solid #D8D8D8; + border-style: none none solid solid +} +.message-body-span { + display: flex; + justify-content: center; + align-items: center; + /*justify-content: flex-start;*/ + flex-wrap: wrap; + word-break: break-word; + outline: none; + font-size: 28rpx; + color: #333333; + position: relative; + max-width: 60vw; +} +.message-body-span-text { + font-family: PingFangSC-Regular; + font-weight: 400; + color: #000000; + letter-spacing: 0; + line-height: 40rpx; + font-size: 30rpx; +} +.message-body-span-image { + display: inline-block; + width: 32rpx; + height: 32rpx; + margin: 0 4rpx; +} +.emoji-icon { + width: 20px; + height: 20px; +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/TipMessage/index.js b/TUIService/TUIKit/components/TUIChat/components/MessageElements/TipMessage/index.js new file mode 100644 index 0000000..d7d9d02 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/TipMessage/index.js @@ -0,0 +1,39 @@ +import { parseGroupTip } from '../../../../../utils/message-parse'; +// eslint-disable-next-line no-undef +Component({ + /** + * 组件的属性列表 + */ + properties: { + message: { + type: Object, + value: {}, + observer(newVal) { + this.setData({ + renderDom: parseGroupTip(newVal), + }); + }, + }, + }, + + /** + * 组件的初始数据 + */ + data: { + + }, + lifetimes: { + attached() { + // 在组件实例进入页面节点树时执行 + }, + detached() { + // 在组件实例被从页面节点树移除时执行 + }, + }, + /** + * 组件的方法列表 + */ + methods: { + + }, +}); diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/TipMessage/index.json b/TUIService/TUIKit/components/TUIChat/components/MessageElements/TipMessage/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/TipMessage/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/TipMessage/index.wxml b/TUIService/TUIKit/components/TUIChat/components/MessageElements/TipMessage/index.wxml new file mode 100644 index 0000000..2f01fb1 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/TipMessage/index.wxml @@ -0,0 +1,3 @@ + + {{renderDom[0].text}} + diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/TipMessage/index.wxss b/TUIService/TUIKit/components/TUIChat/components/MessageElements/TipMessage/index.wxss new file mode 100644 index 0000000..d041479 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/TipMessage/index.wxss @@ -0,0 +1,9 @@ +.tip-message { + width: 100%; +} +.text-message { + text-align: center; + font-size: 12px; + color: #999999; +} + diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/VideoMessage/index.js b/TUIService/TUIKit/components/TUIChat/components/MessageElements/VideoMessage/index.js new file mode 100644 index 0000000..9b4b606 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/VideoMessage/index.js @@ -0,0 +1,85 @@ +import { parseVideo } from '../../../../../utils/message-parse'; +// eslint-disable-next-line no-undef +Component({ + /** + * 组件的属性列表 + */ + properties: { + message: { + type: Object, + value: {}, + observer(newVal) { + this.setData({ + message: newVal, + renderDom: parseVideo(newVal), + }); + }, + }, + isMine: { + type: Boolean, + value: true, + }, + }, + + /** + * 组件的初始数据 + */ + data: { + message: {}, + showSaveFlag: Number, + }, + + /** + * 组件的方法列表 + */ + methods: { + showVideoFullScreenChange(event) { + if (event.detail.fullScreen) { + this.setData({ + showSaveFlag: 1, + }); + } else { + this.setData({ + showSaveFlag: 2, + }); + } + }, + // 1代表当前状态处于全屏,2代表当前状态不处于全屏。 + handleLongPress(e) { + if (this.data.showSaveFlag === 1) { + wx.showModal({ + content: '确认保存该视频?', + success: (res) => { + if (res.confirm) { + wx.downloadFile({ + url: this.data.message.payload.videoUrl, + success(res) { + // 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容 + if (res.statusCode === 200) { + wx.saveVideoToPhotosAlbum({ + filePath: res.tempFilePath, + success() { + wx.showToast({ + title: '保存成功!', + duration: 800, + icon: 'none', + }); + }, + }); + } + }, + fail(error) { + wx.showToast({ + title: '保存失败!', + duration: 800, + icon: 'none', + }); + }, + }); + } + }, + }); + } + }, + }, +}); diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/VideoMessage/index.json b/TUIService/TUIKit/components/TUIChat/components/MessageElements/VideoMessage/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/VideoMessage/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/VideoMessage/index.wxml b/TUIService/TUIKit/components/TUIChat/components/MessageElements/VideoMessage/index.wxml new file mode 100644 index 0000000..b473652 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/VideoMessage/index.wxml @@ -0,0 +1,5 @@ + + + diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageElements/VideoMessage/index.wxss b/TUIService/TUIKit/components/TUIChat/components/MessageElements/VideoMessage/index.wxss new file mode 100644 index 0000000..f254dda --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageElements/VideoMessage/index.wxss @@ -0,0 +1,12 @@ +.video-message { + width: 150px; + height: 110px; + max-width: 60vw; +} +.video-box { + width: 100%; + height: 100%; +} +.my-video { + border-radius: 10px 2px 10px 10px; +} diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageInput/index.js b/TUIService/TUIKit/components/TUIChat/components/MessageInput/index.js new file mode 100644 index 0000000..d591cbf --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageInput/index.js @@ -0,0 +1,987 @@ +import logger from '../../../../utils/logger'; +import constant from '../../../../utils/constant'; +import { + finishConsult +} from "../../../../../../api/consultOrder" +// eslint-disable-next-line no-undef +Component({ + /** + * 组件的属性列表 + */ + properties: { + conversation: { + type: Object, + value: {}, + observer(newVal) { + this.setData({ + conversation: newVal, + },()=>{ + //this.getMessageone(this.data.conversation) + }); + }, + }, + order_inquiry_id: { + type: String, + value: '', + observer(newVal) { + this.setData({ + order_inquiry_id:newVal, + }); + }, + }, + inquiry_type: { + type: String, + value: '', + observer(newVal) { + this.setData({ + inquiry_type:newVal + }); + }, + }, + patient_family_data:{ + type: Object, + value:{}, + observer(newVal) { + this.setData({ + patient_family_data:newVal + }); + }, + }, + msgData:{ + type: Object, + value:{}, + observer(newVal) { + + this.setData({ + msgData:newVal + },()=>{ + + //console.log(newVal); + // this.setMsgRound(); + }); + }, + }, + message_rounds:{ + type: Number, + value: 0, + observer(newVal) { + this.setData({ + message_rounds:newVal + }); + }, + }, + times_number:{ + type: Number, + value: 0, + observer(newVal) { + this.setData({ + times_number:newVal + },()=>{ + + }); + }, + }, + duration:{ + type: Number, + value: 0, + observer(newVal) { + this.setData({ + duration:newVal + }); + }, + }, + rest_time:{ + type: Number, + value: 0, + rest_time(newVal) { + this.setData({ + rest_time:newVal + },()=>{ + //console.log('剩余时间:'+newVal) + }); + }, + }, + hasCallKit: { + type: Boolean, + value: false, + observer(hasCallKit) { + this.setData({ + hasCallKit, + }); + }, + }, + }, + + /** + * 组件的初始数据 + */ + data: { + conversation: {}, + showCustomer:false, + order_inquiry_id:'', + inquiry_type:'', + patient_family_data:{}, + message: '', + message_rounds:0, + times_number:0,//总共回合数 + msgData:{}, + rest_time:0, + duration:0, + hideText:false, + showTip:true, + + extensionArea: false, + sendMessageBtn: false, + displayFlag: '', + isAudio: false, + bottomVal: 0, + startPoint: 0, + popupToggle: false, + isRecording: false, + canSend: true, + text: '按住说话', + title: ' ', + notShow: false, + isShow: true, + commonFunction: [ + { name: '常用语', key: '0' }, + { name: '发送订单', key: '1' }, + { name: '服务评价', key: '2' }, + ], + displayServiceEvaluation: false, + showErrorImageFlag: 0, + messageList: [], + isFirstSendTyping: true, + time: 0, + focus: false, + isEmoji: false, + fileList: [], + hasCallKit: false, + }, + + lifetimes: { + attached() { + + + // 加载声音录制管理器 + this.recorderManager = wx.getRecorderManager(); + this.recorderManager.onStop((res) => { + wx.hideLoading(); + if (this.data.canSend) { + if (res.duration < 1000) { + wx.showToast({ + title: '录音时间太短', + icon: 'none', + }); + } else { + // res.tempFilePath 存储录音文件的临时路径 + const message = wx.$TUIKit.createAudioMessage({ + to: this.getToAccount(), + conversationType: this.data.conversation.type, + payload: { + file: res, + }, + }); + this.$sendTIMMessage(message); + } + } + this.setData({ + startPoint: 0, + popupToggle: false, + isRecording: false, + canSend: true, + title: ' ', + text: '按住说话', + }); + }); + + }, + ready(){ + // wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.SDK_READY,this.$onMessageReady,this); + }, + detached() { + // 一定要解除相关的事件绑定 + //wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.SDK_READY, this.$onMessageReady,this); + } + }, + + + /** + * 组件的方法列表 + */ + methods: { + showTooltip(){ + this.setData({ + showTip:!this.data.showTip, + }); + }, + handlefinishConsult(){ + let {order_inquiry_id}=this.data; + finishConsult(order_inquiry_id).then(data=>{ + this.triggerEvent("freshChatStatus",order_inquiry_id) + }) + }, + getMessageone(conversation){ + wx.$TUIKit.getMessageListHopping({ + conversationID: conversation.conversationID, + direction: 0, + count: 1, + }).then((res) => { + console.log("one"); + console.log(res); + const { messageList } = res.data; + this.getLatestMessageList(messageList); + }); + }, + // 获取消息列表来判断是否发送正在输入状态 + getMessageList(conversation) { + wx.$TUIKit.getMessageList({ + conversationID: conversation.conversationID, + nextReqMessageID: this.data.nextReqMessageID, + count: 15, + }).then((res) => { + const { messageList } = res.data; + this.setData({ + messageList, + }); + + }); + }, + + // 打开录音开关 + switchAudio() { + this.setData({ + isAudio: !this.data.isAudio, + isEmoji: false, + text: '按住说话', + focus: false, + }); + }, + + // 长按录音 + handleLongPress(e) { + wx.aegis.reportEvent({ + name: 'messageType', + ext1: 'messageType-audio', + ext2: wx.$chat_reportType, + ext3: wx.$chat_SDKAppID, + }); + this.recorderManager.start({ + duration: 60000, // 录音的时长,单位 ms,最大值 600000(10 分钟) + sampleRate: 44100, // 采样率 + numberOfChannels: 1, // 录音通道数 + encodeBitRate: 192000, // 编码码率 + format: 'aac', // 音频格式,选择此格式创建的音频消息,可以在即时通信 IM 全平台(Android、iOS、微信小程序和Web)互通 + }); + this.setData({ + startPoint: e.touches[0], + title: '正在录音', + // isRecording : true, + // canSend: true, + notShow: true, + isShow: false, + isRecording: true, + popupToggle: true, + }); + }, + + // 录音时的手势上划移动距离对应文案变化 + handleTouchMove(e) { + if (this.data.isRecording) { + if (this.data.startPoint.clientY - e.touches[e.touches.length - 1].clientY > 100) { + this.setData({ + text: '抬起停止', + title: '松开手指,取消发送', + canSend: false, + }); + } else if (this.data.startPoint.clientY - e.touches[e.touches.length - 1].clientY > 20) { + this.setData({ + text: '抬起停止', + title: '上划可取消', + canSend: true, + }); + } else { + this.setData({ + text: '抬起停止', + title: '正在录音', + canSend: true, + }); + } + } + }, + + // 手指离开页面滑动 + handleTouchEnd() { + this.setData({ + isRecording: false, + popupToggle: false, + + }); + wx.hideLoading(); + this.recorderManager.stop(); + }, + // 选中表情消息 + handleEmoji() { + let targetFlag = 'emoji'; + if (this.data.displayFlag === 'emoji') { + targetFlag = ''; + } + this.setData({ + isAudio: false, + isEmoji: true, + displayFlag: targetFlag, + focus: false, + }); + }, + + // 选自定义消息 + handleExtensions() { + wx.aegis.reportEvent({ + name: 'chooseExtensions', + ext1: 'chooseExtensions', + ext2: wx.$chat_reportType, + ext3: wx.$chat_SDKAppID, + }); + let targetFlag = 'extension'; + if (this.data.displayFlag === 'extension') { + targetFlag = ''; + } + this.setData({ + displayFlag: targetFlag, + }); + }, + + error(e) { + console.log(e.detail); + }, + + handleSendPicture() { + this.sendMediaMessage('camera', 'image'); + }, + + handleSendImage() { + wx.aegis.reportEvent({ + name: 'messageType', + ext1: 'messageType-image', + ext2: wx.$chat_reportType, + ext3: wx.$chat_SDKAppID, + }); + this.sendMediaMessage('album', 'image'); + }, + + sendMediaMessage(type, mediaType) { + if(this.setMsgRound()){ + const { fileList } = this.data; + wx.chooseMedia({ + count: 9, + sourceType: [type], + mediaType: [mediaType], + success: (res) => { + this.sendCallback(); + const mediaInfoList = res.tempFiles; + mediaInfoList.forEach((mediaInfo) => { + fileList.push({ type: res.type, tempFiles: [{ tempFilePath: mediaInfo.tempFilePath }] }); + }); + fileList.forEach((file) => { + if (file.type === 'image') { + this.handleSendImageMessage(file); + } + if (file.type === 'video') { + this.handleSendVideoMessage(file); + } + }); + this.data.fileList = []; + + }, + }); + } + + }, + + // 发送图片消息 + handleSendImageMessage(file) { + const message = wx.$TUIKit.createImageMessage({ + to: this.getToAccount(), + conversationType: this.data.conversation.type, + payload: { + file, + }, + cloudCustomData: JSON.stringify({ + order_inquiry_id:this.data.order_inquiry_id, + inquiry_type:this.data.inquiry_type, + message_rounds:this.data.msgData.msg_round, + patient_family_data:this.data.patient_family_data, + is_system:0 + }), + onProgress: (percent) => { + message.percent = percent; + }, + }); + this.$sendTIMMessage(message); + }, + + // 发送视频消息 + handleSendVideoMessage(file) { + const message = wx.$TUIKit.createVideoMessage({ + to: this.getToAccount(), + conversationType: this.data.conversation.type, + payload: { + file, + }, + onProgress: (percent) => { + message.percent = percent; + }, + }); + this.$sendTIMMessage(message); + }, + + handleShootVideo() { + this.sendMediaMessage('camera', 'video'); + }, + + handleSendVideo() { + wx.aegis.reportEvent({ + name: 'messageType', + ext1: 'messageType-video', + ext2: wx.$chat_reportType, + ext3: wx.$chat_SDKAppID, + }); + this.sendMediaMessage('album', 'video'); + }, + + handleCommonFunctions(e) { + switch (e.target.dataset.function.key) { + case '0': + this.setData({ + displayCommonWords: true, + }); + break; + case '1': + this.setData({ + displayOrderList: true, + }); + break; + case '2': + this.setData({ + displayServiceEvaluation: true, + }); + break; + default: + break; + } + }, + + handleSendOrder() { + this.setData({ + displayOrderList: true, + }); + }, + + appendMessage(e) { + this.setData({ + message: this.data.message + e.detail.message, + sendMessageBtn: true, + hideText:true + }); + }, + + getToAccount() { + if (!this.data.conversation || !this.data.conversation.conversationID) { + return ''; + } + switch (this.data.conversation.type) { + case wx.$TUIKitTIM.TYPES.CONV_C2C: + return this.data.conversation.conversationID.replace(wx.$TUIKitTIM.TYPES.CONV_C2C, ''); + case wx.$TUIKitTIM.TYPES.CONV_GROUP: + return this.data.conversation.conversationID.replace(wx.$TUIKitTIM.TYPES.CONV_GROUP, ''); + default: + return this.data.conversation.conversationID; + } + }, + async handleCheckAuthorize(e) { + const type = e.currentTarget.dataset.value; + wx.getSetting({ + success: async (res) => { + const isRecord = res.authSetting['scope.record']; + const isCamera = res.authSetting['scope.camera']; + if (!isRecord && type === 1) { + const title = '麦克风权限授权'; + const content = '使用语音通话,需要在设置中对麦克风进行授权允许'; + try { + await wx.authorize({ scope: 'scope.record' }); + this.handleCalling(e); + } catch (e) { + this.handleShowModal(title, content); + } + return; + } + if ((!isRecord || !isCamera) && type === 2) { + const title = '麦克风、摄像头权限授权'; + const content = '使用视频通话,需要在设置中对麦克风、摄像头进行授权允许'; + try { + await wx.authorize({ scope: 'scope.record' }); + await wx.authorize({ scope: 'scope.camera' }); + this.handleCalling(e); + } catch (e) { + this.handleShowModal(title, content); + } + return; + } + this.handleCalling(e); + }, + }); + }, + handleShowModal(title, content) { + wx.showModal({ + title, + content, + confirmText: '去设置', + success: (res) => { + if (res.confirm) { + wx.openSetting(); + } + }, + }); + }, + + handleCalling(e) { + if (!this.data.hasCallKit) { + wx.showToast({ + title: '请先集成 TUICallKit 组件', + icon: 'none', + }); + return; + } + const type = e.currentTarget.dataset.value; + const conversationType = this.data.conversation.type; + if (conversationType === wx.$TUIKitTIM.TYPES.CONV_GROUP) { + if (type === 1) { + wx.aegis.reportEvent({ + name: 'audioCall', + ext1: 'audioCall-group', + ext2: wx.$chat_reportType, + ext3: wx.$chat_SDKAppID, + }); + } else if (type === 2) { + wx.aegis.reportEvent({ + name: 'videoCall', + ext1: 'videoCall-group', + ext2: wx.$chat_reportType, + ext3: wx.$chat_SDKAppID, + }); + } + this.triggerEvent('handleCall', { + type, + conversationType, + }); + } + if (conversationType === wx.$TUIKitTIM.TYPES.CONV_C2C) { + const { userID } = this.data.conversation.userProfile; + if (type === 1) { + wx.aegis.reportEvent({ + name: 'audioCall', + ext1: 'audioCall-1v1', + ext2: wx.$chat_reportType, + ext3: wx.$chat_SDKAppID, + }); + } else if (type === 2) { + wx.aegis.reportEvent({ + name: 'videoCall', + ext1: 'videoCall-1v1', + ext2: wx.$chat_reportType, + ext3: wx.$chat_SDKAppID, + }); + } + this.triggerEvent('handleCall', { + conversationType, + type, + userID, + }); + } + this.setData({ + displayFlag: '', + }); + }, + orderMsg(){ + let that=this; + wx.requestSubscribeMessage({ + tmplIds: ['82rKSdbKkbFK_tHmIMnHyfyRJq9ujvmAsTjRHdxmCdE'], + success (res) { + that.setData({ + showCustomer:true + }) + } + }) + }, + //发送成功之后回合数+1; + sendCallback(){ + let {times_number,msgData}=this.data; + let rounds=msgData.msg_round; + if(msgData.msg_type==1){ + rounds=rounds+1; + this.setData({ + 'msgData.msg_round':rounds + }) + }; + this.triggerEvent("getMessageRounds",{ + msg_round:rounds, + msg_type:2 + }); + setTimeout(() => { + if(times_number>=0){ + if(rounds==times_number){ + wx.showToast({ + title: '沟通已达到限制的'+times_number+'个回合', + icon:"none" + }) + this.triggerEvent("changeTimeStatus",true); + this.handlefinishConsult(); + } + }; + }, 300); + + }, + setMsgRound(){ + let {duration,rest_time}=this.data; + if(duration!=0 && rest_time==0){ + wx.showToast({ + title: '沟通时长已超过限制时间', + icon:"none" + }) + this.triggerEvent("changeTimeStatus",true); + this.handlefinishConsult(); + return false; + }; + return true + + }, + //发送前获取最新的一条消息 + getLatestMessageList(messageList) { + let list=messageList; + if(list.length>0){ + const messageList =list[list.length-1]; + console.log(messageList); + let customdata=JSON.parse(messageList.cloudCustomData); + let msg_rounds=customdata.message_rounds; + let from=messageList.flow; + let type=messageList.type; + this.setData({ + message_rounds:msg_rounds || 0 + }); + if(this.data.times_number>=0){ + let rest_rounds=this.data.times_number-this.data.message_rounds; + this.triggerEvent("getMessageRounds",rest_rounds); + } + + + if(this.data.duration!=0 && this.data.rest_time==0){ + wx.showToast({ + title: '沟通时长已超过限制时间', + icon:"none" + }) + this.handlefinishConsult(); + return false; + } + if(this.data.times_number>=0){ + if(msg_rounds==this.data.times_number){ + wx.showToast({ + title: '沟通已达到限制的'+this.data.times_number+'个回合', + icon:"none" + }) + + this.handlefinishConsult(); + return false; + } + } + + + if(this.data.times_number>=0){ + if(from=="in" && type!="TIMCustomElem"){ + msg_rounds=msg_rounds+1; + this.setData({ + message_rounds:msg_rounds + }) + + } + console.log("total:"+this.data.times_number,"message_rounds:"+this.data.message_rounds) + let rest_rounds=this.data.times_number-this.data.message_rounds; + this.triggerEvent("getMessageRounds",rest_rounds); + } + + + } + return true + + }, + sendTextMessage(msg, flag) { + if(!this.data.message){ + wx.showToast({ + title: '输入内容不能为空', + icon:'none' + }) + return false + }; + if(this.setMsgRound()){ + wx.aegis.reportEvent({ + name: 'messageType', + ext1: 'messageType-text', + ext2: wx.$chat_reportType, + ext3: wx.$chat_SDKAppID, + }); + const to =this.getToAccount(); + const text = flag ? msg : this.data.message; + const { FEAT_NATIVE_CODE } = constant; + this.sendCallback(); + const message = wx.$TUIKit.createTextMessage({ + to, + conversationType: this.data.conversation.type, + payload: { + text, + }, + cloudCustomData: JSON.stringify({ + order_inquiry_id:this.data.order_inquiry_id, + inquiry_type:this.data.inquiry_type, + message_rounds:this.data.msgData.msg_round, + patient_family_data:this.data.patient_family_data, + is_system:0 + }), + }); + this.setData({ + message: '', + sendMessageBtn: false, + hideText:false + }); + + this.$sendTIMMessage(message); + + + } + + + }, + + // 监听输入框value值变化 + onInputValueChange(event) { + if (event.detail.message || event.detail.value) { + this.setData({ + message: event.detail.message || event.detail.value, + sendMessageBtn: true, + hideText:true + }); + } else { + this.setData({ + sendMessageBtn: false, + hideText:false + }); + } + //event.detail.value && this.sendTypingStatusMessage(); + }, + + // 发送正在输入状态消息 + sendTypingStatusMessage() { + const { BUSINESS_ID_TEXT, FEAT_NATIVE_CODE } = constant; + // 创建正在输入状态消息, "typingStatus":1,正在输入中1, 输入结束0, "version": 1 兼容老版本,userAction:0, // 14表示正在输入,actionParam:"EIMAMSG_InputStatus_Ing" //"EIMAMSG_InputStatus_Ing" 表示正在输入, "EIMAMSG_InputStatus_End" 表示输入结束 + const typingMessage = wx.$TUIKit.createCustomMessage({ + to: this.getToAccount(), + conversationType: this.data.conversation.type, + payload: { + data: JSON.stringify({ + businessID: BUSINESS_ID_TEXT.USER_TYPING, + typingStatus: FEAT_NATIVE_CODE.ISTYPING_STATUS, + version: FEAT_NATIVE_CODE.NATIVE_VERSION, + userAction: FEAT_NATIVE_CODE.ISTYPING_ACTION, + actionParam: constant.TYPE_INPUT_STATUS_ING, + }), + description: '', + extension: '', + }, + cloudCustomData: JSON.stringify({ + order_inquiry_id:this.data.order_inquiry_id, + inquiry_type:this.data.inquiry_type, + message_rounds:this.data.msgData.msg_round, + patient_family_data:this.data.patient_family_data, + is_system:0 + }), + }); + // 在消息列表中过滤出对方的消息,并且获取最新消息的时间。 + const inList = this.data.messageList.filter(item => item.flow === 'in'); + if (inList.length === 0) return; + const sortList = inList.sort((firstItem, secondItem) => secondItem.time - firstItem.time); + const newMessageTime = sortList[0].time * 1000; + // 发送正在输入状态消息的触发条件。 + const isSendTypingMessage = this.data.messageList.every((item) => { + try { + const sendTypingMessage = JSON.parse(item.cloudCustomData); + return sendTypingMessage.messageFeature.needTyping; + } catch (error) { + return false; + } + }); + // 获取当前编辑时间,与收到对方最新的一条消息时间相比,时间小于30s则发送正在输入状态消息/ + const now = new Date().getTime(); + const timeDifference = (now - newMessageTime); + + if (isSendTypingMessage && timeDifference > (1000 * 30)) return; + if (this.data.isFirstSendTyping) { + this.$sendTypingMessage(typingMessage); + this.setData({ + isFirstSendTyping: false, + }); + } else { + this.data.time = setTimeout(() => { + this.$sendTypingMessage(typingMessage); + }, (1000 * 4)); + } + }, + // 监听是否获取焦点,有焦点则向父级传值,动态改变input组件的高度。 + inputBindFocus(event) { + this.setData({ + focus: true, + }); + this.getMessageList(this.data.conversation); + this.triggerEvent('pullKeysBoards', { + event, + }); + // 有焦点则关闭除键盘之外的操作界面,例如表情组件。 + this.handleClose(); + }, + + // 监听是否失去焦点 + inputBindBlur(event) { + const { BUSINESS_ID_TEXT, FEAT_NATIVE_CODE } = constant; + const typingMessage = wx.$TUIKit.createCustomMessage({ + to: this.getToAccount(), + conversationType: this.data.conversation.type, + payload: { + data: JSON.stringify({ + businessID: BUSINESS_ID_TEXT.USER_TYPING, + typingStatus: FEAT_NATIVE_CODE.NOTTYPING_STATUS, + version: FEAT_NATIVE_CODE.NATIVE_VERSION, + userAction: FEAT_NATIVE_CODE.NOTTYPING_ACTION, + actionParam: constant.TYPE_INPUT_STATUS_END, + }), + cloudCustomData: JSON.stringify({ messageFeature: + { + needTyping: FEAT_NATIVE_CODE.FEAT_TYPING, + version: FEAT_NATIVE_CODE.NATIVE_VERSION, + }, + }), + description: '', + extension: '', + }, + }); + //this.$sendTypingMessage(typingMessage); + this.setData({ + isFirstSendTyping: true, + }); + clearTimeout(this.data.time); + this.triggerEvent('downKeysBoards', { + event, + }); + }, + + $handleSendTextMessage(event) { + + this.sendTextMessage(event.detail.message, true); + this.setData({ + displayCommonWords: false, + }); + }, + + $handleSendCustomMessage(e) { + wx.aegis.reportEvent({ + name: 'messageType', + ext1: 'messageType-custom', + ext2: wx.$chat_reportType, + ext3: wx.$chat_SDKAppID, + }); + const message = wx.$TUIKit.createCustomMessage({ + to: this.getToAccount(), + conversationType: this.data.conversation.type, + payload: e.detail.payload, + }); + this.$sendTIMMessage(message); + this.setData({ + displayOrderList: false, + displayCommonWords: false, + }); + }, + + $handleCloseCards(e) { + switch (e.detail.key) { + case '0': + this.setData({ + displayCommonWords: false, + }); + break; + case '1': + this.setData({ + displayOrderList: false, + }); + break; + case '2': + this.setData({ + displayServiceEvaluation: false, + }); + break; + default: + break; + } + }, + // 发送正在输入消息 + $sendTypingMessage(message) { + wx.$TUIKit.sendMessage(message, { + onlineUserOnly: true, + }); + }, + + $sendTIMMessage(message) { + this.triggerEvent('sendMessage', { + message, + }); + wx.$TUIKit.sendMessage(message, { + offlinePushInfo: { + disablePush: true, + }, + }).then(() => { + const firstSendMessage = wx.getStorageSync('isFirstSendMessage'); + if (firstSendMessage) { + wx.aegis.reportEvent({ + name: 'sendMessage', + ext1: 'sendMessage-success', + ext2: 'imTuikitExternal', + ext3: wx.$chat_SDKAppID, + }); + } + }) + .catch((error) => { + logger.log(`| TUI-chat | message-input | sendMessageError: ${error.code} `); + wx.aegis.reportEvent({ + name: 'sendMessage', + ext1: `sendMessage-failed#error: ${error}`, + ext2: 'imTuikitExternal', + ext3: wx.$chat_SDKAppID, + }); + this.triggerEvent('showMessageErrorImage', { + showErrorImageFlag: error.code, + message, + }); + }); + this.setData({ + displayFlag: '', + }); + }, + + handleClose() { + this.setData({ + displayFlag: '', + }); + }, + + handleServiceEvaluation() { + this.setData({ + displayServiceEvaluation: true, + }); + }, + }, +}); diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageInput/index.json b/TUIService/TUIKit/components/TUIChat/components/MessageInput/index.json new file mode 100644 index 0000000..47de2e5 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageInput/index.json @@ -0,0 +1,12 @@ +{ + "component": true, + "usingComponents": { + "Emoji": "../MessageElements/Emoji/index", + "CommonWords": "../MessagePrivate/CommonWords/index", + "OrderList": "../MessagePrivate/OrderList/index", + "ServiceEvaluation": "../MessagePrivate/ServiceEvaluation/index", + "van-dialog": "@vant/weapp/dialog/index", + "van-popup": "@vant/weapp/popup/index" + + } +} diff --git a/TUIService/TUIKit/components/TUIChat/components/MessageInput/index.wxml b/TUIService/TUIKit/components/TUIChat/components/MessageInput/index.wxml new file mode 100644 index 0000000..4ba2d83 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessageInput/index.wxml @@ -0,0 +1,111 @@ + + + + + + 更多 + + + + + + + + + + + --> + + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/components/MessagePrivate/ServiceEvaluation/index.wxss b/TUIService/TUIKit/components/TUIChat/components/MessagePrivate/ServiceEvaluation/index.wxss new file mode 100644 index 0000000..80a78a9 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/components/MessagePrivate/ServiceEvaluation/index.wxss @@ -0,0 +1,180 @@ +.tui-cards-container { + position: fixed; + width: 100vw; + height: 100vh; + z-index:9999999; + top: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + align-items: flex-end; +} + +.service-evaluation { + flex: 1; + background: #FFFFFF; + padding: 38rpx 40rpx 38rpx; + border-radius: 40rpx 40rpx 0 0; +} + +.header { + display: flex; + justify-content: space-between; + font-family: PingFangSC-Regular; +} + +.btn { + width: auto !important; + padding: 0; + margin: 0 !important; + background: none; +} + +.header label { + font-size: 18px; + color: #000000; + letter-spacing: 0; + line-height: 25px; +} +.van-field__body--textarea{ + width:600rpx; +} +.header .btn { + font-size: 16px; + color: #006EFF; + letter-spacing: 0; + line-height: 24px; +} + +.main { + display: flex; + flex-direction: column; + padding: 8rpx 0 38rpx; +} + +.main-evaluation-score { + padding: 0 60rpx 48rpx; + display: flex; + justify-content: space-between; + align-items: flex-end; +} + +.main-evaluation-score .score-star { + width: 72rpx; + height: 72rpx; +} + +.main textarea { + background: #F8F8F8; + border: 0 solid #D9D9D9; + border-radius: 4px; + font-size: 14px; + padding: 16rpx 32rpx; +} + +.textarea-placeholder { + color: #B0B0B0; +} +.footer .btn{ + height: 80rpx; + width:100%; + background: #3CC7C0; + color:#fff; + display: flex; + font-size: 30rpx; + align-items: center; + justify-content: center; + border-radius: 10rpx + } +.chatclose { + width: 30rpx; + height: 30rpx; + position: absolute; + padding:10rpx 30rpx; + + right: 10rpx; +} + +.doctorInfo { + display: flex; + flex-direction: column; + align-items: center; +} + +.doctorAvatar { + width: 120rpx; + height: 120rpx; + border-radius: 50%; +} + +.namebox { + display: flex; + margin-top: 18rpx; + align-items: center; +} + +.namebox .name { + color: #333333; + font-size: 32rpx; +} + +.viewstar { + margin-top: 28rpx; +} + +.namebox .position { + color: #333333; + font-size: 24rpx; + margin-left: 8rpx; +} +.linebox{ + display: flex; + margin-top: 20rpx; + align-items: center; +} +.linebox .line { + flex: 1; + height:1rpx; + background: #CCCCCC; +} + +.linebox .pingjia { + margin: 0 40rpx; + font-weight: 600; + color: #333333; +} + +.starbox{ + margin-bottom: 30rpx; + display: flex; + align-items: center; + color: #333333; + font-size: 28rpx; +} +.ratebox{ + margin-top: 34rpx; +} + +.starbox .name{ + margin-right:22rpx; +} +.starbox .quality{ + margin-left:22rpx; + } + .ipt{ + height:165rpx; + background-color: transparent!important; + padding:8rpx!important; + } + .commentArea{ + position: relative; + } + + .commentArea .van-field__word-limit{ + position: absolute!important; + left:10rpx; + right:10rpx; + text-align: right; + bottom:5rpx; + color: #ccc!important; + font-size: 24rpx; +} diff --git a/TUIService/TUIKit/components/TUIChat/index.js b/TUIService/TUIKit/components/TUIChat/index.js new file mode 100644 index 0000000..fc1cc03 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/index.js @@ -0,0 +1,792 @@ +// TUIKit-WChat/Chat/index.js +import logger from '../../utils/logger'; +import constant from '../../utils/constant'; +const dayjs = require("../../utils/dayjs.js"); +import { + getRate +} from "../../../../api/consultOrder" +// eslint-disable-next-line no-undef +import { + fllowDoctor, + notfllowDoctor, + doctorDetail, +} from "../../../../api/consultExpert" + + +import { + chatMsg +} from "../../../../api/common" +import {throttle} from "../../../../utils/util" + +const app = getApp(); +const inputStyle = ` + --padding: 25px +`; + +let newInputStyle = ` +--padding: 0px +`; + +const setNewInputStyle = (number) => { + const height = number; + newInputStyle = `--padding: ${height}px`; +}; +let pageY = 0; +Component({ + /** + * 组件的属性列表 + */ + properties: { + currentConversationID: { + type: String, + value: '', + observer(currentConversationID) { + this.setData({ + conversationID: currentConversationID, + }); + }, + }, + order_inquiry_id: { + type: String, + value: '', + observer(order_inquiry_id) { + this.setData({ + order_inquiry_id, + }); + }, + }, + fromType: { + type: String, + value: '', + observer(newval) { + this.setData({ + fromType: newval + }); + }, + }, + inquiry_type: { + type: String, + value: '', + observer(inquiry_type) { + this.setData({ + inquiry_type + }); + }, + }, + hasCallKit: { + type: Boolean, + value: false, + observer(hasCallKit) { + this.setData({ + hasCallKit, + }); + }, + }, + }, + + lifetimes: { + attached() { + if (app?.globalData?.reportType === constant.OPERATING_ENVIRONMENT) { + this.setData({ + showTips: true, + }); + } + }, + ready() { + + } + }, + pageLifetimes: { + show: function() { + this.setData({ + img_host:app.hostConfig().imghost + }); + wx.onNetworkStatusChange((res) => { + let msg = '' + if (!res.isConnected) { + msg = '当前网络不可用,请检查你的网络设置' + } else if (res.networkType === 'none') { + msg = '网络开小差了,请在网络良好后重试' + } + if (msg) { + wx.showToast({ + title: msg, + icon: 'none', + }) + } + }) + console.log(this.data.order_inquiry_id); + this.handleChatMsg(this.data.order_inquiry_id); + + }, + hide: function() { + this.setData({ + showAgain:false + }) + // 页面被隐藏 + }, + resize: function(size) { + // 页面尺寸变化 + } + }, + /** + * 组件的初始数据 + */ + data: { + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static', + conversationName: '', + isEvaluation:false, + conversation: {}, + doctor_info: '', + messageList: [], + isShow: false, + showImage: false, + showChat: true, + commentDetail: null, + conversationID: '', + order_inquiry_id: '', + comment_id:'',//评论订单id + fromType: '', + inquiry_type: '', + patient_family_data: {}, + rest_rounds: 0,//剩余回合数 + msgData:{ + msg_round:0, + msg_type:1 + }, + message: '', + doctorChatData: { + is_evaluation: false, + inquiry_status: '', + follow: false, + times_number: 0, + duration: 0, + reception_time: null, + rest_time: 0, + doctor_id: '', + timeData: {}, + }, + doctorDetail: { + avatar: '', + be_good_at: '', + user_name: '', + doctor_title_name: '', + department_custom_name: '', + doctor_inquiry_config: [], + hospital: {}, + doctor_id:'', + multi_point_status: '', + multi_point_enable:0 + }, + current_inquiry_config: {}, + config: { + sdkAppID: '', + userID: '', + userSig: '', + type: 1, + tim: null, + }, + unreadCount: 0, + hasCallKit: false, + viewData: { + style: inputStyle, + }, + showHead: false, + showDialog: false, + overlay: false, + blockHeight:"300rpx", //菜单卡片高度 + KeyboardHeight: 0, + showPop: true, + showTips: false, + showGroupTips: false, + showAll: false, + displayServiceEvaluation: false, + score: 0, + startX: 0, //touchStart开始坐标 + startY: 0, + isFlag:true, + isEnd:false + }, + + /** + * 组件的方法列表 + */ + methods: { + handleGetRate(id) { + getRate(id).then(data => { + if (data) { + this.setData({ + isEvaluation:true, + commentDetail: data, + score: data.avg_score + }) + } + + + }) + }, + openHelp() { + this.setData({ + showDialog: true + }) + }, + closeHead() { + this.setData({ + showHead: true + }) + }, + // 显示遮罩层 + showModal() { + this.setData({ + hideModal: true, + blockHeight:"1130rpx" + }) + }, + // 隐藏遮罩层 + hideModal() { + + this.setData({ + hideModal: false, + blockHeight:"300rpx" + }) + }, + touchstart(e) { + this.setData({ + startX: e.changedTouches[0].clientX, + startY: e.changedTouches[0].clientY + }) + }, + angle(start, end) { + var _X = end.X - start.X, + _Y = end.Y - start.Y; + //返回角度 Math.atan()返回数字的反正切值 + return 360 * Math.atan(_Y / _X) / (2 * Math.PI); + }, + touchend(e) { + let {startX,startY} = this.data; + let slidingRange = 45; // + let touchMoveX = e.changedTouches[0].clientX; + let touchMoveY = e.changedTouches[0].clientY; + let angle = this.angle({ + X: startX, + Y: startY + }, { + X: touchMoveX, + Y: touchMoveY + }); + //为了方便计算取绝对值判断 + if (Math.abs(angle) > slidingRange && touchMoveY < startY) { + + this.showModal() + // 向上滑动 + }; + if (Math.abs(angle) > slidingRange && touchMoveY > startY ) { + this.hideModal() + // 向下滑动 + } + }, + onClose() { + this.setData({ + showPop: false, + }); + }, + changeTimeStatus(event){ + if(event.detail){ + this.setData({ + isEnd:true + }) + } + }, + goExpertDetail:throttle(function(){ + let id = this.data.doctorChatData.doctor_id; + // wx.redirectTo({ + // url: "/pages/expertDetail/expertDetail?doctor_id=" + id + // }) + app.method.navigateTo({ + url: "/pages/expertDetail/expertDetail?doctor_id=" + id + }) + }), + loopArr(arr,type){ + let inquiry_mode=''; + let inquiry_price=''; + let recieveStatus=''; + let order_type=type; + for (let i = 0; i < arr.length; i++) { + if(arr[i].inquiry_type==type){ + recieveStatus=arr[i].work_num_day-arr[i].times_number; + inquiry_mode=arr[i].inquiry_mode; + inquiry_price=arr[i].inquiry_price; + } + }; + //如果公益问诊 次数为0 则去看是否有专家问诊 + if(type==3 && recieveStatus==0){ + for (let i = 0; i < arr.length; i++) { + if(arr[i].inquiry_type==1){ + order_type=1; + recieveStatus=arr[i].work_num_day-arr[i].order_inquiry_count; + inquiry_mode=arr[i].inquiry_mode; + inquiry_price=arr[i].inquiry_price; + duration=arr[i].duration; + work_num_day=arr[i].work_num_day; + times_number=arr[i].times_number; + order_inquiry_count=arr[i].order_inquiry_count; + } + } + } + this.setData({ + current_inquiry_config: { + inquiry_type: order_type, + inquiry_mode:inquiry_mode, + inquiry_price:inquiry_price, + recieveStatus:recieveStatus + } + }) + }, + formatInquiryStatus(arr){ + var a='3'; + if(arr){ + for (var i = 0; i < arr.length; ++i) { + if(arr[i].is_enable==1 && arr[i].inquiry_type==1){ + a='2' + }; + if(arr[i].is_enable==1 && arr[i].inquiry_type==3){ + return '1' + }; + } + + } + return a + }, + getDoctorDetail(id) { + doctorDetail(id).then(data => { + let obj = this.data.doctorDetail; + for (const key in obj) { + let item = `doctorDetail.${key}` + this.setData({ + [item]: data[key] + }) + }; + let doctor_inquiry_config = data.doctor_inquiry_config; + let inquiryType=this.formatInquiryStatus(doctor_inquiry_config); + if(inquiryType==1){ + this.loopArr(doctor_inquiry_config,3); + }else if(inquiryType==2){ + this.loopArr(doctor_inquiry_config,1); + }else{ + this.setData({ + current_inquiry_config:null + }) + } + // if(data.is_img_expert_reception==1 && data.is_img_welfare_reception==1){ + // this.loopArr(doctor_inquiry_config,3); + // // 1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药 + // this.setData({ + // isHide:true + // }) + // }else if(data.is_img_expert_reception==1 && data.is_img_welfare_reception==0){ + // this.loopArr(doctor_inquiry_config,1); + + // }else if(data.is_img_welfare_reception== 1 && data.is_img_expert_reception==0){ + // this.loopArr(doctor_inquiry_config,3); + // }else{ + // this.setData({ + // current_inquiry_config:null + // }) + // } + }) + }, + goOrderDetail:throttle(function(){ + let { + order_inquiry_id + } = this.data; + // wx.redirectTo({ + // url: '/pages/orderDetail/orderDetail?order_inquiry_id='+order_inquiry_id + // }) + console.log("订单详情"); + app.method.navigateTo({ + url: '/pages/orderDetail/orderDetail?order_inquiry_id='+order_inquiry_id + }) + }), + getMessageRounds(event) { + console.log('detail======') + console.log(event) + this.setData({ + msgData: event.detail + }) + console.log(this.data.doctorChatData.times_number) + if(this.data.doctorChatData.times_number>=0){ + let rest_rounds=this.data.doctorChatData.times_number-event.detail.msg_round; + console.log("rest_rounds:"+rest_rounds) + this.setData({ + rest_rounds:rest_rounds + }) + + } + }, + onChangeTime(e) { + this.setData({ + 'doctorChatData.timeData': e.detail, + }); + }, + toggleFllow() { + if (this.data.doctorChatData.follow) { + this.handenotfllowDoctor() + } else { + this.handelfllowDoctor() + } + }, + handleChatMsg(id) { + chatMsg(id).then(data => { + // console.log("接口请求收到时间66666"+dayjs().format("YYYY-MM-DD HH:mm:ss:SSS")); + // console.log(data); + let obj = this.data.doctorChatData; + for (const key in obj) { + let item = `doctorChatData.${key}` + this.setData({ + [item]: data[key] + }) + }; + this.getDoctorDetail(data.doctor_id); + let patient_family_data = { + patient_name: data.patient_family_name, + patient_sex: data.patient_family_sex, + patient_age: data.patient_family_age + }; + this.setData({ + patient_family_data: patient_family_data + }) + let duration='' + if( data.duration == 0){ + duration='不限时长'; + }else if((data.duration / 60)>0 && (data.duration / 60)<=1){ + duration=data.duration+"分钟内"; + }else{ + duration=(data.duration / 60) + "小时内"; + }; + console.log(duration); + let number = data.times_number == 0 ? '不限次' : data.times_number + "回合"; + let message=''; + if(data.inquiry_type==4 || data.inquiry_type==2){ + message=`医生接诊后${duration}${number}沟通。超过5分钟未接诊,平台会在1个工作日内全额退还费用,如使用优惠劵,一并退回。` + }else if(data.inquiry_type==1 || data.inquiry_type==3){ + message=`医生接诊后${duration}${number}沟通。医生超过24小时未接诊,平台会在1个工作日内全额退还费用,如使用优惠劵,一并退回` + } + this.setData({ + message:message + }) + if (data.inquiry_status == 3) { + this.setData({ + "doctorChatData.rest_time": -1 //待接诊 可以沟通 + }); + if (data.times_number == 0) { + this.setData({ + "doctorChatData.times_number": -1 + }) + } else { + this.setData({ + message_rounds: data.times_number + }) + + } + + } else if (data.inquiry_status == 4) { + if (data.times_number == 0) { + this.setData({ + "doctorChatData.times_number": -1 + }) + } else { + this.setData({ + message_rounds: data.times_number + }) + + } + if (data.duration != 0) { + if (data.reception_time) { + let endtime = dayjs(data.reception_time).add(data.duration, 'minute').format('YYYY-MM-DD HH:mm:ss'); + let nowtime = dayjs().format('YYYY-MM-DD HH:mm:ss'); + let countdown = dayjs(endtime).diff(nowtime, "millisecond"); + let countdownTime = countdown > 0 ? countdown : 0; + console.log("countdownTime--------"); + console.log(countdownTime); + this.setData({ + "doctorChatData.rest_time": countdownTime + }) + } else { + this.setData({ + "doctorChatData.rest_time": 0 + }) + } + } else { + this.setData({ + "doctorChatData.rest_time": -2 //接诊不限时间 + }) + } + } + // console.log("times_number:----"+data.times_number,this.data.msgData.msg_round) + if(data.times_number>=0){ + let rest_rounds=data.times_number-this.data.msgData.msg_round; + console.log("rest_rounds:----"+rest_rounds) + this.setData({ + rest_rounds:rest_rounds + }) + + } + if(this.data.isFlag){ + this.scrollBottom(); + this.setData({ + isFlag:false + }) + } + if(data.inquiry_status == 4 && data.duration!==0){ + if(this.data.doctorChatData.rest_time==0){ + //console.log("结束了"); + this.selectComponent('#MessageInput').handlefinishConsult() + } + + } + }) + }, + handelfllowDoctor() { + let id = this.data.doctorChatData.doctor_id; + fllowDoctor(id).then(data => { + this.setData({ + "doctorChatData.follow": true + }) + wx.showToast({ + title: '关注成功', + icon: "none" + }) + }) + }, + handenotfllowDoctor() { + let id = this.data.doctorChatData.doctor_id; + notfllowDoctor(id).then(data => { + this.setData({ + "doctorChatData.follow": false + }) + wx.showToast({ + title: '已取消关注', + icon: "none" + }) + }) + }, + $handleCloseCards(event) { + let commentDetail={ + avg_score:event.detail.score, + is_evaluation:event.detail.score>0?true:false + }; + this.setData({ + displayServiceEvaluation: false, + commentDetail:commentDetail + }); + }, + handleServiceEvaluation(e) { + let commentDetail=e.detail; + if( commentDetail && commentDetail.avg_score){ + commentDetail.is_evaluation=true + }else{ + commentDetail.is_evaluation=false + } + this.setData({ + displayServiceEvaluation:true, + commentDetail:commentDetail, + }); + }, + init() { + //this.handleGetRate(this.data.order_inquiry_id); + wx.$TUIKit.setMessageRead({ + conversationID: this.data.conversationID + }).then((data) => { + logger.log('| TUI-chat | setMessageRead | ok'); + }); + wx.$TUIKit.getConversationProfile(this.data.conversationID).then((res) => { + const { + conversation + } = res.data; + app.globalData.chatNumber = app.globalData.chatNumber - conversation.unreadCount; + this.setData({ + conversationName: this.getConversationName(conversation), + conversation, + isShow: conversation.type === wx.$TUIKitTIM.TYPES.CONV_GROUP, + }); + if (conversation.type !== wx.$TUIKitTIM.TYPES.CONV_GROUP) return; + if (!this.data.showTips) { + this.setData({ + showGroupTips: true, + }); + } else { + this.setData({ + showAll: true, + }); + } + }).catch((err) => { + console.log(err) + }); + + + }, + getConversationName(conversation) { + if (conversation.type === '@TIM#SYSTEM') { + this.setData({ + showChat: false, + }); + return '系统通知'; + } + if (conversation.type === wx.$TUIKitTIM.TYPES.CONV_C2C) { + return conversation.remark || conversation.userProfile.nick || conversation.userProfile.userID; + } + if (conversation.type === wx.$TUIKitTIM.TYPES.CONV_GROUP) { + return conversation.groupProfile.name || conversation.groupProfile.groupID; + } + }, + sendMessage(event) { + // 将自己发送的消息写进消息列表里面 + this.selectComponent('#MessageList').updateMessageList(event.detail.message); + }, + showMessageErrorImage(event) { + this.selectComponent('#MessageList').sendMessageError(event); + }, + triggerClose() { + try { + this.selectComponent('#MessageInput').handleClose(); + } catch (error) { + + } + }, + handleCall(event) { + if (event.detail.conversationType === wx.$TUIKitTIM.TYPES.CONV_GROUP) { + this.selectComponent('#TUIGroup').callShowMoreMember(event); + } else { + this.triggerEvent('handleCall', event.detail); + } + }, + groupCall(event) { + const { + selectedUserIDList, + type, + groupID + } = event.detail; + const userIDList = selectedUserIDList; + this.triggerEvent('handleCall', { + userIDList, + type, + groupID + }); + }, + goBack() { + //this.triggerEvent('showConversationList'); + if (app.globalData.origion == 1) { + wx.reLaunch({ + url: '/pages/index/index', + }) + } else if (app.globalData.origion == 2) { + wx.reLaunch({ + url: '/pages/index/index', + }) + } else { + wx.$TUIKit.setMessageRead({ + conversationID: this.data.conversationID, + }).then(() => { + if (this.data.fromType) { + wx.reLaunch({ + url: "/pages/index/index" + }) + } else { + wx.navigateBack({ + delta: 1, + fail:function(){ + wx.reLaunch({ + url: '/pages/index/index', + }) + } + }) + } + + }); + } + + }, + showConversationList() { + this.triggerEvent('showConversationList'); + }, + freshChatStatus(event) { + console.log("freshChatStatus"); + if (event.detail) { + this.setData({ + order_inquiry_id:event.detail + }) + this.handleChatMsg(event.detail); + + } + }, + freshRate(event){ + console.log('comment_id:'+event.detail); + if (event.detail) { + this.setData({ + comment_id:event.detail + }); + //this.handleGetRate(event.detail); + + } + }, + changeMemberCount(event) { + this.selectComponent('#TUIGroup').updateMemberCount(event.detail.groupOptionsNumber); + }, + resendMessage(event) { + this.selectComponent('#MessageInput').onInputValueChange(event); + }, + //触发滚动到底部 + scrollBottom(){ + console.log("触发"); + wx.nextTick(() => { + let compoment=this.selectComponent(".mylist"); + compoment.handleJumpNewMessage(); + }); + }, + // 监听键盘,获取焦点时将输入框推到键盘上方 + pullKeysBoards(event) { + setNewInputStyle(event.detail.event.detail.height); + this.setData({ + 'viewData.style': newInputStyle, + }); + this.scrollBottom(); + }, + + // 监听键盘,失去焦点时收起键盘 + downKeysBoards(event) { + this.scrollBottom(); + this.setData({ + 'viewData.style': inputStyle, + }); + }, + typing(event) { + const { + STRING_TEXT, + FEAT_NATIVE_CODE + } = constant; + if (this.data.conversation.type === wx.$TUIKitTIM.TYPES.CONV_C2C) { + if (event.detail.typingMessage.typingStatus === FEAT_NATIVE_CODE.ISTYPING_STATUS && event.detail.typingMessage.actionParam === constant.TYPE_INPUT_STATUS_ING) { + this.setData({ + conversationName: STRING_TEXT.TYPETYPING, + }); + setTimeout(() => { + this.setData({ + conversationName: this.getConversationName(this.data.conversation), + }); + }, (1000 * 30)); + } else if (event.detail.typingMessage.typingStatus === FEAT_NATIVE_CODE.NOTTYPING_STATUS && event.detail.typingMessage.actionParam === constant.TYPE_INPUT_STATUS_END) { + this.setData({ + conversationName: this.getConversationName(this.data.conversation), + }); + } + } + }, + handleReport() { + const url = '/pages/TUI-User-Center/webview/webview?url=https://cloud.tencent.com/apply/p/xc3oaubi98g'; + app.method.navigateTo({ + url, + }); + }, + }, + +}); \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/index.json b/TUIService/TUIKit/components/TUIChat/index.json new file mode 100644 index 0000000..f00958b --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/index.json @@ -0,0 +1,14 @@ +{ + "component": true, + "usingComponents": { + "MessageList": "./components/MessageList/index", + "MessageInput": "./components/MessageInput/index", + "TUIGroup": "../TUIGroup/index", + "ServiceEvaluation":"./components/MessagePrivate/ServiceEvaluation/index", + "van-count-down": "@vant/weapp/count-down/index", + "van-popup": "@vant/weapp/popup/index", + "consult-list":"../../../../components/consultList/consultList", + "dialog":"../../../../components/dialog/dialog", + "nav":"../../../../components/nav/nav" + } +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIChat/index.wxml b/TUIService/TUIKit/components/TUIChat/index.wxml new file mode 100644 index 0000000..40aa121 --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/index.wxml @@ -0,0 +1,135 @@ + + + + + + + {{doctorDetail.user_name}}医生 + + + + + + + + 【安全提示】本 APP 仅用于体验腾讯云即时通信 IM 产品功能,不可用于业务洽谈与拓展。请勿轻信汇款、中奖等涉及钱款等信息,勿轻易拨打陌生电话,谨防上当受骗。 + 点此投诉 + + + + + + + + 等待接诊中 + + + 医生将在空闲时尽快接诊,请耐心等待 + + + + + 问诊中 + | + + 不限时间 + + 剩余 + + + {{ doctorChatData.timeData.minutes }}分 + {{ doctorChatData.timeData.seconds }}秒 + + +  不限 +  {{rest_rounds>=0?rest_rounds:0}} + 个沟通回合 + + + + + + + 问诊已取消 + + 订单详情 + + + + + 问诊完成 + + 订单详情 + + + + + 问诊结束 + + 订单详情 + + + + + + + + + + + + + + + + + + + + + + + + 再次咨询 + + + + + + + + {{doctorDetail.user_name}} + + {{doctorDetail.hospital.hospital_level_name}} + 可处方 + + {{doctorDetail.doctor_title_name}}{{doctorDetail.department_custom_name}} + {{doctorDetail.hospital.hospital_name}} + + + + + 擅长:{{doctorDetail.be_good_at}} + + + 图文问诊: ¥{{current_inquiry_config.inquiry_price}} + 再次咨询 + + + + + + + + + + + diff --git a/TUIService/TUIKit/components/TUIChat/index.wxss b/TUIService/TUIKit/components/TUIChat/index.wxss new file mode 100644 index 0000000..842296c --- /dev/null +++ b/TUIService/TUIKit/components/TUIChat/index.wxss @@ -0,0 +1,636 @@ +.container { + width: 100vw; + height: 100vh; + display: flex; + flex-direction: column; + +} + +.safetytips-box { + background: rgba(255, 149, 0, 0.1); + padding: 9px; +} + +.safetytips { + font-family: 'PingFang SC'; + font-style: normal; + font-weight: 400; + font-size: 24rpx; + line-height: 36rpx; + text-align: justify; + color: #FF8C39; +} + +.report { + float: right; + color: #006EFF; +} + +.tui-navigatorbar { + position: absolute; + top: 0; + width: 750rpx; + height: 172rpx; + background: rgba(237, 237, 237, 0.9); + backdrop-filter: blur(20px); +} +.tui-navigatorbar-back { + position: absolute; + width: 30rpx; + height: 60rpx; + left:0rpx; + padding-left:40rpx; + padding-right:40rpx; + bottom: 15rpx; +} + + + +.tui-chatroom-navigatorbar { + position: relative; + /*top: 0;*/ + flex-shrink: 0; + width: 750rpx; + height: 176rpx; + +} + +.tui-chatroom-navigatorbar-back { + position: absolute; + width: 60rpx; + height: 60rpx; + left: 24rpx; + bottom: 15rpx; +} + +.conversation-title { + position: absolute; + width: 350rpx; + height: 88rpx; + line-height: 88rpx; + font-size: 36rpx; + color: #000; + white-space: nowrap; + overflow: hidden; + text-overflow:ellipsis; + bottom: 0; + left:50%; + text-align: center; + transform: translateX(-50%); + +} +.list-box{ + width: 100vw; + flex:1; + margin-top: 172rpx; + +} +.list-box.nobottom{ + margin-bottom: 300rpx; +} +/* 旧样式 */ +/* .list-box { + position: absolute; + width: 100vw; + height: calc(100vh - 250px); + top: 172rpx; +} +.list-box.nobottom{ + background-color: red; + height: calc(100vh - 172rpx); +} */ +.list-box-notips { + height: calc(100vh - 284px); +} + +.list-box-group { + background:blue; + height: calc(100vh - 248px); + top: 254rpx; +} + +.list-box-group-notips { + background:red; + height: calc(100vh - 320px) !important; + top: 246rpx; +} + .input-area{ + height:auto; +} +/* 旧样式 */ +/* .input-area { + position: absolute; + bottom: 0; +} */ + +.message-list { + position: relative; + width: 100%; + height:100%; +} +.mylist{ + position: absolute; + top:94rpx; + width:100%; + bottom: 0px; + flex:1; +} +.message-input { + flex-shrink: 0; + width: 100%; + padding-bottom: var(--padding); + /* background-color: #F1F1F1; */ + background-color: #fff; +} + +.calling { + position: fixed; + z-index: 199; + top: 0; + bottom: 0; + right: 0; +} + +.group-profile { + top: 151rpx; + left: 0; + z-index: 8; + position: absolute; +} + +.statusbox { + width: 100%; + display: flex; + /* position: absolute; + top: 172rpx; */ + align-items: center; + z-index: 22; + height: 94rpx; + background: #FFFFFF; + box-shadow: 0px 4px 10px 0px rgba(204, 204, 204, 0.5); + justify-content: space-between; +} + +.statusbox .status { + width: 100%; + + display: flex; + align-items: center; + + color: #333333; + font-size: 32rpx; +} +.statusbox .bar{ + margin:0 20rpx; +} + +.listwraper{ + border-bottom:1rpx solid #E7E7E7; + display: flex; + justify-content: space-between; + padding:30rpx 0rpx 30rpx; + display: flex; + align-items: center; +} +.listwraper:last-child{ + border-bottom:none; +} +.statusbox .orderDetail{ +padding:0 20rpx; +height: 60rpx; +white-space: nowrap; +background: #F8F8F8; +margin-right: 32rpx; +border-radius: 6rpx; +transform: rotateZ(360deg); +border: 1rpx solid rgba(5,5,5,0.1); +display: flex; +justify-content: center; +align-items: center; +font-size: 26rpx; +color: #353535; +} +.statusbox .red{ + font-size: 32rpx; + font-weight: bold; + color:rgba(239, 79, 32, 1); +} +.circle { + margin-left: 32rpx; + margin-right: 16rpx; + width: 10rpx; + height: 10rpx; + background: #2FCED7; + border-radius: 50%; +} +.statusbox .desc{ + display: flex; + align-items:baseline; +} +.statusbox .item{ + font-size: 32rpx; +} +.statusdesc { + height: 94rpx; + line-height: 94rpx; + margin-right: 32rpx; + white-space: nowrap; + color: #999999; + font-size: 24rpx; +} +.headbox { + position: fixed; + right: 0; + z-index: 222; + bottom: 410rpx; + width: 140rpx; + display: flex; + + align-items: center; + height: 160rpx; + background: #FFFFFF; + box-shadow: 0px 4rpx 10rpx 0rpx rgba(204, 204, 204, 0.5); + border-radius: 20rpx 0px 0px 20rpx; +} + +.headbox .guanzhu { + width: 100rpx; + height: 40rpx; + position: absolute; + bottom: 15rpx; + left: 50%; + transform: translateX(-50%); + background: #3CC7C0; + border-radius: 20rpx; + color: #fff; + display: flex; + align-items: center; + justify-content: center; + font-size: 28rpx; +} + +.headicon { + width: 120rpx; + height: 120rpx; + border-radius: 50%; + margin: 0 auto; +} + +.headbox .close { + top: -15rpx; + left: -15rpx; + position: absolute; + width: 30rpx; + height: 30rpx; + border-radius: 50%; +} +.help{ + width: 30rpx; + height: 30rpx; + margin-left: 16rpx; +} + + + + +.functionbox { + position: relative; + display: flex; + justify-content: flex-end; + border: 1rpx solid #E7E7E7; +} + +.contact { + position: absolute; + right: 30rpx; + font-size: 28rpx; + display: flex; + line-height: 60rpx; + justify-content: center; + top: -62rpx; + width: 128rpx; + height: 66rpx; + color: #333333; + + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABCCAYAAACfHt50AAACV0lEQVR4Xu3XvaoaQRjG8Vl3AxERBYOICAYRUmgK2cUy/Umq3EFuI5eQG8gNpEiRKkXgdKZfvwpTBWGJeECbTSFRIjuGTXGaQHDTTZ7/qU4xg7Pz/Hjfeb3pdHox/MnegJcDCMNQ9gKUP3w2mxkACAsAgHD4+acDAAC0AGUDVADl9GkB4ukDAAC0AHEDAAAAU4CyASqAcvo8AsXTBwAAaAHiBgAAAKYAZQNUAOX0eQSKpw8AANACxA0AAABMAcoGqADK6fMIFE8fAACgBYgbAAAAmAKUDVABlNPnESiePgAAQAsQNwAAADAFKBugAiinzyNQPH0AAIAWIG4AAABgClA2QAVQTp9HoHj6AAAALUDcAAAAwBSgbIAKoJw+j0Dx9AEAAFqAuAEAAIApQNkAFUA5fR6B4ukDAAC0AHED9wCGw+F/fRW+75sgCAp94/l8NtbaQntcW7xarX5PAV9dO3jR8wZB0O33+w8qlcpVW9M0NUmS/LDW3l21weFFnsNnv/rocRzf+L7/odfrVWq12l/37fd7s9ls7qy1L8bj8fLqH3F0oQSAPJvlcjnOsuxTt9t91Gg0/ojrcrmY7XZrdrvdF2PM8yiKvjmaaaFjywDIbyWO4yelUum23W4/brVa9xeV9/okSUyapp993385Go2+F7pFhxdLAchzms/nbWvtbbPZfNrpdEyWZWa9XpvD4fC+XC6/GgwGPx3Os/DR5QDkN7RYLOrW2o/1ev3Z8Xg0p9PpTRiGrz3PuxS+Qcc3SALIM5tMJg+r1eq7/N8oit46nuM/H/8XJ/zgYgJgSv4AAAAASUVORK5CYII=) no-repeat center center; + background-size: cover; +} +.contactCustom{ + display: flex; + line-height: 60rpx; + padding: 0; + justify-content: center; + width:100%; + font-size: 28rpx; +} +.infobox { + position: relative; + + z-index: 1; + /* overflow-y: scroll; + -webkit-overflow-scrolling: touch; */ + margin-top: 40rpx; + padding: 22rpx 20rpx 40rpx; + background: #FFFFFF; + border-radius: 10rpx; +} + +.namebox .head { + width: 80rpx; + height:80rpx; + flex-shrink: 0; + border-radius: 50%; +} + +.namebox .guanzhu image { + width: 28rpx; + height: 26rpx; +} + +.namebox { + display: flex; + +} + +.namewraper { + max-width:530rpx; + display: flex; + justify-content: space-between; + flex-direction: column; + margin-left: 20rpx; +} + +.namebox .row { + display: flex; + align-items: flex-end; + +} + +.namebox { + display: flex; + padding:0 52rpx; + align-items: flex-start; + justify-content: space-between; +} + +.namebox .name { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-weight: 600; + color: #333333; + font-size: 34rpx; +} + +.position { + font-size: 30rpx; + white-space: normal; + word-break: break-all; +} +.doctor_title{ + margin-right: 10rpx; +} +.hospital { + color: #333333; + margin-top: 12rpx; + font-size: 28rpx; + white-space: normal; + word-break: break-all; +} +.type { + height: 32rpx; + display: flex; + margin-bottom: 6rpx; + line-height: 32rpx; + white-space: nowrap; + align-items: center; + margin-left: 18rpx; + padding: 0rpx 6rpx; + background: #ED9C00; + border-radius: 4rpx; + color: #FFFFFF; + font-size: 24rpx; +} +.namebox .position { + font-weight: normal; + white-space: nowrap; + margin-left: 15rpx; + font-size: 30rpx; +} + + + +.descbox { + padding: 0 15rpx; + margin-top: 20rpx; + display: flex; + text-align: center; + justify-content: space-between; +} + +.descbox .number { + color: #333333; + font-size: 40rpx; + font-weight: bold; +} +.descbox .name { + margin-top: 15rpx; + color: #999999; + font-size: 24rpx; +} +.goodjob { + color: #666666; + margin-top: 38rpx; + line-height: 42rpx; + margin-left: 100rpx; + font-size: 28rpx; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden; + word-break: break-all; + +} +.renzhenbox { + margin-top: 18rpx; + width: 100%; + display: flex; + justify-content: space-between; +} + +.renzhenbox view { + display: flex; + align-items: center; +} + +.renzhen image { + width: 20rpx; + height: 20rpx; +} + +.renzhen text { + font-weight: 600; + color: #3CC7C0; + font-size: 24rpx; + margin-left: 10rpx; +} + +.intro image { + width: 10rpx; + height: 18rpx; +} + +.intro text { + color: #333333; + margin-right: 10rpx; + font-size: 24rpx; +} + +.van-icon-cross{ + color:#333; + +} +.van-popup__close-icon{ + position: absolute!important; + +} +.van-popup--bottom +.rowintro{ + margin-top: 30rpx; + display: flex; + color: #333333; + font-size: 34rpx; + align-items: center; +} +.rowintro image{ + width: 32rpx; + height:35rpx; +} +.rowintro text{ + margin-left: 16rpx; +} +.borderbox{ + position: relative; + padding-bottom: 30rpx; + margin:0 52rpx; + border-bottom:1rpx solid #E7E7E7; +} + +.ellipsis{ + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden +} +.goodat{ + display: flex +} +.mypop{ + box-shadow: 0 0 10px #ccc; +} +.consultwraper{ + overflow-y:scroll ; + -webkit-overflow-scrolling: touch; +} +.popwrper{ + top:0rpx; + background-color: #fff; + position: absolute; + transition: height 0.5s; + width:100%; + overflow: hidden; +height:100%; + bottom:0px; +} +.close{ + z-index:9; + width: 32rpx; + height:32rpx; + position: absolute; + right:30rpx; + top:30rpx; +} +.popname{ + margin-top: 45rpx; + padding:20rpx 52rpx 0; + font-size: 34rpx; + color:#333; + font-weight: 600; +} +.consultbox{ + margin-left: 100rpx; + display: flex; + margin-top: 20rpx; + align-items: center; + justify-content: space-between; +} +.consultbox{ + color: #333333; + font-size: 28rpx; +} +.consultbox .btn{ + width: 160rpx; +height: 60rpx; +background: #3CC7C0; +color:#fff; +display: flex; +justify-content: center; +align-items: center; +font-size: 30rpx; +border-radius: 30rpx; +} +.price{ + color:#EF4F20; + font-size: 34rpx; + font-weight: bold; +} +.viewwrap{ + border-bottom:1rpx solid #E7E7E7; + display: flex; + justify-content: space-between; + padding:30rpx 0rpx 30rpx; + margin:0 52rpx; + display: flex; +} +.viewwrap .right{ + margin-left: 20rpx; +} +.viewwrap .price{ + margin-top: 10rpx; +} +.viewwrap .name{ + font-size: 28rpx; + font-weight: 600; + color: #333333 +} +.top{ + position: absolute; + top:20rpx; + width:100%; + display: flex; + justify-content: center; + padding:20rpx 0; +} +.top .up{ + width:40rpx; + height:22rpx; + transition: all 0.5s; +} +.top .up.active{ + transform: rotate(180deg); +} +.leftimg{ + display: flex; + align-items: center; + +} + .price .unit{ + color:#333; + font-size: 28rpx; + } +.zxicon{ + width:80rpx; + height:80rpx; +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIConversation/components/ConversationItem/index.js b/TUIService/TUIKit/components/TUIConversation/components/ConversationItem/index.js new file mode 100644 index 0000000..8bd1f63 --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/components/ConversationItem/index.js @@ -0,0 +1,338 @@ +import { caculateTimeago } from '../../../../utils/common'; +const app = getApp(); +// eslint-disable-next-line no-undef +Component({ + /** + * 组件的属性列表 + */ + properties: { + conversation: { + type: Object, + value: {}, + observer(conversation) { + this.setData({ + conversationName: this.getConversationName(conversation), + setConversationAvatar: this.setConversationAvatar(conversation), + }); + this.setMuteIcon(conversation); + this.showMuteIconImg(conversation); + this.$updateTimeAgo(conversation); + this.setPinName(conversation.isPinned); + }, + }, + charge: { + type: Boolean, + value: {}, + observer(charge) { + if (!charge) { + this.setData({ + xScale: 0, + }); + } + }, + }, + statusList: { + type: Array, + value: [], + observer(statusList) { + this.setUserStatus(this.data.conversation, statusList); + }, + }, + }, + /** + * 组件的初始数据 + */ + data: { + xScale: 0, + conversationName: '', + conversationAvatar: '', + conversation: {}, + showName: '', + showMessage: '', + showPin: '置顶聊天', + showMute: '消息免打扰', + popupToggle: false, + isTrigger: false, + num: 0, + setShowName: '', + showMuteIcon: false, + showStatus: false, + }, + lifetimes: { + attached() { + }, + + }, + pageLifetimes: { + // 展示已经置顶的消息和更新时间戳 + show() { + this.showMuteIconImg(this.data.conversation); + this.setPinName(this.data.conversation.isPinned); + this.setMuteIcon(this.data.conversation); + this.$updateTimeAgo(this.data.conversation); + }, + // 隐藏动画 + hide() { + this.setData({ + xScale: 0, + }); + }, + }, + /** + * 组件的方法列表 + */ + methods: { + // 切换置顶聊天状态 + setPinName(isPinned) { + this.setData({ + showPin: isPinned ? '取消置顶' : '置顶聊天', + }); + }, + // 切换免打扰状态 + setMuteIcon(conversation) { + this.setData({ + showMute: (conversation.messageRemindType === 'AcceptNotNotify') ? '取消免打扰' : '消息免打扰', + }); + }, + // 先查 remark;无 remark 查 (c2c)nick/(group)name;最后查 (c2c)userID/(group)groupID + // 群会话,先展示namecard,无namecard展示nick,最展示UserID + getConversationName(conversation) { + if (conversation.type === '@TIM#SYSTEM') { + return '系统通知'; + } + if (conversation.type === 'C2C') { + return conversation.remark || conversation.userProfile.nick || conversation.userProfile.userID; + } + if (conversation.type === 'GROUP') { + if (conversation.lastMessage.nameCard !== '') { + this.data.setShowName = conversation.lastMessage.nameCard; + } else if (conversation.lastMessage.nick !== '') { + this.data.setShowName = conversation.lastMessage.nick; + } else { + if (conversation.lastMessage.fromAccount === wx.$chat_userID) { + this.data.setShowName = '我'; + } else { + this.data.setShowName = conversation.lastMessage.fromAccount; + } + } + this.setData({ + showName: this.data.setShowName, + }); + return conversation.groupProfile.name || conversation.groupProfile.groupID; + } + }, + // 设置会话的头像 + setConversationAvatar(conversation) { + if (conversation.type === '@TIM#SYSTEM') { + return 'https://web.sdk.qcloud.com/component/TUIKit/assets/system.png'; + } + if (conversation.type === 'C2C') { + return conversation.userProfile.avatar || 'https://sdk-web-1252463788.cos.ap-hongkong.myqcloud.com/component/TUIKit/assets/avatar_21.png'; + } + if (conversation.type === 'GROUP') { + return conversation.groupProfile.avatar || '../../../../static/assets/gruopavatar.svg'; + } + }, + // 删除会话 + deleteConversation() { + wx.showModal({ + content: '确认删除会话?', + success: (res) => { + if (res.confirm) { + wx.aegis.reportEvent({ + name: 'conversationOptions', + ext1: 'conversation-delete', + ext2: wx.$chat_reportType, + ext3: wx.$chat_SDKAppID, + }); + wx.$TUIKit.deleteConversation(this.data.conversation.conversationID); + this.setData({ + conversation: {}, + xScale: 0, + }); + } + }, + }); + }, + // 消息置顶 + pinConversation() { + wx.aegis.reportEvent({ + name: 'conversationOptions', + ext1: 'conversation-top', + ext2: wx.$chat_reportType, + ext3: wx.$chat_SDKAppID, + }); + wx.$TUIKit.pinConversation({ conversationID: this.data.conversation.conversationID, isPinned: true }) + .then(() => { + this.setData({ + xScale: 0, + }); + }) + .catch((imError) => { + console.warn('pinConversation error:', imError); // 置顶会话失败的相关信息 + }); + if (this.data.showPin === '取消置顶') { + wx.$TUIKit.pinConversation({ conversationID: this.data.conversation.conversationID, isPinned: false }) + .then(() => { + this.setData({ + xScale: 0, + }); + }) + .catch((imError) => { + console.warn('pinConversation error:', imError); // 置顶会话失败的相关信息 + }); + } + }, + // 是否显示免打扰图标 + showMuteIconImg(conversation) { + if (conversation.messageRemindType === 'AcceptNotNotify') { + this.setData({ + showMuteIcon: true, + }); + } else { + this.setData({ + showMuteIcon: false, + }); + } + }, + // 消息免打扰 + muteNotifications() { + wx.aegis.reportEvent({ + name: 'conversationOptions', + ext1: 'conversation-mutenotifications', + ext2: wx.$chat_reportType, + ext3: wx.$chat_SDKAppID, + }); + let newShowMute = ''; + let newShowMuteIcon = false; + let messageRemindType = wx.$TUIKitTIM.TYPES.MSG_REMIND_ACPT_NOT_NOTE; + if (this.data.showMute === '消息免打扰') { + newShowMute = '取消免打扰'; + newShowMuteIcon = true; + messageRemindType = wx.$TUIKitTIM.TYPES.MSG_REMIND_ACPT_NOT_NOTE; + } + if (this.data.showMute === '取消免打扰') { + newShowMute = '消息免打扰'; + newShowMuteIcon = false; + messageRemindType = wx.$TUIKitTIM.TYPES.MSG_REMIND_ACPT_AND_NOTE; + } + + if (this.data.conversation.type === 'C2C') { + // C2C 消息免打扰,一般的实现是在线接收消息,离线不接收消息(在有离线推送的情况下),v2.16.0起支持 + const { userID } = this.data.conversation.userProfile; + wx.$TUIKit.setMessageRemindType({ + userIDList: [userID], + messageRemindType, + }) + .then((imResponse) => { + this.setData({ + xScale: 0, + showMuteIcon: newShowMuteIcon, + showMute: newShowMute, + }); + }) + .catch((imError) => { + console.warn('setMessageRemindType error:', imError); + }); + } + + if (this.data.conversation.type === 'GROUP') { + const { groupID } = this.data.conversation.groupProfile; + // 群消息免打扰,一般的实现是在线接收消息,离线不接收消息(在有离线推送的情况下) + wx.$TUIKit.setMessageRemindType({ + groupID, + messageRemindType, + }) + .then((imResponse) => { + this.setData({ + xScale: 0, + showMuteIcon: newShowMuteIcon, + showMute: newShowMute, + }); + // 设置消息免打扰成功 + }) + .catch((imError) => { + // 设置消息免打扰失败 + console.warn('setMessageRemindType error:', imError); + }); + } + }, + // 控制左滑动画 + handleTouchMove(e) { + this.setData({ + num: e.detail.x, + }); + if (e.detail.x < 0 && !this.data.isTrigger) { + this.setData({ + isTrigger: true, + }); + this.triggerEvent('transCheckID', { + checkID: this.data.conversation.conversationID, + }); + } + if (e.detail.x === 0) { + this.setData({ + isTrigger: false, + }); + } + }, + handleTouchEnd() { + if (this.data.num < -wx.getSystemInfoSync().windowWidth / 5) { + this.setData({ + xScale: -wx.getSystemInfoSync().windowWidth, + }); + } + if (this.data.num >= -wx.getSystemInfoSync().windowWidth / 5 && this.data.num < 0) { + this.setData({ + xScale: 0, + }); + } + }, + // 更新会话的时间戳,显示会话里的最后一条消息 + $updateTimeAgo(conversation) { + if (conversation.conversationID && conversation.lastMessage.lastTime) { + conversation.lastMessage.timeago = caculateTimeago(conversation.lastMessage.lastTime * 1000); + if (conversation.lastMessage.isRevoked) { + this.setData({ + showMessage: '撤回了一条消息', + }); + } else { + this.setData({ + showMessage: conversation.lastMessage.messageForShow, + }); + } + this.setData({ + conversation, + }); + } + }, + // 会话头像显示失败显示的默认头像 + handleimageerro() { + this.setData({ + setConversationAvatar: '../../../../static/assets/gruopavatar.svg', + }); + }, + // 判断该用户的状态并展示出来 + setUserStatus(conversation, statusList) { + // if (!wx.getStorageSync('showOnlineStatus')) return; + const currentUserID = wx.getStorageSync('currentUserID'); + if (currentUserID.includes(wx.$chat_userID)) { + this.setData({ + getStatus: wx.getStorageSync(wx.$chat_userID), + }); + } else { + this.setData({ + getStatus: true, + }); + } + if (conversation.type !== wx.$TUIKitTIM.TYPES.CONV_C2C) return; + statusList.forEach((item) => { + if (item.userID !== conversation.userProfile.userID) return; + const showStatus = (item.statusType === 1); + this.setData({ + showStatus, + }); + }); + }, + }, +}); diff --git a/TUIService/TUIKit/components/TUIConversation/components/ConversationItem/index.json b/TUIService/TUIKit/components/TUIConversation/components/ConversationItem/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/components/ConversationItem/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIConversation/components/ConversationItem/index.wxml b/TUIService/TUIKit/components/TUIConversation/components/ConversationItem/index.wxml new file mode 100644 index 0000000..bb293f8 --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/components/ConversationItem/index.wxml @@ -0,0 +1,59 @@ + + + + + + + + 99+ + {{conversation.unreadCount}} + + + + + + + + + + + + + + {{showName}}: + + + + [{{conversation.unreadCount}}条] + {{showMessage}} + + + + {{showMessage}} + + + + + + {{conversation.lastMessage.timeago}} + + + + + + + {{showMute}} + {{showPin}} + 删除 + + + + diff --git a/TUIService/TUIKit/components/TUIConversation/components/ConversationItem/index.wxss b/TUIService/TUIKit/components/TUIConversation/components/ConversationItem/index.wxss new file mode 100644 index 0000000..e816713 --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/components/ConversationItem/index.wxss @@ -0,0 +1,188 @@ +.t-conversation-item-container { + width: 100vw; + height: 150rpx; + background-color: #FFFFFF; +} +.t-conversation-item { + width: 162vw; + height: 150rpx; + display: flex; + left: 0; + align-items: center; + justify-content: flex-start; + box-sizing: border-box; + border-bottom: 2rpx solid #EEF0F3; +} +.t-conversation-pinneditem{ + width: 162vw; + height: 150rpx; + display: flex; + left: 0; + align-items: center; + justify-content: flex-start; + box-sizing: border-box; + border-bottom: 1rpx solid #999999; + background-color: #EEF0F3 +} +.text-box{ + display: flex; +} +.avatar-box{ + position: relative; + display: inline-flex; +} +.t-conversation-item-avatar{ + position: relative; + width: 96rpx; + height: 96rpx; + border-radius: 14rpx; + /*padding-left: 40rpx;*/ + /*padding-right: 24rpx;*/ + /*padding-bottom: 28rpx;*/ + /*padding-top: 28rpx;*/ + margin: 0 16rpx; + overflow: auto; +} +.t-conversation-item-content { + flex: 1; + padding-left: 20rpx; +} +.t-conversation-item-info { + line-height: 34rpx; + font-size: 24rpx; + color: #999999; + margin-right: 30rpx; +} + +.t-error { + background-color: #fb5250; + color: #fff; +} + +.t-conversation-delete { + width: 144rpx; + display: flex; + align-items: center; + justify-content: center; + background-color: #E85454; + color: #FFFFFF; + line-height: 44rpx; + font-size: 32rpx; +} +.t-conversation-item-mutenotifications{ + margin-right: 40rpx; +} +.t-conversation-mutenotifications-img{ + height: 34rpx; + width: 28rpx; + float: right; +} +.t-conversation-pinconversation{ + width: 144rpx; + display: flex; + align-items: center; + justify-content: center; + background-color: #006EFF; + color: #FFFFFF; + line-height: 44rpx; + font-size: 32rpx; +} +.t-conversation-mutenotifications{ + width: 180rpx; + display: flex; + align-items: center; + justify-content: center; + background-color: orange; + color: #FFFFFF; + line-height: 44rpx; + font-size: 32rpx; +} +.tui-conversation-item-name { + line-height: 50rpx; + font-size: 36rpx; + font-family: 'PingFangSC-Regular'; + color: #333333; +} + +.tui-conversation-lastMessage { + line-height: 40rpx; + font-size: 28rpx; + font-family: 'PingFangSC-Regular'; + color: #999999; + max-width: 64vw; + display: inline-block; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.right-box{ + display:flex; + position: absolute; + top: -10rpx; + right: 31rpx; +} +.unread { + position: absolute; + top: -5rpx; + right: -25rpx; + width: 32rpx; + height: 32rpx; + border-radius: 50%; + display: flex; + align-items: center; + color: #ffffff; + background-color: red; + justify-content: center; +} +.unread-mute{ + width: 20rpx; + height: 20rpx; + background: #FA5151; + border-radius: 50%; + position: absolute; + top: 0rpx; + right: -20rpx; +} +.read-text { + line-height: 15px; + font-size: 10px; +} +.tui-conversation-box{ + display: flex; +} +.tui-conversation-lastName{ + line-height: 40rpx; + font-size: 28rpx; + font-family: 'PingFangSC-Regular'; + color: #999999; +} +.t-conversation-box{ + height: 150rpx; + display: flex +} +.status { + position: relative; + top: 84rpx; + left: 23rpx; + width: 18rpx; + height: 18rpx; + opacity: 1; + border-radius: 8px; + background: #29CC85; +} +.statusType { + position: relative; + top: 84rpx; + left: 23rpx; + width: 18rpx; + height: 18rpx; + opacity: 1; + border-radius: 8px; + background: #A4A4A4; +} +.status-online { + border: 4rpx solid white; +} +.status-offline{ + border: 4rpx solid white; +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIConversation/components/CreateConversation/index.js b/TUIService/TUIKit/components/TUIConversation/components/CreateConversation/index.js new file mode 100644 index 0000000..e6a61e8 --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/components/CreateConversation/index.js @@ -0,0 +1,89 @@ +// eslint-disable-next-line no-undef +// Component Object +Component({ + properties: { + myProperty: { + type: String, + value: '', + observer() {}, + }, + + }, + data: { + userID: '', + searchUser: {}, + myID: '', + }, + methods: { + goBack() { + this.triggerEvent('showConversation'); + }, + // 获取输入的 UserID + userIDInput(e) { + this.setData({ + userID: e.detail.value, + searchUser: {}, + }); + }, + // 获取该 UserID 对应的个人资料 + getuserProfile() { + wx.$TUIKit.getUserProfile({ + userIDList: [this.data.userID], + }).then((imRes) => { + if (imRes.data.length > 0) { + this.setData({ + searchUser: imRes.data[0], + }); + } else { + wx.showToast({ + title: '用户不存在', + icon: 'error', + }); + this.setData({ + userID: '', + }); + } + }); + }, + // 选择发起会话 + handleChoose() { + this.data.searchUser.isChoose = !this.data.searchUser.isChoose; + this.setData({ + searchUser: this.data.searchUser, + }); + }, + // 确认邀请 + bindConfirmInvite() { + if (this.data.searchUser.isChoose) { + wx.aegis.reportEvent({ + name: 'conversationType', + ext1: 'conversationType-c2c', + ext2: wx.$chat_reportType, + ext3: wx.$chat_SDKAppID, + }); + this.triggerEvent('searchUserID', { searchUserID: `C2C${this.data.searchUser.userID}` }); + } else { + wx.showToast({ + title: '请选择相关用户', + icon: 'none', + }); + } + }, + }, + created() { + }, + attached() { + this.setData({ + myID: wx.$chat_userID, + }); + }, + ready() { + + }, + moved() { + + }, + detached() { + + }, +}); diff --git a/TUIService/TUIKit/components/TUIConversation/components/CreateConversation/index.json b/TUIService/TUIKit/components/TUIConversation/components/CreateConversation/index.json new file mode 100644 index 0000000..965b8e8 --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/components/CreateConversation/index.json @@ -0,0 +1,4 @@ +{ + "usingComponents": {}, + "navigationStyle": "custom" +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIConversation/components/CreateConversation/index.wxml b/TUIService/TUIKit/components/TUIConversation/components/CreateConversation/index.wxml new file mode 100644 index 0000000..3808ee7 --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/components/CreateConversation/index.wxml @@ -0,0 +1,25 @@ + + + + 发起会话 + + + + + + + + 您的用户ID {{myID}} + + + + + + + {{searchUser.nick}} + 用户ID:{{searchUser.userID}} + + + + 确认邀请 + diff --git a/TUIService/TUIKit/components/TUIConversation/components/CreateConversation/index.wxss b/TUIService/TUIKit/components/TUIConversation/components/CreateConversation/index.wxss new file mode 100644 index 0000000..1ba12d5 --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/components/CreateConversation/index.wxss @@ -0,0 +1,138 @@ +.TUI-Create-conversation-container { + width: 100vw; + height: 100vh; + background-color: #F4F5F9; +} + +.tui-navigatorbar{ + position: absolute; + top: 0; + width: 750rpx; + height: 170rpx; + background-color: #006EFF; +} + +.tui-navigatorbar-back{ + position: absolute; + width: 60rpx; + height: 60rpx; + left: 24rpx; + bottom: 15rpx; +} + +.conversation-title { + position:absolute; + width: 350rpx; + height: 88rpx; + line-height: 56rpx; + font-size: 36rpx; + color: #FFFFFF; + bottom: 0; + left: 200rpx; + display: flex; + justify-content: center; + align-items: center; +} + +.tui-search-area { + position: absolute; + top: 170rpx; + width: 750rpx; + background-color: #006EFF; +} +.tui-showID { + padding-left: 80rpx; + line-height: 40rpx; + font-size: 28rpx; + color: white; + height: 50rpx; + padding-top: 18rpx; +} +.tui-search-bar { + display: flex; + flex-wrap: nowrap; + align-items: center; + margin-left: 40rpx; + margin-top: 32rpx; + width: 670rpx; + height: 80rpx; + background: #FFFFFF; + border-radius: 40rpx; + border-radius: 40rpx; +} + +.tui-searchcion { + display: inline-block; + margin-left: 24rpx; + width: 48rpx; + height: 48rpx; +} + +.tui-search-bar-input { + margin-left: 16rpx; + line-height: 40rpx; + font-size: 28rpx; + width: 100%; + display: inline-block; +} + +.tui-person-to-invite { + position: absolute; + top: 352rpx; + display: flex; + flex-wrap: nowrap; + width: 750rpx; + height: 150rpx; + background-color: #FFFFFF; +} + +.tui-normal-choose { + margin-left: 40rpx; + margin-right: 40rpx; + margin-top: 52rpx; + margin-bottom: 50rpx; + width: 48rpx; + height: 48rpx; +} + +.tui-person-profile { + width: 622rpx; + display: flex; + align-items: center; +} + +.tui-person-profile-avatar { + width: 96rpx; + height: 96rpx; + margin-right: 24rpx; +} + +.tui-person-profile-nick { + color: #333333; + line-height: 50rpx; + font-size: 36rpx; + margin-bottom: 4rpx; +} + +.tui-person-profile-userID { + color: #999999; + line-height: 40rpx; + font-size: 28rpx; +} + +.tui-confirm-btn { + position: absolute; + display: flex; + justify-content: center; + align-items: center; + bottom: 100rpx; + width: 670rpx; + height: 96rpx; + background: #006EFF; + color: #FFFFFF; + border-radius: 48rpx; + border-radius: 48rpx; + margin-left: 40rpx; + line-height: 44rpx; + font-size: 32rpx; +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIConversation/components/CreateGroup/index.js b/TUIService/TUIKit/components/TUIConversation/components/CreateGroup/index.js new file mode 100644 index 0000000..e39c935 --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/components/CreateGroup/index.js @@ -0,0 +1,105 @@ +// miniprogram/pages/TUI-Group/create-group/create.js +import logger from '../../../../utils/logger'; + +Component({ + properties: { + + }, + data: { + groupTypeList: [ + ], + groupType: '', + Type: '', + name: '', + groupID: '', + }, + methods: { + goBack() { + this.triggerEvent('showConversation'); + }, + // 展示群列表 + showGroupTypeList() { + this.setData({ + popupToggle: true, + }); + }, + // 获取输入的群ID + bindGroupIDInput(e) { + const id = e.detail.value; + this.setData({ + groupID: id, + }); + }, + // 获取输入的群名称 + bindGroupNameInput(e) { + const groupname = e.detail.value; + this.setData({ + name: groupname, + }); + }, + // 创建群聊时,传点击事件对应的值 + click(e) { + this.setData({ + groupType: e.currentTarget.dataset.value.groupType, + Type: e.currentTarget.dataset.value.Type, + name: e.currentTarget.dataset.value.name, + popupToggle: false, + }); + }, + // 确认创建群聊 + bindConfirmCreate() { + logger.log(`| TUI-Group | create-group | bindConfirmCreate | groupID: ${this.data.groupID}`); + wx.$TUIKit.createGroup({ + type: this.data.Type, + name: this.data.name, + groupID: this.data.groupID, + }).then((imResponse) => { // 创建成功 + this.triggerEvent('createGroupID', { createGroupID: `GROUP${imResponse.data.group.groupID}` }); + // 创建的群的资料 + wx.aegis.reportEvent({ + name: 'conversationType', + ext1: 'conversationType-group', + ext2: wx.$chat_reportType, + ext3: wx.$chat_SDKAppID, + }); + }) + .catch((imError) => { + if (imError.code === 10021) { + wx.showToast({ + title: '该群组ID被使用,请更换群ID', + icon: 'none', + }); + } + }); + }, + // 点击空白区域关闭弹窗 + handleChooseToggle() { + this.setData({ + popupToggle: false, + }); + }, + }, + created() { + + }, + attached() { + + }, + ready() { + const groupTypeList = [ + { groupType: '品牌客户群(Work)', Type: wx.$TUIKitTIM.TYPES.GRP_WORK }, + { groupType: 'VIP专属群(Public)', Type: wx.$TUIKitTIM.TYPES.GRP_PUBLIC }, + { groupType: '临时会议群 (Meeting)', Type: wx.$TUIKitTIM.TYPES.GRP_MEETING }, + { groupType: '直播群(AVChatRoom)', Type: wx.$TUIKitTIM.TYPES.GRP_CHATROOM }, + ]; + this.setData({ + groupTypeList, + }); + }, + moved() { + + }, + detached() { + + }, +}); diff --git a/TUIService/TUIKit/components/TUIConversation/components/CreateGroup/index.json b/TUIService/TUIKit/components/TUIConversation/components/CreateGroup/index.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/components/CreateGroup/index.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIConversation/components/CreateGroup/index.wxml b/TUIService/TUIKit/components/TUIConversation/components/CreateGroup/index.wxml new file mode 100644 index 0000000..da7b8bb --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/components/CreateGroup/index.wxml @@ -0,0 +1,52 @@ + + + + + 发起群聊 + + + + + + * + 群类型 + {{groupType}} + + + + + + + + 群ID + + + + + + + + * + 群名称 + + + + + + + + 发起群聊 + + + + + + + + + {{item.groupType}} + + + + + diff --git a/TUIService/TUIKit/components/TUIConversation/components/CreateGroup/index.wxss b/TUIService/TUIKit/components/TUIConversation/components/CreateGroup/index.wxss new file mode 100644 index 0000000..8d6bcb9 --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/components/CreateGroup/index.wxss @@ -0,0 +1,182 @@ +/* miniprogram/pages/TUI-Group/create-group/create.wxss */ +.container{ + background: #EEF0F3; + width: 100vw; + height: 100vh; +} +.tui-navigatorbar{ + position: absolute; + top: 0; + width: 750rpx; + height: 170rpx; + background-color: #006EFF; +} + +.tui-navigatorbar-back{ + position: absolute; + width: 60rpx; + height: 60rpx; + left: 24rpx; + bottom: 15rpx; +} + +.conversation-title { + position:absolute; + width: 350rpx; + height: 88rpx; + line-height: 56rpx; + font-size: 36rpx; + color: #FFFFFF; + bottom: 0; + left: 200rpx; + display: flex; + justify-content: center; + align-items: center; +} +.group-area{ + position: absolute; + top: 170rpx; + width: 750rpx; + background-color: #006EFF; +} +.item{ + display: flex; + width: 100%; + justify-content: left; + align-items: center; +} +.icon-box{ + display: flex; +} +.icon{ + color:red; + padding-top: 34rpx; +} +.group-type{ + background: #FFFFFF; + position: relative; + width: 100%; + height: 56px; + padding-left: 20px; + border-bottom: 1px solid #EEF0F3; + border-top: 8px solid #FFFFFF; +} +.group-ID{ + background: #FFFFFF; + position: relative; + width: 100%; + height: 56px; + padding-left: 20px; + border-bottom: 1px solid #EEF0F3; + border-top: 8px solid #FFFFFF; +} +.listimage{ + width: 16px; + height: 16px; + position: absolute; + top: 20px; + right: 10px; +} +.group-name{ + background: #FFFFFF; + display: flex; + width: 100%; + height: 56px; + padding-left: 20px; + border-bottom: 1px solid #EEF0F3; + border-top: 8px solid #FFFFFF; +} +.aside-left { + display: flex; + align-items: center; + float: left; + font-family: PingFangSC-Regular; + font-size: 16px; + color: #333333; + letter-spacing: 0; + line-height: 56px; +} +.aside-right{ + font-family: PingFangSC-Regular; + font-size: 16px; + color: black; + letter-spacing: 0; + padding-left: 104px; + line-height: 56px; + z-index: 999; +} +.input{ + float: right; + font-family: PingFangSC-Regular; + font-size: 16px; + color: #999999; + letter-spacing: 0; + text-align: right; + line-height: 56px; + padding-top: 19px; + padding-right: 48px; + width: 70%; + /* z-index: 999; */ +} +.inputname{ + font-family: PingFangSC-Regular; + font-size: 16px; + color: #999999; + letter-spacing: 0; + text-align: right; + line-height: 56px; + padding-left: 180rpx; + padding-top: 19px; + width: 50%; +} +.group-create{ + position: absolute; + display: flex; + justify-content: center; + align-items: center; + bottom: 100rpx; + width: 670rpx; + height: 96rpx; + background: #006EFF; + color: #FFFFFF; + border-radius: 48rpx; + border-radius: 48rpx; + line-height: 44rpx; + font-size: 32rpx; +} +.pop-mask{ + width: 100vw; + height: 100vh; + position: fixed; + z-index: 10; + top: 0; + right: 0; + background: rgba(0,0,0,0.60); + display: flex; + align-items: flex-end; +} +.create-area{ + display: flex; + align-items: center; + justify-content: center +} +.popup-main{ + width: 100vw; + height: 30%; + background: #FFFFFF; + padding: 32px 20px; +} +.group-type-list{ + width: 100vw; + height: 112rpx +} +.list-type{ + font-family: PingFangSC-Regular; + font-size: 16px; + color: #333333; + letter-spacing: 0; + line-height: 22px; +} +.type-active{ + color: #006EFF; +} diff --git a/TUIService/TUIKit/components/TUIConversation/components/JoinGroup/index.js b/TUIService/TUIKit/components/TUIConversation/components/JoinGroup/index.js new file mode 100644 index 0000000..13d1e33 --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/components/JoinGroup/index.js @@ -0,0 +1,117 @@ +import logger from '../../../../utils/logger'; +// Component Object +Component({ + properties: { + myProperty: { + type: String, + value: '', + observer() {}, + }, + + }, + data: { + groupID: '', + searchGroup: {}, + }, + methods: { + // 回退 + goBack() { + this.triggerEvent('showConversation'); + }, + // 获取输入的群ID + getGroupIDInput(e) { + this.setData({ + groupID: e.detail.value, + }); + }, + // 通过输入的群ID来查找群 + searchGroupByID() { + wx.$TUIKit.searchGroupByID(this.data.groupID) + .then((imResponse) => { + if (imResponse.data.group.groupID !== '') { + this.setData({ + searchGroup: imResponse.data.group, + }); + } + }) + .catch((imError) => { + wx.hideLoading(); + if (imError.code === 10007) { + wx.showToast({ + title: '讨论组类型群不允许申请加群', + icon: 'none', + }); + } else { + wx.showToast({ + title: '未找到该群组', + icon: 'none', + }); + } + }); + }, + // 选择查找到的群 + handleChoose() { + this.data.searchGroup.isChoose = !this.data.searchGroup.isChoose; + this.setData({ + searchGroup: this.data.searchGroup, + }); + }, + // 确认加入 + bindConfirmJoin() { + wx.aegis.reportEvent({ + name: 'conversationType', + ext1: 'conversationType-join', + ext2: wx.$chat_reportType, + ext3: wx.$chat_SDKAppID, + }); + logger.log(`| TUI-Group | join-group | bindConfirmJoin | groupID: ${this.data.groupID}`); + wx.$TUIKit.joinGroup({ groupID: this.data.groupID, type: this.data.searchGroup.type }) + .then((imResponse) => { + if (this.data.searchGroup.isChoose) { + if (imResponse.data.status === 'WaitAdminApproval') { + wx.showToast({ + title: '等待管理员同意', + icon: 'none', + }); + } else { + this.triggerEvent('searchGroupID', { searchGroupID: `GROUP${this.data.searchGroup.groupID}` }); + } + } else { + wx.showToast({ + title: '请选择相关群聊', + icon: 'error', + }); + } + switch (imResponse.data.status) { + case wx.$TUIKitTIM.TYPES.JOIN_STATUS_WAIT_APPROVAL: + // 等待管理员同意 + break; + case wx.$TUIKitTIM.TYPES.JOIN_STATUS_SUCCESS: // 加群成功 + break; + case wx.$TUIKitTIM.TYPES.JOIN_STATUS_ALREADY_IN_GROUP: // 已经在群中 + break; + default: + break; + } + }) + .catch((imError) => { + console.warn('joinGroup error:', imError); // 申请加群失败的相关信息 + }); + }, + }, + created() { + + }, + attached() { + + }, + ready() { + + }, + moved() { + + }, + detached() { + + }, +}); diff --git a/TUIService/TUIKit/components/TUIConversation/components/JoinGroup/index.json b/TUIService/TUIKit/components/TUIConversation/components/JoinGroup/index.json new file mode 100644 index 0000000..965b8e8 --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/components/JoinGroup/index.json @@ -0,0 +1,4 @@ +{ + "usingComponents": {}, + "navigationStyle": "custom" +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIConversation/components/JoinGroup/index.wxml b/TUIService/TUIKit/components/TUIConversation/components/JoinGroup/index.wxml new file mode 100644 index 0000000..c893b59 --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/components/JoinGroup/index.wxml @@ -0,0 +1,25 @@ + + + + + 加入群聊 + + + + + + + + + + + + + {{searchGroup.name}} + 群ID:{{searchGroup.groupID}} + + + + 确认加入 + + diff --git a/TUIService/TUIKit/components/TUIConversation/components/JoinGroup/index.wxss b/TUIService/TUIKit/components/TUIConversation/components/JoinGroup/index.wxss new file mode 100644 index 0000000..698c60d --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/components/JoinGroup/index.wxss @@ -0,0 +1,132 @@ +.TUI-Create-conversation-container { + width: 100vw; + height: 100vh; + background-color: #F4F5F9; +} + +.tui-navigatorbar{ + position: absolute; + top: 0; + width: 750rpx; + height: 176rpx; + background-color: #006EFF; +} + +.tui-navigatorbar-back{ + position: absolute; + width: 60rpx; + height: 60rpx; + left: 24rpx; + bottom: 15rpx; +} + +.conversation-title { + position:absolute; + width: 350rpx; + height: 88rpx; + line-height: 56rpx; + font-size: 36rpx; + color: #FFFFFF; + bottom: 0; + left: 200rpx; + display: flex; + justify-content: center; + align-items: center; +} + +.tui-search-area { + position: absolute; + top: 176rpx; + width: 750rpx; + height: 144rpx; + background-color: #006EFF; +} + +.tui-search-bar { + display: flex; + flex-wrap: nowrap; + align-items: center; + margin-left: 40rpx; + margin-top: 32rpx; + width: 670rpx; + height: 80rpx; + background: #FFFFFF; + border-radius: 40rpx; + border-radius: 40rpx; +} + +.tui-searchcion { + display: inline-block; + margin-left: 24rpx; + width: 48rpx; + height: 48rpx; +} + +.tui-search-bar-input { + margin-left: 16rpx; + line-height: 40rpx; + font-size: 28rpx; + width: 100%; + display: inline-block; +} + +.tui-person-to-invite { + position: absolute; + top: 320rpx; + display: flex; + flex-wrap: nowrap; + width: 750rpx; + height: 150rpx; + background-color: #FFFFFF; +} + +.tui-normal-choose { + margin-left: 40rpx; + margin-right: 40rpx; + margin-top: 52rpx; + margin-bottom: 50rpx; + width: 48rpx; + height: 48rpx; +} + +.tui-person-profile { + width: 622rpx; + display: flex; + align-items: center; +} + +.tui-person-profile-avatar { + width: 96rpx; + height: 96rpx; + margin-right: 24rpx; +} + +.tui-person-profile-nick { + color: #333333; + line-height: 50rpx; + font-size: 36rpx; + margin-bottom: 4rpx; +} + +.tui-person-profile-userID { + color: #999999; + line-height: 40rpx; + font-size: 28rpx; +} + +.tui-confirm-btn { + position: absolute; + display: flex; + justify-content: center; + align-items: center; + bottom: 100rpx; + width: 670rpx; + height: 96rpx; + background: #006EFF; + color: #FFFFFF; + border-radius: 48rpx; + border-radius: 48rpx; + margin-left: 40rpx; + line-height: 44rpx; + font-size: 32rpx; +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIConversation/index.js b/TUIService/TUIKit/components/TUIConversation/index.js new file mode 100644 index 0000000..0f96d84 --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/index.js @@ -0,0 +1,255 @@ +import constant from "../../utils/constant"; + +// TUIKitWChat/Conversation/index.js +const app = getApp(); + +Component({ + /** + * 组件的属性列表 + */ + properties: { + config: { + type: Object, + value: {}, + observer(config) { + }, + }, + }, + + /** + * 组件的初始数据 + */ + data: { + conversationList: [], + currentConversationID: '', + showSelectTag: false, + array: [ + { id: 1, name: '发起会话' }, + { id: 2, name: '发起群聊' }, + { id: 3, name: '加入群聊' }, + ], + index: Number, + unreadCount: 0, + conversationInfomation: {}, + transChenckID: '', + userIDList: [], + statusList: [], + currentUserIDList: [], + showConversationList: true, + showCreateConversation: false, + showCreateGroup: false, + showJoinGroup: false, + handleChangeStatus: false, + storageList: [], + }, + lifetimes: { + attached() { + }, + detached() { + wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.CONVERSATION_LIST_UPDATED, this.onConversationListUpdated, this); + wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.USER_STATUS_UPDATED, this.onUserStatusUpdate, this); + }, + }, + + /** + * 组件的方法列表 + */ + methods: { + init() { + wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.CONVERSATION_LIST_UPDATED, this.onConversationListUpdated, this); + wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.USER_STATUS_UPDATED, this.onUserStatusUpdate, this); + this.getConversationList(); + wx.getStorageInfo({ + success(res) { + wx.setStorage({ + key: 'storageList', + data: res.keys, + }); + }, + }); + this.setData({ + handleChangeStatus: wx.getStorageSync(app?.globalData?.userInfo?.userID) ? wx.getStorageSync(app?.globalData?.userInfo?.userID) : true, + }, () => { + if (!wx.getStorageSync('storageList').includes('showOnlineStatus')) { + this.handleChangeStatus(); + } + }); + }, + goBack() { + if (app?.globalData?.reportType !== constant.OPERATING_ENVIRONMENT) { + wx.navigateBack({ + delta: 1, + }); + } else { + wx.switchTab({ + url: '/pages/TUI-Index/index', + }); + } + }, + // 更新会话列表 + onConversationListUpdated(event) { + this.setData({ + conversationList: event.data, + }); + this.filterUserIDList(event.data); + }, + transCheckID(event) { + this.setData({ + transChenckID: event.detail.checkID, + }); + }, + // 更新状态 + onUserStatusUpdate(event) { + event.data.forEach((element) => { + const index = this.data.statusList.findIndex(item => item.userID === element.userID); + if (index === -1) { + return; + } + this.data.statusList[index] = element; + this.setData({ + statusList: this.data.statusList, + }); + }); + }, + getConversationList() { + wx.$TUIKit.getConversationList().then((imResponse) => { + this.setData({ + conversationList: imResponse.data.conversationList, + }); + this.filterUserIDList(imResponse.data.conversationList); + }); + }, + // 跳转到子组件需要的参数 + handleRoute(event) { + const flagIndex = this.data.conversationList.findIndex(item => item.conversationID === event.currentTarget.id); + this.setData({ + index: flagIndex, + }); + this.getConversationList(); + this.setData({ + currentConversationID: event.currentTarget.id, + unreadCount: this.data.conversationList[this.data.index].unreadCount, + }); + this.triggerEvent('currentConversationID', { currentConversationID: event.currentTarget.id, + unreadCount: this.data.conversationList[this.data.index].unreadCount }); + }, + // 展示发起会话/发起群聊/加入群聊 + showSelectedTag() { + wx.aegis.reportEvent({ + name: 'conversationType', + ext1: 'conversationType-all', + }); + this.setData({ + showSelectTag: !this.data.showSelectTag, + }); + }, + handleOnTap(event) { + this.setData({ + showSelectTag: false, + }, () => { + switch (event.currentTarget.dataset.id) { + case 1: + this.setData({ + showCreateConversation: true, + showConversationList: false, + }); + break; + case 2: + this.setData({ + showCreateGroup: true, + showConversationList: false, + }); + break; + case 3: + this.setData({ + showJoinGroup: true, + showConversationList: false, + }); + break; + default: + break; + } + }); + }, + // 点击空白区域关闭showMore弹窗 + handleEditToggle() { + this.setData({ + showSelectTag: false, + }); + }, + showConversation(event) { + this.setData({ + showConversationList: true, + showCreateConversation: false, + showCreateGroup: false, + showJoinGroup: false, + }); + }, + searchUserID(event) { + this.triggerEvent('currentConversationID', { currentConversationID: event.detail.searchUserID }); + }, + searchGroupID(event) { + this.triggerEvent('currentConversationID', { currentConversationID: event.detail.searchGroupID }); + }, + createGroupID(event) { + this.triggerEvent('currentConversationID', { currentConversationID: event.detail.createGroupID }); + }, + // 处理当前登录账号是否开启在线状态 + handleChangeStatus() { + const currentID = wx.$chat_userID; + const cacheList = wx.getStorageSync('currentUserID'); + const nowList = []; + nowList.push(wx.$chat_userID); + if (cacheList.length === 0 || !cacheList.includes(wx.$chat_userID)) { + wx.setStorage({ + key: 'currentUserID', + data: wx.getStorageSync('currentUserID').concat(nowList), + }); + } + wx.setStorage({ + key: currentID, + data: this.data.handleChangeStatus, + }); + }, + // 订阅在线状态 + subscribeOnlineStatus(userIDList) { + wx.$TUIKit.getUserStatus({ userIDList }).then((imResponse) => { + const { successUserList } = imResponse.data; + this.setData({ + statusList: successUserList, + }); + }) + .catch((imError) => { + console.warn('getUserStatus error:', imError); // 获取用户状态失败的相关信息 + }); + wx.$TUIKit.subscribeUserStatus({ userIDList }); + }, + + // 过滤会话列表,找出C2C会话,以及需要订阅状态的userIDList + filterUserIDList(conversationList) { + if (conversationList.length === 0) return; + const userIDList = []; + conversationList.forEach((element) => { + if (element.type === wx.$TUIKitTIM.TYPES.CONV_C2C) { + userIDList.push(element.userProfile.userID); + } + }); + const currentUserID = wx.getStorageSync('currentUserID'); + if (currentUserID.includes(wx.$chat_userID)) { + const currentStatus = wx.getStorageSync(wx.$chat_userID); + if (currentStatus) { + this.subscribeOnlineStatus(userIDList); + } + } else { + this.subscribeOnlineStatus(userIDList); + } + }, + + learnMore() { + if (app?.globalData?.reportType !== constant.OPERATING_ENVIRONMENT) return; + app.method.navigateTo({ + url: '/pages/TUI-User-Center/webview/webview?url=https://cloud.tencent.com/product/im', + }); + }, + }, +}); diff --git a/TUIService/TUIKit/components/TUIConversation/index.json b/TUIService/TUIKit/components/TUIConversation/index.json new file mode 100644 index 0000000..9c1eed3 --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/index.json @@ -0,0 +1,10 @@ +{ + "component": true, + "usingComponents": { + "ConversationItem": "./components/ConversationItem/index", + "CreateConversation": "./components/CreateConversation/index", + "CreateGroup": "./components/CreateGroup/index", + "JoinGroup": "./components/JoinGroup/index" + }, + "navigationStyle": "custom" +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIConversation/index.wxml b/TUIService/TUIKit/components/TUIConversation/index.wxml new file mode 100644 index 0000000..652c6ea --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/index.wxml @@ -0,0 +1,28 @@ + + + + + + 最近联系人 + + + + + + + + + + + + {{item.name}} + + + + + 了解更多IM功能 + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIConversation/index.wxss b/TUIService/TUIKit/components/TUIConversation/index.wxss new file mode 100644 index 0000000..0d5a2a6 --- /dev/null +++ b/TUIService/TUIKit/components/TUIConversation/index.wxss @@ -0,0 +1,124 @@ +.container{ + width: 100vw; + height: 100vh; + background-color: #F4F5F9; +} + +.tui-navigatorbar{ + position: absolute; + top: 0; + width: 750rpx; + height: 176rpx; + background: rgba(237,237,237,0.9); + backdrop-filter: blur(20px); +} + +.tui-navigatorbar-back{ + position: absolute; + width: 30rpx; + height: 60rpx; + left: 24rpx; + + bottom: 20rpx; +} + +.conversation-title { + position:absolute; + width: 350rpx; + height: 88rpx; + line-height: 56rpx; + font-size: 36rpx; + color: #000; + bottom: 0; + left: 200rpx; + display: flex; + justify-content: center; + align-items: center; +} + +.conversation-list-area { + position: absolute; + width: 100vw; + height: calc(100vh - 190px); + top: 172rpx; +} + +.scoll-view { + width: 100%; + height: 100%; +} + +.btn-show-more { + display: flex; + width: 160rpx; + height: 160rpx; + padding-left: 3rpx; + +} + +.picker { + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 96rpx; +} +.bottom-back{ + height: 120px; + width: 100%; + background-color: #F4F5F9; + z-index: 3; +} +.bottom-area { + flex-direction: column; + position: absolute; + bottom: 80rpx; + right: 0; + left: 0; + margin: auto; + width: 100px; + display: flex; + justify-content: center; + align-items: center +} + +.im-link { + width: 218rpx; + height: 36rpx; + font-size: 28rpx; + line-height: 36rpx; + margin: 0 auto; + color: #006EFF; +} +.conversation-bubble { + padding-top: 40rpx; + position: absolute; + width: 300rpx; + padding-right: 3px; + background-color: #FFFFFF; + height: 320rpx; + bottom: 300rpx; + left: 220rpx; + z-index: 100; + box-shadow: 0 2px 16px 0 rgba(0,0,0,0.08); + border-radius: 14rpx; +} +.conversation-bubble:before,.conversation-bubble:after{ + content: ""; + display: block; + border-width: 20px; + position: absolute; + bottom: -40px; + left: 54px; + border-style: solid dashed dashed; + border-color: #fff transparent transparent; + font-size: 0; + line-height: 0; + margin-left:4px +} + +.conversation-bubble:after{ + bottom: -33px; + border-color: #fff transparent transparent; + +} diff --git a/TUIService/TUIKit/components/TUIGroup/checked.wxs b/TUIService/TUIKit/components/TUIGroup/checked.wxs new file mode 100644 index 0000000..84cbdcf --- /dev/null +++ b/TUIService/TUIKit/components/TUIGroup/checked.wxs @@ -0,0 +1,9 @@ +var includes = function() { + var show = false; + if(arguments[0].indexOf(arguments[1]) !== -1) { + return show = true; + } +} +module.exports = { + includes: includes +}; \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIGroup/index.js b/TUIService/TUIKit/components/TUIGroup/index.js new file mode 100644 index 0000000..2b80151 --- /dev/null +++ b/TUIService/TUIKit/components/TUIGroup/index.js @@ -0,0 +1,363 @@ +import logger from '../../utils/logger'; +// eslint-disable-next-line no-undef +Component({ + /** + * 组件的属性列表 + */ + properties: { + conversation: { + type: Object, + value: '', + observer(newVal) { + if (newVal.type === 'GROUP'); + this.setData({ + conversation: newVal, + }); + }, + }, + count: { + type: Number, + value: '', + observer(newVal) { + this.setData({ + memberCount: newVal, + }); + }, + }, + }, + /** + * 组件的初始数据 + */ + data: { + personalProfile: { + }, + getMemberCount: 30, + count: '', + userID: '', + conversation: {}, + memberCount: '', + groupMemberProfile: [], + groupMemberAvatar: [], + groupMemberNick: [], + hidden: true, + notShow: true, + isShow: false, + showMore: false, + addShow: false, + popupToggle: false, + quitPopupToggle: false, + addPopupToggle: false, + showText: '退出群聊', + showOwner: false, + noRepateOwner: [], + showOwnerName: {}, + showGetMore: false, + offsetNumber: 0, + selectedUserIDList: [], + showGroupCall: false, + type: 0, + Profile: {}, + callStatus: false, + list: [], + currentUserID: '', + callGroupMemberProfile: [], + }, + lifetimes: { + attached() { + wx.$TUIKit.getGroupProfile({ + groupID: this.data.conversation.groupProfile.groupID, + }).then((imResponse) => { + this.setData({ + Profile: imResponse, + }); + }); + this.setData({ + currentUserID: wx.$chat_userID, + memberCount: this.data.conversation.groupProfile.memberCount, + }); + }, + }, + + /** + * 组件的方法列表 + */ + methods: { + // 展示更多群成员 + showMore() { + const { group } = this.data.Profile.data; + const currentMemberCount = group.memberCount; + this.setData({ + showGetMore: currentMemberCount > this.data.getMemberCount, + showText: group.selfInfo.role === 'Owner' ? '解散群聊' : '', + }); + wx.$TUIKit.getGroupMemberList({ + groupID: this.data.conversation.groupProfile.groupID, + count: this.data.getMemberCount, offset: 0, + }) + .then((imResponse) => { + logger.log(`| TUI-group-profile | getGroupMemberList | getGroupMemberList-length: ${imResponse.data.memberList.length}`); + if (this.data.conversation.groupProfile.type === 'Private') { + this.setData({ + addShow: true, + }); + } + if (imResponse.data.memberList.length > 3) { + this.setData({ + showMore: true, + }); + } + this.setData({ + groupMemberProfile: imResponse.data.memberList, + hidden: !this.data.hidden, + notShow: !this.data.notShow, + isShow: !this.data.isShow, + }); + }); + }, + // 拉取更多成员进行展示 + getMoreMember() { + const offset = this.data.offsetNumber + this.data.getMemberCount; + this.setData({ + offsetNumber: offset, + }); + wx.$TUIKit.getGroupMemberList({ + groupID: this.data.conversation.groupProfile.groupID, + count: this.data.getMemberCount, offset, + }).then((imResponse) => { + this.setData({ + groupMemberProfile: this.data.groupMemberProfile.concat(imResponse.data.memberList), + }); + if (this.data.groupMemberProfile.length === this.data.memberCount) { + this.setData({ + showGetMore: false, + }); + } + }); + }, + // 关闭显示showmore + showLess() { + this.setData({ + isShow: false, + notShow: true, + hidden: true, + }); + }, + // 展示更多群成员弹窗 + showMoreMember() { + this.setData({ + popupToggle: true, + callStatus: false, + }); + }, + // 通话展示更多群成员 + callShowMoreMember(event) { + if (this.data.groupMemberProfile.length === 0) { + wx.$TUIKit.getGroupMemberList({ + groupID: this.data.conversation.groupProfile.groupID, + count: this.data.getMemberCount, + offset: 0, + }) + .then((imResponse) => { + const index = imResponse.data.memberList.findIndex((member) => member.userID === this.data.currentUserID); + imResponse.data.memberList.splice(index, 1); + this.setData({ + callGroupMemberProfile: imResponse.data.memberList, + showGetMore: this.data.Profile.data.group.memberCount > this.data.getMemberCount, + }); + }); + } else { + const currentGroupMemberProfile = this.data.groupMemberProfile; + const index = currentGroupMemberProfile.findIndex((member)=> member.userID === this.data.currentUserID); + currentGroupMemberProfile.splice(index, 1); + this.setData({ + callGroupMemberProfile: currentGroupMemberProfile, + }); + } + this.setData({ + type: event.detail.type, + popupToggle: true, + callStatus: true, + }); + }, + // 关闭显示弹窗 + close() { + this.setData({ + selectedUserIDList: [], + showGroupCall: false, + popupToggle: false, + addPopupToggle: false, + quitPopupToggle: false, + }); + }, + quitGroup() { + if (this.data.showText === '退出群聊') { + this.setData({ + quitPopupToggle: true, + popupToggle: false, + }); + } else if (this.data.showText === '解散群聊') { + this.setData({ + dismissPopupToggle: true, + popupToggle: false, + }); + } + }, + // 解散群聊 + dismissGroupConfirm() { + wx.$TUIKit.dismissGroup(this.data.conversation.groupProfile.groupID) + .then(() => { + this.triggerEvent('showConversationList'); + }) + .catch((imError) => { + wx.showToast({ + title: '群主不能解散好友工作群', + icon: 'none', + }); + this.setData({ + dismissPopupToggle: false, + }); + logger.warn('dismissGroup error:', imError); + }); + }, + // 解散群聊的按钮提示 + dismissGroupAbandon() { + this.setData({ + dismissPopupToggle: false, + }); + }, + // 主动退群 + quitGroupConfirm() { + wx.$TUIKit.quitGroup(this.data.conversation.groupProfile.groupID) + .then(() => { + this.triggerEvent('showConversationList'); + }) + .catch((imError) => { + wx.showToast({ + title: '该群不允许群主主动退出', + icon: 'none', + }); + this.setData({ + quitPopupToggle: false, + }); + logger.warn('quitGroup error:', imError); // 退出群组失败的相关信息 + }); + }, + // 退出群聊的按钮显示 + quitGroupAbandon() { + this.setData({ + quitPopupToggle: false, + }); + }, + // 添加群成员按钮显示 + addMember() { + this.setData({ + addPopupToggle: true, + }); + }, + // 获取输入的用户ID + binduserIDInput(e) { + const id = e.detail.value; + this.setData({ + userID: id, + }); + }, + // work群主动添加群成员 + submit() { + wx.$TUIKit.addGroupMember({ + groupID: this.data.conversation.groupProfile.groupID, + userIDList: [this.data.userID], + }).then((imResponse) => { + if (imResponse.data.successUserIDList.length > 0) { + wx.showToast({ title: '添加成功', duration: 800 }); + this.userID = ''; + this.addMemberModalVisible = false; + this.setData({ + addPopupToggle: false, + }); + } + if (imResponse.data.existedUserIDList.length > 0) { + wx.showToast({ title: '该用户已在群中', duration: 800, icon: 'none' }); + } + }) + .catch((imError) => { + console.warn('addGroupMember error:', imError); // 错误信息 + wx.showToast({ title: '添加失败,请确保该用户存在', duration: 800, icon: 'none' }); + }); + }, + // 实时更新群成员个数 + updateMemberCount(event) { + if (event === 1) { // 1是有成员加群 + wx.$TUIKit.getGroupMemberList({ + groupID: this.data.conversation.groupProfile.groupID, + count: this.data.getMemberCount, offset: 0, + }).then((imResponse) => { + this.setData({ + groupMemberProfile: imResponse.data.memberList, + memberCount: this.data.memberCount + 1, + }); + if (this.data.memberCount > 3) { + this.setData({ + showMore: true, + }); + } + }); + } + if (event === 2) { // 2是有成员退群 + wx.$TUIKit.getGroupMemberList({ + groupID: this.data.conversation.groupProfile.groupID, + count: this.data.getMemberCount, offset: 0, + }).then((imResponse) => { + this.setData({ + groupMemberProfile: imResponse.data.memberList, + memberCount: this.data.memberCount - 1, + }); + if (this.data.memberCount <= 3) { + this.setData({ + showMore: false, + }); + } + }); + } + }, + // 复制群ID + copyGroupID() { + wx.setClipboardData({ + data: this.data.conversation.groupProfile.groupID, + success() { + wx.getClipboardData({ + success(res) { + logger.log(`| TUI-chat | tui-group | copyGroupID: ${res.data} `); + }, + }); + }, + }); + }, + // 获取群通话ID + handleGroupCallUserIDList(e) { + if (!this.data.callStatus) return; + const { selectedUserIDList } = this.data ; + const { userID } = e.currentTarget.dataset.value; + const index = selectedUserIDList.indexOf(userID); + if (index > -1) { + selectedUserIDList.splice(index, 1); + } else { + selectedUserIDList.push(userID); + } + this.setData({ + selectedUserIDList, + showGroupCall: selectedUserIDList.length > 0, + }); + }, + // 父组件传值 + handleGroupCall() { + const { selectedUserIDList, type } = this.data; + const { groupID } = this.data.conversation.groupProfile; + this.triggerEvent('groupCall', { selectedUserIDList, type, groupID }); + this.setData({ + popupToggle: false, + showGroupCall: false, + selectedUserIDList: [] + }); + }, + }, +}); diff --git a/TUIService/TUIKit/components/TUIGroup/index.json b/TUIService/TUIKit/components/TUIGroup/index.json new file mode 100644 index 0000000..e2d4484 --- /dev/null +++ b/TUIService/TUIKit/components/TUIGroup/index.json @@ -0,0 +1,4 @@ +{ + "component":true, + "usingComponents": {} +} \ No newline at end of file diff --git a/TUIService/TUIKit/components/TUIGroup/index.wxml b/TUIService/TUIKit/components/TUIGroup/index.wxml new file mode 100644 index 0000000..11e5e9a --- /dev/null +++ b/TUIService/TUIKit/components/TUIGroup/index.wxml @@ -0,0 +1,115 @@ + + + + 群ID:{{conversation.groupProfile.groupID}} + + 聊天成员:{{memberCount}}人 + + + + + + + + + + + 群成员 + + 发起通话 + 关闭 + + + + + + + (群主) + {{item.nick||item.userID}} + + + + + + (群主) + {{item.nick||item.userID}} + + + + + + + + + + + + + + + 退出群聊后会同步删除历史聊天记录,是否要退出群聊? + + + 退出 + + + 取消 + + + + + + + + + + 是否解散群聊? + + + 确认 + + + 取消 + + + + + + + + 添加群成员 + + + + + + + + + + + + + diff --git a/TUIService/TUIKit/components/TUIGroup/index.wxss b/TUIService/TUIKit/components/TUIGroup/index.wxss new file mode 100644 index 0000000..7c9641b --- /dev/null +++ b/TUIService/TUIKit/components/TUIGroup/index.wxss @@ -0,0 +1,373 @@ +.group-information-box{ + width: 100vw ; + background: #006EFF; +} +.group-box{ + display: inline-flex; + width: 100%; + box-sizing: border-box; + padding: 34rpx 40rpx; +} + +.group-ID{ + flex: 1; + max-width:50% ; + color: white; + display: inline-block; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.group-member{ + padding-left: 110rpx; + color: white; +} +.icon-right{ + float: right; + width: 32rpx; + height: 32rpx; + padding-top: 10rpx; + padding-left: 4rpx; +} +.showdetail{ + display:flex; + width: 100vw; + height: 200rpx; + background: #006EFF; +} +.box{ + width: 100rpx; + height: 130rpx; + padding-left: 35rpx; + padding-top: 10rpx; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} +.left-box{ + display: flex; + padding-left: 200rpx; + padding-top: 10rpx; + width: 250rpx; +} +.box-group{ + position: absolute; + width: 80rpx; + height: 80rpx; + right: 160rpx; +} +.box-group-quit{ + position:absolute; + right: 80rpx; + width: 80rpx; + height: 80rpx; +} +.addmember{ + width: 80rpx; + height: 80rpx; +} +.quitgroup{ + padding-left: 28rpx; + width: 80rpx; + height: 80rpx; +} +.profile-box{ + width: 80rpx; + height: 80rpx; + flex-shrink: 0; + z-index: 8; +} +.addmember-text{ + display: flex; + justify-content: center; + align-items: center; + font-family: PingFangSC-Regular; + font-size: 10px; + color: #FFFFFF; + letter-spacing: 0; +} +.quitgroup-text{ + display: flex; + justify-content: center; + align-items: center; + font-family: PingFangSC-Regular; + font-size: 10px; + color: #FFFFFF; + letter-spacing: 0; + padding-left: 20rpx; + width: 100rpx; +} +.nick-box{ + margin-top: 10px; + display: flex; + justify-content: center; + align-items: center; + font-family: PingFangSC-Regular; + font-size: 10px; + color: #FFFFFF; + letter-spacing: 0; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + width: 100%; +} + +.popup-mask{ + width: 100vw; + height: 100vh; + position: fixed; + z-index: 10; + top: 0; + right: 0; + display: flex; + align-items: flex-end; +} +.pop-main{ + max-height: 35%; + width: 100%; + padding-bottom: 120rpx; + background: #FFFFFF; + overflow: auto +} +.group-member-text{ + display: inline-block; + padding-left: 40rpx; + opacity: 0.8; + font-family: PingFangSC-Medium; + font-size: 18px; + letter-spacing: 0; + line-height: 25px; +} +.close{ + font-family: PingFangSC-Regular; + font-size: 18px; + color: #2B8BD5; + letter-spacing: 0; + line-height: 24px; +} +.quitpop-mask{ + width: 100vw; + height: 100vh; + position: fixed; + z-index: 10; + top: 0; + right: 0; + background: rgba(0,0,0,0.60); + display: flex; + align-items: flex-end; +} +.quitpop{ + position: fixed; + bottom: 0; + width: 100%; + height: 25%; + background: #FFFFFF; + z-index: 99999; +} +.text-box{ + display: flex; + justify-content: center; + align-items: center; + height: 112rpx; +} +.confirmQuitgroup-text{ + display: inline-block; + opacity: 0.4; + font-family: PingFangSC-Regular; + font-size: 14px; + letter-spacing: 0; + text-align: center; + line-height: 18px; +} +.quitgroup-confirm{ + font-family: PingFangSC-Regular; + font-size: 16px; + color: #E85454; + letter-spacing: 0; + text-align: center; + line-height: 22px; +} +.quitgroup-abandon{ + opacity: 0.8; + font-family: PingFangSC-Regular; + font-size: 16px; + letter-spacing: 0; + text-align: center; + line-height: 22px; +} +.mask{ + position: absolute; + top: 450rpx; + left: 100rpx; + width: 70%; + height: 20%; + background:#999999; + z-index: 999; +} +.popup { +background: #ffffff; +border: 1px solid #eeeeee; +} +.popup-main { +height: 56px; +padding: 60rpx 0; +text-align: center; +font-family: PingFangSC-Regular; +font-size: 14px; +color: #999999; +letter-spacing: 0; +text-align: center; +line-height: 18px; +} +.input{ + padding-top: 30rpx; +} +.popup-footer { +display: flex; + +} +.popup-footer button { +flex: 1; +} +.popup-footer .cancel { + font-family: PingFangSC-Regular; + font-size: 14px; + color: #000000; + letter-spacing: 0; + text-align: center; + line-height: 22px; + height: 44px; + border-radius: 10px ; +} +.popup-footer .submit { + font-family: PingFangSC-Regular; + font-size: 14px; + color: #E85454; + letter-spacing: 0; + text-align: center; + line-height: 22px; + height: 44px; + border-radius: 10px ; + +} +.cancellation{ + margin-top: 68px; + margin-left: 20px; + margin-right: 20px; + background-color:white; + width: 280px; + height: 46px; + border: 1px solid #E85454 ; + border-radius: 24px; + border-radius: 24px; +} +.confirm-cancellation{ + margin-left: 110px; + margin-top: 13px; + font-family: PingFangSC-Regular; + font-size: 16px; + color: #E85454; + letter-spacing: 0; +} +.image-list{ + padding-top: 40rpx; + display: flex; + flex-wrap: wrap; +} + .image-nick-box{ + width: 141rpx; + height: 140rpx; + padding-left: 45rpx; + padding-top: 32rpx; +} +.image{ + width: 108rpx; + height: 108rpx; + border-radius: 4px; + border-radius: 4px; +} +.groupownername-box { + display: flex +} +.groupownername { + margin-top: 10px; + display: inline-block; + font-family: PingFangSC-Regular; + font-size: 10px; + color: white; + letter-spacing: 0; + white-space: nowrap; + width: 80rpx; +} +.groupmembername{ + display: inline-block; + font-family: PingFangSC-Regular; + font-size: 12px; + color: #999999; + letter-spacing: 0; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + width: 80rpx; +} +.groupowner-box { + display: flex; +} +.groupownername-bootom { + display: inline-block; + font-family: PingFangSC-Regular; + font-size: 12px; + color: #999999; + letter-spacing: 0; + white-space: nowrap; + width: 80rpx; +} +.text-box-qiut{ + display: flex; + justify-content: center; + align-items: center; + height: 112rpx; +} +.text-box-cancle{ + display: flex; + justify-content: center; + align-items: center; + height: 112rpx; + border-top: 16rpx solid #eeeeee ; +} +.moremember{ + width: 108rpx; + height: 140rpx; + padding-left: 32rpx; + padding-top: 32rpx; +} +.call-box { + display: flex; + flex-direction: column; +} +.call-image { + width: 48px; + height: 48px; +} + +.image-nick-box-active { + box-sizing: border-box; + border: 3px solid #24a528; + border-radius: 4px; +} +.pop-main-header { + display: flex; + align-items: center; + justify-items: center; + padding-top: 40rpx; + justify-content: space-between; + +} +.show-group-call{ + display: flex; + padding-right: 40rpx; +} +.handlecall{ + padding-right: 40rpx; +} \ No newline at end of file diff --git a/TUIService/TUIKit/debug/GenerateTestUserSig.js b/TUIService/TUIKit/debug/GenerateTestUserSig.js new file mode 100644 index 0000000..352024a --- /dev/null +++ b/TUIService/TUIKit/debug/GenerateTestUserSig.js @@ -0,0 +1,63 @@ +import LibGenerateTestUserSig from './lib-generate-test-usersig-es.min.js'; + +/** + * 腾讯云 SDKAppId,需要替换为您自己账号下的 SDKAppId。 + * + * 进入腾讯云实时音视频[控制台](https://console.cloud.tencent.com/rav ) 创建应用,即可看到 SDKAppId, + * 它是腾讯云用于区分客户的唯一标识。 + */ +// const SDKAPPID = 0; + + +/** + * 签名过期时间,建议不要设置的过短 + *

+ * 时间单位:秒 + * 默认时间:7 x 24 x 60 x 60 = 604800 = 7 天 + */ +// const EXPIRETIME = 604800; + + +/** + * 计算签名用的加密密钥,获取步骤如下: + * + * step1. 进入腾讯云实时音视频[控制台](https://console.cloud.tencent.com/rav ),如果还没有应用就创建一个, + * step2. 单击“应用配置”进入基础配置页面,并进一步找到“帐号体系集成”部分。 + * step3. 点击“查看密钥”按钮,就可以看到计算 UserSig 使用的加密的密钥了,请将其拷贝并复制到如下的变量中 + * + * 注意:该方案仅适用于调试Demo,正式上线前请将 UserSig 计算代码和密钥迁移到您的后台服务器上,以避免加密密钥泄露导致的流量盗用。 + * 文档:https://cloud.tencent.com/document/product/647/17275#Server + */ +// const SECRETKEY = ''; + +/* + * Module: GenerateTestUserSig + * + * Function: 用于生成测试用的 UserSig,UserSig 是腾讯云为其云服务设计的一种安全保护签名。 + * 其计算方法是对 SDKAppID、UserID 和 EXPIRETIME 进行加密,加密算法为 HMAC-SHA256。 + * + * Attention: 请不要将如下代码发布到您的线上正式版本的 App 中,原因如下: + * + * 本文件中的代码虽然能够正确计算出 UserSig,但仅适合快速调通 SDK 的基本功能,不适合线上产品, + * 这是因为客户端代码中的 SECRETKEY 很容易被反编译逆向破解,尤其是 Web 端的代码被破解的难度几乎为零。 + * 一旦您的密钥泄露,攻击者就可以计算出正确的 UserSig 来盗用您的腾讯云流量。 + * + * 正确的做法是将 UserSig 的计算代码和加密密钥放在您的业务服务器上,然后由 App 按需向您的服务器获取实时算出的 UserSig。 + * 由于破解服务器的成本要高于破解客户端 App,所以服务器计算的方案能够更好地保护您的加密密钥。 + * + * Reference:https://cloud.tencent.com/document/product/647/17275#Server + */ +function genTestUserSig(config) { + const { SDKAPPID, SECRETKEY, EXPIRETIME,userID } = config; + const generator = new LibGenerateTestUserSig(SDKAPPID, SECRETKEY, EXPIRETIME); + const userSig = generator.genTestUserSig(userID); + + return { + sdkAppID: SDKAPPID, + userSig, + }; +} + +module.exports = { + genTestUserSig, +}; diff --git a/TUIService/TUIKit/debug/lib-generate-test-usersig-es.min.js b/TUIService/TUIKit/debug/lib-generate-test-usersig-es.min.js new file mode 100644 index 0000000..b01b70b --- /dev/null +++ b/TUIService/TUIKit/debug/lib-generate-test-usersig-es.min.js @@ -0,0 +1,2 @@ +/*eslint-disable*/ +var e="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t=[],r=[],n="undefined"!=typeof Uint8Array?Uint8Array:Array,i=!1;function o(){i=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=0,o=e.length;n>18&63]+t[o>>12&63]+t[o>>6&63]+t[63&o]);return a.join("")}function s(e){var r;i||o();for(var n=e.length,s=n%3,h="",l=[],f=0,c=n-s;fc?c:f+16383));return 1===s?(r=e[n-1],h+=t[r>>2],h+=t[r<<4&63],h+="=="):2===s&&(r=(e[n-2]<<8)+e[n-1],h+=t[r>>10],h+=t[r>>4&63],h+=t[r<<2&63],h+="="),l.push(h),l.join("")}function h(e,t,r,n,i){var o,a,s=8*i-n-1,h=(1<>1,f=-7,c=r?i-1:0,u=r?-1:1,d=e[t+c];for(c+=u,o=d&(1<<-f)-1,d>>=-f,f+=s;f>0;o=256*o+e[t+c],c+=u,f-=8);for(a=o&(1<<-f)-1,o>>=-f,f+=n;f>0;a=256*a+e[t+c],c+=u,f-=8);if(0===o)o=1-l;else{if(o===h)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,n),o-=l}return(d?-1:1)*a*Math.pow(2,o-n)}function l(e,t,r,n,i,o){var a,s,h,l=8*o-i-1,f=(1<>1,u=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,p=n?1:-1,_=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=f):(a=Math.floor(Math.log(t)/Math.LN2),t*(h=Math.pow(2,-a))<1&&(a--,h*=2),(t+=a+c>=1?u/h:u*Math.pow(2,1-c))*h>=2&&(a++,h/=2),a+c>=f?(s=0,a=f):a+c>=1?(s=(t*h-1)*Math.pow(2,i),a+=c):(s=t*Math.pow(2,c-1)*Math.pow(2,i),a=0));i>=8;e[r+d]=255&s,d+=p,s/=256,i-=8);for(a=a<0;e[r+d]=255&a,d+=p,a/=256,l-=8);e[r+d-p]|=128*_}var f={}.toString,c=Array.isArray||function(e){return"[object Array]"==f.call(e)};function u(){return p.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function d(e,t){if(u()=u())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+u().toString(16)+" bytes");return 0|e}function y(e){return!(null==e||!e._isBuffer)}function m(e,t){if(y(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return V(e).length;default:if(n)return q(e).length;t=(""+t).toLowerCase(),n=!0}}function k(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,r);case"utf8":case"utf-8":return C(this,t,r);case"ascii":return I(this,t,r);case"latin1":case"binary":return P(this,t,r);case"base64":return M(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function E(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function S(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=p.from(t,n)),y(t))return 0===t.length?-1:x(e,t,r,n,i);if("number"==typeof t)return t&=255,p.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):x(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function x(e,t,r,n,i){var o,a=1,s=e.length,h=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,h/=2,r/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){var f=-1;for(o=r;os&&(r=s-h),o=r;o>=0;o--){for(var c=!0,u=0;ui&&(n=i):n=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var a=0;a>8,i=r%256,o.push(i),o.push(n);return o}(t,e.length-r),e,r,n)}function M(e,t,r){return 0===t&&r===e.length?s(e):s(e.slice(t,r))}function C(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i239?4:l>223?3:l>191?2:1;if(i+c<=r)switch(c){case 1:l<128&&(f=l);break;case 2:128==(192&(o=e[i+1]))&&(h=(31&l)<<6|63&o)>127&&(f=h);break;case 3:o=e[i+1],a=e[i+2],128==(192&o)&&128==(192&a)&&(h=(15&l)<<12|(63&o)<<6|63&a)>2047&&(h<55296||h>57343)&&(f=h);break;case 4:o=e[i+1],a=e[i+2],s=e[i+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(h=(15&l)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&h<1114112&&(f=h)}null===f?(f=65533,c=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),i+=c}return function(e){var t=e.length;if(t<=D)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),""},p.prototype.compare=function(e,t,r,n,i){if(!y(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0),s=Math.min(o,a),h=this.slice(n,i),l=e.slice(t,r),f=0;fi)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return R(this,e,t,r);case"utf8":case"utf-8":return A(this,e,t,r);case"ascii":return B(this,e,t,r);case"latin1":case"binary":return z(this,e,t,r);case"base64":return L(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},p.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var D=4096;function I(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;in)&&(r=n);for(var i="",o=t;or)throw new RangeError("Trying to access beyond buffer length")}function F(e,t,r,n,i,o){if(!y(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function N(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function Z(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function j(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function W(e,t,r,n,i){return i||j(e,0,r,4),l(e,t,r,n,23,4),r+4}function Y(e,t,r,n,i){return i||j(e,0,r,8),l(e,t,r,n,52,8),r+8}p.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(i*=256);)n+=this[e+--t]*i;return n},p.prototype.readUInt8=function(e,t){return t||H(e,1,this.length),this[e]},p.prototype.readUInt16LE=function(e,t){return t||H(e,2,this.length),this[e]|this[e+1]<<8},p.prototype.readUInt16BE=function(e,t){return t||H(e,2,this.length),this[e]<<8|this[e+1]},p.prototype.readUInt32LE=function(e,t){return t||H(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},p.prototype.readUInt32BE=function(e,t){return t||H(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},p.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||H(e,t,this.length);for(var n=this[e],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*t)),n},p.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||H(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},p.prototype.readInt8=function(e,t){return t||H(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},p.prototype.readInt16LE=function(e,t){t||H(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},p.prototype.readInt16BE=function(e,t){t||H(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},p.prototype.readInt32LE=function(e,t){return t||H(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},p.prototype.readInt32BE=function(e,t){return t||H(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},p.prototype.readFloatLE=function(e,t){return t||H(e,4,this.length),h(this,e,!0,23,4)},p.prototype.readFloatBE=function(e,t){return t||H(e,4,this.length),h(this,e,!1,23,4)},p.prototype.readDoubleLE=function(e,t){return t||H(e,8,this.length),h(this,e,!0,52,8)},p.prototype.readDoubleBE=function(e,t){return t||H(e,8,this.length),h(this,e,!1,52,8)},p.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||F(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+r},p.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,1,255,0),p.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},p.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,65535,0),p.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},p.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,65535,0),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},p.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,4294967295,0),p.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):Z(this,e,t,!0),t+4},p.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,4294967295,0),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Z(this,e,t,!1),t+4},p.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);F(this,e,t,r,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o>0)-s&255;return t+r},p.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);F(this,e,t,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+r},p.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,1,127,-128),p.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},p.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,32767,-32768),p.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},p.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,32767,-32768),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},p.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,2147483647,-2147483648),p.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):Z(this,e,t,!0),t+4},p.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Z(this,e,t,!1),t+4},p.prototype.writeFloatLE=function(e,t,r){return W(this,e,t,!0,r)},p.prototype.writeFloatBE=function(e,t,r){return W(this,e,t,!1,r)},p.prototype.writeDoubleLE=function(e,t,r){return Y(this,e,t,!0,r)},p.prototype.writeDoubleBE=function(e,t,r){return Y(this,e,t,!1,r)},p.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(o<1e3||!p.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function V(e){return function(e){var t,a,s,h,l,f;i||o();var c=e.length;if(c%4>0)throw new Error("Invalid string. Length must be a multiple of 4");l="="===e[c-2]?2:"="===e[c-1]?1:0,f=new n(3*c/4-l),s=l>0?c-4:c;var u=0;for(t=0,a=0;t>16&255,f[u++]=h>>8&255,f[u++]=255&h;return 2===l?(h=r[e.charCodeAt(t)]<<2|r[e.charCodeAt(t+1)]>>4,f[u++]=255&h):1===l&&(h=r[e.charCodeAt(t)]<<10|r[e.charCodeAt(t+1)]<<4|r[e.charCodeAt(t+2)]>>2,f[u++]=h>>8&255,f[u++]=255&h),f}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(K,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function G(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function $(e){return null!=e&&(!!e._isBuffer||J(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&J(e.slice(0,0))}(e))}function J(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function Q(e,t){return e(t={exports:{}},t.exports),t.exports}var ee=Q(function(e,t){var r;e.exports=(r=r||function(e,t){var r=Object.create||function(){function e(){}return function(t){var r;return e.prototype=t,r=new e,e.prototype=null,r}}(),n={},i=n.lib={},o=i.Base={extend:function(e){var t=r(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},a=i.WordArray=o.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||h).stringify(this)},concat:function(e){var t=this.words,r=e.words,n=this.sigBytes,i=e.sigBytes;if(this.clamp(),n%4)for(var o=0;o>>2]>>>24-o%4*8&255;t[n+o>>>2]|=a<<24-(n+o)%4*8}else for(var o=0;o>>2]=r[o>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,r=this.sigBytes;t[r>>>2]&=4294967295<<32-r%4*8,t.length=e.ceil(r/4)},clone:function(){var e=o.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var r,n=[],i=function(t){var t=t,r=987654321,n=4294967295;return function(){var i=((r=36969*(65535&r)+(r>>16)&n)<<16)+(t=18e3*(65535&t)+(t>>16)&n)&n;return i/=4294967296,(i+=.5)*(e.random()>.5?1:-1)}},o=0;o>>2]>>>24-i%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,r=[],n=0;n>>3]|=parseInt(e.substr(n,2),16)<<24-n%8*4;return new a.init(r,t/2)}},l=s.Latin1={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(o))}return n.join("")},parse:function(e){for(var t=e.length,r=[],n=0;n>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new a.init(r,t)}},f=s.Utf8={stringify:function(e){try{return decodeURIComponent(escape(l.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return l.parse(unescape(encodeURIComponent(e)))}},c=i.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new a.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=f.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var r=this._data,n=r.words,i=r.sigBytes,o=this.blockSize,s=4*o,h=i/s,l=(h=t?e.ceil(h):e.max((0|h)-this._minBufferSize,0))*o,f=e.min(4*l,i);if(l){for(var c=0;c>>2]|=e[i]<<24-i%4*8;t.call(this,n,r)}else t.apply(this,arguments)}).prototype=e}}(),r.lib.WordArray)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib.WordArray,n=e.enc;function i(e){return e<<8&4278255360|e>>>8&16711935}n.Utf16=n.Utf16BE={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i>>2]>>>16-i%4*8&65535;n.push(String.fromCharCode(o))}return n.join("")},parse:function(e){for(var r=e.length,n=[],i=0;i>>1]|=e.charCodeAt(i)<<16-i%2*16;return t.create(n,2*r)}},n.Utf16LE={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(a))}return n.join("")},parse:function(e){for(var r=e.length,n=[],o=0;o>>1]|=i(e.charCodeAt(o)<<16-o%2*16);return t.create(n,2*r)}}}(),r.enc.Utf16)}),Q(function(e,t){var r,n,i;e.exports=(i=(n=r=ee).lib.WordArray,n.enc.Base64={stringify:function(e){var t=e.words,r=e.sigBytes,n=this._map;e.clamp();for(var i=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(t[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|t[o+2>>>2]>>>24-(o+2)%4*8&255,s=0;s<4&&o+.75*s>>6*(3-s)&63));var h=n.charAt(64);if(h)for(;i.length%4;)i.push(h);return i.join("")},parse:function(e){var t=e.length,r=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o>>6-a%4*2;n[o>>>2]|=(s|h)<<24-o%4*8,o++}return i.create(n,o)}(e,t,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},r.enc.Base64)}),Q(function(e,t){var r;e.exports=(r=ee,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.algo,s=[];!function(){for(var t=0;t<64;t++)s[t]=4294967296*e.abs(e.sin(t+1))|0}();var h=a.MD5=o.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var n=t+r,i=e[n];e[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o=this._hash.words,a=e[t+0],h=e[t+1],d=e[t+2],p=e[t+3],_=e[t+4],g=e[t+5],v=e[t+6],w=e[t+7],b=e[t+8],y=e[t+9],m=e[t+10],k=e[t+11],E=e[t+12],S=e[t+13],x=e[t+14],R=e[t+15],A=o[0],B=o[1],z=o[2],L=o[3];A=l(A,B,z,L,a,7,s[0]),L=l(L,A,B,z,h,12,s[1]),z=l(z,L,A,B,d,17,s[2]),B=l(B,z,L,A,p,22,s[3]),A=l(A,B,z,L,_,7,s[4]),L=l(L,A,B,z,g,12,s[5]),z=l(z,L,A,B,v,17,s[6]),B=l(B,z,L,A,w,22,s[7]),A=l(A,B,z,L,b,7,s[8]),L=l(L,A,B,z,y,12,s[9]),z=l(z,L,A,B,m,17,s[10]),B=l(B,z,L,A,k,22,s[11]),A=l(A,B,z,L,E,7,s[12]),L=l(L,A,B,z,S,12,s[13]),z=l(z,L,A,B,x,17,s[14]),A=f(A,B=l(B,z,L,A,R,22,s[15]),z,L,h,5,s[16]),L=f(L,A,B,z,v,9,s[17]),z=f(z,L,A,B,k,14,s[18]),B=f(B,z,L,A,a,20,s[19]),A=f(A,B,z,L,g,5,s[20]),L=f(L,A,B,z,m,9,s[21]),z=f(z,L,A,B,R,14,s[22]),B=f(B,z,L,A,_,20,s[23]),A=f(A,B,z,L,y,5,s[24]),L=f(L,A,B,z,x,9,s[25]),z=f(z,L,A,B,p,14,s[26]),B=f(B,z,L,A,b,20,s[27]),A=f(A,B,z,L,S,5,s[28]),L=f(L,A,B,z,d,9,s[29]),z=f(z,L,A,B,w,14,s[30]),A=c(A,B=f(B,z,L,A,E,20,s[31]),z,L,g,4,s[32]),L=c(L,A,B,z,b,11,s[33]),z=c(z,L,A,B,k,16,s[34]),B=c(B,z,L,A,x,23,s[35]),A=c(A,B,z,L,h,4,s[36]),L=c(L,A,B,z,_,11,s[37]),z=c(z,L,A,B,w,16,s[38]),B=c(B,z,L,A,m,23,s[39]),A=c(A,B,z,L,S,4,s[40]),L=c(L,A,B,z,a,11,s[41]),z=c(z,L,A,B,p,16,s[42]),B=c(B,z,L,A,v,23,s[43]),A=c(A,B,z,L,y,4,s[44]),L=c(L,A,B,z,E,11,s[45]),z=c(z,L,A,B,R,16,s[46]),A=u(A,B=c(B,z,L,A,d,23,s[47]),z,L,a,6,s[48]),L=u(L,A,B,z,w,10,s[49]),z=u(z,L,A,B,x,15,s[50]),B=u(B,z,L,A,g,21,s[51]),A=u(A,B,z,L,E,6,s[52]),L=u(L,A,B,z,p,10,s[53]),z=u(z,L,A,B,m,15,s[54]),B=u(B,z,L,A,h,21,s[55]),A=u(A,B,z,L,b,6,s[56]),L=u(L,A,B,z,R,10,s[57]),z=u(z,L,A,B,v,15,s[58]),B=u(B,z,L,A,S,21,s[59]),A=u(A,B,z,L,_,6,s[60]),L=u(L,A,B,z,k,10,s[61]),z=u(z,L,A,B,d,15,s[62]),B=u(B,z,L,A,y,21,s[63]),o[0]=o[0]+A|0,o[1]=o[1]+B|0,o[2]=o[2]+z|0,o[3]=o[3]+L|0},_doFinalize:function(){var t=this._data,r=t.words,n=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32;var o=e.floor(n/4294967296),a=n;r[15+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(i+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),t.sigBytes=4*(r.length+1),this._process();for(var s=this._hash,h=s.words,l=0;l<4;l++){var f=h[l];h[l]=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8)}return s},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});function l(e,t,r,n,i,o,a){var s=e+(t&r|~t&n)+i+a;return(s<>>32-o)+t}function f(e,t,r,n,i,o,a){var s=e+(t&n|r&~n)+i+a;return(s<>>32-o)+t}function c(e,t,r,n,i,o,a){var s=e+(t^r^n)+i+a;return(s<>>32-o)+t}function u(e,t,r,n,i,o,a){var s=e+(r^(t|~n))+i+a;return(s<>>32-o)+t}t.MD5=o._createHelper(h),t.HmacMD5=o._createHmacHelper(h)}(Math),r.MD5)}),Q(function(e,t){var r,n,i,o,a,s,h,l;e.exports=(i=(n=r=ee).lib,o=i.WordArray,a=i.Hasher,s=n.algo,h=[],l=s.SHA1=a.extend({_doReset:function(){this._hash=new o.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],s=r[4],l=0;l<80;l++){if(l<16)h[l]=0|e[t+l];else{var f=h[l-3]^h[l-8]^h[l-14]^h[l-16];h[l]=f<<1|f>>>31}var c=(n<<5|n>>>27)+s+h[l];c+=l<20?1518500249+(i&o|~i&a):l<40?1859775393+(i^o^a):l<60?(i&o|i&a|o&a)-1894007588:(i^o^a)-899497514,s=a,a=o,o=i<<30|i>>>2,i=n,n=c}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+a|0,r[4]=r[4]+s|0},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=Math.floor(r/4294967296),t[15+(n+64>>>9<<4)]=r,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}}),n.SHA1=a._createHelper(l),n.HmacSHA1=a._createHmacHelper(l),r.SHA1)}),Q(function(e,t){var r;e.exports=(r=ee,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.algo,s=[],h=[];!function(){function t(t){for(var r=e.sqrt(t),n=2;n<=r;n++)if(!(t%n))return!1;return!0}function r(e){return 4294967296*(e-(0|e))|0}for(var n=2,i=0;i<64;)t(n)&&(i<8&&(s[i]=r(e.pow(n,.5))),h[i]=r(e.pow(n,1/3)),i++),n++}();var l=[],f=a.SHA256=o.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],s=r[4],f=r[5],c=r[6],u=r[7],d=0;d<64;d++){if(d<16)l[d]=0|e[t+d];else{var p=l[d-15],_=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,g=l[d-2],v=(g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10;l[d]=_+l[d-7]+v+l[d-16]}var w=n&i^n&o^i&o,b=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),y=u+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&f^~s&c)+h[d]+l[d];u=c,c=f,f=s,s=a+y|0,a=o,o=i,i=n,n=y+(b+w)|0}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+a|0,r[4]=r[4]+s|0,r[5]=r[5]+f|0,r[6]=r[6]+c|0,r[7]=r[7]+u|0},_doFinalize:function(){var t=this._data,r=t.words,n=8*this._nDataBytes,i=8*t.sigBytes;return r[i>>>5]|=128<<24-i%32,r[14+(i+64>>>9<<4)]=e.floor(n/4294967296),r[15+(i+64>>>9<<4)]=n,t.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=o._createHelper(f),t.HmacSHA256=o._createHmacHelper(f)}(Math),r.SHA256)}),Q(function(e,t){var r,n,i,o,a,s;e.exports=(i=(n=r=ee).lib.WordArray,o=n.algo,a=o.SHA256,s=o.SHA224=a.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=a._doFinalize.call(this);return e.sigBytes-=4,e}}),n.SHA224=a._createHelper(s),n.HmacSHA224=a._createHmacHelper(s),r.SHA224)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib.Hasher,n=e.x64,i=n.Word,o=n.WordArray,a=e.algo;function s(){return i.create.apply(i,arguments)}var h=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],l=[];!function(){for(var e=0;e<80;e++)l[e]=s()}();var f=a.SHA512=t.extend({_doReset:function(){this._hash=new o.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],s=r[4],f=r[5],c=r[6],u=r[7],d=n.high,p=n.low,_=i.high,g=i.low,v=o.high,w=o.low,b=a.high,y=a.low,m=s.high,k=s.low,E=f.high,S=f.low,x=c.high,R=c.low,A=u.high,B=u.low,z=d,L=p,T=_,M=g,C=v,D=w,I=b,P=y,O=m,U=k,H=E,F=S,N=x,Z=R,j=A,W=B,Y=0;Y<80;Y++){var K=l[Y];if(Y<16)var X=K.high=0|e[t+2*Y],q=K.low=0|e[t+2*Y+1];else{var V=l[Y-15],G=V.high,$=V.low,J=(G>>>1|$<<31)^(G>>>8|$<<24)^G>>>7,Q=($>>>1|G<<31)^($>>>8|G<<24)^($>>>7|G<<25),ee=l[Y-2],te=ee.high,re=ee.low,ne=(te>>>19|re<<13)^(te<<3|re>>>29)^te>>>6,ie=(re>>>19|te<<13)^(re<<3|te>>>29)^(re>>>6|te<<26),oe=l[Y-7],ae=oe.high,se=oe.low,he=l[Y-16],le=he.high,fe=he.low;X=(X=(X=J+ae+((q=Q+se)>>>0>>0?1:0))+ne+((q+=ie)>>>0>>0?1:0))+le+((q+=fe)>>>0>>0?1:0),K.high=X,K.low=q}var ce,ue=O&H^~O&N,de=U&F^~U&Z,pe=z&T^z&C^T&C,_e=L&M^L&D^M&D,ge=(z>>>28|L<<4)^(z<<30|L>>>2)^(z<<25|L>>>7),ve=(L>>>28|z<<4)^(L<<30|z>>>2)^(L<<25|z>>>7),we=(O>>>14|U<<18)^(O>>>18|U<<14)^(O<<23|U>>>9),be=(U>>>14|O<<18)^(U>>>18|O<<14)^(U<<23|O>>>9),ye=h[Y],me=ye.high,ke=ye.low,Ee=j+we+((ce=W+be)>>>0>>0?1:0),Se=ve+_e;j=N,W=Z,N=H,Z=F,H=O,F=U,O=I+(Ee=(Ee=(Ee=Ee+ue+((ce+=de)>>>0>>0?1:0))+me+((ce+=ke)>>>0>>0?1:0))+X+((ce+=q)>>>0>>0?1:0))+((U=P+ce|0)>>>0

>>0?1:0)|0,I=C,P=D,C=T,D=M,T=z,M=L,z=Ee+(ge+pe+(Se>>>0>>0?1:0))+((L=ce+Se|0)>>>0>>0?1:0)|0}p=n.low=p+L,n.high=d+z+(p>>>0>>0?1:0),g=i.low=g+M,i.high=_+T+(g>>>0>>0?1:0),w=o.low=w+D,o.high=v+C+(w>>>0>>0?1:0),y=a.low=y+P,a.high=b+I+(y>>>0

>>0?1:0),k=s.low=k+U,s.high=m+O+(k>>>0>>0?1:0),S=f.low=S+F,f.high=E+H+(S>>>0>>0?1:0),R=c.low=R+Z,c.high=x+N+(R>>>0>>0?1:0),B=u.low=B+W,u.high=A+j+(B>>>0>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[30+(n+128>>>10<<5)]=Math.floor(r/4294967296),t[31+(n+128>>>10<<5)]=r,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=t.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32});e.SHA512=t._createHelper(f),e.HmacSHA512=t._createHmacHelper(f)}(),r.SHA512)}),Q(function(e,t){var r,n,i,o,a,s,h,l;e.exports=(i=(n=r=ee).x64,o=i.Word,a=i.WordArray,s=n.algo,h=s.SHA512,l=s.SHA384=h.extend({_doReset:function(){this._hash=new a.init([new o.init(3418070365,3238371032),new o.init(1654270250,914150663),new o.init(2438529370,812702999),new o.init(355462360,4144912697),new o.init(1731405415,4290775857),new o.init(2394180231,1750603025),new o.init(3675008525,1694076839),new o.init(1203062813,3204075428)])},_doFinalize:function(){var e=h._doFinalize.call(this);return e.sigBytes-=16,e}}),n.SHA384=h._createHelper(l),n.HmacSHA384=h._createHmacHelper(l),r.SHA384)}),Q(function(e,t){var r;e.exports=(r=ee,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.x64.Word,s=t.algo,h=[],l=[],f=[];!function(){for(var e=1,t=0,r=0;r<24;r++){h[e+5*t]=(r+1)*(r+2)/2%64;var n=(2*e+3*t)%5;e=t%5,t=n}for(e=0;e<5;e++)for(t=0;t<5;t++)l[e+5*t]=t+(2*e+3*t)%5*5;for(var i=1,o=0;o<24;o++){for(var s=0,c=0,u=0;u<7;u++){if(1&i){var d=(1<>>24)|4278255360&(o<<24|o>>>8),a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),(B=r[i]).high^=a,B.low^=o}for(var s=0;s<24;s++){for(var u=0;u<5;u++){for(var d=0,p=0,_=0;_<5;_++)d^=(B=r[u+5*_]).high,p^=B.low;var g=c[u];g.high=d,g.low=p}for(u=0;u<5;u++){var v=c[(u+4)%5],w=c[(u+1)%5],b=w.high,y=w.low;for(d=v.high^(b<<1|y>>>31),p=v.low^(y<<1|b>>>31),_=0;_<5;_++)(B=r[u+5*_]).high^=d,B.low^=p}for(var m=1;m<25;m++){var k=(B=r[m]).high,E=B.low,S=h[m];S<32?(d=k<>>32-S,p=E<>>32-S):(d=E<>>64-S,p=k<>>64-S);var x=c[l[m]];x.high=d,x.low=p}var R=c[0],A=r[0];for(R.high=A.high,R.low=A.low,u=0;u<5;u++)for(_=0;_<5;_++){var B=r[m=u+5*_],z=c[m],L=c[(u+1)%5+5*_],T=c[(u+2)%5+5*_];B.high=z.high^~L.high&T.high,B.low=z.low^~L.low&T.low}B=r[0];var M=f[s];B.high^=M.high,B.low^=M.low}},_doFinalize:function(){var t=this._data,r=t.words,n=(this._nDataBytes,8*t.sigBytes),o=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(e.ceil((n+1)/o)*o>>>5)-1]|=128,t.sigBytes=4*r.length,this._process();for(var a=this._state,s=this.cfg.outputLength/8,h=s/8,l=[],f=0;f>>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),l.push(d),l.push(u)}return new i.init(l,s)},clone:function(){for(var e=o.clone.call(this),t=e._state=this._state.slice(0),r=0;r<25;r++)t[r]=t[r].clone();return e}});t.SHA3=o._createHelper(u),t.HmacSHA3=o._createHmacHelper(u)}(Math),r.SHA3)}),Q(function(e,t){var r;e.exports=(r=ee,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.algo,s=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),h=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),l=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),f=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),c=i.create([0,1518500249,1859775393,2400959708,2840853838]),u=i.create([1352829926,1548603684,1836072691,2053994217,0]),d=a.RIPEMD160=o.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var n=t+r,i=e[n];e[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o,a,d,y,m,k,E,S,x,R,A,B=this._hash.words,z=c.words,L=u.words,T=s.words,M=h.words,C=l.words,D=f.words;for(k=o=B[0],E=a=B[1],S=d=B[2],x=y=B[3],R=m=B[4],r=0;r<80;r+=1)A=o+e[t+T[r]]|0,A+=r<16?p(a,d,y)+z[0]:r<32?_(a,d,y)+z[1]:r<48?g(a,d,y)+z[2]:r<64?v(a,d,y)+z[3]:w(a,d,y)+z[4],A=(A=b(A|=0,C[r]))+m|0,o=m,m=y,y=b(d,10),d=a,a=A,A=k+e[t+M[r]]|0,A+=r<16?w(E,S,x)+L[0]:r<32?v(E,S,x)+L[1]:r<48?g(E,S,x)+L[2]:r<64?_(E,S,x)+L[3]:p(E,S,x)+L[4],A=(A=b(A|=0,D[r]))+R|0,k=R,R=x,x=b(S,10),S=E,E=A;A=B[1]+d+x|0,B[1]=B[2]+y+R|0,B[2]=B[3]+m+k|0,B[3]=B[4]+o+E|0,B[4]=B[0]+a+S|0,B[0]=A},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),e.sigBytes=4*(t.length+1),this._process();for(var i=this._hash,o=i.words,a=0;a<5;a++){var s=o[a];o[a]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return i},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});function p(e,t,r){return e^t^r}function _(e,t,r){return e&t|~e&r}function g(e,t,r){return(e|~t)^r}function v(e,t,r){return e&r|t&~r}function w(e,t,r){return e^(t|~r)}function b(e,t){return e<>>32-t}t.RIPEMD160=o._createHelper(d),t.HmacRIPEMD160=o._createHmacHelper(d)}(),r.RIPEMD160)}),Q(function(e,t){var r,n,i,o,a,s;e.exports=(n=(r=ee).lib,i=n.Base,o=r.enc,a=o.Utf8,s=r.algo,void(s.HMAC=i.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=a.parse(t));var r=e.blockSize,n=4*r;t.sigBytes>n&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),o=this._iKey=t.clone(),s=i.words,h=o.words,l=0;l>>2];e.sigBytes-=t}},o.BlockCipher=d.extend({cfg:d.cfg.extend({mode:g,padding:w}),reset:function(){d.reset.call(this);var e=this.cfg,t=e.iv,r=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=r.createEncryptor;else{var n=r.createDecryptor;this._minBufferSize=1}this._mode&&this._mode.__creator==n?this._mode.init(this,t&&t.words):(this._mode=n.call(r,this,t&&t.words),this._mode.__creator=n)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else{var t=this._process(!0);e.unpad(t)}return t},blockSize:4}),b=o.CipherParams=a.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),y=i.format={},m=y.OpenSSL={stringify:function(e){var t=e.ciphertext,r=e.salt;if(r)var n=s.create([1398893684,1701076831]).concat(r).concat(t);else var n=t;return n.toString(f)},parse:function(e){var t=f.parse(e),r=t.words;if(1398893684==r[0]&&1701076831==r[1]){var n=s.create(r.slice(2,4));r.splice(0,4),t.sigBytes-=16}return b.create({ciphertext:t,salt:n})}},k=o.SerializableCipher=a.extend({cfg:a.extend({format:m}),encrypt:function(e,t,r,n){n=this.cfg.extend(n);var i=e.createEncryptor(r,n),o=i.finalize(t),a=i.cfg;return b.create({ciphertext:o,key:r,iv:a.iv,algorithm:e,mode:a.mode,padding:a.padding,blockSize:e.blockSize,formatter:n.format})},decrypt:function(e,t,r,n){n=this.cfg.extend(n),t=this._parse(t,n.format);var i=e.createDecryptor(r,n).finalize(t.ciphertext);return i},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),E=i.kdf={},S=E.OpenSSL={execute:function(e,t,r,n){n||(n=s.random(8));var i=u.create({keySize:t+r}).compute(e,n),o=s.create(i.words.slice(t),4*r);return i.sigBytes=4*t,b.create({key:i,iv:o,salt:n})}},x=o.PasswordBasedCipher=k.extend({cfg:k.cfg.extend({kdf:S}),encrypt:function(e,t,r,n){var i=(n=this.cfg.extend(n)).kdf.execute(r,e.keySize,e.ivSize);n.iv=i.iv;var o=k.encrypt.call(this,e,t,i.key,n);return o.mixIn(i),o},decrypt:function(e,t,r,n){n=this.cfg.extend(n),t=this._parse(t,n.format);var i=n.kdf.execute(r,e.keySize,e.ivSize,t.salt);n.iv=i.iv;var o=k.decrypt.call(this,e,t,i.key,n);return o}})))}),Q(function(e,t){var r;e.exports=((r=ee).mode.CFB=function(){var e=r.lib.BlockCipherMode.extend();function t(e,t,r,n){var i=this._iv;if(i){var o=i.slice(0);this._iv=void 0}else o=this._prevBlock;n.encryptBlock(o,0);for(var a=0;a>24&255)){var t=e>>16&255,r=e>>8&255,n=255&e;255===t?(t=0,255===r?(r=0,255===n?n=0:++n):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=n}else e+=1<<24;return e}var n=e.Encryptor=e.extend({processBlock:function(e,r){var n=this._cipher,i=n.blockSize,o=this._iv,a=this._counter;o&&(a=this._counter=o.slice(0),this._iv=void 0),function(e){0===(e[0]=t(e[0]))&&(e[1]=t(e[1]))}(a);var s=a.slice(0);n.encryptBlock(s,0);for(var h=0;h>>2]|=i<<24-o%4*8,e.sigBytes+=i},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},r.pad.Ansix923)}),Q(function(e,t){var r;e.exports=((r=ee).pad.Iso10126={pad:function(e,t){var n=4*t,i=n-e.sigBytes%n;e.concat(r.lib.WordArray.random(i-1)).concat(r.lib.WordArray.create([i<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},r.pad.Iso10126)}),Q(function(e,t){var r;e.exports=((r=ee).pad.Iso97971={pad:function(e,t){e.concat(r.lib.WordArray.create([2147483648],1)),r.pad.ZeroPadding.pad(e,t)},unpad:function(e){r.pad.ZeroPadding.unpad(e),e.sigBytes--}},r.pad.Iso97971)}),Q(function(e,t){var r;e.exports=((r=ee).pad.ZeroPadding={pad:function(e,t){var r=4*t;e.clamp(),e.sigBytes+=r-(e.sigBytes%r||r)},unpad:function(e){for(var t=e.words,r=e.sigBytes-1;!(t[r>>>2]>>>24-r%4*8&255);)r--;e.sigBytes=r+1}},r.pad.ZeroPadding)}),Q(function(e,t){var r;e.exports=((r=ee).pad.NoPadding={pad:function(){},unpad:function(){}},r.pad.NoPadding)}),Q(function(e,t){var r,n,i,o;e.exports=(i=(n=r=ee).lib.CipherParams,o=n.enc.Hex,n.format.Hex={stringify:function(e){return e.ciphertext.toString(o)},parse:function(e){var t=o.parse(e);return i.create({ciphertext:t})}},r.format.Hex)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib.BlockCipher,n=e.algo,i=[],o=[],a=[],s=[],h=[],l=[],f=[],c=[],u=[],d=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var r=0,n=0;for(t=0;t<256;t++){var p=n^n<<1^n<<2^n<<3^n<<4;p=p>>>8^255&p^99,i[r]=p,o[p]=r;var _=e[r],g=e[_],v=e[g],w=257*e[p]^16843008*p;a[r]=w<<24|w>>>8,s[r]=w<<16|w>>>16,h[r]=w<<8|w>>>24,l[r]=w,w=16843009*v^65537*g^257*_^16843008*r,f[p]=w<<24|w>>>8,c[p]=w<<16|w>>>16,u[p]=w<<8|w>>>24,d[p]=w,r?(r=_^e[e[e[v^_]]],n^=e[e[n]]):r=n=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],_=n.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,r=e.sigBytes/4,n=4*((this._nRounds=r+6)+1),o=this._keySchedule=[],a=0;a6&&a%r==4&&(s=i[s>>>24]<<24|i[s>>>16&255]<<16|i[s>>>8&255]<<8|i[255&s]):(s=i[(s=s<<8|s>>>24)>>>24]<<24|i[s>>>16&255]<<16|i[s>>>8&255]<<8|i[255&s],s^=p[a/r|0]<<24),o[a]=o[a-r]^s}for(var h=this._invKeySchedule=[],l=0;l>>24]]^c[i[s>>>16&255]]^u[i[s>>>8&255]]^d[i[255&s]]}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,a,s,h,l,i)},decryptBlock:function(e,t){var r=e[t+1];e[t+1]=e[t+3],e[t+3]=r,this._doCryptBlock(e,t,this._invKeySchedule,f,c,u,d,o),r=e[t+1],e[t+1]=e[t+3],e[t+3]=r},_doCryptBlock:function(e,t,r,n,i,o,a,s){for(var h=this._nRounds,l=e[t]^r[0],f=e[t+1]^r[1],c=e[t+2]^r[2],u=e[t+3]^r[3],d=4,p=1;p>>24]^i[f>>>16&255]^o[c>>>8&255]^a[255&u]^r[d++],g=n[f>>>24]^i[c>>>16&255]^o[u>>>8&255]^a[255&l]^r[d++],v=n[c>>>24]^i[u>>>16&255]^o[l>>>8&255]^a[255&f]^r[d++],w=n[u>>>24]^i[l>>>16&255]^o[f>>>8&255]^a[255&c]^r[d++];l=_,f=g,c=v,u=w}_=(s[l>>>24]<<24|s[f>>>16&255]<<16|s[c>>>8&255]<<8|s[255&u])^r[d++],g=(s[f>>>24]<<24|s[c>>>16&255]<<16|s[u>>>8&255]<<8|s[255&l])^r[d++],v=(s[c>>>24]<<24|s[u>>>16&255]<<16|s[l>>>8&255]<<8|s[255&f])^r[d++],w=(s[u>>>24]<<24|s[l>>>16&255]<<16|s[f>>>8&255]<<8|s[255&c])^r[d++],e[t]=_,e[t+1]=g,e[t+2]=v,e[t+3]=w},keySize:8});e.AES=t._createHelper(_)}(),r.AES)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib,n=t.WordArray,i=t.BlockCipher,o=e.algo,a=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],h=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],l=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],f=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],c=o.DES=i.extend({_doReset:function(){for(var e=this._key.words,t=[],r=0;r<56;r++){var n=a[r]-1;t[r]=e[n>>>5]>>>31-n%32&1}for(var i=this._subKeys=[],o=0;o<16;o++){var l=i[o]=[],f=h[o];for(r=0;r<24;r++)l[r/6|0]|=t[(s[r]-1+f)%28]<<31-r%6,l[4+(r/6|0)]|=t[28+(s[r+24]-1+f)%28]<<31-r%6;for(l[0]=l[0]<<1|l[0]>>>31,r=1;r<7;r++)l[r]=l[r]>>>4*(r-1)+3;l[7]=l[7]<<5|l[7]>>>27}var c=this._invSubKeys=[];for(r=0;r<16;r++)c[r]=i[15-r]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._subKeys)},decryptBlock:function(e,t){this._doCryptBlock(e,t,this._invSubKeys)},_doCryptBlock:function(e,t,r){this._lBlock=e[t],this._rBlock=e[t+1],u.call(this,4,252645135),u.call(this,16,65535),d.call(this,2,858993459),d.call(this,8,16711935),u.call(this,1,1431655765);for(var n=0;n<16;n++){for(var i=r[n],o=this._lBlock,a=this._rBlock,s=0,h=0;h<8;h++)s|=l[h][((a^i[h])&f[h])>>>0];this._lBlock=a,this._rBlock=o^s}var c=this._lBlock;this._lBlock=this._rBlock,this._rBlock=c,u.call(this,1,1431655765),d.call(this,8,16711935),d.call(this,2,858993459),u.call(this,16,65535),u.call(this,4,252645135),e[t]=this._lBlock,e[t+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function u(e,t){var r=(this._lBlock>>>e^this._rBlock)&t;this._rBlock^=r,this._lBlock^=r<>>e^this._lBlock)&t;this._lBlock^=r,this._rBlock^=r<>>2]>>>24-a%4*8&255;o=(o+n[i]+s)%256;var h=n[i];n[i]=n[o],n[o]=h}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=o.call(this)},keySize:8,ivSize:0});function o(){for(var e=this._S,t=this._i,r=this._j,n=0,i=0;i<4;i++){r=(r+e[t=(t+1)%256])%256;var o=e[t];e[t]=e[r],e[r]=o,n|=e[(e[t]+e[r])%256]<<24-8*i}return this._i=t,this._j=r,n}e.RC4=t._createHelper(i);var a=n.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)o.call(this)}});e.RC4Drop=t._createHelper(a)}(),r.RC4)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib.StreamCipher,n=e.algo,i=[],o=[],a=[],s=n.Rabbit=t.extend({_doReset:function(){for(var e=this._key.words,t=this.cfg.iv,r=0;r<4;r++)e[r]=16711935&(e[r]<<8|e[r]>>>24)|4278255360&(e[r]<<24|e[r]>>>8);var n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],i=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,r=0;r<4;r++)h.call(this);for(r=0;r<8;r++)i[r]^=n[r+4&7];if(t){var o=t.words,a=o[0],s=o[1],l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),f=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),c=l>>>16|4294901760&f,u=f<<16|65535&l;for(i[0]^=l,i[1]^=c,i[2]^=f,i[3]^=u,i[4]^=l,i[5]^=c,i[6]^=f,i[7]^=u,r=0;r<4;r++)h.call(this)}},_doProcessBlock:function(e,t){var r=this._X;h.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),e[t+n]^=i[n]},blockSize:4,ivSize:2});function h(){for(var e=this._X,t=this._C,r=0;r<8;r++)o[r]=t[r];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0>>0?1:0)|0,this._b=t[7]>>>0>>0?1:0,r=0;r<8;r++){var n=e[r]+t[r],i=65535&n,s=n>>>16,h=((i*i>>>17)+i*s>>>15)+s*s,l=((4294901760&n)*n|0)+((65535&n)*n|0);a[r]=h^l}e[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,e[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,e[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,e[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,e[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,e[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,e[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,e[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.Rabbit=t._createHelper(s)}(),r.Rabbit)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib.StreamCipher,n=e.algo,i=[],o=[],a=[],s=n.RabbitLegacy=t.extend({_doReset:function(){var e=this._key.words,t=this.cfg.iv,r=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],n=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var i=0;i<4;i++)h.call(this);for(i=0;i<8;i++)n[i]^=r[i+4&7];if(t){var o=t.words,a=o[0],s=o[1],l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),f=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),c=l>>>16|4294901760&f,u=f<<16|65535&l;for(n[0]^=l,n[1]^=c,n[2]^=f,n[3]^=u,n[4]^=l,n[5]^=c,n[6]^=f,n[7]^=u,i=0;i<4;i++)h.call(this)}},_doProcessBlock:function(e,t){var r=this._X;h.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),e[t+n]^=i[n]},blockSize:4,ivSize:2});function h(){for(var e=this._X,t=this._C,r=0;r<8;r++)o[r]=t[r];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0>>0?1:0)|0,this._b=t[7]>>>0>>0?1:0,r=0;r<8;r++){var n=e[r]+t[r],i=65535&n,s=n>>>16,h=((i*i>>>17)+i*s>>>15)+s*s,l=((4294901760&n)*n|0)+((65535&n)*n|0);a[r]=h^l}e[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,e[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,e[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,e[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,e[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,e[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,e[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,e[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.RabbitLegacy=t._createHelper(s)}(),r.RabbitLegacy)}),Q(function(e,t){e.exports=ee}));function re(){throw new Error("setTimeout has not been defined")}function ne(){throw new Error("clearTimeout has not been defined")}var ie=re,oe=ne;function ae(e){if(ie===setTimeout)return setTimeout(e,0);if((ie===re||!ie)&&setTimeout)return ie=setTimeout,setTimeout(e,0);try{return ie(e,0)}catch(t){try{return ie.call(null,e,0)}catch(t){return ie.call(this,e,0)}}}"function"==typeof e.setTimeout&&(ie=setTimeout),"function"==typeof e.clearTimeout&&(oe=clearTimeout);var se,he=[],le=!1,fe=-1;function ce(){le&&se&&(le=!1,se.length?he=se.concat(he):fe=-1,he.length&&ue())}function ue(){if(!le){var e=ae(ce);le=!0;for(var t=he.length;t;){for(se=he,he=[];++fe1)for(var r=1;r0&&a.length>i){a.warned=!0;var h=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");h.name="MaxListenersExceededWarning",h.emitter=e,h.type=t,h.count=a.length,s=h,"function"==typeof console.warn?console.warn(s):console.log(s)}}else a=o[t]=r,++e._eventsCount;return e}function xe(e,t,r){var n=!1;function i(){e.removeListener(t,i),n||(n=!0,r.apply(e,arguments))}return i.listener=r,i}function Re(e){var t=this._events;if(t){var r=t[e];if("function"==typeof r)return 1;if(r)return r.length}return 0}function Ae(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}ge.prototype=Object.create(null),ve.EventEmitter=ve,ve.usingDomains=!1,ve.prototype.domain=void 0,ve.prototype._events=void 0,ve.prototype._maxListeners=void 0,ve.defaultMaxListeners=10,ve.init=function(){this.domain=null,ve.usingDomains&&(void 0).active&&(void 0).Domain,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new ge,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},ve.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},ve.prototype.getMaxListeners=function(){return we(this)},ve.prototype.emit=function(e){var t,r,n,i,o,a,s,h="error"===e;if(a=this._events)h=h&&null==a.error;else if(!h)return!1;if(s=this.domain,h){if(t=arguments[1],!s){if(t instanceof Error)throw t;var l=new Error('Uncaught, unspecified "error" event. ('+t+")");throw l.context=t,l}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=s,t.domainThrown=!1,s.emit("error",t),!1}if(!(r=a[e]))return!1;var f="function"==typeof r;switch(n=arguments.length){case 1:be(r,f,this);break;case 2:ye(r,f,this,arguments[1]);break;case 3:me(r,f,this,arguments[1],arguments[2]);break;case 4:ke(r,f,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(n-1),o=1;o0;)if(r[o]===t||r[o].listener&&r[o].listener===t){a=r[o].listener,i=o;break}if(i<0)return this;if(1===r.length){if(r[0]=void 0,0==--this._eventsCount)return this._events=new ge,this;delete n[e]}else!function(e,t){for(var r=t,n=r+1,i=e.length;n0?Reflect.ownKeys(this._events):[]};var Be="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e},ze=/%[sdj%]/g;function Le(e){if(!Ze(e)){for(var t=[],r=0;r=i)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}}),a=n[r];r=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),Fe(t)?r.showHidden=t:t&&function(e,t){if(!t||!Ye(t))return e;var r=Object.keys(t),n=r.length;for(;n--;)e[r[n]]=t[r[n]]}(r,t),je(r.showHidden)&&(r.showHidden=!1),je(r.depth)&&(r.depth=2),je(r.colors)&&(r.colors=!1),je(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=Ie),Oe(r,e,r.depth)}function Ie(e,t){var r=De.styles[t];return r?"["+De.colors[r][0]+"m"+e+"["+De.colors[r][1]+"m":e}function Pe(e,t){return e}function Oe(e,t,r){if(e.customInspect&&t&&qe(t.inspect)&&t.inspect!==De&&(!t.constructor||t.constructor.prototype!==t)){var n=t.inspect(r,e);return Ze(n)||(n=Oe(e,n,r)),n}var i=function(e,t){if(je(t))return e.stylize("undefined","undefined");if(Ze(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(n=t,"number"==typeof n)return e.stylize(""+t,"number");var n;if(Fe(t))return e.stylize(""+t,"boolean");if(Ne(t))return e.stylize("null","null")}(e,t);if(i)return i;var o=Object.keys(t),a=function(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),Xe(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return Ue(t);if(0===o.length){if(qe(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if(We(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(Ke(t))return e.stylize(Date.prototype.toString.call(t),"date");if(Xe(t))return Ue(t)}var h,l,f="",c=!1,u=["{","}"];(h=t,Array.isArray(h)&&(c=!0,u=["[","]"]),qe(t))&&(f=" [Function"+(t.name?": "+t.name:"")+"]");return We(t)&&(f=" "+RegExp.prototype.toString.call(t)),Ke(t)&&(f=" "+Date.prototype.toUTCString.call(t)),Xe(t)&&(f=" "+Ue(t)),0!==o.length||c&&0!=t.length?r<0?We(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),l=c?function(e,t,r,n,i){for(var o=[],a=0,s=t.length;a60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(l,f,u)):u[0]+f+u[1]}function Ue(e){return"["+Error.prototype.toString.call(e)+"]"}function He(e,t,r,n,i,o){var a,s,h;if((h=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?s=h.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):h.set&&(s=e.stylize("[Setter]","special")),Ge(n,i)||(a="["+i+"]"),s||(e.seen.indexOf(h.value)<0?(s=Ne(r)?Oe(e,h.value,null):Oe(e,h.value,r-1)).indexOf("\n")>-1&&(s=o?s.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+s.split("\n").map(function(e){return" "+e}).join("\n")):s=e.stylize("[Circular]","special")),je(a)){if(o&&i.match(/^\d+$/))return s;(a=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function Fe(e){return"boolean"==typeof e}function Ne(e){return null===e}function Ze(e){return"string"==typeof e}function je(e){return void 0===e}function We(e){return Ye(e)&&"[object RegExp]"===Ve(e)}function Ye(e){return"object"==typeof e&&null!==e}function Ke(e){return Ye(e)&&"[object Date]"===Ve(e)}function Xe(e){return Ye(e)&&("[object Error]"===Ve(e)||e instanceof Error)}function qe(e){return"function"==typeof e}function Ve(e){return Object.prototype.toString.call(e)}function Ge(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function $e(){this.head=null,this.tail=null,this.length=0}De.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},De.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},$e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},$e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},$e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},$e.prototype.clear=function(){this.head=this.tail=null,this.length=0},$e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},$e.prototype.concat=function(e){if(0===this.length)return p.alloc(0);if(1===this.length)return this.head.data;for(var t=p.allocUnsafe(e>>>0),r=this.head,n=0;r;)r.data.copy(t,n),n+=r.data.length,r=r.next;return t};var Je=p.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function Qe(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),function(e){if(e&&!Je(e))throw new Error("Unknown encoding: "+e)}(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=tt;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=rt;break;default:return void(this.write=et)}this.charBuffer=new p(6),this.charReceived=0,this.charLength=0}function et(e){return e.toString(this.encoding)}function tt(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function rt(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}Qe.prototype.write=function(e){for(var t="";this.charLength;){var r=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,r),this.charReceived+=r,this.charReceived=55296&&i<=56319)){if(this.charReceived=this.charLength=0,0===e.length)return t;break}this.charLength+=this.surrogateSize,t=""}this.detectIncompleteChar(e);var n=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,n),n-=this.charReceived);var i;n=(t+=e.toString(this.encoding,0,n)).length-1;if((i=t.charCodeAt(n))>=55296&&i<=56319){var o=this.surrogateSize;return this.charLength+=o,this.charReceived+=o,this.charBuffer.copy(this.charBuffer,o,0,o),e.copy(this.charBuffer,0,0,o),t.substring(0,n)}return t},Qe.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var r=e[e.length-t];if(1==t&&r>>5==6){this.charLength=2;break}if(t<=2&&r>>4==14){this.charLength=3;break}if(t<=3&&r>>3==30){this.charLength=4;break}}this.charReceived=t},Qe.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var r=this.charReceived,n=this.charBuffer,i=this.encoding;t+=n.slice(0,r).toString(i)}return t},ot.ReadableState=it;var nt=function(e){je(Me)&&(Me=""),e=e.toUpperCase(),Ce[e]||(new RegExp("\\b"+e+"\\b","i").test(Me)?Ce[e]=function(){var t=Le.apply(null,arguments);console.error("%s %d: %s",e,0,t)}:Ce[e]=function(){});return Ce[e]}("stream");function it(e,t){e=e||{},this.objectMode=!!e.objectMode,t instanceof Ct&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var r=e.highWaterMark,n=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:n,this.highWaterMark=~~this.highWaterMark,this.buffer=new $e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(this.decoder=new Qe(e.encoding),this.encoding=e.encoding)}function ot(e){if(!(this instanceof ot))return new ot(e);this._readableState=new it(e,this),this.readable=!0,e&&"function"==typeof e.read&&(this._read=e.read),ve.call(this)}function at(e,t,r,n,i){var o=function(e,t){var r=null;$(t)||"string"==typeof t||null==t||e.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));return r}(t,r);if(o)e.emit("error",o);else if(null===r)t.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,lt(e)}(e,t);else if(t.objectMode||r&&r.length>0)if(t.ended&&!i){var a=new Error("stream.push() after EOF");e.emit("error",a)}else if(t.endEmitted&&i){var s=new Error("stream.unshift() after end event");e.emit("error",s)}else{var h;!t.decoder||i||n||(r=t.decoder.write(r),h=!t.objectMode&&0===r.length),i||(t.reading=!1),h||(t.flowing&&0===t.length&&!t.sync?(e.emit("data",r),e.read(0)):(t.length+=t.objectMode?1:r.length,i?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&<(e))),function(e,t){t.readingMore||(t.readingMore=!0,de(ct,e,t))}(e,t)}else i||(t.reading=!1);return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=st?e=st:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function lt(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(nt("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?de(ft,e):ft(e))}function ft(e){nt("emit readable"),e.emit("readable"),pt(e)}function ct(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=function(e,t,r){var n;eo.length?o.length:e;if(a===o.length?i+=o:i+=o.slice(0,e),0===(e-=a)){a===o.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=o.slice(a));break}++n}return t.length-=n,i}(e,t):function(e,t){var r=p.allocUnsafe(e),n=t.head,i=1;n.data.copy(r),e-=n.data.length;for(;n=n.next;){var o=n.data,a=e>o.length?o.length:e;if(o.copy(r,r.length-e,0,a),0===(e-=a)){a===o.length?(++i,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=o.slice(a));break}++i}return t.length-=i,r}(e,t);return n}(e,t.buffer,t.decoder),r);var r}function gt(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,de(vt,t,e))}function vt(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function wt(e,t){for(var r=0,n=e.length;r=t.highWaterMark||t.ended))return nt("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?gt(this):lt(this),null;if(0===(e=ht(e,t))&&t.ended)return 0===t.length&>(this),null;var n,i=t.needReadable;return nt("need readable",i),(0===t.length||t.length-e0?_t(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&>(this)),null!==n&&this.emit("data",n),n},ot.prototype._read=function(e){this.emit("error",new Error("not implemented"))},ot.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e)}n.pipesCount+=1,nt("pipe count=%d opts=%j",n.pipesCount,t);var i=!t||!1!==t.end?a:l;function o(e){nt("onunpipe"),e===r&&l()}function a(){nt("onend"),e.end()}n.endEmitted?de(i):r.once("end",i),e.on("unpipe",o);var s=function(e){return function(){var t=e._readableState;nt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&e.listeners("data").length&&(t.flowing=!0,pt(e))}}(r);e.on("drain",s);var h=!1;function l(){nt("cleanup"),e.removeListener("close",d),e.removeListener("finish",p),e.removeListener("drain",s),e.removeListener("error",u),e.removeListener("unpipe",o),r.removeListener("end",a),r.removeListener("end",l),r.removeListener("data",c),h=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||s()}var f=!1;function c(t){nt("ondata"),f=!1,!1!==e.write(t)||f||((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==wt(n.pipes,e))&&!h&&(nt("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,f=!0),r.pause())}function u(t){var r;nt("onerror",t),_(),e.removeListener("error",u),0===(r="error",e.listeners(r).length)&&e.emit("error",t)}function d(){e.removeListener("finish",p),_()}function p(){nt("onfinish"),e.removeListener("close",d),_()}function _(){nt("unpipe"),r.unpipe(e)}return r.on("data",c),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",u),e.once("close",d),e.once("finish",p),e.emit("pipe",r),n.flowing||(nt("pipe resume"),r.resume()),e},ot.prototype.unpipe=function(e){var t=this._readableState;if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this),this);if(!e){var r=t.pipes,n=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},kt.prototype._write=function(e,t,r){r(new Error("not implemented"))},kt.prototype._writev=null,kt.prototype.end=function(e,t,r){var n=this._writableState;"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(e,t,r){t.ending=!0,Bt(e,t),r&&(t.finished?de(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r)},Be(Ct,ot);for(var Lt=Object.keys(kt.prototype),Tt=0;Tt=0;)e[t]=0}var Jt=0,Qt=1,er=2,tr=29,rr=256,nr=rr+1+tr,ir=30,or=19,ar=2*nr+1,sr=15,hr=16,lr=7,fr=256,cr=16,ur=17,dr=18,pr=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],_r=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],gr=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],vr=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],wr=new Array(2*(nr+2));$t(wr);var br=new Array(2*ir);$t(br);var yr=new Array(512);$t(yr);var mr=new Array(256);$t(mr);var kr=new Array(tr);$t(kr);var Er,Sr,xr,Rr=new Array(ir);function Ar(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}function Br(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function zr(e){return e<256?yr[e]:yr[256+(e>>>7)]}function Lr(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function Tr(e,t,r){e.bi_valid>hr-r?(e.bi_buf|=t<>hr-e.bi_valid,e.bi_valid+=r-hr):(e.bi_buf|=t<>>=1,r<<=1}while(--t>0);return r>>>1}function Dr(e,t,r){var n,i,o=new Array(sr+1),a=0;for(n=1;n<=sr;n++)o[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var s=e[2*i+1];0!==s&&(e[2*i]=Cr(o[s]++,s))}}function Ir(e){var t;for(t=0;t8?Lr(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function Or(e,t,r,n){var i=2*t,o=2*r;return e[i]>1;r>=1;r--)Ur(e,o,r);i=h;do{r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Ur(e,o,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,o[2*i]=o[2*r]+o[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,o[2*r+1]=o[2*n+1]=i,e.heap[1]=i++,Ur(e,o,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,o,a,s,h=t.dyn_tree,l=t.max_code,f=t.stat_desc.static_tree,c=t.stat_desc.has_stree,u=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,_=0;for(o=0;o<=sr;o++)e.bl_count[o]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;rp&&(o=p,_++),h[2*n+1]=o,n>l||(e.bl_count[o]++,a=0,n>=d&&(a=u[n-d]),s=h[2*n],e.opt_len+=s*(o+a),c&&(e.static_len+=s*(f[2*n+1]+a)));if(0!==_){do{for(o=p-1;0===e.bl_count[o];)o--;e.bl_count[o]--,e.bl_count[o+1]+=2,e.bl_count[p]--,_-=2}while(_>0);for(o=p;0!==o;o--)for(n=e.bl_count[o];0!==n;)(i=e.heap[--r])>l||(h[2*i+1]!==o&&(e.opt_len+=(o-h[2*i+1])*h[2*i],h[2*i+1]=o),n--)}}(e,t),Dr(o,l,e.bl_count)}function Nr(e,t,r){var n,i,o=-1,a=t[1],s=0,h=7,l=4;for(0===a&&(h=138,l=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=t[2*(n+1)+1],++s>=7;n=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}function Xr(e,t,r,n){var i,o,a=0;e.level>0?(e.strm.data_type===Gt&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return qt;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return Vt;for(t=32;t=3&&0===e.bl_tree[2*vr[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(o=e.static_len+3+7>>>3)<=i&&(i=o)):i=o=r+5,r+4<=i&&-1!==t?Yr(e,t,r,n):e.strategy===Xt||o===i?(Tr(e,(Qt<<1)+(n?1:0),3),Hr(e,wr,br)):(Tr(e,(er<<1)+(n?1:0),3),function(e,t,r,n){var i;for(Tr(e,t-257,5),Tr(e,r-1,5),Tr(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(mr[r]+rr+1)]++,e.dyn_dtree[2*zr(t)]++),e.last_lit===e.lit_bufsize-1}function Vr(e,t,r,n){for(var i=65535&e|0,o=e>>>16&65535|0,a=0;0!==r;){r-=a=r>2e3?2e3:r;do{o=o+(i=i+t[n++]|0)|0}while(--a);i%=65521,o%=65521}return i|o<<16|0}var Gr=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();function $r(e,t,r,n){var i=Gr,o=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}var Jr,Qr=0,en=1,tn=3,rn=4,nn=5,on=0,an=1,sn=-2,hn=-3,ln=-5,fn=-1,cn=1,un=2,dn=3,pn=4,_n=2,gn=8,vn=9,wn=286,bn=30,yn=19,mn=2*wn+1,kn=15,En=3,Sn=258,xn=Sn+En+1,Rn=32,An=42,Bn=69,zn=73,Ln=91,Tn=103,Mn=113,Cn=666,Dn=1,In=2,Pn=3,On=4,Un=3;function Hn(e,t){return e.msg=Nt[t],t}function Fn(e){return(e<<1)-(e>4?9:0)}function Nn(e){for(var t=e.length;--t>=0;)e[t]=0}function Zn(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(jt(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function jn(e,t){Xr(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Zn(e.strm)}function Wn(e,t){e.pending_buf[e.pending++]=t}function Yn(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function Kn(e,t){var r,n,i=e.max_chain_length,o=e.strstart,a=e.prev_length,s=e.nice_match,h=e.strstart>e.w_size-xn?e.strstart-(e.w_size-xn):0,l=e.window,f=e.w_mask,c=e.prev,u=e.strstart+Sn,d=l[o+a-1],p=l[o+a];e.prev_length>=e.good_match&&(i>>=2),s>e.lookahead&&(s=e.lookahead);do{if(l[(r=t)+a]===p&&l[r+a-1]===d&&l[r]===l[o]&&l[++r]===l[o+1]){o+=2,r++;do{}while(l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&oa){if(e.match_start=t,a=n,n>=s)break;d=l[o+a-1],p=l[o+a]}}}while((t=c[t&f])>h&&0!=--i);return a<=e.lookahead?a:e.lookahead}function Xn(e){var t,r,n,i,o,a,s,h,l,f,c=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=c+(c-xn)){jt(e.window,e.window,c,c,0),e.match_start-=c,e.strstart-=c,e.block_start-=c,t=r=e.hash_size;do{n=e.head[--t],e.head[t]=n>=c?n-c:0}while(--r);t=r=c;do{n=e.prev[--t],e.prev[t]=n>=c?n-c:0}while(--r);i+=c}if(0===e.strm.avail_in)break;if(a=e.strm,s=e.window,h=e.strstart+e.lookahead,l=i,f=void 0,(f=a.avail_in)>l&&(f=l),r=0===f?0:(a.avail_in-=f,jt(s,a.input,a.next_in,f,h),1===a.state.wrap?a.adler=Vr(a.adler,s,f,h):2===a.state.wrap&&(a.adler=$r(a.adler,s,f,h)),a.next_in+=f,a.total_in+=f,f),e.lookahead+=r,e.lookahead+e.insert>=En)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=(e.ins_h<=En&&(e.ins_h=(e.ins_h<=En)if(n=qr(e,e.strstart-e.match_start,e.match_length-En),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=En){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<=En&&(e.ins_h=(e.ins_h<4096)&&(e.match_length=En-1)),e.prev_length>=En&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-En,n=qr(e,e.strstart-1-e.prev_match,e.prev_length-En),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=i&&(e.ins_h=(e.ins_h<nn||t<0)return e?Hn(e,sn):sn;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||n.status===Cn&&t!==rn)return Hn(e,0===e.avail_out?ln:sn);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===An)if(2===n.wrap)e.adler=0,Wn(n,31),Wn(n,139),Wn(n,8),n.gzhead?(Wn(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Wn(n,255&n.gzhead.time),Wn(n,n.gzhead.time>>8&255),Wn(n,n.gzhead.time>>16&255),Wn(n,n.gzhead.time>>24&255),Wn(n,9===n.level?2:n.strategy>=un||n.level<2?4:0),Wn(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(Wn(n,255&n.gzhead.extra.length),Wn(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=$r(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Bn):(Wn(n,0),Wn(n,0),Wn(n,0),Wn(n,0),Wn(n,0),Wn(n,9===n.level?2:n.strategy>=un||n.level<2?4:0),Wn(n,Un),n.status=Mn);else{var a=gn+(n.w_bits-8<<4)<<8;a|=(n.strategy>=un||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=Rn),a+=31-a%31,n.status=Mn,Yn(n,a),0!==n.strstart&&(Yn(n,e.adler>>>16),Yn(n,65535&e.adler)),e.adler=1}if(n.status===Bn)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=$r(e.adler,n.pending_buf,n.pending-i,i)),Zn(e),i=n.pending,n.pending!==n.pending_buf_size));)Wn(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=$r(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=zn)}else n.status=zn;if(n.status===zn)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=$r(e.adler,n.pending_buf,n.pending-i,i)),Zn(e),i=n.pending,n.pending===n.pending_buf_size)){o=1;break}o=n.gzindexi&&(e.adler=$r(e.adler,n.pending_buf,n.pending-i,i)),0===o&&(n.gzindex=0,n.status=Ln)}else n.status=Ln;if(n.status===Ln)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=$r(e.adler,n.pending_buf,n.pending-i,i)),Zn(e),i=n.pending,n.pending===n.pending_buf_size)){o=1;break}o=n.gzindexi&&(e.adler=$r(e.adler,n.pending_buf,n.pending-i,i)),0===o&&(n.status=Tn)}else n.status=Tn;if(n.status===Tn&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&Zn(e),n.pending+2<=n.pending_buf_size&&(Wn(n,255&e.adler),Wn(n,e.adler>>8&255),e.adler=0,n.status=Mn)):n.status=Mn),0!==n.pending){if(Zn(e),0===e.avail_out)return n.last_flush=-1,on}else if(0===e.avail_in&&Fn(t)<=Fn(r)&&t!==rn)return Hn(e,ln);if(n.status===Cn&&0!==e.avail_in)return Hn(e,ln);if(0!==e.avail_in||0!==n.lookahead||t!==Qr&&n.status!==Cn){var s=n.strategy===un?function(e,t){for(var r;;){if(0===e.lookahead&&(Xn(e),0===e.lookahead)){if(t===Qr)return Dn;break}if(e.match_length=0,r=qr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(jn(e,!1),0===e.strm.avail_out))return Dn}return e.insert=0,t===rn?(jn(e,!0),0===e.strm.avail_out?Pn:On):e.last_lit&&(jn(e,!1),0===e.strm.avail_out)?Dn:In}(n,t):n.strategy===dn?function(e,t){for(var r,n,i,o,a=e.window;;){if(e.lookahead<=Sn){if(Xn(e),e.lookahead<=Sn&&t===Qr)return Dn;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=En&&e.strstart>0&&(n=a[i=e.strstart-1])===a[++i]&&n===a[++i]&&n===a[++i]){o=e.strstart+Sn;do{}while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&ie.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=En?(r=qr(e,1,e.match_length-En),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=qr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(jn(e,!1),0===e.strm.avail_out))return Dn}return e.insert=0,t===rn?(jn(e,!0),0===e.strm.avail_out?Pn:On):e.last_lit&&(jn(e,!1),0===e.strm.avail_out)?Dn:In}(n,t):Jr[n.level].func(n,t);if(s!==Pn&&s!==On||(n.status=Cn),s===Dn||s===Pn)return 0===e.avail_out&&(n.last_flush=-1),on;if(s===In&&(t===en?Kr(n):t!==nn&&(Yr(n,0,0,!1),t===tn&&(Nn(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),Zn(e),0===e.avail_out))return n.last_flush=-1,on}return t!==rn?on:n.wrap<=0?an:(2===n.wrap?(Wn(n,255&e.adler),Wn(n,e.adler>>8&255),Wn(n,e.adler>>16&255),Wn(n,e.adler>>24&255),Wn(n,255&e.total_in),Wn(n,e.total_in>>8&255),Wn(n,e.total_in>>16&255),Wn(n,e.total_in>>24&255)):(Yn(n,e.adler>>>16),Yn(n,65535&e.adler)),Zn(e),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?on:an)}Jr=[new Gn(0,0,0,0,function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Xn(e),0===e.lookahead&&t===Qr)return Dn;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,jn(e,!1),0===e.strm.avail_out))return Dn;if(e.strstart-e.block_start>=e.w_size-xn&&(jn(e,!1),0===e.strm.avail_out))return Dn}return e.insert=0,t===rn?(jn(e,!0),0===e.strm.avail_out?Pn:On):(e.strstart>e.block_start&&(jn(e,!1),e.strm.avail_out),Dn)}),new Gn(4,4,8,4,qn),new Gn(4,5,16,8,qn),new Gn(4,6,32,32,qn),new Gn(4,4,16,16,Vn),new Gn(8,16,32,32,Vn),new Gn(8,16,128,128,Vn),new Gn(8,32,128,256,Vn),new Gn(32,128,258,1024,Vn),new Gn(32,258,258,4096,Vn)];var ei=30,ti=12;function ri(e,t){var r,n,i,o,a,s,h,l,f,c,u,d,p,_,g,v,w,b,y,m,k,E,S,x,R;r=e.state,n=e.next_in,x=e.input,i=n+(e.avail_in-5),o=e.next_out,R=e.output,a=o-(t-e.avail_out),s=o+(e.avail_out-257),h=r.dmax,l=r.wsize,f=r.whave,c=r.wnext,u=r.window,d=r.hold,p=r.bits,_=r.lencode,g=r.distcode,v=(1<>>=y=b>>>24,p-=y,0===(y=b>>>16&255))R[o++]=65535&b;else{if(!(16&y)){if(0==(64&y)){b=_[(65535&b)+(d&(1<>>=y,p-=y),p<15&&(d+=x[n++]<>>=y=b>>>24,p-=y,!(16&(y=b>>>16&255))){if(0==(64&y)){b=g[(65535&b)+(d&(1<h){e.msg="invalid distance too far back",r.mode=ei;break e}if(d>>>=y,p-=y,k>(y=o-a)){if((y=k-y)>f&&r.sane){e.msg="invalid distance too far back",r.mode=ei;break e}if(E=0,S=u,0===c){if(E+=l-y,y2;)R[o++]=S[E++],R[o++]=S[E++],R[o++]=S[E++],m-=3;m&&(R[o++]=S[E++],m>1&&(R[o++]=S[E++]))}else{E=o-k;do{R[o++]=R[E++],R[o++]=R[E++],R[o++]=R[E++],m-=3}while(m>2);m&&(R[o++]=R[E++],m>1&&(R[o++]=R[E++]))}break}}break}}while(n>3,d&=(1<<(p-=m<<3))-1,e.next_in=n,e.next_out=o,e.avail_in=n=1&&0===L[m];m--);if(k>m&&(k=m),0===m)return i[o++]=20971520,i[o++]=20971520,s.bits=1,0;for(y=1;y0&&(e===ai||1!==m))return-1;for(T[1]=0,w=1;wii||e===hi&&R>oi)return 1;for(;;){p=w-S,a[b]d?(_=M[C+a[b]],g=B[z+a[b]]):(_=96,g=0),h=1<>S)+(l-=h)]=p<<24|_<<16|g|0}while(0!==l);for(h=1<>=1;if(0!==h?(A&=h-1,A+=h):A=0,b++,0==--L[w]){if(w===m)break;w=t[r+a[b]]}if(w>k&&(A&c)!==f){for(0===S&&(S=k),u+=y,x=1<<(E=w-S);E+Sii||e===hi&&R>oi)return 1;i[f=A&c]=k<<24|E<<16|u-o|0}}return 0!==A&&(i[u+A]=w-S<<24|64<<16|0),s.bits=k,0}var pi=0,_i=1,gi=2,vi=4,wi=5,bi=6,yi=0,mi=1,ki=2,Ei=-2,Si=-3,xi=-4,Ri=-5,Ai=8,Bi=1,zi=2,Li=3,Ti=4,Mi=5,Ci=6,Di=7,Ii=8,Pi=9,Oi=10,Ui=11,Hi=12,Fi=13,Ni=14,Zi=15,ji=16,Wi=17,Yi=18,Ki=19,Xi=20,qi=21,Vi=22,Gi=23,$i=24,Ji=25,Qi=26,eo=27,to=28,ro=29,no=30,io=31,oo=32,ao=852,so=592;function ho(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function lo(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Yt(320),this.work=new Yt(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function fo(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,function(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Bi,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Kt(ao),t.distcode=t.distdyn=new Kt(so),t.sane=1,t.back=-1,yi):Ei}(e)):Ei}function co(e,t){var r,n;return e?(n=new lo,e.state=n,n.window=null,(r=function(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Ei:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,fo(e))):Ei}(e,t))!==yi&&(e.state=null),r):Ei}var uo,po,_o=!0;function go(e){if(_o){var t;for(uo=new Kt(512),po=new Kt(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(di(_i,e.lens,0,288,uo,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;di(gi,e.lens,0,32,po,0,e.work,{bits:5}),_o=!1}e.lencode=uo,e.lenbits=9,e.distcode=po,e.distbits=5}function vo(e,t){var r,n,i,o,a,s,h,l,f,c,u,d,p,_,g,v,w,b,y,m,k,E,S,x,R=0,A=new Wt(4),B=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return Ei;(r=e.state).mode===Hi&&(r.mode=Fi),a=e.next_out,i=e.output,h=e.avail_out,o=e.next_in,n=e.input,s=e.avail_in,l=r.hold,f=r.bits,c=s,u=h,E=yi;e:for(;;)switch(r.mode){case Bi:if(0===r.wrap){r.mode=Fi;break}for(;f<16;){if(0===s)break e;s--,l+=n[o++]<>>8&255,r.check=$r(r.check,A,2,0),l=0,f=0,r.mode=zi;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&l)<<8)+(l>>8))%31){e.msg="incorrect header check",r.mode=no;break}if((15&l)!==Ai){e.msg="unknown compression method",r.mode=no;break}if(f-=4,k=8+(15&(l>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg="invalid window size",r.mode=no;break}r.dmax=1<>8&1),512&r.flags&&(A[0]=255&l,A[1]=l>>>8&255,r.check=$r(r.check,A,2,0)),l=0,f=0,r.mode=Li;case Li:for(;f<32;){if(0===s)break e;s--,l+=n[o++]<>>8&255,A[2]=l>>>16&255,A[3]=l>>>24&255,r.check=$r(r.check,A,4,0)),l=0,f=0,r.mode=Ti;case Ti:for(;f<16;){if(0===s)break e;s--,l+=n[o++]<>8),512&r.flags&&(A[0]=255&l,A[1]=l>>>8&255,r.check=$r(r.check,A,2,0)),l=0,f=0,r.mode=Mi;case Mi:if(1024&r.flags){for(;f<16;){if(0===s)break e;s--,l+=n[o++]<>>8&255,r.check=$r(r.check,A,2,0)),l=0,f=0}else r.head&&(r.head.extra=null);r.mode=Ci;case Ci:if(1024&r.flags&&((d=r.length)>s&&(d=s),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),jt(r.head.extra,n,o,d,k)),512&r.flags&&(r.check=$r(r.check,n,d,o)),s-=d,o+=d,r.length-=d),r.length))break e;r.length=0,r.mode=Di;case Di:if(2048&r.flags){if(0===s)break e;d=0;do{k=n[o+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k))}while(k&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=Hi;break;case Oi:for(;f<32;){if(0===s)break e;s--,l+=n[o++]<>>=7&f,f-=7&f,r.mode=eo;break}for(;f<3;){if(0===s)break e;s--,l+=n[o++]<>>=1)){case 0:r.mode=Ni;break;case 1:if(go(r),r.mode=Xi,t===bi){l>>>=2,f-=2;break e}break;case 2:r.mode=Wi;break;case 3:e.msg="invalid block type",r.mode=no}l>>>=2,f-=2;break;case Ni:for(l>>>=7&f,f-=7&f;f<32;){if(0===s)break e;s--,l+=n[o++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=no;break}if(r.length=65535&l,l=0,f=0,r.mode=Zi,t===bi)break e;case Zi:r.mode=ji;case ji:if(d=r.length){if(d>s&&(d=s),d>h&&(d=h),0===d)break e;jt(i,n,o,d,a),s-=d,o+=d,h-=d,a+=d,r.length-=d;break}r.mode=Hi;break;case Wi:for(;f<14;){if(0===s)break e;s--,l+=n[o++]<>>=5,f-=5,r.ndist=1+(31&l),l>>>=5,f-=5,r.ncode=4+(15&l),l>>>=4,f-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=no;break}r.have=0,r.mode=Yi;case Yi:for(;r.have>>=3,f-=3}for(;r.have<19;)r.lens[B[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},E=di(pi,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,E){e.msg="invalid code lengths set",r.mode=no;break}r.have=0,r.mode=Ki;case Ki:for(;r.have>>16&255,w=65535&R,!((g=R>>>24)<=f);){if(0===s)break e;s--,l+=n[o++]<>>=g,f-=g,r.lens[r.have++]=w;else{if(16===w){for(x=g+2;f>>=g,f-=g,0===r.have){e.msg="invalid bit length repeat",r.mode=no;break}k=r.lens[r.have-1],d=3+(3&l),l>>>=2,f-=2}else if(17===w){for(x=g+3;f>>=g)),l>>>=3,f-=3}else{for(x=g+7;f>>=g)),l>>>=7,f-=7}if(r.have+d>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=no;break}for(;d--;)r.lens[r.have++]=k}}if(r.mode===no)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=no;break}if(r.lenbits=9,S={bits:r.lenbits},E=di(_i,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,E){e.msg="invalid literal/lengths set",r.mode=no;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},E=di(gi,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,E){e.msg="invalid distances set",r.mode=no;break}if(r.mode=Xi,t===bi)break e;case Xi:r.mode=qi;case qi:if(s>=6&&h>=258){e.next_out=a,e.avail_out=h,e.next_in=o,e.avail_in=s,r.hold=l,r.bits=f,ri(e,u),a=e.next_out,i=e.output,h=e.avail_out,o=e.next_in,n=e.input,s=e.avail_in,l=r.hold,f=r.bits,r.mode===Hi&&(r.back=-1);break}for(r.back=0;v=(R=r.lencode[l&(1<>>16&255,w=65535&R,!((g=R>>>24)<=f);){if(0===s)break e;s--,l+=n[o++]<>b)])>>>16&255,w=65535&R,!(b+(g=R>>>24)<=f);){if(0===s)break e;s--,l+=n[o++]<>>=b,f-=b,r.back+=b}if(l>>>=g,f-=g,r.back+=g,r.length=w,0===v){r.mode=Qi;break}if(32&v){r.back=-1,r.mode=Hi;break}if(64&v){e.msg="invalid literal/length code",r.mode=no;break}r.extra=15&v,r.mode=Vi;case Vi:if(r.extra){for(x=r.extra;f>>=r.extra,f-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=Gi;case Gi:for(;v=(R=r.distcode[l&(1<>>16&255,w=65535&R,!((g=R>>>24)<=f);){if(0===s)break e;s--,l+=n[o++]<>b)])>>>16&255,w=65535&R,!(b+(g=R>>>24)<=f);){if(0===s)break e;s--,l+=n[o++]<>>=b,f-=b,r.back+=b}if(l>>>=g,f-=g,r.back+=g,64&v){e.msg="invalid distance code",r.mode=no;break}r.offset=w,r.extra=15&v,r.mode=$i;case $i:if(r.extra){for(x=r.extra;f>>=r.extra,f-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=no;break}r.mode=Ji;case Ji:if(0===h)break e;if(d=u-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=no;break}d>r.wnext?(d-=r.wnext,p=r.wsize-d):p=r.wnext-d,d>r.length&&(d=r.length),_=r.window}else _=i,p=a-r.offset,d=r.length;d>h&&(d=h),h-=d,r.length-=d;do{i[a++]=_[p++]}while(--d);0===r.length&&(r.mode=qi);break;case Qi:if(0===h)break e;i[a++]=r.length,h--,r.mode=qi;break;case eo:if(r.wrap){for(;f<32;){if(0===s)break e;s--,l|=n[o++]<=o.wsize?(jt(o.window,t,r-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):((i=o.wsize-o.wnext)>n&&(i=n),jt(o.window,t,r-n,i,o.wnext),(n-=i)?(jt(o.window,t,r-n,n,0),o.wnext=n,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whaveyo)throw new TypeError("Bad argument");this.mode=e,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}function ko(e,t){for(var r=0;r15&&(a=2,n-=16),i<1||i>vn||r!==gn||n<8||n>15||t<0||t>9||o<0||o>pn)return Hn(e,sn);8===n&&(n=9);var s=new $n;return e.state=s,s.strm=e,s.wrap=a,s.gzhead=null,s.w_bits=n,s.w_size=1<So.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+e.chunkSize);if(e.windowBits&&(e.windowBitsSo.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+e.windowBits);if(e.level&&(e.levelSo.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+e.level);if(e.memLevel&&(e.memLevelSo.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+e.memLevel);if(e.strategy&&e.strategy!=So.Z_FILTERED&&e.strategy!=So.Z_HUFFMAN_ONLY&&e.strategy!=So.Z_RLE&&e.strategy!=So.Z_FIXED&&e.strategy!=So.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+e.strategy);if(e.dictionary&&!$(e.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new So.Zlib(t);var r=this;this._hadError=!1,this._binding.onerror=function(e,t){r._binding=null,r._hadError=!0;var n=new Error(e);n.errno=t,n.code=So.codes[t],r.emit("error",n)};var n=So.Z_DEFAULT_COMPRESSION;"number"==typeof e.level&&(n=e.level);var i=So.Z_DEFAULT_STRATEGY;"number"==typeof e.strategy&&(i=e.strategy),this._binding.init(e.windowBits||So.Z_DEFAULT_WINDOWBITS,n,e.memLevel||So.Z_DEFAULT_MEMLEVEL,i,e.dictionary),this._buffer=new p(this._chunkSize),this._offset=0,this._closed=!1,this._level=n,this._strategy=i,this.once("end",this.close)}Object.keys(xo).forEach(function(e){xo[xo[e]]=e}),Be(Io,Ot),Io.prototype.params=function(e,t,r){if(eSo.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+e);if(t!=So.Z_FILTERED&&t!=So.Z_HUFFMAN_ONLY&&t!=So.Z_RLE&&t!=So.Z_FIXED&&t!=So.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+t);if(this._level!==e||this._strategy!==t){var n=this;this.flush(So.Z_SYNC_FLUSH,function(){n._binding.params(e,t),n._hadError||(n._level=e,n._strategy=t,r&&r())})}else de(r)},Io.prototype.reset=function(){return this._binding.reset()},Io.prototype._flush=function(e){this._transform(new p(0),"",e)},Io.prototype.flush=function(e,t){var r=this._writableState;if(("function"==typeof e||void 0===e&&!t)&&(t=e,e=So.Z_FULL_FLUSH),r.ended)t&&de(t);else if(r.ending)t&&this.once("end",t);else if(r.needDrain){var n=this;this.once("drain",function(){n.flush(t)})}else this._flushFlag=e,this.write(new p(0),"",t)},Io.prototype.close=function(e){if(e&&de(e),!this._closed){this._closed=!0,this._binding.close();var t=this;de(function(){t.emit("close")})}},Io.prototype._transform=function(e,t,r){var n,i=this._writableState,o=(i.ending||i.ended)&&(!e||i.length===e.length);if(null===!e&&!$(e))return r(new Error("invalid input"));o?n=So.Z_FINISH:(n=this._flushFlag,e.length>=i.length&&(this._flushFlag=this._opts.flush||So.Z_NO_FLUSH)),this._processChunk(e,n,r)},Io.prototype._processChunk=function(e,t,r){var n=e&&e.length,i=this._chunkSize-this._offset,o=0,a=this,s="function"==typeof r;if(!s){var h,l=[],f=0;this.on("error",function(e){h=e});do{var c=this._binding.writeSync(t,e,o,n,this._buffer,this._offset,i)}while(!this._hadError&&_(c[0],c[1]));if(this._hadError)throw h;var u=p.concat(l,f);return this.close(),u}var d=this._binding.write(t,e,o,n,this._buffer,this._offset,i);function _(h,c){if(!a._hadError){var u=i-c;if(function(e,t){if(!e)throw new Error(t)}(u>=0,"have should not go down"),u>0){var d=a._buffer.slice(a._offset,a._offset+u);a._offset+=u,s?a.push(d):(l.push(d),f+=d.length)}if((0===c||a._offset>=a._chunkSize)&&(i=a._chunkSize,a._offset=0,a._buffer=new p(a._chunkSize)),0===c){if(o+=n-h,n=h,!s)return!0;var g=a._binding.write(t,e,o,n,a._buffer,a._offset,a._chunkSize);return g.callback=_,void(g.buffer=e)}if(!s)return!1;r()}}d.buffer=e,d.callback=_},Be(Bo,Io),Be(zo,Io),Be(Lo,Io),Be(To,Io),Be(Mo,Io),Be(Co,Io),Be(Do,Io);var Po={codes:xo,createDeflate:function(e){return new Bo(e)},createInflate:function(e){return new zo(e)},createDeflateRaw:function(e){return new Mo(e)},createInflateRaw:function(e){return new Co(e)},createGzip:function(e){return new Lo(e)},createGunzip:function(e){return new To(e)},createUnzip:function(e){return new Do(e)},deflate:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new Bo(t),e,r)},deflateSync:function(e,t){return Ao(new Bo(t),e)},gzip:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new Lo(t),e,r)},gzipSync:function(e,t){return Ao(new Lo(t),e)},deflateRaw:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new Mo(t),e,r)},deflateRawSync:function(e,t){return Ao(new Mo(t),e)},unzip:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new Do(t),e,r)},unzipSync:function(e,t){return Ao(new Do(t),e)},inflate:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new zo(t),e,r)},inflateSync:function(e,t){return Ao(new zo(t),e)},gunzip:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new To(t),e,r)},gunzipSync:function(e,t){return Ao(new To(t),e)},inflateRaw:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new Co(t),e,r)},inflateRawSync:function(e,t){return Ao(new Co(t),e)},Deflate:Bo,Inflate:zo,Gzip:Lo,Gunzip:To,DeflateRaw:Mo,InflateRaw:Co,Unzip:Do,Zlib:Io};export default class{constructor(e,t,r){this.SDKAPPID=e,this.EXPIRETIME=r,this.PRIVATEKEY=t}genTestUserSig(e){return this._isNumber(this.SDKAPPID)?this._isString(this.PRIVATEKEY)?this._isString(e)?this._isNumber(this.EXPIRETIME)?(console.log("sdkAppID="+this.SDKAPPID+" key="+this.PRIVATEKEY+" userID="+e+" expire="+this.EXPIRETIME),this.genSigWithUserbuf(e,this.EXPIRETIME,null)):(console.error("expireTime must be a number"),""):(console.error("userID must be a string"),""):(console.error("privateKey must be a string"),""):(console.error("sdkAppID must be a number"),"")}newBuffer(e,t){return p.from?p.from(e,t):new p(e,t)}unescape(e){return e.replace(/_/g,"=").replace(/\-/g,"/").replace(/\*/g,"+")}escape(e){return e.replace(/\+/g,"*").replace(/\//g,"-").replace(/=/g,"_")}encode(e){return this.escape(this.newBuffer(e).toString("base64"))}decode(e){return this.newBuffer(this.unescape(e),"base64")}base64encode(e){return this.newBuffer(e).toString("base64")}base64decode(e){return this.newBuffer(e,"base64").toString()}_hmacsha256(e,t,r,n){let i="TLS.identifier:"+e+"\n";i+="TLS.sdkappid:"+this.SDKAPPID+"\n",i+="TLS.time:"+t+"\n",i+="TLS.expire:"+r+"\n",null!=n&&(i+="TLS.userbuf:"+n+"\n");let o=te.HmacSHA256(i,this.PRIVATEKEY);return te.enc.Base64.stringify(o)}_utc(){return Math.round(Date.now()/1e3)}_isNumber(e){return null!==e&&("number"==typeof e&&!isNaN(e-0)||"object"==typeof e&&e.constructor===Number)}_isString(e){return"string"==typeof e}genSigWithUserbuf(e,t,r){let n=this._utc(),i={"TLS.ver":"2.0","TLS.identifier":e,"TLS.sdkappid":this.SDKAPPID,"TLS.time":n,"TLS.expire":t},o="";if(null!=r){let a=this.base64encode(r);i["TLS.userbuf"]=a,o=this._hmacsha256(e,n,t,a)}else o=this._hmacsha256(e,n,t,null);i["TLS.sig"]=o;let a=JSON.stringify(i),s=Po.deflateSync(this.newBuffer(a)).toString("base64"),h=this.escape(s);return console.log("ret="+h),h}validate(e){let t=this.decode(e),r=Po.inflateSync(t);console.log("validate ret="+r)}} diff --git a/TUIService/TUIKit/index.js b/TUIService/TUIKit/index.js new file mode 100644 index 0000000..f65480a --- /dev/null +++ b/TUIService/TUIKit/index.js @@ -0,0 +1,141 @@ +// TUIKitWChat/Chat/index.js +import Aegis from './lib/aegis'; +import constant from './utils/constant'; +const app = getApp(); +Component({ + /** + * 组件的属性列表 + */ + properties: { + + }, + // pageLifetimes: { + // // 组件所在页面的生命周期函数 + // show: function () { + // this.setData({ + // isShow:true, + // }); + // const TUIChat = this.selectComponent('#TUIChat'); + // TUIChat.init(); + // }, + // hide: function () { + // this.setData({ + // isShow:false, + // }) + // }, + // resize: function () { }, + // }, + /** + * 组件的初始数据 + */ + data: { + isShowConversation: false, + isShowConversationList: true, + currentConversationID: '', + order_inquiry_id:'', + isShow:false, + inquiry_type:'', + fromType:'', + unreadCount: 0, + hasCallKit: false, + config: { + userID: '', + userSig: '', + type: 1, + tim: null, + SDKAppID: 0, + }, + }, + + /** + * 组件的方法列表 + */ + methods: { + init(order_inquiry_id,inquiry_type,currentConversationID,fromType) { + const { config } = this.data; + config.userID = wx.$chat_userID; + config.userSig = wx.$chat_userSig; + config.tim = wx.$TUIKit; + config.SDKAppID = wx.$chat_SDKAppID; + this.setData({ + config, + currentConversationID, + order_inquiry_id, + inquiry_type, + fromType + }, () => { + //this.TUICallKit = this.selectComponent('#TUICallKit'); + // 这里的 isExitInit 用来判断 TUICallKit init 方法是否存在 + // 当 isExitInit 为 true 时,进行 callkit 初始化和日志上报 + // const isExitInit = (this.TUICallKit.init !== undefined); + // if (this.TUICallKit !== null && isExitInit) { + // wx.aegis.reportEvent({ + // name: 'TUICallKit', + // ext1: 'TUICallKitInit', + // ext2: wx.$chat_reportType, + // ext3: wx.$chat_SDKAppID, + // }); + // this.TUICallKit.init(); + // wx.setStorageSync('_isTIMCallKit', true); + // wx.$_isTIMCallKit = '_isTIMCallKit'; + // this.setData({ + // hasCallKit: true, + // }); + // } + }); + const TUIChat = this.selectComponent('#TUIChat'); + TUIChat.init(); + //this.currentConversationID(); + // const TUIConversation = this.selectComponent('#TUIConversation'); + // TUIConversation.init(); + if (app?.globalData?.reportType !== constant.OPERATING_ENVIRONMENT) { + this.aegisInit(); + } + wx.$chat_reportType = 'chat-uikit-wechat'; + wx.aegis.reportEvent({ + name: 'time', + ext1: 'first-run-time', + ext2: wx.$chat_reportType, + ext3: wx.$chat_SDKAppID, + }); + }, + aegisInit() { + wx.aegis = new Aegis({ + id: 'iHWefAYquFxvklBblC', // 项目key + reportApiSpeed: true, // 接口测速 + reportAssetSpeed: true, // 静态资源测速 + pagePerformance: true, // 开启页面测速 + }); + }, + currentConversationID(event) { + this.setData({ + isShowConversation: true, + isShowConversationList: false, + currentConversationID: event.detail.currentConversationID, + unreadCount: event.detail.unreadCount, + }, () => { + const TUIChat = this.selectComponent('#TUIChat'); + TUIChat.init(); + }); + }, + showConversationList() { + this.setData({ + isShowConversation: false, + isShowConversationList: true, + }, () => { + const TUIConversation = this.selectComponent('#TUIConversation'); + TUIConversation.init(); + }); + }, + handleCall(event) { + if (event.detail.groupID) { + this.TUICallKit.groupCall(event.detail); + } else { + this.TUICallKit.call(event.detail); + } + }, + sendMessage(event) { + this.selectComponent('#TUIChat').sendMessage(event); + }, + }, +}); diff --git a/TUIService/TUIKit/index.json b/TUIService/TUIKit/index.json new file mode 100644 index 0000000..8d29970 --- /dev/null +++ b/TUIService/TUIKit/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "TUIConversation": "./components/TUIConversation/index", + "TUIChat": "./components/TUIChat/index", + "TUICallKit": "./components/TUICallKit/TUICallKit/TUICallKit" + } +} \ No newline at end of file diff --git a/TUIService/TUIKit/index.wxml b/TUIService/TUIKit/index.wxml new file mode 100644 index 0000000..82c242d --- /dev/null +++ b/TUIService/TUIKit/index.wxml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/index.wxss b/TUIService/TUIKit/index.wxss new file mode 100644 index 0000000..e69de29 diff --git a/TUIService/TUIKit/lib/aegis.js b/TUIService/TUIKit/lib/aegis.js new file mode 100644 index 0000000..996edcc --- /dev/null +++ b/TUIService/TUIKit/lib/aegis.js @@ -0,0 +1,10 @@ +/** + * ==================================================================== + * @tencent/aegis-mp-sdk@1.34.75 (c) 2021 Tencent Application Monitor. + * Author pumpkincai. + * Last Release Time Tue Dec 07 2021 14:47:12 GMT+0800 (GMT+08:00). + * Released under the MIT License. + * Thanks for supporting TAM & Aegis! + * ==================================================================== + **/ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Aegis=t()}(this,function(){"use strict";var i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function e(e,t){function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return(a=Object.assign||function(e){for(var t,n=1,i=arguments.length;n=n)return o=A(o),t(o.splice(0,o.length)),void(i&&clearTimeout(i));i&&clearTimeout(i),i=setTimeout(function(){i=null,0<(o=A(o)).length&&t(o.splice(0,o.length))},r.delay)}}function O(e,t){return Array.isArray(e)?t(e.map(function(e){return a(a({},e),{msg:"string"==typeof e.msg?e.msg:[].concat(e.msg).map(b).join(" ")})})):t(a(a({},e),{msg:"string"==typeof e.msg?e.msg:b(e.msg)}))}function R(r,s){return function(e,t){var n=Array.isArray(e),i=n?e:[e];r.lifeCycle.emit("beforeRequest",e);var o=r.config.beforeRequest;(i="function"==typeof o?i.map(function(t){try{var e=o({logs:t,logType:s});return(null==e?void 0:e.logType)===s&&null!=e&&e.logs?e.logs:!1!==e&&t}catch(e){return t}}).filter(function(e){return!1!==e}):i).length&&(i=function(e,t){if(!Array.isArray(e)||e.length<=1)return e;var n=[],i=[];return!(i="string"==typeof t?[t]:t)||i.length<=0||(i.forEach(function(t){e.forEach(function(e){null!=e&&e[t]&&n.push(t)})}),0l){for(var t=e.split("\n"),n="",i=t.length-1;0<=i&&!(t[i]&&(n=t[i]+"\n"+n).length>l);i--);s.writeFile({filePath:a,data:n,success:r})}else s.appendFile({data:o,filePath:a,encoding:"utf8",success:r,fail:function(e){console.error(e)}})}})},re),V=new D({name:"device",onNewAegis:function(l){return e=this,u=function(){return n=this,i=function(e){return this.setSystemInfo(l),this.refreshNetwork(l),this.setNetworkChange(l),[2]},a={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},t={next:e(0),throw:e(1),return:e(2)},"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function e(t){return function(e){return function(t){if(o)throw new TypeError("Generator is already executing.");for(;a;)try{if(o=1,r&&(s=2&t[0]?r.return:t[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,t[1])).done)return s;switch(r=0,(t=s?[2&t[0],s.value]:t)[0]){case 0:case 1:s=t;break;case 4:return a.label++,{value:t[1],done:!1};case 5:a.label++,r=t[1],t=[0];continue;case 7:t=a.ops.pop(),a.trys.pop();continue;default:if(!((s=0<(s=a.trys).length&&s[s.length-1])||6!==t[0]&&2!==t[0])){a=0;continue}if(3===t[0]&&(!s||t[1]>s[0]&&t[1]n))}))}),(r=this.lifeCycle.emit,c=this.config,function(e,t){var n=c.logCreated;if("function"!=typeof n)return r("beforeWrite",e),t(e);e=e.filter(function(e){return!1!==n(e)});return r("beforeWrite",e),t(e)}),(i=this,setTimeout(function(){var e=i.config.pvUrl,n=void 0===e?"":e;n&&i.sendPipeline([function(e,t){t({url:n,type:m.PV,fail:function(e){"403 forbidden"===e&&i.destroy()}})}],m.PV)(null)},100),function(e,t){t(e)}),(o=l=a=!1,u=[],(s=this).lifeCycle.on("onConfigChange",function(){n&&clearTimeout(n),n=setTimeout(function(){var e,n;!o&&s.config&&(o=!0,e=s.config.whiteListUrl,(n=void 0===e?"":e)&&s.sendPipeline([function(e,t){t({url:n,type:m.WHITE_LIST,success:function(e){l=!0;try{var t=e.data||JSON.parse(e),n=t.retcode,i=t.result,o=void 0===i?{}:i;if(0===n){if(a=o.is_in_white_list,s.isWhiteList=a,o.shutdown)return void s.destroy();0<=o.rate&&o.rate<=1&&(s.config.random=o.rate,s.isGetSample=!1)}s.isWhiteList&&u.length?_(s)(u.splice(0),function(){}):!s.isWhiteList&&u.length&&(u.length=0);var r=s.config.onWhitelist;"function"==typeof r&&r(a)}catch(e){}},fail:function(e){"403 forbidden"===e&&s.destroy(),l=!0}})}],m.WHITE_LIST)(null),o=!1)},s.config.uin?50:500)}),s.lifeCycle.on("destroy",function(){u.length=0}),function(e,t){var n;a||null!==(n=null===(n=s.config)||void 0===n?void 0:n.api)&&void 0!==n&&n.reportRequst?t(e.concat(u.splice(0)).map(function(e){return I(e),e})):(e=e.filter(function(e){return e.level!==g.INFO&&e.level!==g.API_RESPONSE?(I(e),!0):(l||(u.push(e),200<=u.length&&(u.length=200)),!1)})).length&&t(e)}),function(e,t){var n=JSON.parse(JSON.stringify(e));d.lifeCycle.emit("beforeReport",n);var i=d.config.beforeReport;(e="function"==typeof i?e.filter(function(e){return!1!==i(e)}):e).length&&t(e)},_(this)]),this.eventPipeline=S([w(this,5),function(e){d.sendPipeline([function(e,t){var n=e.map(function(e){return{name:e.name,ext1:e.ext1||d.config.ext1||"",ext2:e.ext2||d.config.ext2||"",ext3:e.ext3||d.config.ext3||""}});t({url:d.config.eventUrl+"?payload="+encodeURIComponent(JSON.stringify(n)),type:m.EVENT,log:e,fail:function(e){"403 forbidden"===e&&d.destroy()}})}],m.EVENT)(e)}]),this.timeMap={},this.customTimePipeline=S([w(this,5),function(e){return d.sendPipeline([function(e,t){t({url:d.config.customTimeUrl+"?payload="+encodeURIComponent(JSON.stringify({custom:e})),type:m.CUSTOM,log:e,fail:function(e){"403 forbidden"===e&&d.destroy()}})}],m.CUSTOM)(e)}]),this.config=(t=this.config,void 0===(e=e.hostUrl)&&(e="https://aegis.qq.com"),t.url=t.url||e+"/collect",t.offlineUrl=t.offlineUrl||e+"/offline",t.whiteListUrl=t.whiteListUrl||e+"/collect/whitelist",t.pvUrl=t.pvUrl||e+"/collect/pv",t.eventUrl=t.eventUrl||e+"/collect/events",t.speedUrl=t.speedUrl||e+"/speed",t.customTimeUrl=t.customTimeUrl||e+"/speed/custom",t.performanceUrl=t.performanceUrl||e+"/speed/performance",t.webVitalsUrl=t.webVitalsUrl||e+"/speed/webvitals",t),ae.instances.push(this)}return W.use(ee),W.use(F),W.use(G),W.use($),W.use(D),W.use(V),W}); diff --git a/TUIService/TUIKit/lib/tim-profanity-filter-plugin.js b/TUIService/TUIKit/lib/tim-profanity-filter-plugin.js new file mode 100644 index 0000000..1fdad73 --- /dev/null +++ b/TUIService/TUIKit/lib/tim-profanity-filter-plugin.js @@ -0,0 +1,15 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).TIMProfanityFilterPlugin=e()}(this,(function(){function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,i=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,a=!0,c=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){c=!0,s=t},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw s}}}}var c=function(){for(var t=" \t\r\n~!@#$%^&*()_+-=【】、{}|;':\",。、《》?αβγδεζηθικλμνξοπρστυφχψωΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ。,、;:?!…—·ˉ¨‘’“”々~‖∶"'`|〃〔〕〈〉《》「」『』.〖〗【】()[]{}ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩①②③④⑤⑥⑦⑧⑨⑩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇≈≡≠=≤≥<>≮≯∷±+-×÷/∫∮∝∞∧∨∑∏∪∩∈∵∴⊥∥∠⌒⊙≌∽√§№☆★○●◎◇◆□℃‰€■△▲※→←↑↓〓¤°#&@\︿_ ̄―♂♀┌┍┎┐┑┒┓─┄┈├┝┞┟┠┡┢┣│┆┊┬┭┮┯┰┱┲┳┼┽┾┿╀╁╂╃└┕┖┗┘┙┚┛━┅┉┤┥┦┧┨┩┪┫┃┇┋┴┵┶┷┸┹┺┻╋╊╉╈╇╆╅╄",e=new Map,r=0,i=t.length;r1&&(a+=h),f){if(o=!0,!r)break;var d=this._map.get(l)||"*";n=n.replace(new RegExp(l,"g"),d)}}return{isMatched:o,modifiedText:n}}},{key:"reset",value:function(){this._trieTree={},this._map=null}}]),e}(),l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var f={},u=function(t,e){return t(e={exports:{}},e.exports),e.exports}((function(t,e){var r,i,n,o,s,a;t.exports=(a=a||function(t,e){var r;if("undefined"!=typeof window&&window.crypto&&(r=window.crypto),!r&&"undefined"!=typeof window&&window.msCrypto&&(r=window.msCrypto),!r&&void 0!==l&&l.crypto&&(r=l.crypto),!r)try{r=f}catch(v){}var i=function(){if(r){if("function"==typeof r.getRandomValues)try{return r.getRandomValues(new Uint32Array(1))[0]}catch(v){}if("function"==typeof r.randomBytes)try{return r.randomBytes(4).readInt32LE()}catch(v){}}throw new Error("Native crypto module could not be used to get secure random number.")},n=Object.create||function(){function t(){}return function(e){var r;return t.prototype=e,r=new t,t.prototype=null,r}}(),o={},s=o.lib={},a=s.Base={extend:function(t){var e=n(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},c=s.WordArray=a.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||u).stringify(this)},concat:function(t){var e=this.words,r=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]>>>24-o%4*8&255;e[i+o>>>2]|=s<<24-(i+o)%4*8}else for(o=0;o>>2]=r[o>>>2];return this.sigBytes+=n,this},clamp:function(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=t.ceil(r/4)},clone:function(){var t=a.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],r=0;r>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new c.init(r,e/2)}},d=h.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new c.init(r,e)}},p=h.Utf8={stringify:function(t){try{return decodeURIComponent(escape(d.stringify(t)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(t){return d.parse(unescape(encodeURIComponent(t)))}},_=s.BufferedBlockAlgorithm=a.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=p.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var r,i=this._data,n=i.words,o=i.sigBytes,s=this.blockSize,a=o/(4*s),h=(a=e?t.ceil(a):t.max((0|a)-this._minBufferSize,0))*s,l=t.min(4*h,o);if(h){for(var f=0;f>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,a=0;a<4&&o+.75*a>>6*(3-a)&63));var c=i.charAt(64);if(c)for(;n.length%4;)n.push(c);return n.join("")},parse:function(t){var e=t.length,r=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var n=0;n>>6-o%4*2,h=a|c;i[n>>>2]|=h<<24-n%4*8,n++}return s.create(i,n)}(t,e,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},function(t){var e=a,r=e.lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[];!function(){for(var e=0;e<64;e++)s[e]=4294967296*t.abs(t.sin(e+1))|0}();var c=o.MD5=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o=this._hash.words,a=t[e+0],c=t[e+1],d=t[e+2],p=t[e+3],_=t[e+4],y=t[e+5],v=t[e+6],g=t[e+7],w=t[e+8],B=t[e+9],k=t[e+10],m=t[e+11],b=t[e+12],x=t[e+13],S=t[e+14],A=t[e+15],H=o[0],M=o[1],z=o[2],C=o[3];H=h(H,M,z,C,a,7,s[0]),C=h(C,H,M,z,c,12,s[1]),z=h(z,C,H,M,d,17,s[2]),M=h(M,z,C,H,p,22,s[3]),H=h(H,M,z,C,_,7,s[4]),C=h(C,H,M,z,y,12,s[5]),z=h(z,C,H,M,v,17,s[6]),M=h(M,z,C,H,g,22,s[7]),H=h(H,M,z,C,w,7,s[8]),C=h(C,H,M,z,B,12,s[9]),z=h(z,C,H,M,k,17,s[10]),M=h(M,z,C,H,m,22,s[11]),H=h(H,M,z,C,b,7,s[12]),C=h(C,H,M,z,x,12,s[13]),z=h(z,C,H,M,S,17,s[14]),H=l(H,M=h(M,z,C,H,A,22,s[15]),z,C,c,5,s[16]),C=l(C,H,M,z,v,9,s[17]),z=l(z,C,H,M,m,14,s[18]),M=l(M,z,C,H,a,20,s[19]),H=l(H,M,z,C,y,5,s[20]),C=l(C,H,M,z,k,9,s[21]),z=l(z,C,H,M,A,14,s[22]),M=l(M,z,C,H,_,20,s[23]),H=l(H,M,z,C,B,5,s[24]),C=l(C,H,M,z,S,9,s[25]),z=l(z,C,H,M,p,14,s[26]),M=l(M,z,C,H,w,20,s[27]),H=l(H,M,z,C,x,5,s[28]),C=l(C,H,M,z,d,9,s[29]),z=l(z,C,H,M,g,14,s[30]),H=f(H,M=l(M,z,C,H,b,20,s[31]),z,C,y,4,s[32]),C=f(C,H,M,z,w,11,s[33]),z=f(z,C,H,M,m,16,s[34]),M=f(M,z,C,H,S,23,s[35]),H=f(H,M,z,C,c,4,s[36]),C=f(C,H,M,z,_,11,s[37]),z=f(z,C,H,M,g,16,s[38]),M=f(M,z,C,H,k,23,s[39]),H=f(H,M,z,C,x,4,s[40]),C=f(C,H,M,z,a,11,s[41]),z=f(z,C,H,M,p,16,s[42]),M=f(M,z,C,H,v,23,s[43]),H=f(H,M,z,C,B,4,s[44]),C=f(C,H,M,z,b,11,s[45]),z=f(z,C,H,M,A,16,s[46]),H=u(H,M=f(M,z,C,H,d,23,s[47]),z,C,a,6,s[48]),C=u(C,H,M,z,g,10,s[49]),z=u(z,C,H,M,S,15,s[50]),M=u(M,z,C,H,y,21,s[51]),H=u(H,M,z,C,b,6,s[52]),C=u(C,H,M,z,p,10,s[53]),z=u(z,C,H,M,k,15,s[54]),M=u(M,z,C,H,c,21,s[55]),H=u(H,M,z,C,w,6,s[56]),C=u(C,H,M,z,A,10,s[57]),z=u(z,C,H,M,v,15,s[58]),M=u(M,z,C,H,x,21,s[59]),H=u(H,M,z,C,_,6,s[60]),C=u(C,H,M,z,m,10,s[61]),z=u(z,C,H,M,d,15,s[62]),M=u(M,z,C,H,B,21,s[63]),o[0]=o[0]+H|0,o[1]=o[1]+M|0,o[2]=o[2]+z|0,o[3]=o[3]+C|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;r[n>>>5]|=128<<24-n%32;var o=t.floor(i/4294967296),s=i;r[15+(n+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(n+64>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),e.sigBytes=4*(r.length+1),this._process();for(var a=this._hash,c=a.words,h=0;h<4;h++){var l=c[h];c[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return a},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});function h(t,e,r,i,n,o,s){var a=t+(e&r|~e&i)+n+s;return(a<>>32-o)+e}function l(t,e,r,i,n,o,s){var a=t+(e&i|r&~i)+n+s;return(a<>>32-o)+e}function f(t,e,r,i,n,o,s){var a=t+(e^r^i)+n+s;return(a<>>32-o)+e}function u(t,e,r,i,n,o,s){var a=t+(r^(e|~i))+n+s;return(a<>>32-o)+e}e.MD5=n._createHelper(c),e.HmacMD5=n._createHmacHelper(c)}(Math),function(){var t=a,e=t.lib,r=e.WordArray,i=e.Hasher,n=t.algo,o=[],s=n.SHA1=i.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],s=r[2],a=r[3],c=r[4],h=0;h<80;h++){if(h<16)o[h]=0|t[e+h];else{var l=o[h-3]^o[h-8]^o[h-14]^o[h-16];o[h]=l<<1|l>>>31}var f=(i<<5|i>>>27)+c+o[h];f+=h<20?1518500249+(n&s|~n&a):h<40?1859775393+(n^s^a):h<60?(n&s|n&a|s&a)-1894007588:(n^s^a)-899497514,c=a,a=s,s=n<<30|n>>>2,n=i,i=f}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+s|0,r[3]=r[3]+a|0,r[4]=r[4]+c|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(i+64>>>9<<4)]=Math.floor(r/4294967296),e[15+(i+64>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=i.clone.call(this);return t._hash=this._hash.clone(),t}});t.SHA1=i._createHelper(s),t.HmacSHA1=i._createHmacHelper(s)}(),function(t){var e=a,r=e.lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[],c=[];!function(){function e(e){for(var r=t.sqrt(e),i=2;i<=r;i++)if(!(e%i))return!1;return!0}function r(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)e(i)&&(n<8&&(s[n]=r(t.pow(i,.5))),c[n]=r(t.pow(i,1/3)),n++),i++}();var h=[],l=o.SHA256=n.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],a=r[4],l=r[5],f=r[6],u=r[7],d=0;d<64;d++){if(d<16)h[d]=0|t[e+d];else{var p=h[d-15],_=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,y=h[d-2],v=(y<<15|y>>>17)^(y<<13|y>>>19)^y>>>10;h[d]=_+h[d-7]+v+h[d-16]}var g=i&n^i&o^n&o,w=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),B=u+((a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25))+(a&l^~a&f)+c[d]+h[d];u=f,f=l,l=a,a=s+B|0,s=o,o=n,n=i,i=B+(w+g)|0}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+a|0,r[5]=r[5]+l|0,r[6]=r[6]+f|0,r[7]=r[7]+u|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;return r[n>>>5]|=128<<24-n%32,r[14+(n+64>>>9<<4)]=t.floor(i/4294967296),r[15+(n+64>>>9<<4)]=i,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=n._createHelper(l),e.HmacSHA256=n._createHmacHelper(l)}(Math),function(){var t=a,e=t.lib.WordArray,r=t.enc;function i(t){return t<<8&4278255360|t>>>8&16711935}r.Utf16=r.Utf16BE={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var r=t.length,i=[],n=0;n>>1]|=t.charCodeAt(n)<<16-n%2*16;return e.create(i,2*r)}},r.Utf16LE={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join("")},parse:function(t){for(var r=t.length,n=[],o=0;o>>1]|=i(t.charCodeAt(o)<<16-o%2*16);return e.create(n,2*r)}}}(),function(){if("function"==typeof ArrayBuffer){var t=a.lib.WordArray,e=t.init;(t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,i=[],n=0;n>>2]|=t[n]<<24-n%4*8;e.call(this,i,r)}else e.apply(this,arguments)}).prototype=t}}(), +/** @preserve + (c) 2012 by C��dric Mesnil. All rights reserved. + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +function(t){var e=a,r=e.lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),c=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),h=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),l=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),f=i.create([0,1518500249,1859775393,2400959708,2840853838]),u=i.create([1352829926,1548603684,1836072691,2053994217,0]),d=o.RIPEMD160=n.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o,a,d,B,k,m,b,x,S,A,H,M=this._hash.words,z=f.words,C=u.words,E=s.words,R=c.words,P=h.words,D=l.words;for(m=o=M[0],b=a=M[1],x=d=M[2],S=B=M[3],A=k=M[4],r=0;r<80;r+=1)H=o+t[e+E[r]]|0,H+=r<16?p(a,d,B)+z[0]:r<32?_(a,d,B)+z[1]:r<48?y(a,d,B)+z[2]:r<64?v(a,d,B)+z[3]:g(a,d,B)+z[4],H=(H=w(H|=0,P[r]))+k|0,o=k,k=B,B=w(d,10),d=a,a=H,H=m+t[e+R[r]]|0,H+=r<16?g(b,x,S)+C[0]:r<32?v(b,x,S)+C[1]:r<48?y(b,x,S)+C[2]:r<64?_(b,x,S)+C[3]:p(b,x,S)+C[4],H=(H=w(H|=0,D[r]))+A|0,m=A,A=S,S=w(x,10),x=b,b=H;H=M[1]+d+S|0,M[1]=M[2]+B+A|0,M[2]=M[3]+k+m|0,M[3]=M[4]+o+b|0,M[4]=M[0]+a+x|0,M[0]=H},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;e[i>>>5]|=128<<24-i%32,e[14+(i+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process();for(var n=this._hash,o=n.words,s=0;s<5;s++){var a=o[s];o[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return n},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});function p(t,e,r){return t^e^r}function _(t,e,r){return t&e|~t&r}function y(t,e,r){return(t|~e)^r}function v(t,e,r){return t&r|e&~r}function g(t,e,r){return t^(e|~r)}function w(t,e){return t<>>32-e}e.RIPEMD160=n._createHelper(d),e.HmacRIPEMD160=n._createHmacHelper(d)}(),function(){var t=a,e=t.lib.Base,r=t.enc.Utf8;t.algo.HMAC=e.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=r.parse(e));var i=t.blockSize,n=4*i;e.sigBytes>n&&(e=t.finalize(e)),e.clamp();for(var o=this._oKey=e.clone(),s=this._iKey=e.clone(),a=o.words,c=s.words,h=0;h>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),(M=r[n]).high^=s,M.low^=o}for(var a=0;a<24;a++){for(var u=0;u<5;u++){for(var d=0,p=0,_=0;_<5;_++)d^=(M=r[u+5*_]).high,p^=M.low;var y=f[u];y.high=d,y.low=p}for(u=0;u<5;u++){var v=f[(u+4)%5],g=f[(u+1)%5],w=g.high,B=g.low;for(d=v.high^(w<<1|B>>>31),p=v.low^(B<<1|w>>>31),_=0;_<5;_++)(M=r[u+5*_]).high^=d,M.low^=p}for(var k=1;k<25;k++){var m=(M=r[k]).high,b=M.low,x=c[k];x<32?(d=m<>>32-x,p=b<>>32-x):(d=b<>>64-x,p=m<>>64-x);var S=f[h[k]];S.high=d,S.low=p}var A=f[0],H=r[0];for(A.high=H.high,A.low=H.low,u=0;u<5;u++)for(_=0;_<5;_++){var M=r[k=u+5*_],z=f[k],C=f[(u+1)%5+5*_],E=f[(u+2)%5+5*_];M.high=z.high^~C.high&E.high,M.low=z.low^~C.low&E.low}M=r[0];var R=l[a];M.high^=R.high,M.low^=R.low}},_doFinalize:function(){var e=this._data,r=e.words,n=(this._nDataBytes,8*e.sigBytes),o=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(t.ceil((n+1)/o)*o>>>5)-1]|=128,e.sigBytes=4*r.length,this._process();for(var s=this._state,a=this.cfg.outputLength/8,c=a/8,h=[],l=0;l>>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),h.push(d),h.push(u)}return new i.init(h,a)},clone:function(){for(var t=n.clone.call(this),e=t._state=this._state.slice(0),r=0;r<25;r++)e[r]=e[r].clone();return t}});e.SHA3=n._createHelper(u),e.HmacSHA3=n._createHmacHelper(u)}(Math),function(){var t=a,e=t.lib.Hasher,r=t.x64,i=r.Word,n=r.WordArray,o=t.algo;function s(){return i.create.apply(i,arguments)}var c=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],h=[];!function(){for(var t=0;t<80;t++)h[t]=s()}();var l=o.SHA512=e.extend({_doReset:function(){this._hash=new n.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],a=r[4],l=r[5],f=r[6],u=r[7],d=i.high,p=i.low,_=n.high,y=n.low,v=o.high,g=o.low,w=s.high,B=s.low,k=a.high,m=a.low,b=l.high,x=l.low,S=f.high,A=f.low,H=u.high,M=u.low,z=d,C=p,E=_,R=y,P=v,D=g,F=w,T=B,I=k,O=m,L=b,W=x,U=S,j=A,K=H,X=M,N=0;N<80;N++){var V,Z,$=h[N];if(N<16)Z=$.high=0|t[e+2*N],V=$.low=0|t[e+2*N+1];else{var q=h[N-15],G=q.high,J=q.low,Q=(G>>>1|J<<31)^(G>>>8|J<<24)^G>>>7,Y=(J>>>1|G<<31)^(J>>>8|G<<24)^(J>>>7|G<<25),tt=h[N-2],et=tt.high,rt=tt.low,it=(et>>>19|rt<<13)^(et<<3|rt>>>29)^et>>>6,nt=(rt>>>19|et<<13)^(rt<<3|et>>>29)^(rt>>>6|et<<26),ot=h[N-7],st=ot.high,at=ot.low,ct=h[N-16],ht=ct.high,lt=ct.low;Z=(Z=(Z=Q+st+((V=Y+at)>>>0>>0?1:0))+it+((V+=nt)>>>0>>0?1:0))+ht+((V+=lt)>>>0>>0?1:0),$.high=Z,$.low=V}var ft,ut=I&L^~I&U,dt=O&W^~O&j,pt=z&E^z&P^E&P,_t=C&R^C&D^R&D,yt=(z>>>28|C<<4)^(z<<30|C>>>2)^(z<<25|C>>>7),vt=(C>>>28|z<<4)^(C<<30|z>>>2)^(C<<25|z>>>7),gt=(I>>>14|O<<18)^(I>>>18|O<<14)^(I<<23|O>>>9),wt=(O>>>14|I<<18)^(O>>>18|I<<14)^(O<<23|I>>>9),Bt=c[N],kt=Bt.high,mt=Bt.low,bt=K+gt+((ft=X+wt)>>>0>>0?1:0),xt=vt+_t;K=U,X=j,U=L,j=W,L=I,W=O,I=F+(bt=(bt=(bt=bt+ut+((ft+=dt)>>>0

>>0?1:0))+kt+((ft+=mt)>>>0>>0?1:0))+Z+((ft+=V)>>>0>>0?1:0))+((O=T+ft|0)>>>0>>0?1:0)|0,F=P,T=D,P=E,D=R,E=z,R=C,z=bt+(yt+pt+(xt>>>0>>0?1:0))+((C=ft+xt|0)>>>0>>0?1:0)|0}p=i.low=p+C,i.high=d+z+(p>>>0>>0?1:0),y=n.low=y+R,n.high=_+E+(y>>>0>>0?1:0),g=o.low=g+D,o.high=v+P+(g>>>0>>0?1:0),B=s.low=B+T,s.high=w+F+(B>>>0>>0?1:0),m=a.low=m+O,a.high=k+I+(m>>>0>>0?1:0),x=l.low=x+W,l.high=b+L+(x>>>0>>0?1:0),A=f.low=A+j,f.high=S+U+(A>>>0>>0?1:0),M=u.low=M+X,u.high=H+K+(M>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[30+(i+128>>>10<<5)]=Math.floor(r/4294967296),e[31+(i+128>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});t.SHA512=e._createHelper(l),t.HmacSHA512=e._createHmacHelper(l)}(),function(){var t=a,e=t.x64,r=e.Word,i=e.WordArray,n=t.algo,o=n.SHA512,s=n.SHA384=o.extend({_doReset:function(){this._hash=new i.init([new r.init(3418070365,3238371032),new r.init(1654270250,914150663),new r.init(2438529370,812702999),new r.init(355462360,4144912697),new r.init(1731405415,4290775857),new r.init(2394180231,1750603025),new r.init(3675008525,1694076839),new r.init(1203062813,3204075428)])},_doFinalize:function(){var t=o._doFinalize.call(this);return t.sigBytes-=16,t}});t.SHA384=o._createHelper(s),t.HmacSHA384=o._createHmacHelper(s)}(),a.lib.Cipher||function(t){var e=a,r=e.lib,i=r.Base,n=r.WordArray,o=r.BufferedBlockAlgorithm,s=e.enc,c=(s.Utf8,s.Base64),h=e.algo.EvpKDF,l=r.Cipher=o.extend({cfg:i.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,r){this.cfg=this.cfg.extend(r),this._xformMode=t,this._key=e,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return"string"==typeof t?w:v}return function(e){return{encrypt:function(r,i,n){return t(i).encrypt(e,r,i,n)},decrypt:function(r,i,n){return t(i).decrypt(e,r,i,n)}}}}()}),f=(r.StreamCipher=l.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),e.mode={}),u=r.BlockCipherMode=i.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),d=f.CBC=function(){var t=u.extend();function e(t,e,r){var i,n=this._iv;n?(i=n,this._iv=void 0):i=this._prevBlock;for(var o=0;o>>2];t.sigBytes-=e}},_=(r.BlockCipher=l.extend({cfg:l.cfg.extend({mode:d,padding:p}),reset:function(){var t;l.reset.call(this);var e=this.cfg,r=e.iv,i=e.mode;this._xformMode==this._ENC_XFORM_MODE?t=i.createEncryptor:(t=i.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==t?this._mode.init(this,r&&r.words):(this._mode=t.call(i,this,r&&r.words),this._mode.__creator=t)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t,e=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t},blockSize:4}),r.CipherParams=i.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),y=(e.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,r=t.salt;return(r?n.create([1398893684,1701076831]).concat(r).concat(e):e).toString(c)},parse:function(t){var e,r=c.parse(t),i=r.words;return 1398893684==i[0]&&1701076831==i[1]&&(e=n.create(i.slice(2,4)),i.splice(0,4),r.sigBytes-=16),_.create({ciphertext:r,salt:e})}},v=r.SerializableCipher=i.extend({cfg:i.extend({format:y}),encrypt:function(t,e,r,i){i=this.cfg.extend(i);var n=t.createEncryptor(r,i),o=n.finalize(e),s=n.cfg;return _.create({ciphertext:o,key:r,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,e,r,i){return i=this.cfg.extend(i),e=this._parse(e,i.format),t.createDecryptor(r,i).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),g=(e.kdf={}).OpenSSL={execute:function(t,e,r,i){i||(i=n.random(8));var o=h.create({keySize:e+r}).compute(t,i),s=n.create(o.words.slice(e),4*r);return o.sigBytes=4*e,_.create({key:o,iv:s,salt:i})}},w=r.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:g}),encrypt:function(t,e,r,i){var n=(i=this.cfg.extend(i)).kdf.execute(r,t.keySize,t.ivSize);i.iv=n.iv;var o=v.encrypt.call(this,t,e,n.key,i);return o.mixIn(n),o},decrypt:function(t,e,r,i){i=this.cfg.extend(i),e=this._parse(e,i.format);var n=i.kdf.execute(r,t.keySize,t.ivSize,e.salt);return i.iv=n.iv,v.decrypt.call(this,t,e,n.key,i)}})}(),a.mode.CFB=function(){var t=a.lib.BlockCipherMode.extend();function e(t,e,r,i){var n,o=this._iv;o?(n=o.slice(0),this._iv=void 0):n=this._prevBlock,i.encryptBlock(n,0);for(var s=0;s>>2]|=n<<24-o%4*8,t.sigBytes+=n},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},a.pad.Iso10126={pad:function(t,e){var r=4*e,i=r-t.sigBytes%r;t.concat(a.lib.WordArray.random(i-1)).concat(a.lib.WordArray.create([i<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},a.pad.Iso97971={pad:function(t,e){t.concat(a.lib.WordArray.create([2147483648],1)),a.pad.ZeroPadding.pad(t,e)},unpad:function(t){a.pad.ZeroPadding.unpad(t),t.sigBytes--}},a.mode.OFB=(r=a.lib.BlockCipherMode.extend(),i=r.Encryptor=r.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),r.encryptBlock(o,0);for(var s=0;s>>8^255&p^99,i[r]=p,n[p]=r;var _=t[r],y=t[_],v=t[y],g=257*t[p]^16843008*p;o[r]=g<<24|g>>>8,s[r]=g<<16|g>>>16,c[r]=g<<8|g>>>24,h[r]=g,g=16843009*v^65537*y^257*_^16843008*r,l[p]=g<<24|g>>>8,f[p]=g<<16|g>>>16,u[p]=g<<8|g>>>24,d[p]=g,r?(r=_^t[t[t[v^_]]],a^=t[t[a]]):r=a=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],_=r.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4,n=4*((this._nRounds=r+6)+1),o=this._keySchedule=[],s=0;s6&&s%r==4&&(h=i[h>>>24]<<24|i[h>>>16&255]<<16|i[h>>>8&255]<<8|i[255&h]):(h=i[(h=h<<8|h>>>24)>>>24]<<24|i[h>>>16&255]<<16|i[h>>>8&255]<<8|i[255&h],h^=p[s/r|0]<<24),o[s]=o[s-r]^h);for(var a=this._invKeySchedule=[],c=0;c>>24]]^f[i[h>>>16&255]]^u[i[h>>>8&255]]^d[i[255&h]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,o,s,c,h,i)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,l,f,u,d,n),r=t[e+1],t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,i,n,o,s,a){for(var c=this._nRounds,h=t[e]^r[0],l=t[e+1]^r[1],f=t[e+2]^r[2],u=t[e+3]^r[3],d=4,p=1;p>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&u]^r[d++],y=i[l>>>24]^n[f>>>16&255]^o[u>>>8&255]^s[255&h]^r[d++],v=i[f>>>24]^n[u>>>16&255]^o[h>>>8&255]^s[255&l]^r[d++],g=i[u>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^r[d++];h=_,l=y,f=v,u=g}_=(a[h>>>24]<<24|a[l>>>16&255]<<16|a[f>>>8&255]<<8|a[255&u])^r[d++],y=(a[l>>>24]<<24|a[f>>>16&255]<<16|a[u>>>8&255]<<8|a[255&h])^r[d++],v=(a[f>>>24]<<24|a[u>>>16&255]<<16|a[h>>>8&255]<<8|a[255&l])^r[d++],g=(a[u>>>24]<<24|a[h>>>16&255]<<16|a[l>>>8&255]<<8|a[255&f])^r[d++],t[e]=_,t[e+1]=y,t[e+2]=v,t[e+3]=g},keySize:8});t.AES=e._createHelper(_)}(),function(){var t=a,e=t.lib,r=e.WordArray,i=e.BlockCipher,n=t.algo,o=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],c=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],h=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],l=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],f=n.DES=i.extend({_doReset:function(){for(var t=this._key.words,e=[],r=0;r<56;r++){var i=o[r]-1;e[r]=t[i>>>5]>>>31-i%32&1}for(var n=this._subKeys=[],a=0;a<16;a++){var h=n[a]=[],l=c[a];for(r=0;r<24;r++)h[r/6|0]|=e[(s[r]-1+l)%28]<<31-r%6,h[4+(r/6|0)]|=e[28+(s[r+24]-1+l)%28]<<31-r%6;for(h[0]=h[0]<<1|h[0]>>>31,r=1;r<7;r++)h[r]=h[r]>>>4*(r-1)+3;h[7]=h[7]<<5|h[7]>>>27}var f=this._invSubKeys=[];for(r=0;r<16;r++)f[r]=n[15-r]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,r){this._lBlock=t[e],this._rBlock=t[e+1],u.call(this,4,252645135),u.call(this,16,65535),d.call(this,2,858993459),d.call(this,8,16711935),u.call(this,1,1431655765);for(var i=0;i<16;i++){for(var n=r[i],o=this._lBlock,s=this._rBlock,a=0,c=0;c<8;c++)a|=h[c][((s^n[c])&l[c])>>>0];this._lBlock=s,this._rBlock=o^a}var f=this._lBlock;this._lBlock=this._rBlock,this._rBlock=f,u.call(this,1,1431655765),d.call(this,8,16711935),d.call(this,2,858993459),u.call(this,16,65535),u.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function u(t,e){var r=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=r,this._lBlock^=r<>>t^this._lBlock)&e;this._lBlock^=r,this._rBlock^=r<192.");var e=t.slice(0,2),i=t.length<4?t.slice(0,2):t.slice(2,4),n=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=f.createEncryptor(r.create(e)),this._des2=f.createEncryptor(r.create(i)),this._des3=f.createEncryptor(r.create(n))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});t.TripleDES=i._createHelper(p)}(),function(){var t=a,e=t.lib.StreamCipher,r=t.algo,i=r.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,r=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;n=0;for(var o=0;n<256;n++){var s=n%r,a=e[s>>>2]>>>24-s%4*8&255;o=(o+i[n]+a)%256;var c=i[n];i[n]=i[o],i[o]=c}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=n.call(this)},keySize:8,ivSize:0});function n(){for(var t=this._S,e=this._i,r=this._j,i=0,n=0;n<4;n++){r=(r+t[e=(e+1)%256])%256;var o=t[e];t[e]=t[r],t[r]=o,i|=t[(t[e]+t[r])%256]<<24-8*n}return this._i=e,this._j=r,i}t.RC4=e._createHelper(i);var o=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)n.call(this)}});t.RC4Drop=e._createHelper(o)}(), +/** @preserve + * Counter block mode compatible with Dr Brian Gladman fileenc.c + * derived from CryptoJS.mode.CTR + * Jan Hruby jhruby.web@gmail.com + */ +a.mode.CTRGladman=function(){var t=a.lib.BlockCipherMode.extend();function e(t){if(255==(t>>24&255)){var e=t>>16&255,r=t>>8&255,i=255&t;255===e?(e=0,255===r?(r=0,255===i?i=0:++i):++r):++e,t=0,t+=e<<16,t+=r<<8,t+=i}else t+=1<<24;return t}var r=t.Encryptor=t.extend({processBlock:function(t,r){var i=this._cipher,n=i.blockSize,o=this._iv,s=this._counter;o&&(s=this._counter=o.slice(0),this._iv=void 0),function(t){0===(t[0]=e(t[0]))&&(t[1]=e(t[1]))}(s);var a=s.slice(0);i.encryptBlock(a,0);for(var c=0;c>>24)|4278255360&(t[r]<<24|t[r]>>>8);var i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(this._b=0,r=0;r<4;r++)c.call(this);for(r=0;r<8;r++)n[r]^=i[r+4&7];if(e){var o=e.words,s=o[0],a=o[1],h=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;for(n[0]^=h,n[1]^=f,n[2]^=l,n[3]^=u,n[4]^=h,n[5]^=f,n[6]^=l,n[7]^=u,r=0;r<4;r++)c.call(this)}},_doProcessBlock:function(t,e){var r=this._X;c.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),t[e+n]^=i[n]},blockSize:4,ivSize:2});function c(){for(var t=this._X,e=this._C,r=0;r<8;r++)n[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],s=65535&i,a=i>>>16,c=((s*s>>>17)+s*a>>>15)+a*a,h=((4294901760&i)*i|0)+((65535&i)*i|0);o[r]=c^h}t[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,t[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,t[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,t[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,t[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,t[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,t[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,t[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}t.Rabbit=e._createHelper(s)}(),a.mode.CTR=function(){var t=a.lib.BlockCipherMode.extend(),e=t.Encryptor=t.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);r.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var a=0;a>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var n=0;n<4;n++)c.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(e){var o=e.words,s=o[0],a=o[1],h=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;for(i[0]^=h,i[1]^=f,i[2]^=l,i[3]^=u,i[4]^=h,i[5]^=f,i[6]^=l,i[7]^=u,n=0;n<4;n++)c.call(this)}},_doProcessBlock:function(t,e){var r=this._X;c.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),t[e+n]^=i[n]},blockSize:4,ivSize:2});function c(){for(var t=this._X,e=this._C,r=0;r<8;r++)n[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],s=65535&i,a=i>>>16,c=((s*s>>>17)+s*a>>>15)+a*a,h=((4294901760&i)*i|0)+((65535&i)*i|0);o[r]=c^h}t[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,t[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,t[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,t[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,t[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,t[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,t[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,t[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}t.RabbitLegacy=e._createHelper(s)}(),a.pad.ZeroPadding={pad:function(t,e){var r=4*e;t.clamp(),t.sigBytes+=r-(t.sigBytes%r||r)},unpad:function(t){var e=t.words,r=t.sigBytes-1;for(r=t.sigBytes-1;r>=0;r--)if(e[r>>>2]>>>24-r%4*8&255){t.sigBytes=r+1;break}}},a)}));return function(){function e(r){t(this,e);var i=r.logger,n=r.isArray,o=r.isMap,s=r.isDevMode;this._isArray=n,this._isMap=o,this._isDevMode=s,i.log("TIMProfanityFilterPlugin.VERSION:".concat("0.9.0")),this._interceptProfanityList=[],this._interceptFilter=null,this._interceptRegExpList=[],this._replacingProfanityMap=new Map,this._replacingFilter=null,this._replacingRegExpMap=new Map,this._key="",this._iv="",this._decryptOptions=void 0}return r(e,[{key:"onToken",value:function(t){this._key=u.enc.Utf8.parse(t.slice(0,32)),this._iv=this._key,this._decryptOptions={iv:this._iv,mode:u.mode.CBC,padding:u.pad.Pkcs7}}},{key:"onLexiconSliced",value:function(t){if(this._isArray(t)&&0!==t.length){var e,r,i,n=a(t);try{for(n.s();!(i=n.n()).done;){var o=i.value,s=o.filterType,c=o.profanityType,h=o.profanity,l=o.replacement;e=this._getDecryptedString(h),r=this._getDecryptedString(l),1===s?1===c?this._interceptProfanityList.push(e):2===c&&this._interceptRegExpList.push(e):2===s&&(1===c?this._replacingProfanityMap.set(e,r):2===c&&this._replacingRegExpMap.set(e,r))}}catch(f){n.e(f)}finally{n.f()}}}},{key:"_getDecryptedString",value:function(t){var e=u.AES.decrypt(t,this._key,this._decryptOptions);return u.enc.Utf8.stringify(e).toLowerCase()}},{key:"onLexiconCompleted",value:function(t){this.onLexiconSliced(t),this._interceptFilter=new h({input:this._interceptProfanityList,isArray:this._isArray,isMap:this._isMap}),this._replacingFilter=new h({input:this._replacingProfanityMap,isArray:this._isArray,isMap:this._isMap}),!0===this._isDevMode&&(console.log("TIMProfanityFilterPlugin _interceptProfanityList ->",this._interceptProfanityList),console.log("TIMProfanityFilterPlugin _interceptRegExpList ->",this._interceptRegExpList),console.log("TIMProfanityFilterPlugin _replacingProfanityMap ->",this._replacingProfanityMap),console.log("TIMProfanityFilterPlugin _replacingRegExpMap ->",this._replacingRegExpMap))}},{key:"filter",value:function(t){var e={type:0,modifiedText:t};if(!0===this._interceptFilter.filter({text:t,replacingEnabled:!1}).isMatched)return e.type=1,e;for(var r=!1,n=0,o=this._interceptRegExpList.length;n=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var f="undefined"!=typeof wx&&"function"==typeof wx.getSystemInfoSync&&Boolean(wx.getSystemInfoSync().fontSizeSetting),u="undefined"!=typeof qq&&"function"==typeof qq.getSystemInfoSync&&Boolean(qq.getSystemInfoSync().fontSizeSetting),l="undefined"!=typeof tt&&"function"==typeof tt.getSystemInfoSync&&Boolean(tt.getSystemInfoSync().fontSizeSetting),c="undefined"!=typeof swan&&"function"==typeof swan.getSystemInfoSync&&Boolean(swan.getSystemInfoSync().fontSizeSetting),y="undefined"!=typeof my&&"function"==typeof my.getSystemInfoSync&&Boolean(my.getSystemInfoSync().fontSizeSetting),d="undefined"!=typeof uni&&"undefined"==typeof window,p=f||u||l||c||y||d,g=u?qq:l?tt:c?swan:y?my:f?wx:d?uni:{},h=function(e){if("object"!==n(e)||null===e)return!1;var t=Object.getPrototypeOf(e);if(null===t)return!0;for(var o=t;null!==Object.getPrototypeOf(o);)o=Object.getPrototypeOf(o);return t===o};function m(e){if(null==e)return!0;if("boolean"==typeof e)return!1;if("number"==typeof e)return 0===e;if("string"==typeof e)return 0===e.length;if("function"==typeof e)return 0===e.length;if(Array.isArray(e))return 0===e.length;if(e instanceof Error)return""===e.message;if(h(e)){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}return!1}var b=function(){function e(){o(this,e)}return a(e,[{key:"request",value:function(e,t){var n=this,o=e.downloadUrl||"",r=(e.method||"PUT").toUpperCase(),a=e.url;if(e.qs){var s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"&",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"=";return m(e)?"":h(e)?Object.keys(e).map((function(o){var r=encodeURIComponent(o)+n;return Array.isArray(e[o])?e[o].map((function(e){return r+encodeURIComponent(e)})).join(t):r+encodeURIComponent(e[o])})).filter(Boolean).join(t):void 0}(e.qs);s&&(a+="".concat(-1===a.indexOf("?")?"?":"&").concat(s))}var i=new XMLHttpRequest;i.open(r,a,!0),i.responseType=e.dataType||"text";var f=e.headers||{};if(!m(f))for(var u in f)f.hasOwnProperty(u)&&"content-length"!==u.toLowerCase()&&"user-agent"!==u.toLowerCase()&&"origin"!==u.toLowerCase()&&"host"!==u.toLowerCase()&&i.setRequestHeader(u,f[u]);return i.onload=function(){if(200===i.status)t(null,n._xhrRes(i,n._xhrBody(i,o)));else{var e={code:i.status,message:JSON.stringify(i.responseText)};t(e,n._xhrRes(i,n._xhrBody(i)))}},i.onerror=function(e){var o=n._xhrBody(i),r={code:i.status,message:JSON.stringify(i.responseText)};o||i.statusText||0!==i.status||(e.message="CORS blocked or network error"),t(r,n._xhrRes(i,o)),r=null},e.onProgress&&i.upload&&(i.upload.onprogress=function(t){var n=t.total,o=t.loaded,r=Math.floor(100*o/n);e.onProgress({total:n,loaded:o,percent:(r>=100?100:r)/100})}),i.send(e.resources),i}},{key:"_xhrRes",value:function(e,t){var n={};return e.getAllResponseHeaders().trim().split("\n").forEach((function(e){if(e){var t=e.indexOf(":"),o=e.substr(0,t).trim().toLowerCase(),r=e.substr(t+1).trim();n[o]=r}})),{statusCode:e.status,statusMessage:e.statusText,headers:n,data:t}}},{key:"_xhrBody",value:function(e,t){return 200===e.status&&t?{location:t}:{response:e.responseText}}}]),e}(),v=["unknown","image","video","audio","log"],O=["name"],S=function(){function e(){o(this,e)}return a(e,[{key:"request",value:function(e,n){var o=this,r=e.resources,a=void 0===r?"":r,s=e.headers,f=void 0===s?{}:s,u=e.url,l=e.downloadUrl,c=void 0===l?"":l,d=null,p="",h=c.match(/^(https?:\/\/[^/]+\/)([^/]*\/?)(.*)$/),m={url:u,header:f,name:"file",filePath:a,formData:{key:p=(p=decodeURIComponent(h[3])).indexOf("?")>-1?p.split("?")[0]:p,success_action_status:200,"Content-Type":""},timeout:e.timeout||3e5};if(y){var b=m;b.name,m=t(t({},i(b,O)),{},{fileName:"file",fileType:v[e.fileType]})}return(d=g.uploadFile(t(t({},m),{},{success:function(e){o._handleResponse({response:e,downloadUrl:c,callback:n})},fail:function(e){o._handleResponse({response:e,downloadUrl:c,callback:n})}}))).onProgressUpdate((function(t){e.onProgress&&e.onProgress({total:t.totalBytesExpectedToSend,loaded:t.totalBytesSent,percent:Math.floor(t.progress)/100})})),d}},{key:"_handleResponse",value:function(e){var n=e.downloadUrl,o=e.response,r=e.callback,a=o.header,s={};if(a)for(var i in a)a.hasOwnProperty(i)&&(s[i.toLowerCase()]=a[i]);var f=+o.statusCode;200===f?r(null,{statusCode:f,headers:s,data:t(t({},o.data),{},{location:n})}):r({code:f,message:JSON.stringify(o.data)},{statusCode:f,headers:s,data:void 0})}}]),e}();return function(){function e(){o(this,e),console.log("TIMUploadPlugin.VERSION: ".concat("1.0.6")),this.retry=1,this.tryCount=0,this.systemClockOffset=0,this.httpRequest=p?new S:new b}return a(e,[{key:"uploadFile",value:function(e,t){var n=this;return this.httpRequest.request(e,(function(o,r){o&&n.tryCount=3e4&&(this.systemClockOffset=i-s,t=!0)}else 5===Math.floor(e.statusCode/100)&&(t=!0)}return t}}]),e}()},"object"==typeof exports&&"undefined"!=typeof module?module.exports=factory():"function"==typeof define&&define.amd?define(factory):(global=global||self).TIMUploadPlugin=factory(); diff --git a/TUIService/TUIKit/lib/tim-wx-sdk.js b/TUIService/TUIKit/lib/tim-wx-sdk.js new file mode 100644 index 0000000..8639a34 --- /dev/null +++ b/TUIService/TUIKit/lib/tim-wx-sdk.js @@ -0,0 +1 @@ +'use strict';!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).TIM=t()}(this,(function(){function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function t(t){for(var n=1;n=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function h(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return h(e)}function f(e){var t=l();return function(){var n,o=u(e);if(t){var s=u(this).constructor;n=Reflect.construct(o,arguments,s)}else n=o.apply(this,arguments);return _(this,n)}}function v(e,t){return M(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var o,s,a=[],r=!0,i=!1;try{for(n=n.call(e);!(r=(o=n.next()).done)&&(a.push(o.value),!t||a.length!==t);r=!0);}catch(u){i=!0,s=u}finally{try{r||null==n.return||n.return()}finally{if(i)throw s}}return a}(e,t)||I(e,t)||T()}function m(e){return function(e){if(Array.isArray(e))return C(e)}(e)||y(e)||I(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function M(e){if(Array.isArray(e))return e}function y(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function I(e,t){if(e){if("string"==typeof e)return C(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?C(e,t):void 0}}function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:s}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,r=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return r=e.done,e},e:function(e){i=!0,a=e},f:function(){try{r||null==n.return||n.return()}finally{if(i)throw a}}}}var k={SDK_READY:"sdkStateReady",SDK_NOT_READY:"sdkStateNotReady",SDK_DESTROY:"sdkDestroy",MESSAGE_RECEIVED:"onMessageReceived",MESSAGE_MODIFIED:"onMessageModified",MESSAGE_REVOKED:"onMessageRevoked",MESSAGE_READ_BY_PEER:"onMessageReadByPeer",MESSAGE_READ_RECEIPT_RECEIVED:"onMessageReadReceiptReceived",MESSAGE_EXTENSIONS_UPDATED:"onMessageExtensionsUpdated",MESSAGE_EXTENSIONS_DELETED:"onMessageExtensionsDeleted",CONVERSATION_LIST_UPDATED:"onConversationListUpdated",TOTAL_UNREAD_MESSAGE_COUNT_UPDATED:"onTotalUnreadMessageCountUpdated",CONVERSATION_GROUP_LIST_UPDATED:"onConversationGroupListUpdated",CONVERSATION_IN_GROUP_UPDATED:"onConversationInGroupUpdated",GROUP_LIST_UPDATED:"onGroupListUpdated",GROUP_SYSTEM_NOTICE_RECEIVED:"receiveGroupSystemNotice",GROUP_ATTRIBUTES_UPDATED:"groupAttributesUpdated",GROUP_COUNTER_UPDATED:"onGroupCounterUpdated",TOPIC_CREATED:"onTopicCreated",TOPIC_DELETED:"onTopicDeleted",TOPIC_UPDATED:"onTopicUpdated",PROFILE_UPDATED:"onProfileUpdated",USER_STATUS_UPDATED:"onUserStatusUpdated",BLACKLIST_UPDATED:"blacklistUpdated",FRIEND_LIST_UPDATED:"onFriendListUpdated",FRIEND_GROUP_LIST_UPDATED:"onFriendGroupListUpdated",FRIEND_APPLICATION_LIST_UPDATED:"onFriendApplicationListUpdated",KICKED_OUT:"kickedOut",ERROR:"error",NET_STATE_CHANGE:"netStateChange",SDK_RELOAD:"sdkReload"},S={MSG_TEXT:"TIMTextElem",MSG_IMAGE:"TIMImageElem",MSG_SOUND:"TIMSoundElem",MSG_AUDIO:"TIMSoundElem",MSG_FILE:"TIMFileElem",MSG_FACE:"TIMFaceElem",MSG_VIDEO:"TIMVideoFileElem",MSG_GEO:"TIMLocationElem",MSG_LOCATION:"TIMLocationElem",MSG_GRP_TIP:"TIMGroupTipElem",MSG_GRP_SYS_NOTICE:"TIMGroupSystemNoticeElem",MSG_CUSTOM:"TIMCustomElem",MSG_MERGER:"TIMRelayElem",MSG_PRIORITY_HIGH:"High",MSG_PRIORITY_NORMAL:"Normal",MSG_PRIORITY_LOW:"Low",MSG_PRIORITY_LOWEST:"Lowest",CONV_C2C:"C2C",CONV_GROUP:"GROUP",CONV_TOPIC:"TOPIC",CONV_SYSTEM:"@TIM#SYSTEM",CONV_AT_ME:1,CONV_AT_ALL:2,CONV_AT_ALL_AT_ME:3,CONV_MARK_TYPE_STAR:1,CONV_MARK_TYPE_UNREAD:2,CONV_MARK_TYPE_FOLD:4,CONV_MARK_TYPE_HIDE:8,GRP_PRIVATE:"Private",GRP_WORK:"Private",GRP_PUBLIC:"Public",GRP_CHATROOM:"ChatRoom",GRP_MEETING:"ChatRoom",GRP_AVCHATROOM:"AVChatRoom",GRP_COMMUNITY:"Community",GRP_MBR_ROLE_OWNER:"Owner",GRP_MBR_ROLE_ADMIN:"Admin",GRP_MBR_ROLE_MEMBER:"Member",GRP_MBR_ROLE_CUSTOM:"Custom",GRP_TIP_MBR_JOIN:1,GRP_TIP_MBR_QUIT:2,GRP_TIP_MBR_KICKED_OUT:3,GRP_TIP_MBR_SET_ADMIN:4,GRP_TIP_MBR_CANCELED_ADMIN:5,GRP_TIP_GRP_PROFILE_UPDATED:6,GRP_TIP_MBR_PROFILE_UPDATED:7,GRP_TIP_BAN_AVCHATROOM_MEMBER:10,GRP_TIP_UNBAN_AVCHATROOM_MEMBER:11,MSG_REMIND_ACPT_AND_NOTE:"AcceptAndNotify",MSG_REMIND_ACPT_NOT_NOTE:"AcceptNotNotify",MSG_REMIND_DISCARD:"Discard",GENDER_UNKNOWN:"Gender_Type_Unknown",GENDER_FEMALE:"Gender_Type_Female",GENDER_MALE:"Gender_Type_Male",KICKED_OUT_MULT_ACCOUNT:"multipleAccount",KICKED_OUT_MULT_DEVICE:"multipleDevice",KICKED_OUT_USERSIG_EXPIRED:"userSigExpired",KICKED_OUT_REST_API:"REST_API_Kick",ALLOW_TYPE_ALLOW_ANY:"AllowType_Type_AllowAny",ALLOW_TYPE_NEED_CONFIRM:"AllowType_Type_NeedConfirm",ALLOW_TYPE_DENY_ANY:"AllowType_Type_DenyAny",FORBID_TYPE_NONE:"AdminForbid_Type_None",FORBID_TYPE_SEND_OUT:"AdminForbid_Type_SendOut",JOIN_OPTIONS_FREE_ACCESS:"FreeAccess",JOIN_OPTIONS_NEED_PERMISSION:"NeedPermission",JOIN_OPTIONS_DISABLE_APPLY:"DisableApply",JOIN_STATUS_SUCCESS:"JoinedSuccess",JOIN_STATUS_ALREADY_IN_GROUP:"AlreadyInGroup",JOIN_STATUS_WAIT_APPROVAL:"WaitAdminApproval",INVITE_OPTIONS_DISABLE_INVITE:"DisableInvite",INVITE_OPTIONS_NEED_PERMISSION:"NeedPermission",INVITE_OPTIONS_FREE_ACCESS:"FreeAccess",GRP_PROFILE_OWNER_ID:"ownerID",GRP_PROFILE_CREATE_TIME:"createTime",GRP_PROFILE_LAST_INFO_TIME:"lastInfoTime",GRP_PROFILE_MEMBER_NUM:"memberNum",GRP_PROFILE_MAX_MEMBER_NUM:"maxMemberNum",GRP_PROFILE_JOIN_OPTION:"joinOption",GRP_PROFILE_INVITE_OPTION:"inviteOption",GRP_PROFILE_INTRODUCTION:"introduction",GRP_PROFILE_NOTIFICATION:"notification",GRP_PROFILE_MUTE_ALL_MBRS:"muteAllMembers",SNS_ADD_TYPE_SINGLE:"Add_Type_Single",SNS_ADD_TYPE_BOTH:"Add_Type_Both",SNS_DELETE_TYPE_SINGLE:"Delete_Type_Single",SNS_DELETE_TYPE_BOTH:"Delete_Type_Both",SNS_APPLICATION_TYPE_BOTH:"Pendency_Type_Both",SNS_APPLICATION_SENT_TO_ME:"Pendency_Type_ComeIn",SNS_APPLICATION_SENT_BY_ME:"Pendency_Type_SendOut",SNS_APPLICATION_AGREE:"Response_Action_Agree",SNS_APPLICATION_AGREE_AND_ADD:"Response_Action_AgreeAndAdd",SNS_CHECK_TYPE_BOTH:"CheckResult_Type_Both",SNS_CHECK_TYPE_SINGLE:"CheckResult_Type_Single",SNS_TYPE_NO_RELATION:"CheckResult_Type_NoRelation",SNS_TYPE_A_WITH_B:"CheckResult_Type_AWithB",SNS_TYPE_B_WITH_A:"CheckResult_Type_BWithA",SNS_TYPE_BOTH_WAY:"CheckResult_Type_BothWay",NET_STATE_CONNECTED:"connected",NET_STATE_CONNECTING:"connecting",NET_STATE_DISCONNECTED:"disconnected",MSG_AT_ALL:"__kImSDK_MesssageAtALL__",READ_ALL_C2C_MSG:"readAllC2CMessage",READ_ALL_GROUP_MSG:"readAllGroupMessage",READ_ALL_MSG:"readAllMessage",USER_STATUS_UNKNOWN:0,USER_STATUS_ONLINE:1,USER_STATUS_OFFLINE:2,USER_STATUS_UNLOGINED:3},L=function(){function e(){o(this,e),this.cache=[],this.options=null}return a(e,[{key:"use",value:function(e){if("function"!=typeof e)throw"middleware must be a function";return this.cache.push(e),this}},{key:"next",value:function(e){if(this.middlewares&&this.middlewares.length>0)return this.middlewares.shift().call(this,this.options,this.next.bind(this))}},{key:"run",value:function(e){return this.middlewares=this.cache.map((function(e){return e})),this.options=e,this.next()}}]),e}(),E=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;o(this,e),this.high=t,this.low=n}return a(e,[{key:"equal",value:function(e){return null!==e&&(this.low===e.low&&this.high===e.high)}},{key:"toString",value:function(){var e=Number(this.high).toString(16),t=Number(this.low).toString(16);if(t.length<8)for(var n=8-t.length;n;)t="0"+t,n--;return e+t}}]),e}(),A={TEST:{CHINA:{DEFAULT:"wss://wss-dev.tim.qq.com"},OVERSEA:{DEFAULT:"wss://wss-dev.tim.qq.com"},SINGAPORE:{DEFAULT:"wss://wsssgp-dev.im.qcloud.com"},KOREA:{DEFAULT:"wss://wsskr-dev.im.qcloud.com"},GERMANY:{DEFAULT:"wss://wssger-dev.im.qcloud.com"},IND:{DEFAULT:"wss://wssind-dev.im.qcloud.com"},JPN:{DEFAULT:"wss://wssjpn-dev.im.qcloud.com"},USA:{DEFAULT:"wss://wssusa-dev.im.qcloud.com"}},PRODUCTION:{CHINA:{DEFAULT:"wss://wss.im.qcloud.com",BACKUP:"wss://wss.tim.qq.com",STAT:"https://events.im.qcloud.com",ANYCAST:"wss://162.14.13.203"},OVERSEA:{DEFAULT:"wss://wss.im.qcloud.com",BACKUP:"wss://wss.my-imcloud.com",STAT:"https://api.my-imcloud.com"},SINGAPORE:{DEFAULT:"wss://wsssgp.im.qcloud.com",BACKUP:"wss://wsssgp.my-imcloud.com",STAT:"https://apisgp.my-imcloud.com"},KOREA:{DEFAULT:"wss://wsskr.im.qcloud.com",BACKUP:"wss://wsskr.my-imcloud.com",STAT:"https://apikr.my-imcloud.com"},GERMANY:{DEFAULT:"wss://wssger.im.qcloud.com",BACKUP:"wss://wssger.my-imcloud.com",STAT:"https://apiger.my-imcloud.com"},IND:{DEFAULT:"wss://wssind.my-imcloud.com",BACKUP:"wss://wssind.im.qcloud.com",STAT:"https://apiind.my-imcloud.com"},JPN:{DEFAULT:"wss://wssjpn.im.qcloud.com",BACKUP:"wss://wssjpn.my-imcloud.com",STAT:"https://apijpn.my-imcloud.com"},USA:{DEFAULT:"wss://wssusa.im.qcloud.com",BACKUP:"wss://wssusa.my-imcloud.com",STAT:"https://apiusa.my-imcloud.com"}}},R={ANDROID:2,IOS:3,MAC:4,WEB:7,WX_MP:8,QQ_MP:9,TT_MP:10,BAIDU_MP:11,ALI_MP:12,IPAD:13,UNI_NATIVE_APP:15},N="1.7.3",O=537048168,G="CHINA",P="OVERSEA",U="SINGAPORE",b="KOREA",w="GERMANY",q="IND",F="JPN",x="USA",V={HOST:{CURRENT:{DEFAULT:"wss://wss.im.qcloud.com",STAT:"https://events.im.qcloud.com"},setCurrent:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:G;this.CURRENT=A.PRODUCTION[e]}},NAME:{OPEN_IM:"openim",OPEN_IM_MSG_EXT:"openim_msg_ext_http_svc",GROUP:"group_open_http_svc",GROUP_AVCHATROOM:"group_open_avchatroom_http_svc",GROUP_COMMUNITY:"million_group_open_http_svc",GROUP_ATTR:"group_open_attr_http_svc",FRIEND:"sns",PROFILE:"profile",RECENT_CONTACT:"recentcontact",PIC:"openpic",BIG_GROUP_NO_AUTH:"group_open_http_noauth_svc",BIG_GROUP_LONG_POLLING:"group_open_long_polling_http_svc",BIG_GROUP_LONG_POLLING_NO_AUTH:"group_open_long_polling_http_noauth_svc",IM_OPEN_STAT:"imopenstat",WEB_IM:"webim",IM_COS_SIGN:"im_cos_sign_svr",CUSTOM_UPLOAD:"im_cos_msg",HEARTBEAT:"heartbeat",IM_OPEN_PUSH:"im_open_push",IM_OPEN_STATUS:"im_open_status",IM_LONG_MESSAGE:"im_long_msg",IM_CONFIG_MANAGER:"im_sdk_config_mgr",STAT_SERVICE:"StatSvc",OVERLOAD_PUSH:"OverLoadPush",IM_MSG_AUDIT_MGR:"im_msg_audit_mgr",TUIROOM_SVR:"tui_room_svr",IM_OPEN_TRANSLATE:"im_open_translate"},CMD:{LOGIN:"wslogin",LOGOUT_LONG_POLL:"longpollinglogout",LOGOUT:"wslogout",HELLO:"wshello",STAT_BACKGROUND:"ws_stat_background",STAT_FOREGROUND:"ws_stat_foreground",SET_TOKEN:"ws_stat_settoken",PORTRAIT_GET:"portrait_get_all",PORTRAIT_SET:"portrait_set",GET_LONG_POLL_ID:"getlongpollingid",LONG_POLL:"longpolling",AVCHATROOM_LONG_POLL:"get_msg",ADD_FRIEND:"friend_add",UPDATE_FRIEND:"friend_update",GET_FRIEND_LIST:"friend_get",GET_FRIEND_PROFILE:"friend_get_specified",DELETE_FRIEND:"friend_delete",CHECK_FRIEND:"friend_check",GET_FRIEND_GROUP_LIST:"group_get",RESPOND_FRIEND_APPLICATION:"friend_response",GET_FRIEND_APPLICATION_LIST:"pendency_get",DELETE_FRIEND_APPLICATION:"pendency_delete",REPORT_FRIEND_APPLICATION:"pendency_report",GET_GROUP_APPLICATION:"get_pendency",CREATE_FRIEND_GROUP:"group_add",DELETE_FRIEND_GROUP:"group_delete",UPDATE_FRIEND_GROUP:"group_update",GET_BLACKLIST:"black_list_get",ADD_BLACKLIST:"black_list_add",DELETE_BLACKLIST:"black_list_delete",CREATE_GROUP:"create_group",GET_JOINED_GROUPS:"get_joined_group_list",SET_GROUP_ATTRIBUTES:"set_group_attr",MODIFY_GROUP_ATTRIBUTES:"modify_group_attr",DELETE_GROUP_ATTRIBUTES:"delete_group_attr",CLEAR_GROUP_ATTRIBUTES:"clear_group_attr",GET_GROUP_ATTRIBUTES:"get_group_attr",SEND_MESSAGE:"sendmsg",REVOKE_C2C_MESSAGE:"msgwithdraw",DELETE_C2C_MESSAGE:"delete_c2c_msg_ramble",MODIFY_C2C_MESSAGE:"modify_c2c_msg",MODIFY_C2C_MESSAGE_EXTENSIONS:"set_key_values",GET_C2C_MESSAGE_EXTENSIONS:"get_key_values",SEND_GROUP_MESSAGE:"send_group_msg",REVOKE_GROUP_MESSAGE:"group_msg_recall",DELETE_GROUP_MESSAGE:"delete_group_ramble_msg_by_seq",MODIFY_GROUP_MESSAGE:"modify_group_msg",MODIFY_GROUP_MESSAGE_EXTENSIONS:"group_set_key_values",GET_GROUP_MESSAGE_EXTENSIONS:"group_get_key_values",GET_GROUP_INFO:"get_group_self_member_info",GET_GROUP_MEMBER_INFO:"get_specified_group_member_info",GET_GROUP_MEMBER_LIST:"get_group_member_info",GET_AVCHATROOM_MEMBER_LIST:"get_members",MARK_AVCHATROOM_MEMBER_INFO:"modify_user_info",QUIT_GROUP:"quit_group",CHANGE_GROUP_OWNER:"change_group_owner",DESTROY_GROUP:"destroy_group",ADD_GROUP_MEMBER:"add_group_member",DELETE_GROUP_MEMBER:"delete_group_member",BAN_AVCHATROOM_MEMBER:"ban_group_member",SEARCH_GROUP_BY_ID:"get_group_public_info",APPLY_JOIN_GROUP:"apply_join_group",HANDLE_APPLY_JOIN_GROUP:"handle_apply_join_group",HANDLE_INVITE_JOIN_GROUP:"handle_invite_join_permission_group",HANDLE_GROUP_INVITATION:"handle_invite_join_group",MODIFY_GROUP_INFO:"modify_group_base_info",MODIFY_GROUP_MEMBER_INFO:"modify_group_member_info",DELETE_GROUP_SYSTEM_MESSAGE:"deletemsg",DELETE_GROUP_AT_TIPS:"deletemsg",GET_GROUP_NOTIFY:"get_group_notify",GET_CONVERSATION_LIST:"get",PAGING_GET_CONVERSATION_LIST:"page_get",DELETE_CONVERSATION:"batch_delete",CLEAR_HISTORY_MESSAGE:"clear_msg",PIN_CONVERSATION:"top",SET_CONVERSATION_CUSTOM_DATA:"mark_contact",MARK_CONVERSATION:"mark_contact",CREATE_CONVERSATION_GROUP:"create_contact_group",DELETE_CONVERSATION_GROUP:"del_contact_group",UPDATE_CONVERSATION_GROUP:"update_contact_group",GET_CONVERSATION_GROUP_LIST:"get_contact_group",GET_MESSAGES:"getmsg",GET_C2C_ROAM_MESSAGES:"getroammsg",SET_C2C_PEER_MUTE_NOTIFICATIONS:"set_c2c_peer_mute_notifications",GET_C2C_PEER_MUTE_NOTIFICATIONS:"get_c2c_peer_mute_notifications",GET_GROUP_ROAM_MESSAGES:"group_msg_get",GET_READ_RECEIPT:"get_group_msg_receipt",GET_READ_RECEIPT_DETAIL:"get_group_msg_receipt_detail",SEND_READ_RECEIPT:"group_msg_receipt",SEND_C2C_READ_RECEIPT:"c2c_msg_read_receipt",SET_C2C_MESSAGE_READ:"msgreaded",GET_PEER_READ_TIME:"get_peer_read_time",SET_GROUP_MESSAGE_READ:"msg_read_report",FILE_READ_AND_WRITE_AUTHKEY:"authkey",FILE_UPLOAD:"pic_up",COS_SIGN:"cos",COS_PRE_SIG:"pre_sig",VIDEO_COVER:"video_cover",TIM_WEB_REPORT_V2:"tim_web_report_v2",BIG_DATA_HALLWAY_AUTH_KEY:"authkey",GET_ONLINE_MEMBER_NUM:"get_online_member_num",ALIVE:"alive",MESSAGE_PUSH:"msg_push",MULTI_MESSAGE_PUSH:"multi_msg_push_ws",MESSAGE_PUSH_ACK:"ws_msg_push_ack",STATUS_FORCE_OFFLINE:"stat_forceoffline",DOWNLOAD_MERGER_MESSAGE:"get_relay_json_msg",UPLOAD_MERGER_MESSAGE:"save_relay_json_msg",FETCH_CLOUD_CONTROL_CONFIG:"fetch_config",PUSHED_CLOUD_CONTROL_CONFIG:"push_configv2",FETCH_COMMERCIAL_CONFIG:"fetch_imsdk_purchase_bitsv2",PUSHED_COMMERCIAL_CONFIG:"push_imsdk_purchase_bitsv2",KICK_OTHER:"KickOther",OVERLOAD_NOTIFY:"notify2",SET_ALL_MESSAGE_READ:"read_all_unread_msg",CREATE_TOPIC:"create_topic",DELETE_TOPIC:"destroy_topic",UPDATE_TOPIC_PROFILE:"modify_topic",GET_TOPIC_LIST:"get_topic",SET_SELF_STATUS:"ws_set_custom_status",GET_USER_STATUS:"ws_get_user_status",SUBSCRIBE_USER_STATUS:"ws_status_subscribe",UNSUBSCRIBE_USER_STATUS:"ws_status_unsubscribe",GET_RPOFANITY_LIST:"get_local_words",TRANSLATE_TEXT:"ws_batch_trans_text",UPDATE_GROUP_COUNTER:"update_group_counter",GET_GROUP_COUNTER:"get_group_counter"},CHANNEL:{SOCKET:1,XHR:2,AUTO:0},NAME_VERSION:{openim:"v4",group_open_http_svc:"v4",sns:"v4",profile:"v4",recentcontact:"v4",openpic:"v4",group_open_http_noauth_svc:"v4",group_open_long_polling_http_svc:"v4",group_open_long_polling_http_noauth_svc:"v4",imopenstat:"v4",im_cos_sign_svr:"v4",im_cos_msg:"v4",webim:"v4",im_open_push:"v4",im_open_status:"v4"}},B={SEARCH_MSG:new E(0,Math.pow(2,0)).toString(),SEARCH_GRP_SNS:new E(0,Math.pow(2,1)).toString(),AVCHATROOM_HISTORY_MSG:new E(0,Math.pow(2,2)).toString(),GRP_COMMUNITY:new E(0,Math.pow(2,3)).toString(),MSG_TO_SPECIFIED_GRP_MBR:new E(0,Math.pow(2,4)).toString(),AVCHATROOM_MBR_LIST:new E(0,Math.pow(2,6)).toString(),USER_STATUS:new E(0,Math.pow(2,7)).toString(),CONV_MARK:new E(0,Math.pow(2,9)).toString(),CONV_GROUP:new E(0,Math.pow(2,10)).toString(),AVCHATROOM_BAN_MBR:new E(0,Math.pow(2,11)).toString(),MSG_EXT:new E(0,Math.pow(2,13)).toString(),GRP_COUNTER:new E(0,Math.pow(2,15)).toString()},H="c2c_text_message",K="c2c_custom_message",W="group_text_message",j="group_custom_message",Y="user_profile",z="group_profile",J="group_member_profile";V.HOST.setCurrent(G);var X,Q,Z,$,ee="undefined"!=typeof wx&&"function"==typeof wx.getSystemInfoSync&&Boolean(wx.getSystemInfoSync().fontSizeSetting),te="undefined"!=typeof qq&&"function"==typeof qq.getSystemInfoSync&&Boolean(qq.getSystemInfoSync().fontSizeSetting),ne="undefined"!=typeof tt&&"function"==typeof tt.getSystemInfoSync&&Boolean(tt.getSystemInfoSync().fontSizeSetting),oe="undefined"!=typeof swan&&"function"==typeof swan.getSystemInfoSync&&Boolean(swan.getSystemInfoSync().fontSizeSetting),se="undefined"!=typeof my&&"function"==typeof my.getSystemInfoSync&&Boolean(my.getSystemInfoSync().fontSizeSetting),ae="undefined"!=typeof jd&&"function"==typeof jd.getSystemInfoSync,re="undefined"!=typeof uni&&"undefined"==typeof window,ie="undefined"!=typeof uni,ue=ee||te||ne||oe||se||re||ae,ce=("undefined"!=typeof uni||"undefined"!=typeof window)&&!ue,le=te?qq:ne?tt:oe?swan:se?my:ee?wx:re?uni:ae?jd:{},pe=ce&&window&&window.navigator&&window.navigator.userAgent||"",de=/(micromessenger|webbrowser)/i.test(pe),ge=/AppleWebKit\/([\d.]+)/i.exec(pe),he=(ge&&parseFloat(ge.pop()),X="WEB",de?X="WEB":te?X="QQ_MP":ne?X="TT_MP":oe?X="BAIDU_MP":se?X="ALI_MP":ee?X="WX_MP":re&&(X="UNI_NATIVE_APP"),R[X]),_e=/iPad/i.test(pe),fe=/iPhone/i.test(pe)&&!_e,ve=/iPod/i.test(pe),me=fe||_e||ve,Me=(Q=pe.match(/OS (\d+)_/i))&&Q[1]?Q[1]:null,ye=/Android/i.test(pe),Ie=function(){var e=pe.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!e)return null;var t=e[1]&&parseFloat(e[1]),n=e[2]&&parseFloat(e[2]);return t&&n?parseFloat(e[1]+"."+e[2]):t||null}(),Ce=(ye&&/webkit/i.test(pe),/Firefox/i.test(pe),/Edge/i.test(pe)),Te=!Ce&&/Chrome/i.test(pe),De=(function(){var e=pe.match(/Chrome\/(\d+)/);e&&e[1]&&parseFloat(e[1])}(),/MSIE/.test(pe)||pe.indexOf("Trident")>-1&&pe.indexOf("rv:11.0")>-1),ke=(/MSIE\s8\.0/.test(pe),function(){var e=/MSIE\s(\d+)\.\d/.exec(pe),t=e&&parseFloat(e[1]);return!t&&/Trident\/7.0/i.test(pe)&&/rv:11.0/.test(pe)&&(t=11),t}()),Se=(/Safari/i.test(pe),/TBS\/\d+/i.test(pe)),Le=(function(){var e=pe.match(/TBS\/(\d+)/i);if(e&&e[1])e[1]}(),!Se&&/MQQBrowser\/\d+/i.test(pe),!Se&&/ QQBrowser\/\d+/i.test(pe),/Windows/i.test(pe)),Ee=/MAC OS X/i.test(pe),Ae=(/MicroMessenger/i.test(pe),ce&&"undefined"!=typeof Worker&&!De),Re=ye||me,Ne=ce&&void 0!==window.tencent_cloud_im_csig_flutter_for_web_25F_cy;Z="undefined"!=typeof console?console:"undefined"!=typeof global&&global.console?global.console:"undefined"!=typeof window&&window.console?window.console:{};for(var Oe=function(){},Ge=["assert","clear","count","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],Pe=Ge.length;Pe--;)$=Ge[Pe],console[$]||(Z[$]=Oe);var Ue=Z,be=0,we=function(){return(new Date).getTime()+be},qe=function(){be=0},Fe=function(){return Math.floor(we()/1e3)},xe=0;function Ve(){return zt()?"%c TIM %c":"TIM"}function Be(){var e,t=((e=new Date).setTime(we()),e);return t.toLocaleTimeString("en-US",{hour12:!1})+"."+function(e){var t;switch(e.toString().length){case 1:t="00"+e;break;case 2:t="0"+e;break;default:t=e}return t}(t.getMilliseconds())}var He={arguments2String:function(e){var t="";if(1===e.length)t=e[0];else for(var n=0,o=e.length;n4294967295?(ht+=4294967295,Date.now()-ht):e},ft=function e(t,n,o,s){if(!ct(t)||!ct(n))return 0;for(var a,r=0,i=Object.keys(n),u=0,c=i.length;u=0?o[a]=t[a]:o[a]=e(t[a])):o[a]=void 0:o[a]=null;return o};function St(e,t){it(e)&&it(t)&&t.forEach((function(t){var n=t.key,o=t.value,s=e.find((function(e){return e.key===n}));s?s.value=o:e.push({key:n,value:o})}))}var Lt=function(e){return e===S.GRP_AVCHATROOM},Et=function(e){var t=e.type,n=e.groupID;return t===S.GRP_COMMUNITY||"".concat(n).startsWith(Qe)&&!"".concat(n).includes(Ze)},At=function(e){return"".concat(e).startsWith(Qe)&&"".concat(e).includes(Ze)},Rt=function(e){return st(e)&&e.slice(0,3)===S.CONV_C2C},Nt=function(e){return st(e)&&e.slice(0,5)===S.CONV_GROUP},Ot=function(e){return st(e)&&e===S.CONV_SYSTEM};function Gt(e,t){var n={};return Object.keys(e).forEach((function(o){n[o]=t(e[o],o)})),n}function Pt(e){return ue?new Promise((function(t,n){le.getImageInfo({src:e,success:function(e){t({width:e.width,height:e.height})},fail:function(){t({width:0,height:0})}})})):De&&9===ke?Promise.resolve({width:0,height:0}):new Promise((function(t,n){var o=new Image;o.onload=function(){t({width:this.width,height:this.height}),o=null},o.onerror=function(){t({width:0,height:0}),o=null},o.src=e}))}function Ut(){function e(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return"".concat(e()+e()).concat(e()).concat(e()).concat(e()).concat(e()).concat(e()).concat(e())}function bt(){var e="unknown";if(Ee&&(e="mac"),Le&&(e="windows"),me&&(e="ios"),ye&&(e="android"),ue)try{var t=le.getSystemInfoSync().platform;void 0!==t&&(e=t)}catch(n){}return e}function wt(e,t){e=e.split("."),t=t.split(".");for(var n=Math.max(e.length,t.length);e.lengtha)return 1;if(s-1?"".concat(n,"&"):"".concat(n,"?");c.url="".concat(l,198===r?"imageView2/3/w/198/h/198":"imageView2/3/w/720/h/720")}return ut(n)?g(c,$e):c}function Ft(e){var t=e[2];e[2]=e[1],e[1]=t;for(var n=0;n=0;o--)"1"===e[o]&&t.push(Math.pow(2,n-o-1));return t}function zt(){return!De&&!ue}function Jt(e){return"the length of userIDList cannot exceed ".concat(e)}function Xt(e,t){if(e){var n=e;return t&&(e.startsWith("http://")?n=e.replace(/^http:\/\/[^/]+/,t):e.startsWith("https://")&&(n=e.replace(/^https:\/\/[^/]+/,t))),n}}var Qt=Object.prototype.hasOwnProperty;function Zt(e){if(null==e)return!0;if("boolean"==typeof e)return!1;if("number"==typeof e)return 0===e;if("string"==typeof e)return 0===e.length;if("function"==typeof e)return 0===e.length;if(Array.isArray(e))return 0===e.length;if(e instanceof Error)return""===e.message;if(rt(e)){for(var t in e)if(Qt.call(e,t))return!1;return!0}return!(!et(e)&&(n=e,"set"!==dt(n))&&!nt(e))&&0===e.size;var n}function $t(e,t,n){if(void 0===t)return!0;var o=!0;if(rt(t))Object.keys(t).forEach((function(s){var a=1===e.length?e[0][s]:void 0;o=!!en(a,t[s],n,s)&&o}));else if(it(t))for(var s=0;s256)||(an({api:"setConversationCustomData",param:"customData",desc:vn("customData",256)}),!1):(an({api:"setConversationCustomData",param:"customData",desc:rn()}),!1)}}},markConversation:{conversationIDList:t({},Ln),markType:{type:"number",validator:function(e){return ot(e)?e<=0?(an({api:"markConversation",param:"markType",desc:(t="markType",n=0,Nn("NumberGreaterThanLog",t,n))}),!1):!(e>=Math.pow(2,64))||(an({api:"markConversation",param:"markType",desc:mn("markType","Math.pow(2,64)")}),!1):(an({api:"markConversation",param:"markType",desc:cn()}),!1);var t,n}},enableMark:t({},An)},createConversationGroup:{conversationIDList:t({},Ln),groupName:t(t({},Sn),{},{validator:function(e){return!!e&&(!(e.length>32)||(an({api:"createConversationGroup",param:"groupName",desc:vn("groupName",32)}),!1))}})},deleteConversationGroup:[t({name:"groupName"},Sn)],renameConversationGroup:{oldName:t({},Sn),newName:t(t({},Sn),{},{validator:function(e){return!!e&&(!(e.length>32)||(an({api:"renameConversationGroup",param:"newName",desc:vn("newName",32)}),!1))}})},addConversationsToGroup:{conversationIDList:t({},Ln),groupName:t({},Sn)},deleteConversationsFromGroup:{conversationIDList:t({},Ln),groupName:t({},Sn)},getGroupList:{groupProfileFilter:{type:"Array"}},getGroupProfile:{groupID:Sn,groupCustomFieldFilter:{type:"Array"},memberCustomFieldFilter:{type:"Array"}},getGroupProfileAdvance:{groupIDList:Ln},createGroup:{name:Sn},joinGroup:{groupID:Sn,type:{type:"String"},applyMessage:{type:"String"}},quitGroup:[t({name:"groupID"},Sn)],handleApplication:{message:En,handleAction:Sn,handleMessage:{type:"String"}},changeGroupOwner:{groupID:Sn,newOwnerID:Sn},updateGroupProfile:{groupID:Sn,muteAllMembers:{type:"Boolean"}},dismissGroup:[t({name:"groupID"},Sn)],searchGroupByID:[t({name:"groupID"},Sn)],initGroupAttributes:{groupID:Sn,groupAttributes:t(t({},En),{},{validator:function(e){var t=!0;return Object.keys(e).forEach((function(n){if(!st(e[n]))return an({api:"initGroupAttributes",param:"groupAttributes",desc:Mn("value")}),t=!1})),t}})},setGroupAttributes:{groupID:Sn,groupAttributes:t(t({},En),{},{validator:function(e){var t=!0;return Object.keys(e).forEach((function(n){if(!st(e[n]))return an({api:"setGroupAttributes",param:"groupAttributes",desc:Mn("value")}),t=!1})),t}})},deleteGroupAttributes:{groupID:Sn,keyList:{type:"Array",validator:function(e){if(ut(e)||!it(e))return an({api:"deleteGroupAttributes",param:"keyList",desc:gn()}),!1;if(!Zt(e)){var t=!0;return e.forEach((function(e){if(!st(e))return an({api:"deleteGroupAttributes",param:"keyList",desc:Nn("StringArrayRequiredLog")}),t=!1})),t}return!0}}},getGroupAttributes:{groupID:Sn,keyList:{type:"Array",validator:function(e){if(ut(e)||!it(e))return an({api:"getGroupAttributes",param:"keyList",desc:gn()}),!1;if(!Zt(e)){var t=!0;return e.forEach((function(e){if(!st(e))return an({api:"getGroupAttributes",param:"keyList",desc:Mn("key")}),t=!1})),t}return!0}}},setGroupCounters:{groupID:Sn,counters:En},increaseGroupCounter:{groupID:Sn,key:Sn,value:Rn},decreaseGroupCounter:{groupID:Sn,key:Sn,value:Rn},getGroupCounters:{groupID:Sn},getGroupMemberList:{groupID:Sn,count:{type:"Number"}},getGroupMemberProfile:{groupID:Sn,userIDList:Ln,memberCustomFieldFilter:{type:"Array"}},addGroupMember:{groupID:Sn,userIDList:Ln},setGroupMemberRole:{groupID:Sn,userID:Sn,role:Sn},setGroupMemberMuteTime:{groupID:Sn,userID:Sn,muteTime:{type:"Number",validator:function(e){return e>=0}}},setGroupMemberNameCard:{groupID:Sn,userID:{type:"String"},nameCard:{type:"String",validator:function(e){return st(e)?(e.length,!0):(an({api:"setGroupMemberNameCard",param:"nameCard",desc:rn()}),!1)}}},setGroupMemberCustomField:{groupID:Sn,userID:{type:"String"},memberCustomField:Ln},deleteGroupMember:{groupID:Sn},markGroupMemberList:{groupID:Sn,markType:{type:"number",validator:function(e){return ot(e)?!(e<1e3)||(an({api:"markGroupMemberList",param:"markType",desc:(t="markType",n=1e3,Nn("NumberGreaterOrEqualLog",t,n))}),!1):(an({api:"markGroupMemberList",param:"markType",desc:cn()}),!1);var t,n}},userIDList:t({},Ln),enableMark:t({},An)},createTextMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){return rt(e)?st(e.text)?0!==e.text.length||(an({api:"createTextMessage",param:"payload.text",desc:In()}),!1):(an({api:"createTextMessage",param:"payload.text",desc:rn()}),!1):(an({api:"createTextMessage",param:"payload",desc:yn()}),!1)}})},createTextAtMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){return rt(e)?st(e.text)?0===e.text.length?(an({api:"createTextAtMessage",param:"payload.text",desc:In()}),!1):!(e.atUserList&&!it(e.atUserList))||(an({api:"createTextAtMessage",param:"payload.atUserList",desc:gn()}),!1):(an({api:"createTextAtMessage",param:"payload.text",desc:rn()}),!1):(an({api:"createTextAtMessage",param:"payload",desc:yn()}),!1)}})},createCustomMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){return rt(e)?e.data&&!st(e.data)?(an({api:"createCustomMessage",param:"payload.data",desc:rn()}),!1):e.description&&!st(e.description)?(an({api:"createCustomMessage",param:"payload.description",desc:rn()}),!1):!(e.extension&&!st(e.extension))||(an({api:"createCustomMessage",param:"payload.extension",desc:rn()}),!1):(an({api:"createCustomMessage",param:"payload",desc:yn()}),!1)}})},createImageMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){if(!rt(e))return an({api:"createImageMessage",param:"payload",desc:yn()}),!1;if(ut(e.file))return an({api:"createImageMessage",param:"payload.file",desc:ln()}),!1;if(ce){if(!(e.file instanceof HTMLInputElement||nt(e.file)))return rt(e.file)&&"undefined"!=typeof uni?0!==e.file.tempFilePaths.length&&0!==e.file.tempFiles.length||(an({api:"createImageMessage",param:"payload.file",desc:Cn()}),!1):(an({api:"createImageMessage",param:"payload.file",desc:pn()}),!1);if(e.file instanceof HTMLInputElement&&0===e.file.files.length)return an({api:"createImageMessage",param:"payload.file",desc:Cn()}),!1}return!0},onProgress:{type:"Function",required:!1,validator:function(e){return ut(e)&&an({api:"createImageMessage",param:"onProgress",desc:_n()}),!0}}})},createAudioMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){return!!rt(e)||(an({api:"createAudioMessage",param:"payload",desc:yn()}),!1)}}),onProgress:{type:"Function",required:!1,validator:function(e){return ut(e)&&an({api:"createAudioMessage",param:"onProgress",desc:_n()}),!0}}},createVideoMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){if(!rt(e))return an({api:"createVideoMessage",param:"payload",desc:yn()}),!1;if(ut(e.file))return an({api:"createVideoMessage",param:"payload.file",desc:ln()}),!1;if(ce){if(!(e.file instanceof HTMLInputElement||nt(e.file)))return rt(e.file)&&"undefined"!=typeof uni?!!nt(e.file.tempFile)||(an({api:"createVideoMessage",param:"payload.file",desc:Cn()}),!1):(an({api:"createVideoMessage",param:"payload.file",desc:pn()}),!1);if(e.file instanceof HTMLInputElement&&0===e.file.files.length)return an({api:"createVideoMessage",param:"payload.file",desc:Cn()}),!1}return!0}}),onProgress:{type:"Function",required:!1,validator:function(e){return ut(e)&&an({api:"createVideoMessage",param:"onProgress",desc:_n()}),!0}}},createFaceMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){return rt(e)?ot(e.index)?!!st(e.data)||(an({api:"createFaceMessage",param:"payload.data",desc:rn()}),!1):(an({api:"createFaceMessage",param:"payload.index",desc:cn()}),!1):(an({api:"createFaceMessage",param:"payload",desc:yn()}),!1)}})},createFileMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){if(!rt(e))return an({api:"createFileMessage",param:"payload",desc:yn()}),!1;if(ut(e.file))return an({api:"createFileMessage",param:"payload.file",desc:ln()}),!1;if(ce){if(!(e.file instanceof HTMLInputElement||nt(e.file)))return rt(e.file)&&"undefined"!=typeof uni?0!==e.file.tempFilePaths.length&&0!==e.file.tempFiles.length||(an({api:"createFileMessage",param:"payload.file",desc:Cn()}),!1):(an({api:"createFileMessage",param:"payload.file",desc:pn()}),!1);if(e.file instanceof HTMLInputElement&&0===e.file.files.length)return an({api:"createFileMessage",param:"payload.file",desc:Cn()}),!1}return!0}}),onProgress:{type:"Function",required:!1,validator:function(e){return ut(e)&&an({api:"createFileMessage",param:"onProgress",desc:_n()}),!0}}},createLocationMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){return rt(e)?st(e.description)?ot(e.longitude)?!!ot(e.latitude)||(an({api:"createLocationMessage",param:"payload.latitude",desc:cn()}),!1):(an({api:"createLocationMessage",param:"payload.longitude",desc:cn()}),!1):(an({api:"createLocationMessage",param:"payload.description",desc:rn()}),!1):(an({api:"createLocationMessage",param:"payload",desc:yn()}),!1)}})},createMergerMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){if(Zt(e.messageList))return an({api:"createMergerMessage",param:"payload.messageList",desc:hn()}),!1;if(Zt(e.compatibleText))return an({api:"createMergerMessage",param:"payload.compatibleText",desc:un("compatibleText")}),!1;var t=!1;return e.messageList.forEach((function(e){e.status===nn.FAIL&&(t=!0)})),!t||(an({api:"createMergerMessage",param:"payload.messageList",desc:Nn("MergeFailedMessageLog")}),!1)}})},revokeMessage:[t(t({name:"message"},En),{},{validator:function(e){return Zt(e)?(an({api:"revokeMessage",param:"message",desc:Tn()}),!1):e.conversationType===S.CONV_SYSTEM?(an({api:"revokeMessage",param:"message",desc:Nn("MessageCanBeRevokedDesc")}),!1):!0!==e.isRevoked||(an({api:"revokeMessage",param:"message",desc:Nn("MessageRevokedLog")}),!1)}})],deleteMessage:[t(t({name:"messageList"},Ln),{},{validator:function(e){return!Zt(e)||(an({api:"deleteMessage",param:"messageList",desc:hn()}),!1)}})],translateText:{sourceTextList:Ln,sourceLanguage:Sn,targetLanguage:Sn},modifyMessage:[t(t({name:"message"},En),{},{validator:function(e){return Zt(e)?(an({api:"modifyMessage",param:"message",desc:Tn()}),!1):e.conversationType===S.CONV_SYSTEM?(an({api:"modifyMessage",param:"message",desc:Nn("MessageCanBeModifiedLog")}),!1):!0!==e._onlineOnlyFlag||(an({api:"modifyMessage",param:"message",desc:Nn("OnlineMessageNotSupportLog")}),!1)}})],getUserProfile:{userIDList:{type:"Array",validator:function(e){return it(e)?(0===e.length&&an({api:"getUserProfile",param:"userIDList",desc:hn()}),!0):(an({api:"getUserProfile",param:"userIDList",desc:gn()}),!1)}}},updateMyProfile:{profileCustomField:{type:"Array",validator:function(e){return!!ut(e)||(!!it(e)||(an({api:"updateMyProfile",param:"profileCustomField",desc:gn()}),!1))}}},setSelfStatus:{customStatus:{type:"String",validator:function(e){return!!st(e)||(an({api:"setSelfStatus",param:"customStatus",desc:rn()}),!1)}}},getUserStatus:{userIDList:{type:"Array",validator:function(e){return it(e)?0!==e.length||(an({api:"getUserStatus",param:"userIDList",desc:hn()}),!1):(an({api:"getUserStatus",param:"userIDList",desc:gn()}),!1)}}},subscribeUserStatus:{userIDList:{type:"Array",validator:function(e){return it(e)?0!==e.length||(an({api:"subscribeUserStatus",param:"userIDList",desc:hn()}),!1):(an({api:"subscribeUserStatus",param:"userIDList",desc:gn()}),!1)}}},unsubscribeUserStatus:{userIDList:{type:"Array",validator:function(e){return!e||(!!it(e)||(an({api:"subscribeUserStatus",param:"userIDList",desc:gn()}),!1))}}},addFriend:{to:Sn,source:{type:"String",required:!0,validator:function(e){return!!e&&(e.startsWith("AddSource_Type_")?!(e.replace("AddSource_Type_","").length>8)||(an({api:"addFriend",param:"source",desc:vn("keyword",8)}),!1):(an({api:"addFriend",param:"source",desc:Nn("SourcePrefixLog")}),!1))}},remark:{type:"String",required:!1,validator:function(e){return!(st(e)&&e.length>96)||(an({api:"addFriend",param:"remark",desc:vn("remark",96)}),!1)}}},deleteFriend:{userIDList:Ln},checkFriend:{userIDList:Ln},getFriendProfile:{userIDList:Ln},updateFriend:{userID:Sn,remark:{type:"String",required:!1,validator:function(e){return!(st(e)&&e.length>96)||(an({api:"updateFriend",param:"remark",desc:vn("remark",96)}),!1)}},friendCustomField:{type:"Array",required:!1,validator:function(e){if(e){if(!it(e))return an({api:"updateFriend",param:"friendCustomField",desc:gn()}),!1;var t=!0;return e.forEach((function(e){return st(e.key)&&-1!==e.key.indexOf("Tag_SNS_Custom")?st(e.value)?e.key.replace("Tag_SNS_Custom_","").length>8?(an({api:"updateFriend",param:"friendCustomField",desc:vn("keyword",8)}),t=!1):void 0:(an({api:"updateFriend",param:"friendCustomField",desc:Mn("value")}),t=!1):(an({api:"updateFriend",param:"friendCustomField",desc:Nn("FriendCustomFieldPrefixLog")}),t=!1)})),t}return!0}}},acceptFriendApplication:{userID:Sn},refuseFriendApplication:{userID:Sn},deleteFriendApplication:{userID:Sn},createFriendGroup:{name:Sn},deleteFriendGroup:{name:Sn},addToFriendGroup:{name:Sn,userIDList:Ln},removeFromFriendGroup:{name:Sn,userIDList:Ln},renameFriendGroup:{oldName:Sn,newName:Sn},sendMessageReadReceipt:[{name:"messageList",type:"Array",validator:function(e){return it(e)?0!==e.length||(an({api:"sendMessageReadReceipt",param:"messageList",desc:hn()}),!1):(an({api:"sendMessageReadReceipt",param:"messageList",desc:gn()}),!1)}}],getMessageReadReceiptList:[{name:"messageList",type:"Array",validator:function(e){return it(e)?0!==e.length||(an({api:"getMessageReadReceiptList",param:"messageList",desc:hn()}),!1):(an({api:"getMessageReadReceiptList",param:"messageList",desc:gn()}),!1)}}],createTopicInCommunity:{groupID:Sn,topicName:Sn},deleteTopicFromCommunity:{groupID:Sn,topicIDList:{type:"Array",validator:function(e){return!e||(!!it(e)||(an({api:"deleteTopicFromCommunity",param:"topicIDList",desc:gn()}),!1))}}},updateTopicProfile:{groupID:Sn,topicID:Sn},getTopicList:{groupID:Sn,topicIDList:{type:"Array",validator:function(e){return!e||(!!it(e)||(an({api:"getTopicList",param:"topicIDList",desc:gn()}),!1))}}}},Gn={login:1,logout:1,on:1,once:1,off:1,setLogLevel:1,registerPlugin:1,destroy:1,createTextMessage:1,createTextAtMessage:1,createImageMessage:1,createAudioMessage:1,createVideoMessage:1,createCustomMessage:1,createFaceMessage:1,createFileMessage:1,createLocationMessage:1,createMergerMessage:1,downloadMergerMessage:1,createForwardMessage:1,sendMessage:1,resendMessage:1,revokeMessage:1,deleteMessage:1,translateText:1,modifyMessage:1,sendMessageReadReceipt:1,getGroupMessageReadMemberList:1,getMessageReadReceiptList:1,setMessageExtensions:1,getMessageExtensions:1,deleteMessageExtensions:1,getMessageList:1,findMessage:1,getMessageListHopping:1,setMessageRead:1,setAllMessageRead:1,getConversationList:1,getConversationProfile:1,deleteConversation:1,pinConversation:1,getTotalUnreadMessageCount:1,setConversationCustomData:1,markConversation:1,createConversationGroup:1,getConversationGroupList:1,deleteConversationGroup:1,renameConversationGroup:1,addConversationsToGroup:1,deleteConversationsFromGroup:1,clearHistoryMessage:1,getGroupList:1,getGroupProfile:1,createGroup:1,joinGroup:1,updateGroupProfile:1,quitGroup:1,dismissGroup:1,changeGroupOwner:1,searchGroupByID:1,setMessageRemindType:1,getGroupApplicationList:1,handleGroupApplication:1,initGroupAttributes:1,setGroupAttributes:1,deleteGroupAttributes:1,getGroupAttributes:1,setGroupCounters:1,increaseGroupCounter:1,decreaseGroupCounter:1,getGroupCounters:1,getJoinedCommunityList:1,createTopicInCommunity:1,deleteTopicFromCommunity:1,updateTopicProfile:1,getTopicList:1,getGroupMemberProfile:1,getGroupMemberList:1,addGroupMember:1,deleteGroupMember:1,setGroupMemberNameCard:1,setGroupMemberMuteTime:1,setGroupMemberRole:1,setGroupMemberCustomField:1,getGroupOnlineMemberCount:1,markGroupMemberList:1,getMyProfile:1,getUserProfile:1,updateMyProfile:1,setSelfStatus:1,getUserStatus:1,subscribeUserStatus:1,unsubscribeUserStatus:1,getBlacklist:1,addToBlacklist:1,removeFromBlacklist:1,getFriendList:1,addFriend:1,deleteFriend:1,checkFriend:1,updateFriend:1,getFriendProfile:1,getFriendApplicationList:1,refuseFriendApplication:1,deleteFriendApplication:1,acceptFriendApplication:1,setFriendApplicationRead:1,getFriendGroupList:1,createFriendGroup:1,renameFriendGroup:1,deleteFriendGroup:1,addToFriendGroup:1,removeFromFriendGroup:1,callExperimentalAPI:1},Pn=1,Un=2,bn=3,wn=4,qn=6,Fn=7,xn=8,Vn=9,Bn=10,Hn=11,Kn=12,Wn=13,jn=14,Yn=15,zn=16,Jn=17,Xn=18,Qn=19,Zn=20,$n=21,eo=22,to=23,no=24,oo=25,so=26,ao=27,ro=28,io=29,uo=30,co=31,lo=32,po=function(){function e(t){o(this,e),this._m=t,this._n=""}return a(e,[{key:"isLoggedIn",value:function(){return this._m.getModule(Kn).isLoggedIn()}},{key:"isOversea",value:function(){return this._m.getModule(Kn).isOversea()}},{key:"isPrivateNetWork",value:function(){return this._m.getModule(Kn).isPrivateNetWork()}},{key:"getFileDownloadProxy",value:function(){return this._m.getModule(Kn).getFileDownloadProxy()}},{key:"getMyUserID",value:function(){return this._m.getModule(Kn).getUserID()}},{key:"getMyTinyID",value:function(){return this._m.getModule(Kn).getTinyID()}},{key:"getSDKAppID",value:function(){return this._m.getModule(Kn).getSDKAppID()}},{key:"isIntl",value:function(){return this._m.getModule(Kn).isIntl()}},{key:"isDevMode",value:function(){return this._m.getModule(Kn).isDevMode()}},{key:"getModule",value:function(e){return this._m.getModule(e)}},{key:"getPlatform",value:function(){return he}},{key:"getNetworkType",value:function(){return this._m.getModule(Yn).getNetworkType()}},{key:"probeNetwork",value:function(e){return this._m.getModule(Yn).probe(e)}},{key:"getCloudConfig",value:function(e){return this._m.getModule(to).getCloudConfig(e)}},{key:"emitOuterEvent",value:function(e,t){this._m.getOuterEmitterInstance().emit(e,t)}},{key:"emitInnerEvent",value:function(e,t){this._m.getInnerEmitterInstance().emit(e,t)}},{key:"getInnerEmitterInstance",value:function(){return this._m.getInnerEmitterInstance()}},{key:"generateTjgID",value:function(e){return this._m.getModule(Kn).getTinyID()+"-"+e.random}},{key:"filterModifiedMessage",value:function(e){if(!Zt(e)){var t=e.filter((function(e){return!0===e.isModified}));t.length>0&&this.emitOuterEvent(k.MESSAGE_MODIFIED,t)}}},{key:"filterUnmodifiedMessage",value:function(e){return Zt(e)?[]:e.filter((function(e){return!1===e.isModified}))}},{key:"request",value:function(e){return this._m.getModule(Zn).request(e)}},{key:"canIUse",value:function(e){return this._m.getModule(ao).canIUse(e)}},{key:"getErrorMessage",value:function(e,t,n){return this._m.getErrorMessage(e,t,n)}},{key:"outputWarning",value:function(e,t,n){var o=this.getErrorMessage(e,t,n);o&&He.w(o)}}]),e}(),go="wslogin",ho="wslogout",_o="wshello",fo="KickOther",vo="getmsg",mo="authkey",Mo="sendmsg",yo="send_group_msg",Io="portrait_get_all",Co="portrait_set",To="black_list_get",Do="black_list_add",ko="black_list_delete",So="msgwithdraw",Lo="msgreaded",Eo="set_c2c_peer_mute_notifications",Ao="get_c2c_peer_mute_notifications",Ro="getroammsg",No="get_peer_read_time",Oo="delete_c2c_msg_ramble",Go="modify_c2c_msg",Po="set_key_values",Uo="get_key_values",bo="page_get",wo="get",qo="batch_delete",Fo="clear_msg",xo="top",Vo="deletemsg",Bo="set_conv_custom_data",Ho="mark_contact",Ko="create_contact_group",Wo="del_contact_group",jo="update_contact_group",Yo="add_conv_to_group",zo="del_conv_from_group",Jo="get_contact_group",Xo="get_joined_group_list",Qo="get_group_self_member_info",Zo="create_group",$o="destroy_group",es="modify_group_base_info",ts="apply_join_group",ns="apply_join_group_noauth",os="quit_group",ss="get_group_public_info",as="change_group_owner",rs="handle_apply_join_group",is="handle_invite_join_permission_group",us="handle_invite_join_group",cs="group_msg_recall",ls="msg_read_report",ps="read_all_unread_msg",ds="group_msg_get",gs="get_group_msg_receipt",hs="group_msg_receipt",_s="c2c_msg_read_receipt",fs="get_group_msg_receipt_detail",vs="get_pendency",ms="deletemsg",Ms="get_msg",ys="get_msg_noauth",Is="get_online_member_num",Cs="delete_group_ramble_msg_by_seq",Ts="modify_group_msg",Ds="set_group_attr",ks="modify_group_attr",Ss="delete_group_attr",Ls="clear_group_attr",Es="get_group_attr",As="group_set_key_values",Rs="group_get_key_values",Ns="get_group_notify",Os="update_group_counter",Gs="get_group_counter",Ps="get_group_member_info",Us="get_members",bs="get_specified_group_member_info",ws="add_group_member",qs="delete_group_member",Fs="ban_group_member",xs="modify_group_member_info",Vs="modify_user_info",Bs="cos",Hs="pre_sig",Ks="video_cover",Ws="tim_web_report_v2",js="alive",Ys="msg_push",zs="multi_msg_push_ws",Js="ws_msg_push_ack",Xs="stat_forceoffline",Qs="save_relay_json_msg",Zs="get_relay_json_msg",$s="fetch_config",ea="push_configv2",ta="fetch_imsdk_purchase_bitsv2",na="push_imsdk_purchase_bitsv2",oa="notify2",sa="create_topic",aa="destroy_topic",ra="modify_topic",ia="get_topic",ua="ws_set_custom_status",ca="ws_get_user_status",la="ws_status_subscribe",pa="ws_status_unsubscribe",da="ws_stat_background",ga="ws_stat_foreground",ha="ws_stat_settoken",_a="get_local_words",fa="ws_batch_trans_text",va=2e3,ma=2002,Ma=2003,ya=2022,Ia=2023,Ca=2024,Ta=2025,Da=2040,ka=2041,Sa=2100,La=2101,Ea=2105,Aa=2106,Ra=2108,Na=2109,Oa=2110,Ga=2111,Pa=2112,Ua=2114,ba=2115,wa=2116,qa=2117,Fa=2251,xa=2252,Va=2253,Ba=2300,Ha=2301,Ka=2350,Wa=2351,ja=2352,Ya=2400,za=2401,Ja=2402,Xa=2403,Qa=2450,Za=2451,$a=2452,er=2453,tr=2480,nr=2481,or=2500,sr=2501,ar=2502,rr=2503,ir=2600,ur=2601,cr=2602,lr=2603,pr=2620,dr=2621,gr=2622,hr=2623,_r=2660,fr=2661,vr=2662,mr=2681,Mr=2682,yr=2683,Ir=2684,Cr=2685,Tr=2686,Dr=2721,kr=2722,Sr=2742,Lr=2800,Er=2801,Ar=2805,Rr=2903,Nr=2905,Or=2996,Gr=2997,Pr=2998,Ur=2999,br=3e3,wr=3001,qr=3002,Fr=3003,xr=3004,Vr=3005,Br=3006,Hr=3021,Kr=3122,Wr=3123,jr=20002,Yr=70001,zr=1002,Jr=60022,Xr="networkRTT",Qr="messageE2EDelay",Zr="sendMessageC2C",$r="sendMessageGroup",ei="sendMessageGroupAV",ti="sendMessageRichMedia",ni="cosUpload",oi="messageReceivedGroup",si="messageReceivedGroupAVPush",ai="messageReceivedGroupAVPull",ri=(r(tn={},Xr,2),r(tn,Qr,3),r(tn,Zr,4),r(tn,$r,5),r(tn,ei,6),r(tn,ti,7),r(tn,oi,8),r(tn,si,9),r(tn,ai,10),r(tn,ni,11),tn),ii={info:4,warning:5,error:6},ui={wifi:1,"2g":2,"3g":3,"4g":4,"5g":5,unknown:6,none:7,online:8},ci={login:4},li=function(){function e(t){o(this,e),this._n="SSOLogData",this.eventType=ci[t]||0,this.timestamp=0,this.networkType=8,this.code=0,this.message="",this.moreMessage="",this.extension=t,this.costTime=0,this.duplicate=!1,this.level=4,this.uiPlatform=void 0,this._sentFlag=!1,this._startts=we()}return a(e,[{key:"updateTimeStamp",value:function(){this.timestamp=we()}},{key:"start",value:function(e){return this._startts=e,this}},{key:"end",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!this._sentFlag){var n=we();0===this.costTime&&(this.costTime=n-this._startts),this.setMoreMessage("startts:".concat(this._startts," endts:").concat(n)),t?(this._sentFlag=!0,this._eventStatModule&&this._eventStatModule.pushIn(this)):setTimeout((function(){e._sentFlag=!0,e._eventStatModule&&e._eventStatModule.pushIn(e)}),0)}}},{key:"setError",value:function(e,t,n){if(!(e instanceof Error))return He.w("".concat(this._n,".setError value not instanceof Error, please check!")),this;if(this._sentFlag)return this;if(this.setNetworkType(n),t)e.code&&this.setCode(e.code),e.message&&this.setMoreMessage(e.message);else{var o=Ar;this.setCode(o)}return this.setLevel("error"),this}},{key:"setCode",value:function(e){return ut(e)||this._sentFlag||("ECONNABORTED"===e&&(this.code=103),ot(e)?this.code=e:He.w("".concat(this._n,".setCode value not a number, please check!"),e,n(e))),this}},{key:"setMessage",value:function(e){return ut(e)||this._sentFlag||(ot(e)&&(this.message=e.toString()),st(e)&&(this.message=e)),this}},{key:"setCostTime",value:function(e){return this.costTime=e,this}},{key:"setLevel",value:function(e){return ut(e)||this._sentFlag||(this.level=ii[e]),this}},{key:"setMoreMessage",value:function(e){return Zt(this.moreMessage)?this.moreMessage="".concat(e):this.moreMessage+=" ".concat(e),this}},{key:"setNetworkType",value:function(e){if(ut(e))He.w("".concat(this._n,".setNetworkType value is undefined, please check!"));else{var t=ui[e.toLowerCase()];ut(t)||(this.networkType=t)}return this}},{key:"getStartTs",value:function(){return this._startts}},{key:"setUIPlatform",value:function(e){this.uiPlatform=e}}],[{key:"bindEventStatModule",value:function(t){e.prototype._eventStatModule=t}}]),e}(),pi=function(){function e(t){o(this,e),this.type=S.MSG_TEXT,this.content={text:t.text||""}}return a(e,[{key:"setText",value:function(e){this.content.text=e}},{key:"sendable",value:function(){return 0!==this.content.text.length}}]),e}(),di=function(){function e(t,n){o(this,e),this._imageMemoryURL="",this._fileDownloadProxy=n,ue?this.createImageDataASURLInWXMiniApp(t.file):this.createImageDataASURLInWeb(t.file),this._initImageInfoModel(),this.type=S.MSG_IMAGE,this._percent=0,this.content={imageFormat:t.imageFormat||Ke.UNKNOWN,uuid:t.uuid,imageInfoArray:[]},this.initImageInfoArray(t.imageInfoArray),this._autoFixUrl()}return a(e,[{key:"_initImageInfoModel",value:function(){var e=this;this._ImageInfoModel=function(t){this.instanceID=Mt(9999999),this.sizeType=t.type||0,this.type=0,this.size=t.size||0,this.width=t.width||0,this.height=t.height||0,this.imageUrl=t.url||"",this.url=Xt(t.url||e._imageMemoryURL,e._fileDownloadProxy)},this._ImageInfoModel.prototype={setSizeType:function(e){this.sizeType=e},setType:function(e){this.type=e},setImageUrl:function(e){e&&(this.imageUrl=e)},getImageUrl:function(){return this.imageUrl}}}},{key:"initImageInfoArray",value:function(e){for(var t=0,n=null,o=null;t<=2;)o=ut(e)||ut(e[t])?{type:0,size:0,width:0,height:0,url:""}:e[t],(n=new this._ImageInfoModel(o)).setSizeType(t+1),n.setType(t),this.addImageInfo(n),t++;this.updateAccessSideImageInfoArray()}},{key:"updateImageInfoArray",value:function(e){for(var t,n=this.content.imageInfoArray.length,o=0;o1&&(this._percent=1)}},{key:"updateImageFormat",value:function(e){this.content.imageFormat=Ke[e.toUpperCase()]||Ke.UNKNOWN}},{key:"createImageDataASURLInWeb",value:function(e){void 0!==e&&e.files.length>0&&(this._imageMemoryURL=window.URL.createObjectURL(e.files[0]))}},{key:"createImageDataASURLInWXMiniApp",value:function(e){e&&e.url&&(this._imageMemoryURL=e.url)}},{key:"replaceImageInfo",value:function(e,t){this.content.imageInfoArray[t]instanceof this._ImageInfoModel||(this.content.imageInfoArray[t]=e)}},{key:"addImageInfo",value:function(e){this.content.imageInfoArray.length>=3||this.content.imageInfoArray.push(e)}},{key:"updateAccessSideImageInfoArray",value:function(){var e=this.content.imageInfoArray,t=e[0],n=t.width,o=void 0===n?0:n,s=t.height,a=void 0===s?0:s;0!==o&&0!==a&&(Ft(e),Object.assign(e[2],qt({originWidth:o,originHeight:a,min:720})))}},{key:"sendable",value:function(){return 0!==this.content.imageInfoArray.length&&(""!==this.content.imageInfoArray[0].imageUrl&&0!==this.content.imageInfoArray[0].size)}}]),e}(),gi=function(){function e(t){o(this,e),this.type=S.MSG_FACE,this.content=t||null}return a(e,[{key:"sendable",value:function(){return null!==this.content}}]),e}(),hi=function(){function e(t,n){o(this,e),this.type=S.MSG_AUDIO,this._percent=0,this.content={downloadFlag:2,second:t.second,size:t.size,url:Xt(t.url,n),remoteAudioUrl:t.url||"",uuid:t.uuid}}return a(e,[{key:"updatePercent",value:function(e){this._percent=e,this._percent>1&&(this._percent=1)}},{key:"updateAudioUrl",value:function(e){this.content.remoteAudioUrl=e}},{key:"sendable",value:function(){return""!==this.content.remoteAudioUrl}}]),e}(),_i={from:!0,groupID:!0,groupName:!0,to:!0},fi=function(){function e(t){o(this,e),this.type=S.MSG_GRP_TIP,this.content={},this._initContent(t)}return a(e,[{key:"_initContent",value:function(e){var t=this;Object.keys(e).forEach((function(n){switch(n){case"remarkInfo":break;case"groupProfile":t.content.groupProfile={},t._initGroupProfile(e[n]);break;case"operatorInfo":break;case"memberInfoList":case"msgMemberInfo":t._updateMemberList(e[n]);break;case"memberExtraInfo":case"onlineMemberInfo":break;case"memberNum":t.content[n]=e[n],t.content.memberCount=e[n];break;case"newGroupProfile":t.content.newGroupProfile={},t._initNewGroupProfile(e[n]);break;default:t.content[n]=e[n]}})),this.content.userIDList||(this.content.userIDList=[this.content.operatorID])}},{key:"_initGroupProfile",value:function(e){for(var t=Object.keys(e),n=0;n1&&(this._percent=1)}},{key:"updateFileUrl",value:function(e){this.content.fileUrl=e}},{key:"sendable",value:function(){return""!==this.content.fileUrl&&(""!==this.content.fileName&&0!==this.content.fileSize)}}]),e}(),yi=function(){function e(t){o(this,e),this.type=S.MSG_CUSTOM,this.content={data:t.data||"",description:t.description||"",extension:t.extension||""}}return a(e,[{key:"setData",value:function(e){return this.content.data=e,this}},{key:"setDescription",value:function(e){return this.content.description=e,this}},{key:"setExtension",value:function(e){return this.content.extension=e,this}},{key:"sendable",value:function(){return 0!==this.content.data.length||0!==this.content.description.length||0!==this.content.extension.length}}]),e}(),Ii=function(){function e(t,n){o(this,e),this.type=S.MSG_VIDEO,this._percent=0,this.content={remoteVideoUrl:t.remoteVideoUrl||t.videoUrl||"",videoFormat:t.videoFormat,videoSecond:parseInt(t.videoSecond,10),videoSize:t.videoSize,videoUrl:Xt(t.videoUrl,n),videoDownloadFlag:2,videoUUID:t.videoUUID,thumbUUID:t.thumbUUID,thumbFormat:t.thumbFormat,thumbWidth:t.thumbWidth,snapshotWidth:t.thumbWidth,thumbHeight:t.thumbHeight,snapshotHeight:t.thumbHeight,thumbSize:t.thumbSize,snapshotSize:t.thumbSize,thumbDownloadFlag:2,thumbUrl:Xt(t.thumbUrl,n),snapshotUrl:Xt(t.thumbUrl,n)}}return a(e,[{key:"updatePercent",value:function(e){this._percent=e,this._percent>1&&(this._percent=1)}},{key:"updateVideoUrl",value:function(e){e&&(this.content.remoteVideoUrl=e)}},{key:"updateSnapshotInfo",value:function(e){var t=e.snapshotUrl,n=e.snapshotWidth,o=e.snapshotHeight;Zt(t)||(this.content.thumbUrl=this.content.snapshotUrl=t),Zt(n)||(this.content.thumbWidth=this.content.snapshotWidth=Number(n)),Zt(o)||(this.content.thumbHeight=this.content.snapshotHeight=Number(o))}},{key:"sendable",value:function(){return""!==this.content.remoteVideoUrl}}]),e}(),Ci=function(){function e(t){o(this,e),this.type=S.MSG_LOCATION;var n=t.description,s=t.longitude,a=t.latitude;this.content={description:n,longitude:s,latitude:a}}return a(e,[{key:"sendable",value:function(){return!0}}]),e}(),Ti=function(){function e(t,n){if(o(this,e),this.from=t.from,this.messageSender=t.from,this.time=t.time,this.messageSequence=t.sequence,this.clientSequence=t.clientSequence||t.sequence,this.messageRandom=t.random,this.cloudCustomData=t.cloudCustomData||"",this.clientTime=t.clientTime||void 0,t.ID)this.ID=t.ID||"",this.nick=t.nick||"",this.avatar=t.avatar||"",this.messageBody=[{type:t.type,payload:t.payload}],t.conversationType.startsWith(S.CONV_C2C)?this.receiverUserID=t.to:t.conversationType.startsWith(S.CONV_GROUP)&&(this.receiverGroupID=t.to),this.messageReceiver=t.to;else{this.nick=t.nick||"",this.avatar=t.avatar||"",this.messageBody=[];var s=t.elements[0].type,a=t.elements[0].content;this._patchRichMediaPayload(s,a),this._updateRichMediaDownloadUrl(s,a,n),s===S.MSG_MERGER?this.messageBody.push({type:s,payload:new Di(a).content}):this.messageBody.push({type:s,payload:a}),t.groupID&&(this.receiverGroupID=t.groupID,this.messageReceiver=t.groupID),t.to&&(this.receiverUserID=t.to,this.messageReceiver=t.to),this.ID="".concat(t.tinyID,"-").concat(t.clientTime,"-").concat(t.random)}}return a(e,[{key:"_patchRichMediaPayload",value:function(e,t){e===S.MSG_IMAGE?t.imageInfoArray.forEach((function(e){!e.imageUrl&&e.url&&(e.imageUrl=e.url,e.sizeType=e.type,1===e.type?e.type=0:3===e.type&&(e.type=1))})):e===S.MSG_VIDEO?!t.remoteVideoUrl&&t.videoUrl&&(t.remoteVideoUrl=t.videoUrl):e===S.MSG_AUDIO?!t.remoteAudioUrl&&t.url&&(t.remoteAudioUrl=t.url):e===S.MSG_FILE&&!t.fileUrl&&t.url&&(t.fileUrl=t.url,t.url=void 0)}},{key:"_updateRichMediaDownloadUrl",value:function(e,t,n){n&&(e===S.MSG_IMAGE?t.imageInfoArray.forEach((function(e){e.url=Xt(e.url,n)})):e===S.MSG_VIDEO?(t.videoUrl=Xt(t.videoUrl,n),t.snapshotUrl=Xt(t.thumbUrl,n),t.snapshotHeight=t.thumbHeight,t.snapshotWidth=t.thumbWidth):e===S.MSG_AUDIO?t.url=Xt(t.url,n):e===S.MSG_FILE&&(t.fileUrl=Xt(t.fileUrl,n)))}}]),e}(),Di=function(){function e(t,n){if(o(this,e),this.type=S.MSG_MERGER,this.content={downloadKey:"",pbDownloadKey:"",messageList:[],title:"",abstractList:[],compatibleText:"",version:0,layersOverLimit:!1},t.downloadKey){var s=t.downloadKey,a=t.pbDownloadKey,r=t.title,i=t.abstractList,u=t.compatibleText,c=t.version;this.content.downloadKey=s,this.content.pbDownloadKey=a,this.content.title=r,this.content.abstractList=i,this.content.compatibleText=u,this.content.version=c||0}else if(Zt(t.messageList))1===t.layersOverLimit&&(this.content.layersOverLimit=!0);else{var l=t.messageList,p=t.title,d=t.abstractList,g=t.compatibleText,h=t.version,_=[];l.forEach((function(e){if(!Zt(e)){var t=new Ti(e,n);_.push(t)}})),this.content.messageList=_,this.content.title=p,this.content.abstractList=d,this.content.compatibleText=g,this.content.version=h||0}}return a(e,[{key:"sendable",value:function(){return!Zt(this.content.messageList)||!Zt(this.content.downloadKey)}}]),e}(),ki={1:S.MSG_PRIORITY_HIGH,2:S.MSG_PRIORITY_NORMAL,3:S.MSG_PRIORITY_LOW,4:S.MSG_PRIORITY_LOWEST},Si=function(){function e(t){o(this,e),this.ID="",this.conversationID=t.conversationID||null,this.conversationType=t.conversationType||S.CONV_C2C,this.conversationSubType=t.conversationSubType,this.time=t.time||Math.ceil(Date.now()/1e3),this.sequence=t.sequence||0,this.clientSequence=t.clientSequence||t.sequence||0,this.random=t.random||0===t.random?t.random:Mt(),this.priority=this._computePriority(t.priority),this.nick=t.nick||"",this.avatar=t.avatar||"",this.isPeerRead=!1,this.nameCard="",this._elements=[],this.isPlaceMessage=t.isPlaceMessage||0,this.isRevoked=2===t.isPlaceMessage||8===t.msgFlagBits,this.from=t.from||null,this.to=t.to||null,this.flow="",this.isSystemMessage=t.isSystemMessage||!1,this.protocol=t.protocol||"JSON",this.isResend=!1,this.isRead=!1,this.status=t.status||nn.SUCCESS,this._onlineOnlyFlag=!1,this._groupAtInfoList=[],this._relayFlag=!1,this.atUserList=[],this.cloudCustomData=t.cloudCustomData||"",this.isDeleted=!1,this.isModified=!1,this._isExcludedFromUnreadCount=!(!t.messageControlInfo||1!==t.messageControlInfo.excludedFromUnreadCount),this._isExcludedFromLastMessage=!(!t.messageControlInfo||1!==t.messageControlInfo.excludedFromLastMessage),this.clientTime=t.clientTime||Fe()||0,this.senderTinyID=t.senderTinyID||t.tinyID||"",this.readReceiptInfo=t.readReceiptInfo||{readCount:void 0,unreadCount:void 0,isPeerRead:void 0},this.needReadReceipt=!0===t.needReadReceipt||1===t.needReadReceipt,this.version=t.messageVersion||0,this.isBroadcastMessage=t.isBroadcastMessage||!1,this._receiverList=t.receiverList||void 0,this.isSupportExtension=!0===t.isSupportExtension||1===t.isSupportExtension,this.revoker=t.revokerInfo&&t.revokerInfo.revoker||null,this.reInitialize(t.currentUser),this.extractGroupInfo(t.groupProfile||null),this.handleGroupAtInfo(t),this.initC2CReadReceiptInfo(t.readReceiptSentByPeer)}return a(e,[{key:"elements",get:function(){return this._elements}},{key:"getElements",value:function(){return this._elements}},{key:"extractGroupInfo",value:function(e){if(null!==e){st(e.nick)&&(this.nick=e.nick),st(e.avatar)&&(this.avatar=e.avatar);var t=e.messageFromAccountExtraInformation;rt(t)&&st(t.nameCard)&&(this.nameCard=t.nameCard)}}},{key:"handleGroupAtInfo",value:function(e){var t=this;e.payload&&e.payload.atUserList&&e.payload.atUserList.forEach((function(e){e!==S.MSG_AT_ALL?(t._groupAtInfoList.push({groupAtAllFlag:0,groupAtUserID:e}),t.atUserList.push(e)):(t._groupAtInfoList.push({groupAtAllFlag:1}),t.atUserList.push(S.MSG_AT_ALL))})),it(e.groupAtInfo)&&e.groupAtInfo.forEach((function(e){0===e.groupAtAllFlag?t.atUserList.push(e.groupAtUserID):1===e.groupAtAllFlag&&t.atUserList.push(S.MSG_AT_ALL)}))}},{key:"getGroupAtInfoList",value:function(){return this._groupAtInfoList}},{key:"_initProxy",value:function(){this._elements[0]&&(this.payload=this._elements[0].content,this.type=this._elements[0].type)}},{key:"reInitialize",value:function(e){e&&(this.status=this.from?nn.SUCCESS:nn.UNSEND,!this.from&&(this.from=e)),this._initFlow(e),this._initSequence(e),this._concatConversationID(e),this.generateMessageID()}},{key:"isSendable",value:function(){return 0!==this._elements.length&&("function"==typeof this._elements[0].sendable&&this._elements[0].sendable())}},{key:"_initTo",value:function(e){this.conversationType===S.CONV_GROUP&&(this.to=e.groupID)}},{key:"_initSequence",value:function(e){0===this.clientSequence&&e&&(this.clientSequence=function(e){if(!e)return!1;if(void 0===Tt[e]){var t=new Date,n="3".concat(t.getHours()).slice(-2),o="0".concat(t.getMinutes()).slice(-2),s="0".concat(t.getSeconds()).slice(-2);Tt[e]=parseInt([n,o,s,"0001"].join("")),n=null,o=null,s=null,He.l("autoIncrementIndex start index:".concat(Tt[e]))}return Tt[e]++}(e)),0===this.sequence&&this.conversationType===S.CONV_C2C&&(this.sequence=this.clientSequence)}},{key:"generateMessageID",value:function(){this.from===S.CONV_SYSTEM&&(this.senderTinyID="144115198244471703"),this.ID="".concat(this.senderTinyID,"-").concat(this.clientTime,"-").concat(this.random)}},{key:"_initFlow",value:function(e){""!==e&&(e===this.from?(this.flow="out",this.isRead=!0):this.flow="in")}},{key:"_concatConversationID",value:function(e){var t=this.to,n="",o=this.conversationType;o!==S.CONV_SYSTEM?(n=o===S.CONV_C2C?e===this.from?t:this.from:this.to,this.conversationID=n?"".concat(o).concat(n):null):this.conversationID=S.CONV_SYSTEM}},{key:"isElement",value:function(e){return e instanceof pi||e instanceof di||e instanceof gi||e instanceof hi||e instanceof Mi||e instanceof Ii||e instanceof fi||e instanceof mi||e instanceof yi||e instanceof Ci||e instanceof Di}},{key:"setElement",value:function(e,t){var n=this;if(this.isElement(e))return this._elements=[e],void this._initProxy();var o=function(e){if(e.type&&e.content)switch(e.type){case S.MSG_TEXT:n.setTextElement(e.content);break;case S.MSG_IMAGE:n.setImageElement(e.content,t);break;case S.MSG_AUDIO:n.setAudioElement(e.content,t);break;case S.MSG_FILE:n.setFileElement(e.content,t);break;case S.MSG_VIDEO:n.setVideoElement(e.content,t);break;case S.MSG_CUSTOM:n.setCustomElement(e.content);break;case S.MSG_LOCATION:n.setLocationElement(e.content);break;case S.MSG_GRP_TIP:n.setGroupTipElement(e.content);break;case S.MSG_GRP_SYS_NOTICE:n.setGroupSystemNoticeElement(e.content);break;case S.MSG_FACE:n.setFaceElement(e.content);break;case S.MSG_MERGER:n.setMergerElement(e.content,t)}};if(it(e))for(var s=0;s1&&void 0!==arguments[1]&&arguments[1];if(e instanceof Ei)return t&&null!==Ai&&Ai.emit(k.ERROR,e),Promise.reject(e);if(e instanceof Error){var n=new Ei({code:Rr});return t&&null!==Ai&&Ai.emit(k.ERROR,n),Promise.reject(n)}if(!ut(e)&&!ut(e.code)){var o=new Ei(e);return t&&null!==Ai&&Ai.emit(k.ERROR,o),Promise.reject(o)}},Gi=function(e){i(s,e);var n=f(s);function s(e){var t;return o(this,s),(t=n.call(this,e))._n="C2CModule",t._messageFromUnreadDBMap=new Map,t._signalingFromUnreadDBList=[],t}return a(s,[{key:"onNewC2CMessage",value:function(e){var t=e.dataList,n=e.isInstantMessage,o=e.C2CRemainingUnreadList,s=e.C2CPairUnreadList;He.d("".concat(this._n,".onNewC2CMessage count:").concat(t.length," isInstantMessage:").concat(n));var a=this._newC2CMessageStoredAndSummary({dataList:t,C2CRemainingUnreadList:o,C2CPairUnreadList:s,isInstantMessage:n}),r=a.conversationOptionsList,i=a.messageList,u=a.isUnreadC2CMessage;(this.filterModifiedMessage(i),r.length>0)&&this.getModule(Hn).onNewMessage({conversationOptionsList:r,isInstantMessage:n,isUnreadC2CMessage:u});var c=this.filterUnmodifiedMessage(i);n&&c.length>0&&this.emitOuterEvent(k.MESSAGE_RECEIVED,c),i.length=0}},{key:"_newC2CMessageStoredAndSummary",value:function(e){for(var t=e.dataList,n=e.C2CRemainingUnreadList,o=e.C2CPairUnreadList,s=e.isInstantMessage,a=null,r=[],i=[],u={},c=this.getModule(zn),l=this.getModule(so),p=!1,d=this.getModule(Hn),g=this.getFileDownloadProxy(),h=0,_=t.length;h<_;h++)if(this._isSignaling(t[h]))this._signalingFromUnreadDBList.push(t[h].eventArray[0].c2CNotifyMsgArray[0]);else{var f=t[h];f.currentUser=this.getMyUserID(),f.conversationType=S.CONV_C2C,f.isSystemMessage=!!f.isSystemMessage,(ut(f.nick)||ut(f.avatar))&&(p=!0,He.d("".concat(this._n,"._newC2CMessageStoredAndSummary nick or avatar missing!"))),a=new Si(f),f.elements=c.parseElements(f.elements,f.from),a.setElement(f.elements,g),a.setNickAndAvatar({nick:f.nick,avatar:f.avatar});var v=a.conversationID;if(s){if(1===this._messageFromUnreadDBMap.get(a.ID))continue;var m=!1;if(a.from!==this.getMyUserID()){var M=d.getLatestMessageSentByPeer(v);if(M){var y=M.nick,I=M.avatar;p?a.setNickAndAvatar({nick:y,avatar:I}):y===a.nick&&I===a.avatar||(m=!0)}}else{var C=d.getLatestMessageSentByMe(v);if(C){var T=C.nick,D=C.avatar;T===a.nick&&D===a.avatar||d.modifyMessageSentByMe({conversationID:v,latestNick:a.nick,latestAvatar:a.avatar})}}var k=1===t[h].isModified;if(d.isMessageSentByCurrentInstance(a)?a.isModified=k:k=!1,0===f.msgLifeTime)a._onlineOnlyFlag=!0,d.isMessageSentByCurrentInstance(a)||i.push(a);else{if(!d.pushIntoMessageList(i,a,k))continue;m&&(d.modifyMessageSentByPeer({conversationID:v,latestNick:a.nick,latestAvatar:a.avatar}),d.updateUserProfileSpecifiedKey({conversationID:v,nick:a.nick,avatar:a.avatar}))}s&&a.clientTime>0&&l.addMessageDelay(a.clientTime)}else this._messageFromUnreadDBMap.set(a.ID,1);if(0!==f.msgLifeTime){if(!1===a._onlineOnlyFlag){var L=d.getLastMessageTime(v);if(ot(L)&&a.time0){R=!0;var n=r.find((function(t){return t.conversationID==="C2C".concat(o[e].from)}));n?n.unreadCount=o[e].unreadCount:r.push({conversationID:"C2C".concat(o[e].from),unreadCount:o[e].unreadCount,type:S.CONV_C2C})}},O=0,G=o.length;O0&&(o=e.cloudCustomData);var s=[];if(rt(t)&&rt(t.messageControlInfo)){var a=t.messageControlInfo,r=a.excludedFromUnreadCount,i=a.excludedFromLastMessage,u=a.excludedFromContentModeration;!0===r&&s.push("NoUnread"),!0===i&&s.push("NoLastMsg"),!0===u&&s.push("NoMsgCheck")}var c=this.isOnlineMessage(e,t)?0:void 0;return{protocolName:Mo,tjgID:this.generateTjgID(e),requestData:{fromAccount:this.getMyUserID(),toAccount:e.to,msgBody:e.getElements(),cloudCustomData:o,msgSeq:e.sequence,msgRandom:e.random,msgLifeTime:c,nick:e.nick,avatar:e.avatar,offlinePushInfo:n?{pushFlag:!0===n.disablePush?1:0,title:n.title||"",desc:n.description||"",ext:n.extension||"",apnsInfo:{badgeMode:!0===n.ignoreIOSBadge?1:0,isVoipPush:this._isVoipPush(n)},androidInfo:{OPPOChannelID:n.androidOPPOChannelID||""}}:void 0,messageControlInfo:0!==c?s:void 0,clientTime:e.clientTime,needReadReceipt:!0===e.needReadReceipt?1:0,isSupportExtension:!0===e.isSupportExtension?1:0}}}},{key:"_isVoipPush",value:function(e){var t=void 0;return ut(e.disableVoipPush)||(t=!1===e.disableVoipPush?1:0),t}},{key:"isOnlineMessage",value:function(e,t){return!(!t||!0!==t.onlineUserOnly)}},{key:"revokeMessage",value:function(e){return this.request({protocolName:So,requestData:{msgInfo:{fromAccount:e.from,toAccount:e.to,msgSeq:e.sequence,msgRandom:e.random,msgTimeStamp:e.time}}})}},{key:"deleteMessage",value:function(e){var t=e.to,n=e.keyList;return He.l("".concat(this._n,".deleteMessage toAccount:").concat(t," count:").concat(n.length)),this.request({protocolName:Oo,requestData:{fromAccount:this.getMyUserID(),to:t,keyList:n}})}},{key:"modifyRemoteMessage",value:function(e){var t=e.from,n=e.to,o=e.version,s=void 0===o?0:o,a=e.sequence,r=e.random,i=e.time,u=e.payload,c=e.type,l=e.cloudCustomData,p=void 0;return jt(c)&&(p=[]).push({type:c,content:u}),this.request({protocolName:Go,requestData:{from:t,to:n,version:s,sequence:a,random:r,time:i,elements:p,cloudCustomData:l}})}},{key:"setMessageRead",value:function(e){var t=this,n=e.conversationID,o=e.lastMessageTime,s="".concat(this._n,".setMessageRead");He.l("".concat(s," conversationID:").concat(n," lastMessageTime:").concat(o)),ot(o)||this.outputWarning("DoNotModifyLastTime");var a=new li("setC2CMessageRead");return a.setMessage("conversationID:".concat(n," lastMessageTime:").concat(o)),this.request({protocolName:Lo,requestData:{C2CMsgReaded:{cookie:"",C2CMsgReadedItem:[{toAccount:n.replace("C2C",""),lastMessageTime:o,receipt:1}]}}}).then((function(){a.setNetworkType(t.getNetworkType()).end(),He.l("".concat(s," ok"));var e=t.getModule(Hn);return e.updateIsReadAfterReadReport({conversationID:n,lastMessageTime:o}),e.updateUnreadCount(n),Li()})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];a.setError(e,o,s).end()})),He.l("".concat(s," failed. error:"),e),Oi(e)}))}},{key:"getRoamingMessage",value:function(e){var t=this,n="".concat(this._n,".getRoamingMessage"),o=e.peerAccount,s=e.conversationID,a=e.count,r=e.lastMessageTime,i=e.messageKey,u="peerAccount:".concat(o," count:").concat(a||15," lastMessageTime:").concat(r||0," messageKey:").concat(i);He.l("".concat(n," ").concat(u));var c=new li("getC2CRoamingMessages");return this.request({protocolName:Ro,requestData:{peerAccount:o,count:a||15,lastMessageTime:r||0,messageKey:i}}).then((function(e){var o=e.data,a=o.complete,r=o.messageList,i=o.messageKey,l=o.lastMessageTime;ut(r)?He.l("".concat(n," ok. complete:").concat(a," but messageList is undefined!")):He.l("".concat(n," ok. complete:").concat(a," count:").concat(r.length)),c.setNetworkType(t.getNetworkType()).setMessage("".concat(u," complete:").concat(a," length:").concat(r.length)).end();var p=t.getModule(Hn);1===a&&p.setCompleted(s);var d=p.onRoamingMessage(r,s);p.modifyMessageList(s),p.updateIsRead(s),p.updateRoamingMessageKeyAndTime(s,i,l);var g=p.getPeerReadTime(s);if(He.l("".concat(n," update isPeerRead property. conversationID:").concat(s," peerReadTime:").concat(g)),g)p.updateMessageIsPeerReadProperty(s,g);else{var h=s.replace(S.CONV_C2C,"");t.getRemotePeerReadTime([h]).then((function(){p.updateMessageIsPeerReadProperty(s,p.getPeerReadTime(s))}))}var _="";if(d.length>0)_=d[0].ID;else{var f=p.getLocalOldestMessage(s);f&&(_=f.ID)}return He.l("".concat(n," nextReqID:").concat(_," stored message count:").concat(d.length)),{nextReqID:_,storedMessageList:d}})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];c.setMessage(u).setError(e,o,s).end()})),He.w("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"getRoamingMessagesHopping",value:function(e){var t=this,n="".concat(this._n,".getRoamingMessagesHopping"),o=e.peerAccount,s=e.time,a=void 0===s?0:s,r=e.count,i=e.direction,u="".concat(S.CONV_C2C).concat(o),c="peerAccount:".concat(o," count:").concat(r," time:").concat(a," direction:").concat(i);He.l("".concat(n," ").concat(c));var l=new li("getC2CRoamingMessagesHopping");return this.request({protocolName:Ro,requestData:{peerAccount:o,count:r+1,lastMessageTime:a,direction:i}}).then((function(e){var o=e.data,s=o.complete,a=o.messageList,r=void 0===a?[]:a,p=o.lastMessageTime;He.l("".concat(n," ok. complete:").concat(s," count:").concat(r.length)),l.setNetworkType(t.getNetworkType()).setMessage("".concat(c," complete:").concat(s," length:").concat(r.length)).end(),1!==s&&(1===i?r.pop():r.shift());var d=t.getModule(Hn).onRoamingMessage(r,u,!1);t._modifyMessageList(u,d);var g=t._computeResult({complete:s,lastMessageTime:p,resultList:d});return Li(g)})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];l.setMessage(c).setError(e,o,s).end()})),He.w("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_computeResult",value:function(e){var t=e.complete,n=void 0===t?0:t,o=e.lastMessageTime,s=e.resultList,a={messageList:m(void 0===s?[]:s),isCompleted:!1,nextMessageTime:""};return 1===n?(a.isCompleted=!0,a):(a.nextMessageTime=o,a)}},{key:"_modifyMessageList",value:function(e,t){var n=this.getModule(Hn).getLocalConversation(e);if(n)for(var o=n.userProfile.nick,s=n.userProfile.avatar,a=this.getModule(wn).getNickAndAvatarByUserID(this.getMyUserID()),r=a.nick,i=a.avatar,u=t.length-1;u>=0;u--){var c=t[u];"in"===c.flow&&(c.nick!==o&&c.setNickAndAvatar({nick:o}),c.avatar!==s&&c.setNickAndAvatar({avatar:s})),"out"===c.flow&&(c.nick!==r&&c.setNickAndAvatar({nick:r}),c.avatar!==i&&c.setNickAndAvatar({avatar:i}))}}},{key:"getRemotePeerReadTime",value:function(e){var t=this,n="".concat(this._n,".getRemotePeerReadTime");if(Zt(e))return He.w("".concat(n," userIDList is empty!")),Promise.resolve();var o=new li("getPeerReadTime");return He.l("".concat(n," userIDList:").concat(e)),this.request({protocolName:No,requestData:{userIDList:e}}).then((function(s){var a=s.data.peerReadTimeList;He.l("".concat(n," ok. peerReadTimeList:").concat(a));for(var r="",i=t.getModule(Hn),u=0;u0&&i.recordPeerReadTime("C2C".concat(e[u]),a[u]);o.setNetworkType(t.getNetworkType()).setMessage(r).end()})).catch((function(e){t.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.w("".concat(n," failed. error:"),e)}))}},{key:"sendReadReceipt",value:function(e){var t=this,n=e[0].conversationID.replace(S.CONV_C2C,""),o=new li("sendC2CReadReceipt");o.setMessage("peerAccount:".concat(n));var s=this.getMyUserID(),a=e.filter((function(e){return e.from!==s&&!0===e.needReadReceipt})).map((function(e){return{fromAccount:e.from,toAccount:e.to,sequence:e.sequence,random:e.random,time:e.time,clientTime:e.clientTime}}));if(0===a.length)return Oi({code:Ua});var r="".concat(this._n,".sendReadReceipt");return He.l("".concat(r,". peerAccount:").concat(n," messageInfoList length:").concat(a.length)),this.request({protocolName:_s,requestData:{peerAccount:n,messageInfoList:a}}).then((function(e){return o.end(),He.l("".concat(r," ok")),Li()})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.w("".concat(r," failed. error:"),e),Oi(e)}))}},{key:"getReadReceiptList",value:function(e){var t="".concat(this._n,".getReadReceiptList"),n=this.getMyUserID(),o=e.filter((function(e){return e.from===n&&!0===e.needReadReceipt}));return He.l("".concat(t," userID:").concat(n," messageList length:").concat(o.length)),Ni({messageList:o})}},{key:"getMessageExtensions",value:function(e,t){return He.l("".concat(this._n,".getMessageExtensions startSequence:").concat(t)),this.request({protocolName:Uo,requestData:{from:e.from,to:e.to,messageKey:this._getMessageKey(e),startSequence:t}})}},{key:"modifyMessageExtensions",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return He.l("".concat(this._n,".modifyMessageExtensions operateType:").concat(n)),this.request({protocolName:Po,requestData:{from:e.from,to:e.to,messageKey:this._getMessageKey(e),extensionList:t,operateType:n}})}},{key:"_getMessageKey",value:function(e){var t=e.clientSequence,n=e.random,o=e.time;return"".concat(t,"_").concat(n,"_").concat(o)}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._messageFromUnreadDBMap.clear(),this._signalingFromUnreadDBList.length=0}}]),s}(po),Pi=function(){function e(){o(this,e),this.list=new Map,this._n="MessageListHandler",this._latestMessageSentByPeerMap=new Map,this._latestMessageSentByMeMap=new Map}return a(e,[{key:"getLocalOldestMessageByConversationID",value:function(e){if(!e)return null;if(!this.list.has(e))return null;var t=this.list.get(e).values();return t?t.next().value:null}},{key:"pushIn",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.conversationID,o=!0;this.list.has(n)||this.list.set(n,new Map);var s=this._getUniqueIDOfMessage(e),a=this.list.get(n).has(s);if(a){var r=this.list.get(n).get(s);if(!t||!0===r.isModified)return o=!1}return this.list.get(n).set(s,e),this._setLatestMessageSentByPeer(n,e),this._setLatestMessageSentByMe(n,e),o}},{key:"unshift",value:function(e,t){var n;if(it(e)?e.length>0&&(n=e[0].conversationID,this._unshiftMultipleMessages(e,t)):(n=e.conversationID,this._unshiftSingleMessage(e,t)),n&&n.startsWith(S.CONV_C2C)){var o=Array.from(this.list.get(n).values()),s=o.length;if(0===s)return;for(var a=s-1;a>=0;a--)if("out"===o[a].flow){this._setLatestMessageSentByMe(n,o[a]);break}for(var r=s-1;r>=0;r--)if("in"===o[r].flow){this._setLatestMessageSentByPeer(n,o[r]);break}}}},{key:"_unshiftSingleMessage",value:function(e,t){var n=e.conversationID,o=this._getUniqueIDOfMessage(e);if(!this.list.has(n))return this.list.set(n,new Map),this.list.get(n).set(o,e),void t.push(e);var s=this.list.get(n),a=Array.from(s);s.has(o)||(a.unshift([o,e]),this.list.set(n,new Map(a)),t.push(e))}},{key:"_unshiftMultipleMessages",value:function(e,t){for(var n=e.length,o=[],s=e[0].conversationID,a=this.list.get(s),r=this.list.has(s)?Array.from(a):[],i=0;i=0;l--)"in"===a[l].flow&&((i=a[l]).nick!==n&&(i.setNickAndAvatar({nick:n}),c=!0),i.avatar!==o&&(i.setNickAndAvatar({avatar:o}),c=!0),c&&(u+=1));He.l("".concat(this._n,".modifyMessageSentByPeer conversationID:").concat(t," count:").concat(u))}}}},{key:"modifyMessageSentByMe",value:function(e){var t=e.conversationID,n=e.latestNick,o=e.latestAvatar,s=this.list.get(t);if(!Zt(s)){var a=Array.from(s.values()),r=a.length;if(0!==r){for(var i=null,u=0,c=!1,l=r-1;l>=0;l--)"out"===a[l].flow&&((i=a[l]).nick!==n&&(i.setNickAndAvatar({nick:n}),c=!0),i.avatar!==o&&(i.setNickAndAvatar({avatar:o}),c=!0),c&&(u+=1));He.l("".concat(this._n,".modifyMessageSentByMe conversationID:").concat(t," count:").concat(u))}}}},{key:"getTopicConversationIDList",value:function(e){return m(this.list.keys()).filter((function(t){return t.startsWith("".concat(S.CONV_GROUP).concat(e))}))}},{key:"traversal",value:function(){if(0!==this.list.size&&-1===He.getLevel()){console.group("conversationID-messageCount");var e,t=D(this.list);try{for(t.s();!(e=t.n()).done;){var n=v(e.value,2),o=n[0],s=n[1];console.log("".concat(o,"-").concat(s.size))}}catch(a){t.e(a)}finally{t.f()}console.groupEnd()}}},{key:"onMessageModified",value:function(e,t){if(!this.list.has(e))return{isUpdated:!1,message:null};var n=this._getUniqueIDOfMessage(t),o=this.list.get(e).has(n);if(He.d("".concat(this._n,".onMessageModified conversationID:").concat(e," uniqueID:").concat(n," has:").concat(o)),o){var s=this.list.get(e).get(n),a=t.messageVersion,r=t.elements,i=t.cloudCustomData;return s.version1&&void 0!==arguments[1]&&arguments[1];if(e)return this._isReady?void(t?e.call(this):setTimeout(e,1)):(this._readyQueue=this._readyQueue||[],void this._readyQueue.push(e))},t.triggerReady=function(){var e=this;this._isReady=!0,setTimeout((function(){var t=e._readyQueue;e._readyQueue=[],t&&t.length>0&&t.forEach((function(e){e.call(this)}),e)}),1)},t.resetReady=function(){this._isReady=!1,this._readyQueue=[]},t.isReady=function(){return this._isReady}};var Fi=["jpg","jpeg","gif","png","bmp","image","webp"],xi=["mp4","quicktime","mov"],Vi=1,Bi=2,Hi=3,Ki=255,Wi=function(){function e(t){var n=this;o(this,e),Zt(t)||(this.userID=t.userID||"",this.nick=t.nick||"",this.gender=t.gender||"",this.birthday=t.birthday||0,this.location=t.location||"",this.selfSignature=t.selfSignature||"",this.allowType=t.allowType||S.ALLOW_TYPE_ALLOW_ANY,this.language=t.language||0,this.avatar=t.avatar||"",this.messageSettings=t.messageSettings||0,this.adminForbidType=t.adminForbidType||S.FORBID_TYPE_NONE,this.level=t.level||0,this.role=t.role||0,this.lastUpdatedTime=0,this.profileCustomField=[],Zt(t.profileCustomField)||t.profileCustomField.forEach((function(e){n.profileCustomField.push({key:e.key,value:e.value})})))}return a(e,[{key:"validate",value:function(e){var t=!0,n="";if(Zt(e))return{valid:!1,tips:"empty options"};if(e.profileCustomField)for(var o=e.profileCustomField.length,s=null,a=0;a500&&(n="nick name limited: must less than or equal to ".concat(500," bytes, current size: ").concat(mt(e[r])," bytes"),t=!1);break;case"gender":Ct(je,e.gender)||(n="key:gender, invalid value:"+e.gender,t=!1);break;case"birthday":ot(e.birthday)||(n="birthday must be a number",t=!1);break;case"location":st(e.location)||(n="location must be a string",t=!1);break;case"selfSignature":st(e.selfSignature)||(n="selfSignature must be a string",t=!1);break;case"allowType":Ct(ze,e.allowType)||(n="key:allowType, invalid value:"+e.allowType,t=!1);break;case"language":ot(e.language)||(n="language must be a number",t=!1);break;case"avatar":st(e.avatar)||(n="avatar must be a string",t=!1);break;case"messageSettings":0!==e.messageSettings&&1!==e.messageSettings&&(n="messageSettings must be 0 or 1",t=!1);break;case"adminForbidType":Ct(Ye,e.adminForbidType)||(n="key:adminForbidType, invalid value:"+e.adminForbidType,t=!1);break;case"level":ot(e.level)||(n="level must be a number",t=!1);break;case"role":ot(e.role)||(n="role must be a number",t=!1);break;default:n="unknown key:"+r+" "+e[r],t=!1}}return{valid:t,tips:n}}}]),e}(),ji=a((function e(t){o(this,e),this.value=t,this.next=null})),Yi=function(){function e(t){o(this,e),this.MAX_LENGTH=t,this.pTail=null,this.pNodeToDel=null,this.map=new Map}return a(e,[{key:"set",value:function(e){var t=new ji(e);if(this.map.size0&&n.members.forEach((function(e){e.userID===t.selfInfo.userID&&ft(t.selfInfo,e,["sequence"])}))}},{key:"updateSelfInfo",value:function(e){var n={nameCard:e.nameCard,joinTime:e.joinTime,role:e.role,messageRemindType:e.messageRemindType,readedSequence:e.readedSequence,excludedUnreadSequenceList:e.excludedUnreadSequenceList};ft(this.selfInfo,t({},n),[],["",null,void 0,0,NaN])}},{key:"setSelfNameCard",value:function(e){this.selfInfo.nameCard=e}}]),e}(),Xi=function(e,n){return ut(e)?{lastTime:0,lastSequence:0,fromAccount:0,messageForShow:"",payload:null,type:"",isRevoked:!1,cloudCustomData:"",onlineOnlyFlag:!1,nick:"",nameCard:"",version:0,isPeerRead:!1,revoker:null}:e instanceof Si?{lastTime:e.time||0,lastSequence:e.sequence||0,fromAccount:e.from||"",messageForShow:Wt(e.type,e.payload,n),payload:e.payload||null,type:e.type||null,isRevoked:e.isRevoked||!1,cloudCustomData:e.cloudCustomData||"",onlineOnlyFlag:e._onlineOnlyFlag||!1,nick:e.nick||"",nameCard:e.nameCard||"",version:e.version||0,isPeerRead:e.isPeerRead||!1,revoker:e.revoker||null}:t(t({},e),{},{messageForShow:Wt(e.type,e.payload,n)})},Qi=function(){function e(t,n){o(this,e),this.conversationID=t.conversationID||"",this.unreadCount=t.unreadCount||0,this.type=t.type||"",this.lastMessage=Xi(t.lastMessage,n),t.lastMsgTime&&(this.lastMessage.lastTime=t.lastMsgTime),this._isInfoCompleted=!1,this.peerReadTime=t.peerReadTime||0,this.groupAtInfoList=[],this.remark="",this.isPinned=t.isPinned||!1,this.messageRemindType="",this.markList=t.markList||[],this.customData=t.customData||"",this.conversationGroupList=t.conversationGroupList||[],this._initProfile(t)}return a(e,[{key:"toAccount",get:function(){return this.conversationID.startsWith(S.CONV_C2C)?this.conversationID.replace(S.CONV_C2C,""):this.conversationID.startsWith(S.CONV_GROUP)?this.conversationID.replace(S.CONV_GROUP,""):""}},{key:"subType",get:function(){return this.groupProfile?this.groupProfile.type:""}},{key:"_initProfile",value:function(e){var t=this;Object.keys(e).forEach((function(n){switch(n){case"userProfile":t.userProfile=e.userProfile;break;case"groupProfile":t.groupProfile=e.groupProfile}})),ut(this.userProfile)&&this.type===S.CONV_C2C?this.userProfile=new Wi({userID:e.conversationID.replace("C2C","")}):ut(this.groupProfile)&&this.type===S.CONV_GROUP&&(this.groupProfile=new Ji({groupID:e.conversationID.replace("GROUP","")}))}},{key:"updateUnreadCount",value:function(e){var t=e.nextUnreadCount,n=e.isFromGetConversations,o=e.isUnreadC2CMessage;ut(t)||(Lt(this.subType)?this.unreadCount=0:n&&this.type===S.CONV_GROUP||n&&this.type===S.CONV_TOPIC||o&&this.type===S.CONV_C2C?this.unreadCount=t:this.unreadCount=this.unreadCount+t)}},{key:"updateLastMessage",value:function(e){this.lastMessage=Xi(e)}},{key:"updateGroupAtInfoList",value:function(e){if(!this._isNeedMergeGroupAtInfo(e)){var t,n=(M(t=e.groupAtType)||y(t)||I(t)||T()).slice(0);-1!==n.indexOf(S.CONV_AT_ME)&&-1!==n.indexOf(S.CONV_AT_ALL)&&(n=[S.CONV_AT_ALL_AT_ME]);var o={from:e.from,groupID:e.groupID,topicID:e.topicID,messageSequence:e.sequence,atTypeArray:n,__random:e.__random,__sequence:e.__sequence};this.groupAtInfoList.push(o)}}},{key:"_isNeedMergeGroupAtInfo",value:function(e){var t=e.groupID,n=e.sequence;if(!Et({groupID:t}))return!1;var o=!1;return this.groupAtInfoList.forEach((function(t){t.messageSequence===n&&(t.atTypeArray.indexOf(S.CONV_AT_ME)>-1&&e.groupAtType.indexOf(S.CONV_AT_ALL)>-1&&(t.atTypeArray=[S.CONV_AT_ALL_AT_ME]),t.atTypeArray.indexOf(S.CONV_AT_ALL)>-1&&e.groupAtType.indexOf(S.CONV_AT_ME)>-1&&(t.atTypeArray=[S.CONV_AT_ALL_AT_ME],t.__random=e.__random,t.__sequence=e.__sequence),o=!0)})),o}},{key:"clearGroupAtInfoList",value:function(){this.groupAtInfoList.length=0}},{key:"reduceUnreadCount",value:function(){return this.unreadCount>=1&&(this.unreadCount-=1,!0)}},{key:"isLastMessageRevoked",value:function(e){var t=e.sequence,n=e.time;return this.type===S.CONV_C2C&&t===this.lastMessage.lastSequence&&n===this.lastMessage.lastTime||this.type===S.CONV_GROUP&&t===this.lastMessage.lastSequence}},{key:"setLastMessageRevoked",value:function(e){this.lastMessage.isRevoked=e}},{key:"setLastMessageRevoker",value:function(e){this.lastMessage.revoker=e}}]),e}(),Zi=function(){function e(t){o(this,e),this._conversationModule=t,this._n="MessageRemindHandler",this._updateSequence=0}return a(e,[{key:"getC2CMessageRemindType",value:function(){var e=this,t="".concat(this._n,".getC2CMessageRemindType");return this._conversationModule.request({protocolName:Ao,updateSequence:this._updateSequence}).then((function(n){He.l("".concat(t," ok"));var o=n.data,s=o.updateSequence,a=o.muteFlagList;e._updateSequence=s,e._patchC2CMessageRemindType(a)})).catch((function(e){He.e("".concat(t," failed. error:"),e)}))}},{key:"_patchC2CMessageRemindType",value:function(e){var t=this,n=0,o="";it(e)&&e.length>0&&e.forEach((function(e){var s=e.userID,a=e.muteFlag;0===a?o=S.MSG_REMIND_ACPT_AND_NOTE:1===a?o=S.MSG_REMIND_DISCARD:2===a&&(o=S.MSG_REMIND_ACPT_NOT_NOTE),!0===t._conversationModule.patchMessageRemindType({ID:s,isC2CConversation:!0,messageRemindType:o})&&(n+=1)})),He.l("".concat(this._n,"._patchC2CMessageRemindType count:").concat(n))}},{key:"set",value:function(e){return e.groupID?this._setGroupMessageRemindType(e):it(e.userIDList)?this._setC2CMessageRemindType(e):void 0}},{key:"_setGroupMessageRemindType",value:function(e){var t=this,n="".concat(this._n,"._setGroupMessageRemindType"),o=e.groupID,s=e.messageRemindType,a="groupID:".concat(o," messageRemindType:").concat(s),r=new li("setMessageRemindType");return r.setMessage(a),this._getModule(Vn).modifyGroupMemberInfo({groupID:o,messageRemindType:s,userID:this._conversationModule.getMyUserID()}).then((function(){r.setNetworkType(t._conversationModule.getNetworkType()).end(),He.l("".concat(n," ok. ").concat(a));var o=t.onGroupMessageRemindTypeUpdated(e);return t._conversationModule.emitTotalUnreadMessageCountUpdate(),Li(o)})).catch((function(e){return t._conversationModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"onGroupMessageRemindTypeUpdated",value:function(e){var t=e.groupID,n=e.messageRemindType,o=this._getModule(Fn).getLocalGroupProfile(t);if(o&&(o.selfInfo.messageRemindType=n),At(t)){var s=t,a=Kt(s),r=this._getModule(Bn).getLocalTopic(a,s);return r&&(r.updateSelfInfo({messageRemindType:n}),this._conversationModule.emitOuterEvent(k.TOPIC_UPDATED,{groupID:a,topic:r})),{topic:r}}return this._conversationModule.patchMessageRemindType({ID:t,isC2CConversation:!1,messageRemindType:n})&&this._emitConversationUpdate(),{group:o}}},{key:"_setC2CMessageRemindType",value:function(e){var t=this,n="".concat(this._n,"._setC2CMessageRemindType"),o=e.userIDList,s=e.messageRemindType,a=o.slice(0,30),r=0;s===S.MSG_REMIND_DISCARD?r=1:s===S.MSG_REMIND_ACPT_NOT_NOTE&&(r=2);var i="userIDList:".concat(a," messageRemindType:").concat(s),u=new li("setMessageRemindType");return u.setMessage(i),this._conversationModule.request({protocolName:Eo,requestData:{userIDList:a,muteFlag:r}}).then((function(e){u.setNetworkType(t._conversationModule.getNetworkType()).end();var o=e.data,r=o.updateSequence,i=o.errorList;t._updateSequence=r;var c=[],l=[];it(i)&&i.forEach((function(e){c.push(e.userID),l.push({userID:e.userID,code:e.errorCode})}));var p=a.filter((function(e){return-1===c.indexOf(e)}));He.l("".concat(n," ok. successUserIDList:").concat(p," failureUserIDList:").concat(JSON.stringify(l)));var d=0;return p.forEach((function(e){t._conversationModule.patchMessageRemindType({ID:e,isC2CConversation:!0,messageRemindType:s})&&(d+=1)})),d>=1&&t._emitConversationUpdate(),a.length=c.length=0,t._conversationModule.emitTotalUnreadMessageCountUpdate(),Ni({successUserIDList:p.map((function(e){return{userID:e}})),failureUserIDList:l})})).catch((function(e){return t._conversationModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];u.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_getModule",value:function(e){return this._conversationModule.getModule(e)}},{key:"_emitConversationUpdate",value:function(){this._conversationModule.emitConversationUpdate(!0,!1)}},{key:"setUpdateSequence",value:function(e){this._updateSequence=e}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._updateSequence=0}}]),e}(),$i=function(){function e(t){o(this,e),this._conversationModule=t,this._n="ConvGroupHandler",this._convGroupMap=new Map,this._startIndex=0,this._pagingStatus=on.NOT_START}return a(e,[{key:"setConvCustomData",value:function(e){var t=this,n="".concat(this._n,".").concat("setConvCustomData"),o=e.conversationIDList,s=e.customData;He.l("".concat(n," options:"),e);var a=new li("setConvCustomData");a.setMessage(JSON.stringify(e));var r={fromAccount:this._getMyUserID(),itemList:[]},i=[],u=[];return o.forEach((function(e){if(!t._hasLocalConversation(e))return t._onConversationNotFound(u,e),!0;if(!Rt(e)&&!Nt(e))return t._onConversationIDInvalid(u,e),!0;var n={operationType:2,contactItem:void 0,customMark:s};Rt(e)?n.contactItem={type:1,toAccount:e.replace(S.CONV_C2C,"")}:Nt(e)&&(n.contactItem={type:2,groupID:e.replace(S.CONV_GROUP,"")}),r.itemList.push(n)})),u.length===o.length?Ni({successConversationIDList:i,failureConversationIDList:u}):this._conversationModule.request({protocolName:Bo,requestData:r}).then((function(e){a.setNetworkType(t._conversationModule.getNetworkType()).end(),He.l("".concat(n," ok"));var o=e.data.resultItem;if(it(o)){var r,c,l=!1;o.forEach((function(e){r=t._concatConversationID(e.contactItem),0===e.resultCode?(i.push(r),(c=t._getLocalConversation(r))&&c.customData!==s&&(c.customData=s,l=!0)):u.push({conversationID:r,code:e.resultCode,message:e.resultInfo})})),!0===l&&t._emitConversationUpdate()}return Li({successConversationIDList:i,failureConversationIDList:u})})).catch((function(e){return t._conversationModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];a.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"markConversation",value:function(e){var t=this;if(!this._conversationModule.canIUse(B.CONV_MARK))return Oi({code:Kr});var n="".concat(this._n,".").concat("markConversation"),o=e.conversationIDList,s=e.markType,a=e.enableMark;He.l("".concat(n," options:"),e);var r=new li("markConversation");r.setMessage(JSON.stringify(e));var i=void 0,u=void 0,c=this._getFlagBit(s);!0===a?u=[c]:i=[c];var l={fromAccount:this._getMyUserID(),itemList:[]},p=[],d=[];return o.forEach((function(e){if(!t._hasLocalConversation(e))return t._onConversationNotFound(d,e),!0;if(!Rt(e)&&!Nt(e))return t._onConversationIDInvalid(d,e),!0;var n={operationType:1,contactItem:void 0,clearMark:i,setMark:u};Rt(e)?n.contactItem={type:1,toAccount:e.replace(S.CONV_C2C,"")}:Nt(e)&&(n.contactItem={type:2,groupID:e.replace(S.CONV_GROUP,"")}),l.itemList.push(n)})),d.length===o.length?Ni({successConversationIDList:p,failureConversationIDList:d}):this._conversationModule.request({protocolName:Ho,requestData:l}).then((function(e){r.setNetworkType(t._conversationModule.getNetworkType()).end(),He.l("".concat(n," ok"));var o=e.data.resultItem;if(it(o)){var i,u,c=!1;o.forEach((function(e){if(i=t._concatConversationID(e.contactItem),0===e.resultCode){if(p.push(i),u=t._getLocalConversation(i)){var n=u.markList.indexOf(s);!0===a?-1===n&&(u.markList.push(s),c=!0):-1!==n&&(u.markList.splice(n,1),c=!0)}}else d.push({conversationID:i,code:e.resultCode,message:e.resultInfo})})),!0===c&&t._emitConversationUpdate()}return Li({successConversationIDList:p,failureConversationIDList:d})})).catch((function(e){return t._conversationModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"getLocalConvGroupList",value:function(){var e=this;return He.l("".concat(this._n,".getLocalConvGroupList pagingStatus:").concat(this._pagingStatus)),this._pagingStatus===on.REJECTED?this.getRemoteConvGroupList().then((function(){return Li(m(e._convGroupMap.values()))})):Ni(m(this._convGroupMap.values()))}},{key:"getRemoteConvGroupList",value:function(){var e=this,t="".concat(this._n,".getRemoteConvGroupList");return this._pagingStatus=on.PENDING,this._conversationModule.request({protocolName:Jo,requestData:{fromAccount:this._getMyUserID(),startIndex:this._startIndex,startTime:Fe()}}).then((function(n){var o,s,a=n.data,r=a.completeFlag,i=a.contactItem,u=a.nextStartIndex,c=void 0===u?0:u,l=a.groupItem;(e._startIndex=c,He.l("".concat(t," completeFlag:").concat(r," nextStartIndex:").concat(c)),it(l)&&l.forEach((function(t){var n=t.convGroupID,o=t.groupName;e._convGroupMap.set(n,o)})),it(i))&&i.forEach((function(t){var n=t.standardMark,a=t.customData,r=t.convGroupIDList;if(o=e._concatConversationID(t),(s=e._getLocalConversation(o))&&(s.markList=Yt(n),s.customData=a||"",it(r))){var i=[];r.forEach((function(t){e._convGroupMap.has(t)&&i.push(e._convGroupMap.get(t))})),s.conversationGroupList=[].concat(i),i.length=0}}));if(0===r)return e.getRemoteConvGroupList();1===r&&(e._pagingStatus=on.RESOLVED,e._emitConversationUpdate(),e._emitConvGroupListUpdate())})).catch((function(n){e._pagingStatus=on.REJECTED,He.w("".concat(t," failed. error:"),n)}))}},{key:"createConvGroup",value:function(e){var t=this;if(!this._conversationModule.canIUse(B.CONV_GROUP))return Oi({code:Kr});var n="".concat(this._n,".").concat("createConvGroup");He.l("".concat(n," options:"),e);var o=new li("createConvGroup");o.setMessage(JSON.stringify(e));var s=e.groupName,a=e.conversationIDList,r={fromAccount:this._getMyUserID(),itemList:[{groupName:s,contactItem:[]}]},i=[],u=[];return a.forEach((function(e){return t._hasLocalConversation(e)?Rt(e)||Nt(e)?void(Rt(e)?r.itemList[0].contactItem.push({type:1,toAccount:e.replace(S.CONV_C2C,"")}):Nt(e)&&r.itemList[0].contactItem.push({type:2,groupID:e.replace(S.CONV_GROUP,"")})):(t._onConversationIDInvalid(u,e),!0):(t._onConversationNotFound(u,e),!0)})),u.length===a.length?Ni({successConversationIDList:i,failureConversationIDList:u}):this._conversationModule.request({protocolName:Ko,requestData:r}).then((function(e){o.setNetworkType(t._conversationModule.getNetworkType()).end(),He.l("".concat(n," ok"));var a=e.data.groupResultItem[0],r=a.groupItem,c=a.resultItem;if(rt(r)&&(t._convGroupMap.set(r.convGroupID,r.groupName),t._emitConvGroupListUpdate()),it(c)){var l,p,d=!1;c.forEach((function(e){l=t._concatConversationID(e.contactItem),0===e.resultCode?(i.push(l),(p=t._getLocalConversation(l))&&-1===p.conversationGroupList.indexOf(s)&&(p.conversationGroupList.push(s),d=!0)):u.push({conversationID:l,code:e.resultCode,message:e.resultInfo})})),!0===d&&(t._emitConversationUpdate(),t._emitConvGroupListUpdate())}return Li({successConversationIDList:i,failureConversationIDList:u})})).catch((function(e){return t._conversationModule.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"deleteConvGroup",value:function(e){var t=this;if(!this._conversationModule.canIUse(B.CONV_GROUP))return Oi({code:Kr});var n="".concat(this._n,".").concat("deleteConvGroup");He.l("".concat(n," groupName:").concat(e));var o=new li("deleteConvGroup");return o.setMessage(e),this._conversationModule.request({protocolName:Wo,requestData:{fromAccount:this._getMyUserID(),groupName:[e]}}).then((function(s){o.setNetworkType(t._conversationModule.getNetworkType()).end(),He.l("".concat(n," ok"));var a=s.data.groupItem;if(it(a)){var r=!1;a.forEach((function(e){t._convGroupMap.has(e.convGroupID)&&(t._convGroupMap.delete(e.convGroupID),r=!0)})),!0===r&&t._emitConvGroupListUpdate()}t._eraseFromConversationGroupList([e])})).catch((function(e){return t._conversationModule.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"renameConvGroup",value:function(e){var t=this;if(!this._conversationModule.canIUse(B.CONV_GROUP))return Oi({code:Kr});var n="".concat(this._n,".").concat("renameConvGroup");He.l("".concat(n," options:"),e);var o=new li("renameConvGroup");o.setMessage(JSON.stringify(e));var s=e.oldName,a=e.newName;return this._conversationModule.request({protocolName:jo,requestData:{fromAccount:this._getMyUserID(),updateType:1,updateGroup:{updateGroupType:1,oldName:s,newName:a}}}).then((function(e){o.setNetworkType(t._conversationModule.getNetworkType()).end(),He.l("".concat(n," ok"));var r=e.data.updateGroupResult.convGroupID;t._convGroupMap.set(r,a),t._emitConvGroupListUpdate();var i,u,c=t._conversationModule.getLocalConversationList(),l=!1;c.forEach((function(e){i=e.conversationGroupList,-1!==(u=i.indexOf(s))&&(i.splice(u,1,a),l=!0)})),!0===l&&t._emitConversationUpdate()})).catch((function(e){return t._conversationModule.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"addConvsToGroup",value:function(e){var t=this;if(!this._conversationModule.canIUse(B.CONV_GROUP))return Oi({code:Kr});var n="".concat(this._n,".").concat("addConvsToGroup");He.l("".concat(n," options:"),e);var o=new li("addConvsToGroup");o.setMessage(JSON.stringify(e));var s=e.conversationIDList,a=e.groupName,r={fromAccount:this._getMyUserID(),updateType:1,updateGroup:{updateGroupType:2,groupName:a,updateItem:[]}},i=[],u=[];return s.forEach((function(e){return t._hasLocalConversation(e)?Rt(e)||Nt(e)?void(Rt(e)?r.updateGroup.updateItem.push({operationType:1,contactItem:{type:1,toAccount:e.replace(S.CONV_C2C,"")}}):Nt(e)&&r.updateGroup.updateItem.push({operationType:1,contactItem:{type:2,groupID:e.replace(S.CONV_GROUP,"")}})):(t._onConversationIDInvalid(u,e),!0):(t._onConversationNotFound(u,e),!0)})),u.length===s.length?Ni({successConversationIDList:i,failureConversationIDList:u}):this._conversationModule.request({protocolName:Yo,requestData:r}).then((function(e){o.setNetworkType(t._conversationModule.getNetworkType()).end(),He.l("".concat(n," ok"));var s=e.data.updateGroupResult.contactResultItem;if(it(s)){var r,c,l=!1;s.forEach((function(e){r=t._concatConversationID(e.contactItem),0===e.resultCode?(c=t._getLocalConversation(r))&&-1===c.conversationGroupList.indexOf(a)&&(c.conversationGroupList.push(a),i.push(r),l=!0):u.push({conversationID:r,code:e.resultCode,message:e.resultInfo})})),!0===l&&(t._emitConversationUpdate(),t._emitConvInGroupUpdate(a))}return Li({successConversationIDList:i,failureConversationIDList:u})})).catch((function(e){return t._conversationModule.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"deleteConvsFromGroup",value:function(e){var t=this;if(!this._conversationModule.canIUse(B.CONV_GROUP))return Oi({code:Kr});var n="".concat(this._n,".").concat("deleteConvsFromGroup");He.l("".concat(n," options:"),e);var o=new li("deleteConvsFromGroup");o.setMessage(JSON.stringify(e));var s=e.conversationIDList,a=e.groupName,r={fromAccount:this._getMyUserID(),updateType:1,updateGroup:{updateGroupType:2,groupName:a,updateItem:[]}},i=[],u=[];return s.forEach((function(e){return t._hasLocalConversation(e)?Rt(e)||Nt(e)?void(Rt(e)?r.updateGroup.updateItem.push({operationType:2,contactItem:{type:1,toAccount:e.replace(S.CONV_C2C,"")}}):Nt(e)&&r.updateGroup.updateItem.push({operationType:2,contactItem:{type:2,groupID:e.replace(S.CONV_GROUP,"")}})):(t._onConversationIDInvalid(u,e),!0):(t._onConversationNotFound(u,e),!0)})),u.length===s.length?Ni({successConversationIDList:i,failureConversationIDList:u}):this._conversationModule.request({protocolName:zo,requestData:r}).then((function(e){o.setNetworkType(t._conversationModule.getNetworkType()).end(),He.l("".concat(n," ok"));var s=e.data.updateGroupResult.contactResultItem;if(it(s)){var r,c,l=!1;s.forEach((function(e){if(r=t._concatConversationID(e.contactItem),0===e.resultCode){if(c=t._getLocalConversation(r)){var n=c.conversationGroupList.indexOf(a);-1!==n&&(c.conversationGroupList.splice(n,1),i.push(r),l=!0)}}else u.push({conversationID:r,code:e.resultCode,message:e.resultInfo})})),!0===l&&(t._emitConversationUpdate(),t._emitConvInGroupUpdate(a))}return Li({successConversationIDList:i,failureConversationIDList:u})})).catch((function(e){return t._conversationModule.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"onConvMarkUpdated",value:function(e){var t=this;if(!Zt(e)){var n,o;He.d("".concat(this._n,".onConvMarkUpdated markItemList:"),e);var s=!1;e.forEach((function(e){var a=e.recentContactItem,r=e.optType,i=e.standardMark,u=e.customMark;if(n=t._concatConversationID(a),o=t._getLocalConversation(n))if(1===r){var c=Yt(i);!0!==function(e,t){if(e===t)return!0;if(!e||!t)return!1;if(e.length!==t.length)return!1;for(var n=0,o=e.length;n=0;o--)if("1"===t[o])return n-o-1}},{key:"_concatConversationID",value:function(e){var t,n=e.type,o=e.to,s=e.groupID,a=e.userID;return 1===n?ut(a)?ut(o)||(t="".concat(S.CONV_C2C).concat(o)):t="".concat(S.CONV_C2C).concat(a):2===n&&(t="".concat(S.CONV_GROUP).concat(s)),t}},{key:"_getMyUserID",value:function(){return this._conversationModule.getMyUserID()}},{key:"_insertConversationGroup",value:function(e,t){var n=this._getLocalConversation(e);if(n){var o=n.conversationGroupList;-1===o.indexOf(t)&&o.push(t)}}},{key:"_getLocalConversation",value:function(e){return this._conversationModule.getLocalConversation(e)}},{key:"_hasLocalConversation",value:function(e){return this._conversationModule.hasLocalConversation(e)}},{key:"_emitConversationUpdate",value:function(){this._conversationModule.emitConversationUpdate(!0,!1)}},{key:"_emitConvGroupListUpdate",value:function(){this._conversationModule.emitOuterEvent(k.CONVERSATION_GROUP_LIST_UPDATED,m(this._convGroupMap.values()))}},{key:"_emitConvInGroupUpdate",value:function(e){var t={groupName:e,conversationList:[]},n=this._conversationModule.getLocalConversationList();t.conversationList=n.filter((function(t){return t.conversationGroupList.includes(e)})),this._conversationModule.emitOuterEvent(k.CONVERSATION_IN_GROUP_UPDATED,t)}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._convGroupMap.clear(),this._startIndex=0,this._pagingStatus=on.NOT_START}}]),e}(),eu=function(e){i(s,e);var n=f(s);function s(e){var t;return o(this,s),(t=n.call(this,e))._n="ConversationModule",qi.mixin(h(t)),t._messageListHandler=new Pi,t._messageRemindHandler=new Zi(h(t)),t._convGroupHandler=new $i(h(t)),t.singlyLinkedList=new Yi(100),t._pagingStatus=on.NOT_START,t._pagingTimeStamp=0,t._pagingStartIndex=0,t._pagingPinnedTimeStamp=0,t._pagingPinnedStartIndex=0,t._pagingConvIDMap=new Map,t._convIDFromUnreadDBMap=new Map,t._conversationMap=new Map,t._tmpGroupList=[],t._tmpGroupAtTipsList=[],t._peerReadTimeMap=new Map,t._completedMap=new Map,t._roamingMessageKeyAndTimeMap=new Map,t._roamingMessageSequenceMap=new Map,t._remoteGroupReadSequenceMap=new Map,t._convTotalUnreadCount=0,t._initListeners(),t}return a(s,[{key:"_initListeners",value:function(){var e=this.getInnerEmitterInstance();e.on(Ui,this._initLocalConversationList,this),e.on(wi,this._onProfileUpdated,this)}},{key:"onCheckTimer",value:function(e){e%60==0&&this._messageListHandler.traversal()}},{key:"_initLocalConversationList",value:function(){var e=this,t=new li("_initLocalConversationList");He.l("".concat(this._n,".").concat("_initLocalConversationList"));var n="",o=this._getStorageConversationList(),s=this.isIntl();if(o){for(var a=o.length,r=0;r0&&(e.updateConversationGroupProfile(e._tmpGroupList),e._tmpGroupList.length=0)})),this.syncConversationList()}},{key:"onMessageSent",value:function(e){this._onSendOrReceiveMessage({conversationOptionsList:e.conversationOptionsList,isInstantMessage:!0})}},{key:"onNewMessage",value:function(e){this._onSendOrReceiveMessage(e)}},{key:"_onSendOrReceiveMessage",value:function(e){var t=this,n=e.conversationOptionsList,o=e.isInstantMessage,s=void 0===o||o,a=e.isUnreadC2CMessage,r=void 0!==a&&a,i=e.updateUnreadCount,u=void 0===i||i;this._isReady?0!==n.length&&(this._getC2CPeerReadTime(n),this._updateLocalConversationList({conversationOptionsList:n,isInstantMessage:s,isUnreadC2CMessage:r,isFromGetConversations:!1,updateUnreadCount:u}),s||(this._convIDFromUnreadDBMap=new Map([].concat(m(this._convIDFromUnreadDBMap),m(n.map((function(e){return[e.conversationID,1]}))))),this._diffAndDeleteConversation()),this._setStorageConversationList(),n.filter((function(e){return e.type===S.CONV_TOPIC})).length>0||this.emitConversationUpdate()):this.ready((function(){t._onSendOrReceiveMessage(e)}))}},{key:"updateConversationGroupProfile",value:function(e){var t=this;if(!it(e)||0!==e.length)if(0!==this._conversationMap.size){var n=!1;e.forEach((function(e){var o="GROUP".concat(e.groupID);if(t._conversationMap.has(o)){n=!0;var s=t._conversationMap.get(o);s.groupProfile=JSON.parse(JSON.stringify(e)),s.lastMessage.lastSequence=0;r--)if(!s[r].isDeleted){a=s[r];break}var i=this._conversationMap.get(o);if(i){var u=!1;i.lastMessage.lastSequence===a.sequence&&i.lastMessage.lastTime===a.time||(Zt(a)&&(a=void 0),i.updateLastMessage(a),i.type!==S.CONV_TOPIC&&(u=!0),He.l("".concat(this._n,".onMessageDeleted. update conversationID:").concat(o," with lastMessage:"),i.lastMessage)),o.startsWith(S.CONV_C2C)&&this.updateUnreadCount(o),u&&this.emitConversationUpdate(!0,!1)}}}},{key:"onMessageModified",value:function(e){var t=e.conversationType,n=e.from,o=e.to,s=e.time,a=e.sequence,r=e.elements,i=e.cloudCustomData,u=e.messageVersion,c=this.getMyUserID(),l="".concat(t).concat(o);o===c&&t===S.CONV_C2C&&(l="".concat(t).concat(n));var p=this._messageListHandler.onMessageModified(l,e),d=p.isUpdated,g=p.message;!0===d&&this.emitOuterEvent(k.MESSAGE_MODIFIED,[g]);var h=this._isTopicConversation(l);if(He.l("".concat(this._n,".onMessageModified isUpdated:").concat(d," isTopicMessage:").concat(h," from:").concat(n," to:").concat(o)),h){this.getModule(Bn).onMessageModified(e)}else{var _=this._conversationMap.get(l);if(_){var f=_.lastMessage;He.d("".concat(this._n.onMessageModified," lastMessage:"),JSON.stringify(f),"options:",JSON.stringify(e)),f&&f.lastTime===s&&f.lastSequence===a&&f.version!==u&&(f.type=r[0].type,f.payload=r[0].content,f.messageForShow=Wt(f.type,f.payload,this.isIntl()),f.cloudCustomData=i,f.version=u,this.emitConversationUpdate(!0,!1))}}return g}},{key:"onNewGroupAtTips",value:function(e){var n=this,o=e.dataList,s=null;o.forEach((function(e){e.groupAtTips?s=e.groupAtTips:e.elements?s=t(t({},e.elements),{},{sync:!0}):e.groupAtType&&(s=t(t({},e),{},{sync:!0})),s.__random=e.random,s.__sequence=e.clientSequence,n._tmpGroupAtTipsList.push(s)})),He.d("".concat(this._n,".onNewGroupAtTips isReady:").concat(this._isReady),this._tmpGroupAtTipsList),this._isReady&&this._handleGroupAtTipsList()}},{key:"_handleGroupAtTipsList",value:function(){var e=this;if(0!==this._tmpGroupAtTipsList.length){var t=!1;this._tmpGroupAtTipsList.forEach((function(n){var o=n.groupID,s=n.from,a=n.topicID,r=void 0===a?void 0:a,i=n.sync,u=void 0!==i&&i;if(s!==e.getMyUserID())if(ut(r)){var c=e._conversationMap.get("".concat(S.CONV_GROUP).concat(o));c&&(c.updateGroupAtInfoList(n),t=!0)}else{var l=e._conversationMap.get("".concat(S.CONV_GROUP).concat(r));if(l){l.updateGroupAtInfoList(n);var p=e.getModule(Bn),d=l.groupAtInfoList;p.onConversationProxy({topicID:r,groupAtInfoList:d})}if(Zt(l)&&u)e.updateTopicConversation([{conversationID:"".concat(S.CONV_GROUP).concat(r),type:S.CONV_TOPIC}]),e._conversationMap.get("".concat(S.CONV_GROUP).concat(r)).updateGroupAtInfoList(n)}})),t&&this.emitConversationUpdate(!0,!1),this._tmpGroupAtTipsList.length=0}}},{key:"_getC2CPeerReadTime",value:function(e){var t=this,n=[];if(e.forEach((function(e){t._conversationMap.has(e.conversationID)||e.type!==S.CONV_C2C||n.push(e.conversationID.replace(S.CONV_C2C,""))})),n.length>0){He.d("".concat(this._n,"._getC2CPeerReadTime userIDList:").concat(n));var o=this.getModule(qn);o&&o.getRemotePeerReadTime(n)}}},{key:"_getStorageConversationList",value:function(){return this.getModule(Wn).getItem("conversationMap")}},{key:"_setStorageConversationList",value:function(){var e=this.getLocalConversationList().filter((function(e){return e.type===S.CONV_C2C||e.type===S.CONV_GROUP&&e.lastMessage.type!==S.MSG_GRP_TIP})).slice(0,20).map((function(e){return{conversationID:e.conversationID,type:e.type,subType:e.subType,lastMessage:e.lastMessage,groupProfile:e.groupProfile,userProfile:e.userProfile}}));this.getModule(Wn).setItem("conversationMap",e)}},{key:"emitConversationUpdate",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.getLocalConversationList();if(t){var o=this.getModule(Fn);o&&o.updateGroupLastMessage(n)}e&&this.emitOuterEvent(k.CONVERSATION_LIST_UPDATED)}},{key:"getLocalConversationList",value:function(){return m(this._conversationMap.values()).filter((function(e){return e.type!==S.CONV_TOPIC}))}},{key:"getLocalConversation",value:function(e){return this._conversationMap.get(e)}},{key:"hasLocalConversation",value:function(e){return this._conversationMap.has(e)}},{key:"getLocalOldestMessage",value:function(e){return this._messageListHandler.getLocalOldestMessage(e)}},{key:"syncConversationList",value:function(){var e=this,t=new li("syncConversationList");return this._pagingStatus===on.NOT_START&&this._conversationMap.clear(),this._pagingGetConversationList().then((function(n){return e._pagingStatus=on.RESOLVED,e._diffAndDeleteConversation(),e.emitConversationUpdate(!0,!1),e._setStorageConversationList(),e._handleC2CPeerReadTime(),e._patchConversationProperties(),t.setMessage(e._conversationMap.size).setNetworkType(e.getNetworkType()).end(),n})).catch((function(n){return e._pagingStatus=on.REJECTED,t.setMessage(e._pagingTimeStamp),e.probeNetwork().then((function(e){var o=v(e,2),s=o[0],a=o[1];t.setError(n,s,a).end()})),Oi(n)}))}},{key:"_diffAndDeleteConversation",value:function(){var e=this;if(this._isSyncCompleted()){var t=[];this._conversationMap.forEach((function(n,o){!e._pagingConvIDMap.has(o)&&e._convIDFromUnreadDBMap.has(o)&&(e._conversationMap.delete(o),t.push(o))})),He.l("".concat(this._n,"._diffAndDeleteConversation list:").concat(t))}}},{key:"_patchConversationProperties",value:function(){var e=this,t=Date.now(),n=this.checkAndPatchRemark(),o=this._messageRemindHandler.getC2CMessageRemindType(),s=this.getModule(Fn).getGroupList();Promise.all([n,o,s]).then((function(){var n=Date.now()-t;He.l("".concat(e._n,"._patchConversationProperties ok. cost ").concat(n," ms")),e.emitConversationUpdate(!0,!1),e.emitTotalUnreadMessageCountUpdate()}))}},{key:"_pagingGetConversationList",value:function(){var e=this,t="".concat(this._n,"._pagingGetConversationList");return He.l("".concat(t," timeStamp:").concat(this._pagingTimeStamp," startIndex:").concat(this._pagingStartIndex)+" pinnedTimeStamp:".concat(this._pagingPinnedTimeStamp," pinnedStartIndex:").concat(this._pagingPinnedStartIndex)),this._pagingStatus=on.PENDING,this.request({protocolName:bo,requestData:{fromAccount:this.getMyUserID(),timeStamp:this._pagingTimeStamp,startIndex:this._pagingStartIndex,pinnedTimeStamp:this._pagingPinnedTimeStamp,pinnedStartIndex:this._pagingPinnedStartIndex,orderType:1}}).then((function(n){var o=n.data,s=o.completeFlag,a=o.conversations,r=void 0===a?[]:a,i=o.timeStamp,u=o.startIndex,c=o.pinnedTimeStamp,l=o.pinnedStartIndex,p=o.groupItem;if(He.l("".concat(t," ok. completeFlag:").concat(s," count:").concat(r.length," isReady:").concat(e._isReady)),e._convGroupHandler.onConvGroupListSynced(p),r.length>0){var d=e._getConversationOptions(r);e._pagingConvIDMap=new Map([].concat(m(e._pagingConvIDMap),m(d.map((function(e){return[e.conversationID,1]}))))),e._updateLocalConversationList({conversationOptionsList:d,isFromGetConversations:!0}),e.isLoggedIn()&&e.emitConversationUpdate()}if(!e._isReady){if(!e.isLoggedIn())return Ni();e.triggerReady()}return e._pagingTimeStamp=i,e._pagingStartIndex=u,e._pagingPinnedTimeStamp=c,e._pagingPinnedStartIndex=l,1!==s?e._pagingGetConversationList():(e._handleGroupAtTipsList(),e._convGroupHandler.getRemoteConvGroupList(),Ni())})).catch((function(n){throw e.isLoggedIn()&&(e._isReady||(He.w("".concat(t," failed. error:"),n),e.triggerReady())),n}))}},{key:"_updateLocalConversationList",value:function(e){var t,n=e.isFromGetConversations,o=e.isInstantMessage,s=Date.now();t=this._getTmpConversationListMapping(e),this._conversationMap=new Map(this._sortConversationList([].concat(m(t.toBeUpdatedConversationList),m(this._conversationMap)))),n||(this._updateUserOrGroupProfile(t.newConversationList),o&&this.emitTotalUnreadMessageCountUpdate()),He.d("".concat(this._n,"._updateLocalConversationList cost ").concat(Date.now()-s," ms"))}},{key:"_getTmpConversationListMapping",value:function(e){for(var t=e.conversationOptionsList,n=e.isFromGetConversations,o=e.isInstantMessage,s=e.isUnreadC2CMessage,a=void 0!==s&&s,r=e.updateUnreadCount,i=[],u=[],c=this.getModule(Fn),l=this.getModule(xn),p=this.isIntl(),d=0,g=t.length;d0&&s.getUserProfile({userIDList:n}).then((function(e){var n=e.data;it(n)?n.forEach((function(e){t._doUpdateUserProfile("C2C".concat(e.userID),e)})):t._doUpdateUserProfile("C2C".concat(n.userID),n)})),o.length>0&&a.getGroupProfileAdvance({groupIDList:o,responseFilter:{groupBaseInfoFilter:["Type","Name","FaceUrl"]}}).then((function(e){e.data.successGroupList.forEach((function(e){var n="GROUP".concat(e.groupID);if(t._conversationMap.has(n)){var o=t._conversationMap.get(n);ft(o.groupProfile,e,[],[null,void 0,"",0,NaN]),!o.subType&&e.type&&(o.subType=e.type)}}))}))}}},{key:"_doUpdateUserProfile",value:function(e,t){this.hasLocalConversation(e)&&(this.getLocalConversation(e).userProfile=t)}},{key:"_getConversationOptions",value:function(e){var n=this,o=[],s=e.filter((function(e){var t=e.type,n=e.userID;return 1===t&&"@TLS#NOT_FOUND"!==n&&"@TLS#ERROR"!==n||2===t})),a=this.getMyUserID(),r=s.map((function(e){if(ut(e.lastMsg)&&(e.lastMsg={elements:[]}),1===e.type){var s={userID:e.userID,nick:e.peerNick,avatar:e.peerAvatar};return o.push(s),{conversationID:"C2C".concat(e.userID),type:"C2C",lastMessage:{lastTime:e.time,lastSequence:e.sequence,fromAccount:e.lastC2CMsgFromAccount,messageForShow:e.messageShow,type:e.lastMsg.elements[0]?e.lastMsg.elements[0].type:null,payload:e.lastMsg.elements[0]?n._amendLayersOverLimitProperty(e.lastMsg.elements[0].content):null,cloudCustomData:e.lastMsg.cloudCustomData||"",isRevoked:8===e.lastMessageFlag,onlineOnlyFlag:!1,nick:"",nameCard:"",version:0,isPeerRead:e.lastC2CMsgFromAccount===a&&e.time<=e.c2cPeerReadTime,revoker:e.lastMsg.revokerInfo?e.lastMsg.revokerInfo.revoker:null},userProfile:new Wi(s),peerReadTime:e.c2cPeerReadTime,isPinned:1===e.isPinned,messageRemindType:"",customData:e.customMark||"",markList:Yt(e.standardMark),conversationGroupList:n._convGroupHandler.getConvGroupListByID(e.contactGroupId)}}return{conversationID:"GROUP".concat(e.groupID),type:"GROUP",lastMessage:t(t({lastTime:e.time,lastSequence:e.messageReadSeq+e.unreadCount,fromAccount:e.msgGroupFromAccount,messageForShow:e.messageShow},n._patchTypeAndPayload(e)),{},{cloudCustomData:e.lastMsg.cloudCustomData||"",isRevoked:2===e.lastMessageFlag,onlineOnlyFlag:!1,nick:e.senderNick||"",nameCard:e.senderNameCard||"",revoker:e.lastMsg.revokerInfo?e.lastMsg.revokerInfo.revoker:null}),groupProfile:new Ji({groupID:e.groupID,name:e.groupNick,avatar:e.groupImage}),unreadCount:e.unreadCount,peerReadTime:0,isPinned:1===e.isPinned,messageRemindType:"",version:0,customData:e.customMark||"",markList:Yt(e.standardMark),conversationGroupList:n._convGroupHandler.getConvGroupListByID(e.contactGroupId)}}));o.length>0&&this.getModule(wn).onConversationsProfileUpdated(o);return r}},{key:"_patchTypeAndPayload",value:function(e){var n=e.lastMsg,o=n.event,s=void 0===o?void 0:o,a=n.elements,r=void 0===a?[]:a,i=n.groupTips,u=void 0===i?{}:i;if(!ut(s)&&!Zt(u)){var c=new Si(u);c.setElement({type:S.MSG_GRP_TIP,content:t(t({},u.elements),{},{groupProfile:u.groupProfile})});var l=JSON.parse(JSON.stringify(c.payload));return c=null,{type:S.MSG_GRP_TIP,payload:l}}return{type:r[0]?r[0].type:null,payload:r[0]?this._amendLayersOverLimitProperty(r[0].content):null}}},{key:"_amendLayersOverLimitProperty",value:function(e){var t=e.layersOverLimit;return 0===t?e.layersOverLimit=!1:1===t&&(e.layersOverLimit=!0),e}},{key:"getLocalMessageList",value:function(e){return this._messageListHandler.getLocalMessageList(e)}},{key:"deleteLocalMessage",value:function(e){e instanceof Si&&this._messageListHandler.remove(e)}},{key:"onConversationDeleted",value:function(e){if(it(e)){var t=e.map((function(e){var t=e.type,n=e.userID,o=e.groupID;return 1===t?"".concat(S.CONV_C2C).concat(n):2===t?"".concat(S.CONV_GROUP).concat(o):void 0}));He.l("".concat(this._n,".onConversationDeleted conversationIDList:").concat(t)),this.deleteLocalConversationList(t)}}},{key:"onConversationPinned",value:function(e){var t=this;if(it(e)){var n=!1;e.forEach((function(e){var o,s=e.type,a=e.userID,r=e.groupID;1===s?o=t.getLocalConversation("".concat(S.CONV_C2C).concat(a)):2===s&&(o=t.getLocalConversation("".concat(S.CONV_GROUP).concat(r))),o&&(He.l("".concat(t._n,".onConversationPinned conversationID:").concat(o.conversationID," isPinned:").concat(o.isPinned)),o.isPinned||(o.isPinned=!0,n=!0))})),n&&this._sortConversationListAndEmitEvent()}}},{key:"onConversationUnpinned",value:function(e){var t=this;if(it(e)){var n=!1;e.forEach((function(e){var o,s=e.type,a=e.userID,r=e.groupID;1===s?o=t.getLocalConversation("".concat(S.CONV_C2C).concat(a)):2===s&&(o=t.getLocalConversation("".concat(S.CONV_GROUP).concat(r))),o&&(He.l("".concat(t._n,".onConversationUnpinned conversationID:").concat(o.conversationID," isPinned:").concat(o.isPinned)),o.isPinned&&(o.isPinned=!1,n=!0))})),n&&this._sortConversationListAndEmitEvent()}}},{key:"getMessageList",value:function(e){var t=this,n=e.conversationID,o=e.nextReqMessageID,s=e.count,a="".concat(this._n,".getMessageList"),r=this.getLocalConversation(n),i="";if(r&&r.groupProfile&&(i=r.groupProfile.type),Lt(i))return He.l("".concat(a," not available in avchatroom. conversationID:").concat(n)),Ni({messageList:[],nextReqMessageID:"",isCompleted:!0});(ut(s)||s>15)&&(s=15),!o&&this._isNotInCommunity(n)&&(this._messageListHandler.removeByConversationID(n),this._completedMap.delete(n),this._roamingMessageSequenceMap.delete(n));var u=this._computeRemainingCount({conversationID:n,nextReqMessageID:o}),c=this._completedMap.has(n);if(He.l("".concat(a," conversationID:").concat(n," nextReqMessageID:").concat(o)+" remainingCount:".concat(u," count:").concat(s," isCompleted:").concat(c)),this._needGetHistory({conversationID:n,remainingCount:u,count:s}))return this.getHistoryMessages({conversationID:n,nextReqMessageID:o,count:20}).then((function(e){var o=e.nextReqID,s=e.storedMessageList,r=t._completedMap.has(n),i=s;u>0&&(i=t._messageListHandler.getLocalMessageList(n).slice(0,s.length+u));var c={nextReqMessageID:r?"":o,messageList:i,isCompleted:r};return He.l("".concat(a," ret.nextReqMessageID:").concat(c.nextReqMessageID," ret.isCompleted:").concat(c.isCompleted," ret.length:").concat(i.length)),Li(c)}));this.modifyMessageList(n);var l=this._getMessageListFromMemory({conversationID:n,nextReqMessageID:o,count:s});return Ni(l)}},{key:"_getMessageListFromMemory",value:function(e){var t=e.conversationID,n=e.nextReqMessageID,o=e.count,s="".concat(this._n,"._getMessageListFromMemory"),a=this._messageListHandler.getLocalMessageList(t),r=a.length,i=0,u={isCompleted:!1,nextReqMessageID:"",messageList:[]};return n?(i=a.findIndex((function(e){return e.ID===n})))>o?(u.messageList=a.slice(i-o,i),u.nextReqMessageID=a[i-o].ID):(u.messageList=a.slice(0,i),u.isCompleted=!0):r>o?(i=r-o,u.messageList=a.slice(i,r),u.nextReqMessageID=a[i].ID):(u.messageList=a.slice(0,r),u.isCompleted=!0),He.l("".concat(s," conversationID:").concat(t)+" ret.nextReqMessageID:".concat(u.nextReqMessageID," ret.isCompleted:").concat(u.isCompleted," ret.length:").concat(u.messageList.length)),u}},{key:"getMessageListHopping",value:function(e){var t=e.conversationID,n=e.sequence,o=e.time,s=e.count,a=e.direction,r=void 0===a?0:a;if((ut(s)||s>15)&&(s=15),t.startsWith(S.CONV_C2C)){var i=this.getModule(qn),u=t.replace(S.CONV_C2C,"");return i.getRoamingMessagesHopping({peerAccount:u,time:o,count:s,direction:r})}if(t.startsWith(S.CONV_GROUP)){var c=this.getModule(Fn),l=t.replace(S.CONV_GROUP,"");return c.getRoamingMessagesHopping({groupID:l,sequence:n,count:s,direction:r})}}},{key:"_computeRemainingCount",value:function(e){var t=e.conversationID,n=e.nextReqMessageID,o=this._messageListHandler.getLocalMessageList(t),s=o.length;if(!n)return s;var a=0;return Rt(t)?a=o.findIndex((function(e){return e.ID===n})):Nt(t)&&(a=-1!==n.indexOf("-")?o.findIndex((function(e){return e.ID===n})):o.findIndex((function(e){return e.sequence===n}))),-1===a&&(a=0),a}},{key:"_getMessageListSize",value:function(e){return this._messageListHandler.getLocalMessageList(e).length}},{key:"_needGetHistory",value:function(e){var t=e.conversationID,n=e.remainingCount,o=e.count,s=this.getLocalConversation(t),a="";return s&&s.groupProfile&&(a=s.groupProfile.type),!Ot(t)&&!Lt(a)&&(!(Nt(t)&&this._isPagingGetGroupListCompleted()&&this._getLocalGroupCount()<=4e3&&!this._hasLocalGroup(t)&&!this._isTopicConversation(t))&&(n<=o&&!this._completedMap.has(t)))}},{key:"_isTopicConversation",value:function(e){var t=e.replace(S.CONV_GROUP,"");return At(t)}},{key:"getHistoryMessages",value:function(e){var t=e.conversationID,n=e.count;if(t===S.CONV_SYSTEM)return Ni();var o=15;n>20&&(o=20);var s=null;if(Rt(t)){var a=this._roamingMessageKeyAndTimeMap.has(t);return(s=this.getModule(qn))?s.getRoamingMessage({conversationID:t,peerAccount:t.replace(S.CONV_C2C,""),count:o,lastMessageTime:a?this._roamingMessageKeyAndTimeMap.get(t).lastMessageTime:0,messageKey:a?this._roamingMessageKeyAndTimeMap.get(t).messageKey:""}):Oi({code:Pr})}if(Nt(t)){if(!(s=this.getModule(Fn)))return Oi({code:Pr});var r=null;this._conversationMap.has(t)&&(r=this._conversationMap.get(t).lastMessage);var i=0;r&&(i=r.lastSequence);var u=this._roamingMessageSequenceMap.get(t);return s.getRoamingMessage({conversationID:t,groupID:t.replace(S.CONV_GROUP,""),count:o,sequence:u||i})}return Ni()}},{key:"patchConversationLastMessage",value:function(e){var t=this.getLocalConversation(e);if(t){var n=t.lastMessage,o=n.messageForShow,s=n.payload;if(Zt(o)||Zt(s)){var a=this._messageListHandler.getLocalMessageList(e);if(0===a.length)return;var r=a[a.length-1];He.l("".concat(this._n,".patchConversationLastMessage conversationID:").concat(e," payload:"),r.payload),t.updateLastMessage(r)}}}},{key:"onRoamingMessage",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0,o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=n.startsWith(S.CONV_C2C)?S.CONV_C2C:S.CONV_GROUP,a=null,r=[],i=[],u=0,c=e.length,l=null,p=s===S.CONV_GROUP,d=this.getModule(zn),g=this.getFileDownloadProxy(),h=function(){u=p?e.length-1:0,c=p?0:e.length},_=function(){p?--u:++u},f=function(){return p?u>=c:u0&&void 0!==arguments[0]?arguments[0]:{},n="setAllMessageRead",o="".concat(this._n,".").concat(n);t.scope||(t.scope=S.READ_ALL_MSG),He.l("".concat(o," options:"),t);var s=this._createSetAllMessageReadPack(t);if(0===s.readAllC2CMessage&&0===s.groupMessageReadInfoList.length)return Ni();var a=new li(n);return this.request({protocolName:ps,requestData:s}).then((function(n){var o=n.data,s=e._handleAllMessageRead(o);return a.setMessage("scope:".concat(t.scope," failureGroups:").concat(JSON.stringify(s))).setNetworkType(e.getNetworkType()).end(),Ni()})).catch((function(t){return e.probeNetwork().then((function(e){var n=v(e,2),o=n[0],s=n[1];a.setError(t,o,s).end()})),He.w("".concat(o," failed. error:"),t),Oi({code:t&&t.code?t.code:Pa,message:t&&t.message?t.message:void 0})}))}},{key:"setConversationCustomData",value:function(e){return this._convGroupHandler.setConvCustomData(e)}},{key:"markConversation",value:function(e){return this._convGroupHandler.markConversation(e)}},{key:"getConversationGroupList",value:function(){return this._convGroupHandler.getLocalConvGroupList()}},{key:"createConversationGroup",value:function(e){return this._convGroupHandler.createConvGroup(e)}},{key:"deleteConversationGroup",value:function(e){return this._convGroupHandler.deleteConvGroup(e)}},{key:"renameConversationGroup",value:function(e){return this._convGroupHandler.renameConvGroup(e)}},{key:"addConversationsToGroup",value:function(e){return this._convGroupHandler.addConvsToGroup(e)}},{key:"deleteConversationsFromGroup",value:function(e){return this._convGroupHandler.deleteConvsFromGroup(e)}},{key:"onConversationMarkUpdated",value:function(e){this._convGroupHandler.onConvMarkUpdated(e)}},{key:"onConversationGroupCreated",value:function(e){this._convGroupHandler.onConvGroupCreated(e)}},{key:"onConversationGroupDeleted",value:function(e){this._convGroupHandler.onConvGroupDeleted(e)}},{key:"onConversationGroupNameUpdated",value:function(e){this._convGroupHandler.onConvGroupNameUpdated(e)}},{key:"onConversationInGroupUpdated",value:function(e){this._convGroupHandler.onConvInGroupUpdated(e)}},{key:"onConversationAddedToOrDeletedFromGroup",value:function(e){this._convGroupHandler.onConvAddedToOrDeletedFromGroup(e)}},{key:"_getConversationLastMessageSequence",value:function(e){var t=this._messageListHandler.getLocalLastMessage(e.conversationID),n=e.lastMessage.lastSequence;return t&&n0)if(a.type===S.CONV_C2C&&0===n.readAllC2CMessage){if(o===S.READ_ALL_MSG)n.readAllC2CMessage=1;else if(o===S.READ_ALL_C2C_MSG){n.readAllC2CMessage=1;break}}else if(a.type===S.CONV_GROUP&&(o===S.READ_ALL_GROUP_MSG||o===S.READ_ALL_MSG)){var r=this._getConversationLastMessageSequence(a);n.groupMessageReadInfoList.push({groupID:a.groupProfile.groupID,messageSequence:r})}}}catch(i){s.e(i)}finally{s.f()}return n}},{key:"onPushedAllMessageRead",value:function(e){this._handleAllMessageRead(e)}},{key:"_handleAllMessageRead",value:function(e){var t=e.groupMessageReadInfoList,n=e.readAllC2CMessage,o=this._parseGroupReadInfo(t);return this._updateAllConversationUnreadCount({readAllC2CMessage:n})>=1&&(this.emitConversationUpdate(!0,!1),this.emitTotalUnreadMessageCountUpdate()),o}},{key:"_parseGroupReadInfo",value:function(e){var t=[];if(e&&e.length)for(var n=0,o=e.length;n=1){if(1===n&&i.type===S.CONV_C2C){var u=this._getConversationLastMessageTime(i);this.updateIsReadAfterReadReport({conversationID:r,lastMessageTime:u})}else if(i.type===S.CONV_GROUP){var c=r.replace(S.CONV_GROUP,"");if(this._remoteGroupReadSequenceMap.has(c)){var l=this._remoteGroupReadSequenceMap.get(c),p=this._getConversationLastMessageSequence(i);this.updateIsReadAfterReadReport({conversationID:r,remoteReadSequence:l}),p>=l&&this._remoteGroupReadSequenceMap.delete(c)}}this.updateUnreadCount(r,!1)&&(o+=1)}}}catch(d){s.e(d)}finally{s.f()}return o}},{key:"isRemoteRead",value:function(e){var t=e.conversationID,n=e.sequence,o=t.replace(S.CONV_GROUP,""),s=!1;if(this._remoteGroupReadSequenceMap.has(o)){var a=this._remoteGroupReadSequenceMap.get(o);n<=a&&(s=!0,He.l("".concat(this._n,".isRemoteRead conversationID:").concat(t," messageSequence:").concat(n," remoteReadSequence:").concat(a))),n>=a+10&&this._remoteGroupReadSequenceMap.delete(o)}return s}},{key:"updateIsReadAfterReadReport",value:function(e){var t=e.conversationID,n=e.lastMessageSeq,o=e.lastMessageTime,s=this._messageListHandler.getLocalMessageList(t);if(0!==s.length)for(var a,r=s.length-1;r>=0;r--)if(a=s[r],!(o&&a.time>o||n&&a.sequence>n)){if("in"===a.flow&&a.isRead)break;a.setIsRead(!0)}}},{key:"updateUnreadCount",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=!1,o=this.getLocalConversation(e),s=this._messageListHandler.getLocalMessageList(e);if(o){var a=o.unreadCount,r=s.filter((function(e){return!e.isRead&&!e._onlineOnlyFlag&&!e.isDeleted})).length;if(a!==r&&(o.unreadCount=r,n=!0,He.l("".concat(this._n,".updateUnreadCount from ").concat(a," to ").concat(r,", conversationID:").concat(e)),!0===t&&(this.emitConversationUpdate(!0,!1),this.emitTotalUnreadMessageCountUpdate())),n&&o.type===S.CONV_TOPIC){var i=o.unreadCount,u=this.getModule(Bn),c=e.replace(S.CONV_GROUP,"");u.onConversationProxy({topicID:c,unreadCount:i})}return n}}},{key:"clearGroupAtInfoList",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.getLocalConversation(e);if(n&&n.groupAtInfoList.length>0){if(n.clearGroupAtInfoList(),He.l("".concat(this._n,".clearGroupAtInfoList conversationID:").concat(e)),n.type===S.CONV_TOPIC){var o=n.groupAtInfoList,s=this.getModule(Bn),a=e.replace(S.CONV_GROUP,"");s.onConversationProxy({topicID:a,groupAtInfoList:o})}!0===t&&this.emitConversationUpdate(!0,!1)}}},{key:"updateReadReceiptInfo",value:function(e){var t=this,n=e.userID,o=void 0===n?void 0:n,s=e.groupID,a=void 0===s?void 0:s,r=e.readReceiptList;if(!Zt(r)){var i=[];if(ut(o)){if(!ut(a)){var u="".concat(S.CONV_GROUP).concat(a);r.forEach((function(e){var n=e.tinyID,o=e.clientTime,s=e.random,r=e.readCount,c=e.unreadCount,l="".concat(n,"-").concat(o,"-").concat(s),p=t._messageListHandler.getLocalMessage(u,l),d={groupID:a,messageID:l,readCount:0,unreadCount:0};p&&(ot(r)&&(p.readReceiptInfo.readCount=r,d.readCount=r),ot(c)&&(p.readReceiptInfo.unreadCount=c,d.unreadCount=c),i.push(d))}))}}else{var c="".concat(S.CONV_C2C).concat(o);r.forEach((function(e){var n=e.tinyID,s=e.clientTime,a=e.random,r="".concat(n,"-").concat(s,"-").concat(a),u=t._messageListHandler.getLocalMessage(c,r);if(u){u.readReceiptInfo.isPeerRead=!0;var l={userID:o,messageID:r,isPeerRead:!0};i.push(l)}}))}i.length>0&&this.emitOuterEvent(k.MESSAGE_READ_RECEIPT_RECEIVED,i)}}},{key:"recomputeGroupUnreadCount",value:function(e){var t=e.conversationID,n=e.count,o=this.getLocalConversation(t);if(o){var s=o.unreadCount,a=s-n;a<0&&(a=0),o.unreadCount=a,He.l("".concat(this._n,".recomputeGroupUnreadCount from ").concat(s," to ").concat(a,", conversationID:").concat(t))}}},{key:"updateIsRead",value:function(e){var t=this.getLocalConversation(e),n=this.getLocalMessageList(e);if(t&&0!==n.length&&!Ot(t.type)){for(var o=[],s=0,a=n.length;s0){var n=this._messageListHandler.updateMessageIsPeerReadProperty(e,t);if(n.length>0&&this.emitOuterEvent(k.MESSAGE_READ_BY_PEER,n),this._conversationMap.has(e)){var o=this._conversationMap.get(e).lastMessage;Zt(o)||o.fromAccount===this.getMyUserID()&&o.lastTime<=t&&!o.isPeerRead&&(o.isPeerRead=!0,this.emitConversationUpdate(!0,!1))}}}},{key:"updateMessageIsModifiedProperty",value:function(e){this._messageListHandler.updateMessageIsModifiedProperty(e)}},{key:"setCompleted",value:function(e){He.l("".concat(this._n,".setCompleted. conversationID:").concat(e)),this._completedMap.set(e,!0)}},{key:"updateRoamingMessageKeyAndTime",value:function(e,t,n){this._roamingMessageKeyAndTimeMap.set(e,{messageKey:t,lastMessageTime:n})}},{key:"updateRoamingMessageSequence",value:function(e,t){this._roamingMessageSequenceMap.set(e,t)}},{key:"getConversationList",value:function(e){var t=this,n="getConversationList",o="".concat(this._n,".").concat(n),s="pagingStatus:".concat(this._pagingStatus,", local conversation count:").concat(this._conversationMap.size,", options:").concat(e);if(He.l("".concat(o,". ").concat(s)),this._pagingStatus===on.REJECTED){var a=new li(n);return a.setMessage(s),this.syncConversationList().then((function(){a.setNetworkType(t.getNetworkType()).end();var n=t._getConversationList(e);return Li({conversationList:n,isSyncCompleted:t._isSyncCompleted()})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];a.setError(e,o,s).end()})),He.e("".concat(o," failed. error:"),e),Oi(e)}))}if(0===this._conversationMap.size){var r=new li(n);return r.setMessage(s),this.syncConversationList().then((function(){r.setNetworkType(t.getNetworkType()).end();var n=t._getConversationList(e);return Li({conversationList:n,isSyncCompleted:t._isSyncCompleted()})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),He.e("".concat(o," failed. error:"),e),Oi(e)}))}var i=this._getConversationList(e);return He.l("".concat(o,". returned conversation count:").concat(i.length)),Ni({conversationList:i,isSyncCompleted:this._isSyncCompleted()})}},{key:"_getConversationList",value:function(e){if(ut(e))return this.getLocalConversationList();if(it(e))return 0===e.length?[]:this.getLocalConversationList().filter((function(t){return e.includes(t.conversationID)}));if(rt(e)){var t=e.type,n=e.markType,o=e.groupName;return this.getLocalConversationList().filter((function(e){return(t!==S.CONV_C2C&&t!==S.CONV_GROUP||e.type===t)&&(!st(o)||e.conversationGroupList.includes(o))&&(!ot(n)||e.markList.includes(n))}))}return[]}},{key:"_handleC2CPeerReadTime",value:function(){var e,t=D(this._conversationMap);try{for(t.s();!(e=t.n()).done;){var n=v(e.value,2),o=n[0],s=n[1];s.type===S.CONV_C2C&&(He.d("".concat(this._n,"._handleC2CPeerReadTime conversationID:").concat(o," peerReadTime:").concat(s.peerReadTime)),this.recordPeerReadTime(o,s.peerReadTime))}}catch(a){t.e(a)}finally{t.f()}}},{key:"_isPagingGetGroupListCompleted",value:function(){return this.getModule(Fn).isPagingGetCompleted()}},{key:"_getLocalGroupCount",value:function(){return this.getModule(Fn).getLocalGroupList().length}},{key:"_hasLocalGroup",value:function(e){return this.getModule(Fn).hasLocalGroup(e.replace(S.CONV_GROUP,""))}},{key:"getConversationProfile",value:function(e){var t,n=this;if((t=this._conversationMap.has(e)?this._conversationMap.get(e):new Qi({conversationID:e,type:e.slice(0,3)===S.CONV_C2C?S.CONV_C2C:S.CONV_GROUP},this.isIntl()))._isInfoCompleted||t.type===S.CONV_SYSTEM)return Ni({conversation:t});if(Nt(e)&&!this._hasLocalGroup(e))return Ni({conversation:t});var o="".concat(this._n,".").concat("getConversationProfile"),s=new li("getConversationProfile");return He.l("".concat(o,". conversationID:").concat(e," remark:").concat(t.remark," lastMessage:"),t.lastMessage),this._updateUserOrGroupProfileCompletely(t).then((function(a){s.setNetworkType(n.getNetworkType()).setMessage("conversationID:".concat(e," unreadCount:").concat(a.data.conversation.unreadCount)).end();var r=n.getModule(xn);if(r&&t.type===S.CONV_C2C){var i=e.replace(S.CONV_C2C,"");if(r.isMyFriend(i)){var u=r.getFriendRemark(i);t.remark!==u&&(t.remark=u,He.l("".concat(o,". conversationID:").concat(e," patch remark:").concat(t.remark)))}}return He.l("".concat(o," ok. conversationID:").concat(e)),a})).catch((function(t){return n.probeNetwork().then((function(n){var o=v(n,2),a=o[0],r=o[1];s.setError(t,a,r).setMessage("conversationID:".concat(e)).end()})),He.e("".concat(o," failed. error:"),t),Oi(t)}))}},{key:"_updateUserOrGroupProfileCompletely",value:function(e){var t=this;return e.type===S.CONV_C2C?this.getModule(wn).getUserProfile({userIDList:[e.toAccount]}).then((function(n){var o=n.data;return 0===o.length?Oi(new Ei({code:sr})):(e.userProfile=o[0],e._isInfoCompleted=!0,t._unshiftConversation(e),Ni({conversation:e}))})):this.getModule(Fn).getGroupProfile({groupID:e.toAccount}).then((function(n){return e.groupProfile=n.data.group,e._isInfoCompleted=!0,t._unshiftConversation(e),Ni({conversation:e})}))}},{key:"_unshiftConversation",value:function(e){e instanceof Qi&&!this._conversationMap.has(e.conversationID)&&(this._conversationMap=new Map([[e.conversationID,e]].concat(m(this._conversationMap))),this._setStorageConversationList(),this.emitConversationUpdate(!0,!1))}},{key:"_onProfileUpdated",value:function(e){var t=this;e.data.forEach((function(e){var n=e.userID;if(n===t.getMyUserID())t._onMyProfileModified({latestNick:e.nick,latestAvatar:e.avatar});else{var o=t._conversationMap.get("".concat(S.CONV_C2C).concat(n));o&&(o.userProfile=e)}}))}},{key:"_isSyncCompleted",value:function(){return this._pagingStatus===on.RESOLVED}},{key:"_errorLog",value:function(e,t,n,o){var s=new Error("Params validate failed."),a="".concat(this.getErrorMessage("API_REFER")).concat(e);throw He.w("[".concat(e,"] | ").concat(t," | ").concat(this.getErrorMessage(n,o),", ").concat(a)),He.e("[".concat(e,"] Invalid ").concat(t,": type check failed for ").concat(t,".")),s}},{key:"_isValidConversationID",value:function(e){return Rt(e)||Nt(e)||Ot(e)}},{key:"deleteConversation",value:function(e){var t=this,n="deleteConversation";return st(e)||at(e)||this._errorLog(n,"options","StringOrObjectRequiredLog"),st(e)?(this._isValidConversationID(e)||this._errorLog(n,"options","InvalidConversationID",e),He.l("".concat(this._n,".").concat(n," conversationID:").concat(e)),this.deleteConversationList({conversationIDList:[e],flag:1})):(it(e.conversationIDList)||this._errorLog(n,"conversationIDList","ArrayRequiredLog"),0===e.conversationIDList.length&&this._errorLog(n,"conversationIDList","NonEmptyArrayLog"),e.conversationIDList.forEach((function(e){t._isValidConversationID(e)||t._errorLog(n,"conversationIDList","InvalidConversationID",e)})),"clearHistoryMessage"in e&&"boolean"!=typeof e.clearHistoryMessage&&this._errorLog(n,"clearHistoryMessage","BooleanRequiredLog"),e.conversationIDList.length>100&&(e.conversationIDList=e.conversationIDList.slice(0,100)),this.deleteConversationList(e))}},{key:"deleteConversationList",value:function(e){var t=this,n=e.conversationIDList,o=void 0===n?[]:n,s=e.clearHistoryMessage,a=void 0===s||s,r=e.flag,i=void 0===r?0:r,u="".concat(this._n,".").concat("deleteConversationList");He.l("".concat(u," conversationIDList.length:").concat(o.length," clearHistoryMessage:").concat(a));var c=new li("deleteConversationList");return c.setMessage("conversationIDList:".concat(o)),Promise.all([this.rmLocalOnlyConversationList(o),this.rmLocalAndRemoteConversationList(o,a)]).then((function(e){c.setNetworkType(t.getNetworkType()).end();var n=[].concat(m(e[0]),m(e[1]));return 0===n.length?Oi(new Ei({code:or})):(He.l("".concat(u," ok")),Ni(1===i?{conversationID:n[0]}:{conversationIDList:n}))})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];c.setError(e,o,s).end()})),He.e("".concat(u," failed. error:"),e),Oi(e)}))}},{key:"rmLocalOnlyConversationList",value:function(e){var t=this;return e.filter((function(e){if(!t._conversationMap.has(e))return!1;var n=t.getLocalConversation(e).type;return n!==S.CONV_GROUP||t._hasLocalGroup(e)?n===S.CONV_SYSTEM&&(t.getModule(Fn).deleteGroupSystemNotice({messageList:t._messageListHandler.getLocalMessageList(e)}),t.deleteLocalConversation(e),!0):(t.deleteLocalConversation(e),!0)}))}},{key:"rmLocalAndRemoteConversationList",value:function(e,t){var n=this,o={fromAccount:this.getMyUserID(),conversationList:[],clearHistoryMessage:t?1:0};return e.forEach((function(e){if(n._conversationMap.has(e)){var t=n.getLocalConversation(e).type;t===S.CONV_C2C?o.conversationList.push({toAccount:e.replace(t,""),type:1}):t===S.CONV_GROUP&&n._hasLocalGroup(e)&&o.conversationList.push({toGroupID:e.replace(t,""),type:2})}})),0===o.conversationList.length?[]:this.request({protocolName:qo,requestData:o}).then((function(e){var t=[];return e.data.resultList.length>0&&e.data.resultList.map((function(e){if(0===e.code){var n="".concat(1===e.type?S.CONV_C2C:S.CONV_GROUP).concat(e.to);t.push(n)}})),n.deleteLocalConversationList(t),t}))}},{key:"clearHistoryMessage",value:function(e){var t=this,n={fromAccount:this.getMyUserID(),toAccount:void 0,type:void 0,toGroupID:void 0};if(!this._conversationMap.has(e))return Oi({code:or});var o=this._conversationMap.get(e).type;if(o===S.CONV_C2C)n.type=1,n.toAccount=e.replace(S.CONV_C2C,"");else{if(o!==S.CONV_GROUP)return o===S.CONV_SYSTEM?(this.getModule(Fn).deleteGroupSystemNotice({messageList:this._messageListHandler.getLocalMessageList(e)}),Ni({conversationID:e})):Oi({code:ar});n.type=2,n.toGroupID=e.replace(S.CONV_GROUP,"")}var s="".concat(this._n,".").concat("clearHistoryMessage"),a=new li("clearHistoryMessage");return a.setMessage("conversationID:".concat(e)),He.l("".concat(s,". conversationID:").concat(e)),this.setMessageRead({conversationID:e}).then((function(){return t.request({protocolName:Fo,requestData:n})})).then((function(){a.setNetworkType(t.getNetworkType()).end(),He.l("".concat(s," ok")),t._messageListHandler.removeByConversationID(e),t.setCompleted(e);var n=t.getLocalConversation(e);return n&&(n.updateLastMessage(),t._sortConversationListAndEmitEvent()),Ni({conversationID:e})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];a.setError(e,o,s).end()})),He.e("".concat(s," failed. error:"),e),Oi(e)}))}},{key:"pinConversation",value:function(e){var t=this,n=e.conversationID,o=e.isPinned;if(!this._conversationMap.has(n))return Oi({code:or});var s=this.getLocalConversation(n);if(s.isPinned===o)return Ni({conversationID:n});var a="".concat(this._n,".").concat("pinConversation"),r=new li("pinConversation");r.setMessage("conversationID:".concat(n," isPinned:").concat(o)),He.l("".concat(a,". conversationID:").concat(n," isPinned:").concat(o));var i=null;return Rt(n)?i={type:1,toAccount:n.replace(S.CONV_C2C,"")}:Nt(n)&&(i={type:2,groupID:n.replace(S.CONV_GROUP,"")}),this.request({protocolName:xo,requestData:{fromAccount:this.getMyUserID(),operationType:!0===o?1:2,itemList:[i]}}).then((function(){return r.setNetworkType(t.getNetworkType()).end(),He.l("".concat(a," ok")),s.isPinned!==o&&(s.isPinned=o,t._sortConversationListAndEmitEvent()),Li({conversationID:n})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),He.e("".concat(a," failed. error:"),e),Oi(e)}))}},{key:"setMessageRemindType",value:function(e){return this._messageRemindHandler.set(e)}},{key:"patchMessageRemindType",value:function(e){var t=e.ID,n=e.isC2CConversation,o=e.messageRemindType,s=!1,a=this.getLocalConversation(n?"".concat(S.CONV_C2C).concat(t):"".concat(S.CONV_GROUP).concat(t));return a&&a.messageRemindType!==o&&(a.messageRemindType=o,s=!0),He.d("".concat(this._n,".patchMessageRemindType options:"),e,"ret:".concat(s)),s}},{key:"onC2CMessageRemindTypeSynced",value:function(e){var t=this,n="".concat(this._n,".onC2CMessageRemindTypeSynced");He.d(n,e),e.dataList.forEach((function(e){if(!Zt(e.muteNotificationsSync)){var o,s=e.muteNotificationsSync,a=s.to,r=s.updateSequence,i=s.muteFlag;t._messageRemindHandler.setUpdateSequence(r),0===i?o=S.MSG_REMIND_ACPT_AND_NOTE:1===i?o=S.MSG_REMIND_DISCARD:2===i&&(o=S.MSG_REMIND_ACPT_NOT_NOTE);var u=0;t.patchMessageRemindType({ID:a,isC2CConversation:!0,messageRemindType:o})&&(u+=1),He.l("".concat(n," updateCount:").concat(u)),u>=1&&t.emitConversationUpdate(!0,!1)}}))}},{key:"onGroupMessageRemindTypeSynced",value:function(e){He.d("".concat(this._n,".onGroupMessageRemindTypeSynced options:"),e),this._messageRemindHandler.onGroupMessageRemindTypeUpdated(e)}},{key:"deleteLocalConversation",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this._conversationMap.has(e);if(He.d("".concat(this._n,".deleteLocalConversation conversationID:").concat(e," has:").concat(n)),n&&(this._conversationMap.delete(e),this._roamingMessageKeyAndTimeMap.has(e)&&this._roamingMessageKeyAndTimeMap.delete(e),this._roamingMessageSequenceMap.has(e)&&this._roamingMessageSequenceMap.delete(e),this._setStorageConversationList(),this._messageListHandler.removeByConversationID(e),this._completedMap.delete(e),t)){var o=!this._isTopicConversation(e);this.emitConversationUpdate(o,!1)}}},{key:"deleteLocalConversationList",value:function(e){var t=this,n=0,o=!1;e.forEach((function(e){t._conversationMap.has(e)&&(n+=t._conversationMap.get(e).unreadCount||0,t.deleteLocalConversation(e,!1),o=!0)})),He.l("".concat(this._n,".deleteLocalConversationList conversationIDList.length:").concat(e.length," isConvIDExisted:").concat(o)),o&&(this.emitConversationUpdate(!0,!1),n>0&&this.emitTotalUnreadMessageCountUpdate())}},{key:"isMessageSentByCurrentInstance",value:function(e){return!(!this._messageListHandler.hasLocalMessage(e.conversationID,e.ID)&&!this.singlyLinkedList.has(e.random))}},{key:"modifyMessageList",value:function(e){if(e.startsWith(S.CONV_C2C)&&this._conversationMap.has(e)){var t=this._conversationMap.get(e),n=Date.now();this._messageListHandler.modifyMessageSentByPeer({conversationID:e,latestNick:t.userProfile.nick,latestAvatar:t.userProfile.avatar});var o=this.getModule(wn).getNickAndAvatarByUserID(this.getMyUserID());this._messageListHandler.modifyMessageSentByMe({conversationID:e,latestNick:o.nick,latestAvatar:o.avatar}),He.l("".concat(this._n,".modifyMessageList conversationID:").concat(e," cost ").concat(Date.now()-n," ms"))}}},{key:"updateUserProfileSpecifiedKey",value:function(e){He.l("".concat(this._n,".updateUserProfileSpecifiedKey options:"),e);var t=e.conversationID,n=e.nick,o=e.avatar;if(this._conversationMap.has(t)){var s=this._conversationMap.get(t).userProfile;st(n)&&s.nick!==n&&(s.nick=n),st(o)&&s.avatar!==o&&(s.avatar=o),this.emitConversationUpdate(!0,!1)}}},{key:"_onMyProfileModified",value:function(e){var n=this,o=this.getLocalConversationList(),s=Date.now();o.forEach((function(o){n.modifyMessageSentByMe(t({conversationID:o.conversationID},e))})),He.l("".concat(this._n,"._onMyProfileModified. modify all messages sent by me, cost ").concat(Date.now()-s," ms"))}},{key:"modifyMessageSentByMe",value:function(e){this._messageListHandler.modifyMessageSentByMe(e)}},{key:"getLatestMessageSentByMe",value:function(e){return this._messageListHandler.getLatestMessageSentByMe(e)}},{key:"modifyMessageSentByPeer",value:function(e){this._messageListHandler.modifyMessageSentByPeer(e)}},{key:"getLatestMessageSentByPeer",value:function(e){return this._messageListHandler.getLatestMessageSentByPeer(e)}},{key:"pushIntoNoticeResult",value:function(e,t){return!(!this._messageListHandler.pushIn(t)||this.singlyLinkedList.has(t.random))&&(e.push(t),!0)}},{key:"getLocalLastMessage",value:function(e){return this._messageListHandler.getLocalLastMessage(e)}},{key:"checkAndPatchRemark",value:function(){var e=Promise.resolve();if(0===this._conversationMap.size)return e;var t=this.getModule(xn);if(!t)return e;var n=m(this._conversationMap.values()).filter((function(e){return e.type===S.CONV_C2C}));if(0===n.length)return e;var o=0;return n.forEach((function(e){var n=e.conversationID.replace(S.CONV_C2C,"");if(t.isMyFriend(n)){var s=t.getFriendRemark(n);e.remark!==s&&(e.remark=s,o+=1)}})),He.l("".concat(this._n,".checkAndPatchRemark. c2c conversation count:").concat(n.length,", patched count:").concat(o)),e}},{key:"updateTopicConversation",value:function(e){this._updateLocalConversationList({conversationOptionsList:e,isFromGetConversations:!0})}},{key:"sendReadReceipt",value:function(e){var t=e[0],n=null;return t.conversationType===S.CONV_C2C?n=this._m.getModule(qn):t.conversationType===S.CONV_GROUP&&(n=this._m.getModule(Fn)),n?n.sendReadReceipt(e):Oi({code:Pr})}},{key:"getReadReceiptList",value:function(e){var t=e[0],n=null;return t.conversationType===S.CONV_C2C?n=this._m.getModule(qn):t.conversationType===S.CONV_GROUP&&(n=this._m.getModule(Fn)),n?n.getReadReceiptList(e):Oi({code:Pr})}},{key:"getLastMessageTime",value:function(e){var t=this.getLocalConversation(e);return t?t.lastMessage.lastTime:0}},{key:"getTotalUnreadMessageCount",value:function(){var e=this.getLocalConversationList(),t=0;return e.forEach((function(e){e.type!==S.CONV_SYSTEM&&(""!==e.messageRemindType&&e.messageRemindType!==S.MSG_REMIND_ACPT_AND_NOTE||(t+=e.unreadCount))})),t}},{key:"emitTotalUnreadMessageCountUpdate",value:function(){var e=this.getTotalUnreadMessageCount();this._convTotalUnreadCount!==e&&(He.l("".concat(this._n,".emitTotalUnreadMessageCountUpdate from ").concat(this._convTotalUnreadCount," to ").concat(e)),this._convTotalUnreadCount=e,this.emitOuterEvent(k.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED))}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._pagingStatus=on.NOT_START,this._messageListHandler.reset(),this._messageRemindHandler.reset(),this._roamingMessageKeyAndTimeMap.clear(),this._roamingMessageSequenceMap.clear(),this.singlyLinkedList.reset(),this._peerReadTimeMap.clear(),this._completedMap.clear(),this._conversationMap.clear(),this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0,this._remoteGroupReadSequenceMap.clear(),this._convTotalUnreadCount=0,this.resetReady()}}]),s}(po),tu=function(){function e(t){o(this,e),this._groupModule=t,this._n="GroupTipsHandler",this._cachedGroupTipsMap=new Map,this._checkCountMap=new Map,this.MAX_CHECK_COUNT=4,this._getTopicPendingMap=new Map}return a(e,[{key:"onCheckTimer",value:function(e){e%1==0&&this._cachedGroupTipsMap.size>0&&this._checkCachedGroupTips()}},{key:"_checkCachedGroupTips",value:function(){var e=this;this._cachedGroupTipsMap.forEach((function(t,n){var o=e._checkCountMap.get(n),s=e._groupModule.hasLocalGroup(n);He.l("".concat(e._n,"._checkCachedGroupTips groupID:").concat(n," hasLocalGroup:").concat(s," checkCount:").concat(o)),s?(e._notifyCachedGroupTips(n),e._checkCountMap.delete(n),e._groupModule.deleteUnjoinedAVChatRoom(n)):o>=e.MAX_CHECK_COUNT?(e._deleteCachedGroupTips(n),e._checkCountMap.delete(n)):(o++,e._checkCountMap.set(n,o))}))}},{key:"onNewGroupTips",value:function(e){He.d("".concat(this._n,".onReceiveGroupTips count:").concat(e.dataList.length));var t=this.newGroupTipsStoredAndSummary(e),n=t.eventDataList,o=t.result,s=t.AVChatRoomMessageList;(s.length>0&&this._groupModule.onAVChatRoomMessage(s),n.length>0)&&(this._groupModule.updateNextMessageSeq(n),this._groupModule.getModule(Hn).onNewMessage({conversationOptionsList:n,isInstantMessage:!0}));o.length>0&&(this._groupModule.emitOuterEvent(k.MESSAGE_RECEIVED,o),this.handleMessageList(o))}},{key:"newGroupTipsStoredAndSummary",value:function(e){for(var n=this,o=e.event,s=e.dataList,a=null,r=[],i=[],u={},c=[],l=function(e,l){var p=kt(s[e]);if(6===o){if(n._groupModule.isGroupAttributesUpdatedNotice(p))return"continue";if(n._groupModule.isGroupCountersNotice(p))return"continue"}var d=p.groupProfile,g=d.groupID,h=d.communityType,_=void 0===h?0:h,f=d.topicID,v=void 0===f?void 0:f,m=d.invisible,M=void 0,y=n._groupModule.isMessageFromTopic(_,v);if(y){M=S.CONV_TOPIC,p.to=v;var I=n._groupModule.getModule(Bn);I.hasLocalTopic(g,v)||n._getTopicPendingMap.has(v)||(n._getTopicPendingMap.set(v,1),I.getTopicList({groupID:g,topicIDList:[v]}).finally((function(){n._getTopicPendingMap.delete(v)})))}var C=n._groupModule.hasLocalGroup(g);if(!C&&n._groupModule.isUnjoinedAVChatRoom(g))return"continue";if(!C&&!y)return n._cacheGroupTipsAndProbe({groupID:g,event:o,item:p}),"continue";if(n._groupModule.isMessageFromOrToAVChatroom(g))return p.event=o,c.push(p),"continue";if(p.currentUser=n._groupModule.getMyUserID(),p.conversationType=S.CONV_GROUP,(a=new Si(p)).setElement({type:S.MSG_GRP_TIP,content:t(t({},p.elements),{},{groupProfile:p.groupProfile})}),a.isSystemMessage=!1,1===m)return n._qualityStat(a),"continue";var T=n._groupModule.getModule(Hn),D=a,k=D.conversationID,L=D.sequence;if(6===o)a._onlineOnlyFlag=!0,i.push(a);else if(!T.pushIntoNoticeResult(i,a))return"continue";if(n._groupModule.isMessageFromCommunityOfTopic(_,v))return"continue";if(6===o&&T.getLocalConversation(k))return"continue";6!==o&&n._qualityStat(a);var E=T.isRemoteRead({conversationID:k,sequence:L});if(ut(u[k])){var A=0;"in"===a.flow&&(a._isExcludedFromUnreadCount||a._onlineOnlyFlag||E||(A=1)),u[k]=r.push({conversationID:k,unreadCount:A,type:ut(M)?a.conversationType:M,subType:a.conversationSubType,lastMessage:a._isExcludedFromLastMessage?"":a})-1}else{var R=u[k];r[R].type=a.conversationType,r[R].subType=a.conversationSubType,r[R].lastMessage=a._isExcludedFromLastMessage?"":a,"in"===a.flow&&(a._isExcludedFromUnreadCount||a._onlineOnlyFlag||E||r[R].unreadCount++)}},p=0,d=s.length;p=0){u.updateSelfInfo({muteTime:p.muteTime}),c=!0;break}}c&&this._groupModule.emitOuterEvent(k.TOPIC_UPDATED,{groupID:i,topic:u})}}},{key:"_onTopicProfileUpdated",value:function(e){var n=e.payload,o=n.groupProfile.groupID,s=n.newTopicInfo;this._groupModule.getModule(Bn).onTopicProfileUpdated(t({groupID:o,topicID:e.to},s))}},{key:"_cacheGroupTips",value:function(e,t){this._cachedGroupTipsMap.has(e)||this._cachedGroupTipsMap.set(e,[]),this._cachedGroupTipsMap.get(e).push(t)}},{key:"_deleteCachedGroupTips",value:function(e){this._cachedGroupTipsMap.has(e)&&this._cachedGroupTipsMap.delete(e)}},{key:"_notifyCachedGroupTips",value:function(e){var t=this,n=this._cachedGroupTipsMap.get(e)||[];n.forEach((function(e){t.onNewGroupTips(e)})),this._deleteCachedGroupTips(e),He.l("".concat(this._n,"._notifyCachedGroupTips groupID:").concat(e," count:").concat(n.length))}},{key:"_cacheGroupTipsAndProbe",value:function(e){var t=this,n=e.groupID,o=e.event,s=e.item;this._cacheGroupTips(n,{event:o,dataList:[s]}),this._groupModule.getGroupSimplifiedInfo(n).then((function(e){e.type===S.GRP_AVCHATROOM?t._groupModule.hasLocalGroup(n)?t._notifyCachedGroupTips(n):t._groupModule.setUnjoinedAVChatRoom(n):(t._groupModule.updateGroupMap([e]),t._notifyCachedGroupTips(n))})),this._checkCountMap.has(n)||this._checkCountMap.set(n,0),He.l("".concat(this._n,"._cacheGroupTipsAndProbe groupID:").concat(n))}},{key:"reset",value:function(){this._cachedGroupTipsMap.clear(),this._checkCountMap.clear(),this._getTopicPendingMap.clear()}}]),e}(),nu=function(){function e(t){o(this,e),this._groupModule=t,this._n="CommonGroupHandler",this.tempConversationList=null,this._cachedGroupMessageMap=new Map,this._checkCountMap=new Map,this.MAX_CHECK_COUNT=4,this._getTopicPendingMap=new Map,this._isPagingGetCompleted=!1,t.getInnerEmitterInstance().once(Ui,this._initGroupList,this)}return a(e,[{key:"onCheckTimer",value:function(e){e%1==0&&this._cachedGroupMessageMap.size>0&&this._checkCachedGroupMessage()}},{key:"_checkCachedGroupMessage",value:function(){var e=this;this._cachedGroupMessageMap.forEach((function(t,n){var o=e._checkCountMap.get(n),s=e._groupModule.hasLocalGroup(n);He.l("".concat(e._n,"._checkCachedGroupMessage groupID:").concat(n," hasLocalGroup:").concat(s," checkCount:").concat(o)),s?(e._notifyCachedGroupMessage(n),e._checkCountMap.delete(n),e._groupModule.deleteUnjoinedAVChatRoom(n)):o>=e.MAX_CHECK_COUNT?(e._deleteCachedGroupMessage(n),e._checkCountMap.delete(n)):(o++,e._checkCountMap.set(n,o))}))}},{key:"_initGroupList",value:function(){var e=this;He.l("".concat(this._n,"._initGroupList"));var t=new li("getGroupListInStorage"),n=this._groupModule.getStorageGroupList();if(it(n)&&n.length>0){n.forEach((function(t){e._groupModule.initGroupMap(t)})),this._groupModule.emitGroupListUpdate(!0,!1);var o=this._groupModule.getLocalGroupList().length;t.setNetworkType(this._groupModule.getNetworkType()).setMessage("group count:".concat(o)).end()}else t.setNetworkType(this._groupModule.getNetworkType()).setMessage("group count:0").end();He.l("".concat(this._n,"._initGroupList ok"))}},{key:"handleUpdateGroupLastMessage",value:function(e){var n="".concat(this._n,".handleUpdateGroupLastMessage");if(He.l("".concat(n," conversation count:").concat(e.length,", local group count:").concat(this._groupModule.getLocalGroupList().length)),0!==this._groupModule.getGroupMap().size){for(var o,s,a,r=!1,i=0,u=e.length;i0&&this._groupModule.onAVChatRoomMessage(s),this._groupModule.filterModifiedMessage(o),n.length>0)&&(this._groupModule.updateNextMessageSeq(n),this._groupModule.getModule(Hn).onNewMessage({conversationOptionsList:n,isInstantMessage:e.isInstantMessage||!0,updateUnreadCount:e.updateUnreadCount||!0}));var a=this._groupModule.filterUnmodifiedMessage(o);a.length>0&&this._groupModule.emitOuterEvent(k.MESSAGE_RECEIVED,a),o.length=0}},{key:"_newGroupMessageStoredAndSummary",value:function(e){var t=this,n=e.dataList,o=e.event,s=e.isInstantMessage,a=null,r=[],i=[],u=[],c={},l=this._groupModule.getModule(zn),p=this._groupModule.getFileDownloadProxy(),d=n.length;d>1&&n.sort((function(e,t){return e.sequence-t.sequence}));for(var g=function(e){var d=kt(n[e]),g=d.groupProfile,h=g.groupID,_=g.communityType,f=void 0===_?0:_,v=g.topicID,m=void 0===v?void 0:v,M=g.invisible,y=void 0,I=t._groupModule.isMessageFromTopic(f,m);if(I){y=S.CONV_TOPIC,d.to=m;var C=t._groupModule.getModule(Bn);C.hasLocalTopic(h,m)||t._getTopicPendingMap.has(m)||(t._getTopicPendingMap.set(m,1),C.getTopicList({groupID:h,topicIDList:[m]}).finally((function(){t._getTopicPendingMap.delete(m)})))}var T=t._groupModule.hasLocalGroup(h);if(!T&&t._groupModule.isUnjoinedAVChatRoom(h))return"continue";if(!T&&!I)return t._cacheGroupMessageAndProbe({groupID:h,event:o,item:d}),"continue";if(t._groupModule.isMessageFromOrToAVChatroom(h))return d.event=o,u.push(d),"continue";if(d.currentUser=t._groupModule.getMyUserID(),d.conversationType=S.CONV_GROUP,d.isSystemMessage=!!d.isSystemMessage,a=new Si(d),d.elements=l.parseElements(d.elements,d.from),a.setElement(d.elements,p),1===M)return t._qualityStat(s,a),"continue";var D=1===n[e].isModified,k=t._groupModule.getModule(Hn);if(k.isMessageSentByCurrentInstance(a)?a.isModified=D:D=!1,1===d.onlineOnlyFlag)a._onlineOnlyFlag=!0,k.isMessageSentByCurrentInstance(a)||i.push(a);else{if(t._groupModule.isMessageFromCommunityOfTopic(f,m))return i.push(a),"continue";if(!k.pushIntoMessageList(i,a,D))return"continue";t._qualityStat(s,a);var L=a,E=L.conversationID,A=L.sequence,R=k.isRemoteRead({conversationID:E,sequence:A});if(ut(c[E])){var N=0;"in"===a.flow&&(a._isExcludedFromUnreadCount||R||(N=1)),c[E]=r.push({conversationID:E,unreadCount:N,type:ut(y)?a.conversationType:y,subType:a.conversationSubType,lastMessage:a._isExcludedFromLastMessage?"":a})-1}else{var O=c[E];r[O].type=ut(y)?a.conversationType:y,r[O].subType=a.conversationSubType,r[O].lastMessage=a._isExcludedFromLastMessage?"":a,"in"===a.flow&&(a._isExcludedFromUnreadCount||R||r[O].unreadCount++)}}},h=0;h0&&n.addMessageDelay(t.clientTime)}},{key:"onGroupMessageRevoked",value:function(e){var t=this._groupModule.getModule(Hn),n=[],o=null,s=!0;e.dataList.forEach((function(e){var a=e.elements.revokedInfos;ut(a)||a.forEach((function(e){var a=Zt(e.topicID)?"GROUP".concat(e.groupID):"GROUP".concat(e.topicID);o=t.revoke(a,e.sequence,e.random);var r=e.revokerInfo&&e.revokerInfo.revoker;if(o)o.revoker=r,n.push(o);else{var i={conversationID:a,to:e.topicID||"",sequence:e.sequence,time:e.time,revoker:r};t.isLastMessageRevoked(i)&&(n.push(i),s=!1)}}))})),0!==n.length&&(t.onMessageRevoked(n),!0===s&&(He.l("".concat(this._n,".onGroupMessageRevoked count:").concat(n.length)),this._groupModule.emitOuterEvent(k.MESSAGE_REVOKED,n)))}},{key:"_groupListTreeShaking",value:function(e){for(var t=new Map(m(this._groupModule.getGroupMap())),n=0,o=e.length;ng),_="offset:".concat(u," totalCount:").concat(d," isCompleted:").concat(h," ")+"currentCount:".concat(l.length," isCommunityRelay:").concat(s);return p.setNetworkType(t._groupModule.getNetworkType()).setMessage("".concat(_)).end(),s||h?!s&&h?(He.l("".concat(n," start to get community list")),u=0,t._pagingGetGroupList({limit:i,offset:u,groupBaseInfoFilter:c,groupList:l,isCommunityRelay:!0})):s&&!h?(u=g,t._pagingGetGroupList({limit:i,offset:u,groupBaseInfoFilter:c,groupList:l,isCommunityRelay:!0})):(He.l("".concat(n," ok. totalCount:").concat(l.length)),Li({groupList:l})):(u=g,t._pagingGetGroupList({limit:i,offset:u,groupBaseInfoFilter:c,groupList:l}))})).catch((function(e){return 11e3!==e.code&&t._groupModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],a=n[1];p.setMessage("isCommunityRelay:".concat(s)).setError(e,o,a).end()})),s?(11e3===e.code&&(p=null,He.l("".concat(n," ok. community unavailable"))),Ni({groupList:l})):Oi(e)}))}},{key:"_pagingGetGroupListWithTopic",value:function(e){var t=this,n="".concat(this._n,"._pagingGetGroupListWithTopic"),o=e.limit,s=e.offset,a=e.groupBaseInfoFilter,r=e.groupList,i=new li("pagingGetGroupListWithTopic");return this._groupModule.request({protocolName:Xo,requestData:{type:S.GRP_COMMUNITY,memberAccount:this._groupModule.getMyUserID(),limit:o,offset:s,responseFilter:{groupBaseInfoFilter:a,selfInfoFilter:["Role","JoinTime","MsgFlag","MsgSeq"]},isSupportTopic:1}}).then((function(e){var u=e.data,c=u.groups,l=void 0===c?[]:c,p=u.totalCount;r.push.apply(r,m(l));var d=s+o,g=!(p>d),h="offset:".concat(s," totalCount:").concat(p," isCompleted:").concat(g," ")+"currentCount:".concat(r.length);return i.setNetworkType(t._groupModule.getNetworkType()).setMessage("".concat(h)).end(),g?(He.l("".concat(n," ok. totalCount:").concat(r.length)),Li({groupList:r})):(s=d,t._pagingGetGroupListWithTopic({limit:o,offset:s,groupBaseInfoFilter:a,groupList:r}))})).catch((function(e){return t._groupModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];i.setError(e,o,s).end()})),Oi(e)}))}},{key:"_cacheGroupMessage",value:function(e,t){this._cachedGroupMessageMap.has(e)||this._cachedGroupMessageMap.set(e,[]),this._cachedGroupMessageMap.get(e).push(t)}},{key:"_deleteCachedGroupMessage",value:function(e){this._cachedGroupMessageMap.has(e)&&this._cachedGroupMessageMap.delete(e)}},{key:"_notifyCachedGroupMessage",value:function(e){var t=this,n=this._cachedGroupMessageMap.get(e)||[];n.forEach((function(e){t.onNewGroupMessage(e)})),this._deleteCachedGroupMessage(e),He.l("".concat(this._n,"._notifyCachedGroupMessage groupID:").concat(e," count:").concat(n.length))}},{key:"_cacheGroupMessageAndProbe",value:function(e){var t=this,n=e.groupID,o=e.event,s=e.item;this._cacheGroupMessage(n,{event:o,dataList:[s]}),this._groupModule.getGroupSimplifiedInfo(n).then((function(e){e.type===S.GRP_AVCHATROOM?t._groupModule.hasLocalGroup(n)?t._notifyCachedGroupMessage(n):t._groupModule.setUnjoinedAVChatRoom(n):(t._groupModule.updateGroupMap([e]),t._notifyCachedGroupMessage(n))})),this._checkCountMap.has(n)||this._checkCountMap.set(n,0),He.l("".concat(this._n,"._cacheGroupMessageAndProbe groupID:").concat(n))}},{key:"_handleGroupAtInfoWithoutTopic",value:function(e,n){var o=this;e&&0!==n.length&&n.forEach((function(e){var n=e.groupID,s=e.groupAtInfoList,a=[];ut(s)||(s.forEach((function(e){a.push(t(t({},e),{},{groupID:n}))})),o._groupModule.getModule(Hn).onNewGroupAtTips({dataList:a}))}))}},{key:"reset",value:function(){this._cachedGroupMessageMap.clear(),this._checkCountMap.clear(),this._getTopicPendingMap.clear(),this._isPagingGetCompleted=!1,this._groupModule.getInnerEmitterInstance().once(Ui,this._initGroupList,this)}}]),e}(),ou=1,su=2,au=3,ru=4,iu=5,uu=function(){function e(t){o(this,e),this._groupModule=t,this._n="GroupAttributesHandler",this._groupAttributesMap=new Map,this._groupAttributesCopy={},this.CACHE_EXPIRE_TIME=3e4,this._groupModule.getInnerEmitterInstance().on(bi,this._onCloudConfigUpdated,this)}return a(e,[{key:"_onCloudConfigUpdated",value:function(){var e=this._groupModule.getCloudConfig("grp_attr_cache_time");ut(e)||(this.CACHE_EXPIRE_TIME=Number(e))}},{key:"updateLocalMainSequenceOnReconnected",value:function(){this._groupAttributesMap.forEach((function(e){e.localMainSequence=0}))}},{key:"isGroupAttributesUpdatedNotice",value:function(e){var t=e.to,n=e.elements.newGroupProfile,o=!ut(n)&&!Zt(n.groupAttributeOption);return o&&this._onGroupAttributesUpdated({groupID:t,groupAttributeOption:n.groupAttributeOption}),o}},{key:"_onGroupAttributesUpdated",value:function(e){var t=this,n=e.groupID,o=e.groupAttributeOption,s=o.mainSequence,a=o.isWithChangedAttributeInfo,r=o.groupAttributeList,i=void 0===r?[]:r,u=o.operationType;if(He.l("".concat(this._n,".onGroupAttributesUpdated. ")+"groupID:".concat(n," isWithChangedAttributeInfo:").concat(a," operationType:").concat(u)),!ut(u)){this._groupAttributesCopy=this._getCachedAttributes({groupID:n});var c=this._getLocalGroupAttributes(n).localMainSequence;if(1===a&&s-c==1)return this._refreshCachedGroupAttributes({groupID:n,remoteMainSequence:s,groupAttributeList:i,operationType:u}),void this._emitGroupAttributesUpdated(n);if(this._hasLocalGroupAttributes(n)){var l=this._getLocalGroupAttributes(n).avChatRoomKey;this._getGroupAttributes({groupID:n,avChatRoomKey:l}).then((function(){t._emitGroupAttributesUpdated(n)}))}}}},{key:"initGroupAttributesCache",value:function(e){var t=e.groupID,n=e.avChatRoomKey,o=void 0===n?void 0:n;this._groupAttributesMap.set(t,{lastUpdateTime:0,localMainSequence:0,remoteMainSequence:0,attributes:new Map,avChatRoomKey:o}),He.l("".concat(this._n,".initGroupAttributesCache groupID:").concat(t," avChatRoomKey:").concat(o))}},{key:"initGroupAttributes",value:function(e){var t=this,n=e.groupID,o=e.groupAttributes,s=this._getLocalGroupAttributes(n),a=s.remoteMainSequence,r=s.avChatRoomKey,i=new li("initGroupAttributes");return i.setMessage("groupID:".concat(n," avChatRoomKey:").concat(r," mainSequence:").concat(a)),this._groupModule.request({protocolName:Ds,requestData:{groupID:n,avChatRoomKey:r,mainSequence:a,groupAttributeList:this._transformGroupAttributes(o)}}).then((function(e){var s=e.data,a=s.mainSequence,r=m(s.groupAttributeList);return r.forEach((function(e){e.value=o[e.key]})),t._refreshCachedGroupAttributes({groupID:n,remoteMainSequence:a,groupAttributeList:r,operationType:ou}),i.setNetworkType(t._groupModule.getNetworkType()).end(),He.l("".concat(t._n,".").concat("initGroupAttributes"," ok. groupID:").concat(n)),Li({groupAttributes:o})})).catch((function(e){return t._groupModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];i.setError(e,o,s).end()})),Oi(e)}))}},{key:"setGroupAttributes",value:function(e){var t=this,n="".concat(this._n,".").concat("setGroupAttributes"),o=e.groupID,s=e.groupAttributes,a=this._getLocalGroupAttributes(o),r=a.remoteMainSequence,i=a.avChatRoomKey,u=a.attributes,c=this._transformGroupAttributes(s);c.forEach((function(e){var t=e.key;e.sequence=0,u.has(t)&&(e.sequence=u.get(t).sequence)}));var l=new li("setGroupAttributes");return l.setMessage("groupID:".concat(o," groupAttributes:").concat(JSON.stringify(s))),He.l("".concat(n,". groupID:").concat(o," mainSequence:").concat(r)),this._groupModule.request({protocolName:ks,requestData:{groupID:o,avChatRoomKey:i,mainSequence:r,groupAttributeList:c}}).then((function(e){var a=e.data,r=a.mainSequence,i=m(a.groupAttributeList);return i.forEach((function(e){e.value=s[e.key]})),t._refreshCachedGroupAttributes({groupID:o,remoteMainSequence:r,groupAttributeList:i,operationType:su}),l.setNetworkType(t._groupModule.getNetworkType()).end(),He.l("".concat(n," ok.")),Li({groupAttributes:s})})).catch((function(e){return t._groupModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];l.setError(e,o,s).end()})),Oi(e)}))}},{key:"deleteGroupAttributes",value:function(e){var t=this,n=e.groupID,o=e.keyList,s=void 0===o?[]:o,a=this._getLocalGroupAttributes(n),r=a.remoteMainSequence,i=a.avChatRoomKey,u=a.attributes,c=m(u.keys()),l=Ls,p=au,d={groupID:n,avChatRoomKey:i,mainSequence:r},g=[];s.length>0&&(c=[],l=Ss,p=ru,s.forEach((function(e){var t=0;u.has(e)&&(t=u.get(e).sequence,c.push(e)),g.push({key:e,sequence:t})})),d.groupAttributeList=g);var h=new li("deleteGroupAttributes");return h.setMessage("groupID:".concat(n," mainSequence:").concat(r," keyList:").concat(s," protocolName:").concat(l)),this._groupModule.request({protocolName:l,requestData:d}).then((function(e){var o=e.data.mainSequence;return t._refreshCachedGroupAttributes({groupID:n,remoteMainSequence:o,groupAttributeList:g,operationType:p}),h.setNetworkType(t._groupModule.getNetworkType()).end(),He.l("".concat(t._n,".").concat("deleteGroupAttributes"," ok. groupID:").concat(n)),Li({keyList:c})})).catch((function(e){return t._groupModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];h.setError(e,o,s).end()})),Oi(e)}))}},{key:"getGroupAttributes",value:function(e){var t=this,n="".concat(this._n,".").concat("getGroupAttributes"),o=e.groupID,s=this._getLocalGroupAttributes(o),a=s.avChatRoomKey,r=s.lastUpdateTime,i=s.localMainSequence,u=s.remoteMainSequence,c=new li("getGroupAttributes");if(c.setMessage("groupID:".concat(o," localMainSequence:").concat(i," remoteMainSequence:").concat(u," keyList:").concat(e.keyList)),Date.now()-r>=this.CACHE_EXPIRE_TIME||i0)o.forEach((function(e){a.has(e)&&(s[e]=a.get(e).value)}));else{var r,i=D(a.keys());try{for(i.s();!(r=i.n()).done;){var u=r.value;s[u]=a.get(u).value}}catch(c){i.e(c)}finally{i.f()}}}return s}},{key:"_updateCachedAttributes",value:function(e){var t=e.groupAttributes,n=e.groupAttributeList,o=e.operationType;o!==au?o!==ru?(o===ou&&t.attributes.clear(),n.forEach((function(e){var n=e.key,o=e.value,s=e.sequence;t.attributes.set(n,{value:o,sequence:s})}))):n.forEach((function(e){t.attributes.delete(e.key)})):t.attributes.clear()}},{key:"_hasLocalGroupAttributes",value:function(e){return this._groupAttributesMap.has(e)}},{key:"_getLocalGroupAttributes",value:function(e){return this._hasLocalGroupAttributes(e)||this.initGroupAttributesCache({groupID:e}),this._groupAttributesMap.get(e)}},{key:"_transformGroupAttributes",value:function(e){var t=[];return Object.keys(e).forEach((function(n){t.push({key:n,value:e[n]})})),t}},{key:"_emitGroupAttributesUpdated",value:function(e){var t=this._getCachedAttributes({groupID:e}),n=this._computeAttrChangedInfo(t),o=n.updatedKeyList,s=n.deletedKeyList;this._groupModule.emitOuterEvent(k.GROUP_ATTRIBUTES_UPDATED,{groupID:e,groupAttributes:t,updatedKeyList:o,deletedKeyList:s})}},{key:"_computeAttrChangedInfo",value:function(e){var t=this,n=[],o=[];return Object.keys(e).forEach((function(o){e[o]!==t._groupAttributesCopy[o]&&n.push(o)})),Object.keys(this._groupAttributesCopy).forEach((function(t){ut(e[t])&&o.push(t)})),this._groupAttributesCopy={},He.l("".concat(this._n,"._computeAttrChangedInfo update count:").concat(n.length,", delete count:").concat(o.length)),{updatedKeyList:n,deletedKeyList:o}}},{key:"deleteLocalGroupAttributes",value:function(e){this._hasLocalGroupAttributes(e)&&this._groupAttributesMap.delete(e)}},{key:"reset",value:function(){this._groupAttributesMap.clear(),this._groupAttributesCopy={},this.CACHE_EXPIRE_TIME=3e4}}]),e}(),cu="Set",lu="Increase",pu="Decrease",du=function(){function e(t){o(this,e),this._groupModule=t,this._n="GroupCountersHandler",this._groupCountersMap=new Map,this.EXPIRE_TIME=3e4,this._groupModule.getInnerEmitterInstance().on(bi,this._onCloudConfigUpdated,this)}return a(e,[{key:"_onCloudConfigUpdated",value:function(){var e=this._groupModule.getCloudConfig("grp_counter_expire_time");ut(e)||(this.EXPIRE_TIME=Number(e))}},{key:"isGroupCountersNotice",value:function(e){var t=e.to,n=e.elements.groupCounterInfo,o=!1;return Zt(n)||(this._onGroupCountersUpdated({groupID:t,groupCounterInfo:n}),o=!0),o}},{key:"_onGroupCountersUpdated",value:function(e){var t=this,n=e.groupID;e.groupCounterInfo.forEach((function(e){var o=e.type,s=e.groupCounterSeq,a=e.counterList,r=void 0===a?[]:a;0!==o&&2!==o||(t._updateLocalGroupCounters({groupID:n,groupCounterSeq:s,counterList:r}),r.forEach((function(e){t._groupModule.emitOuterEvent(k.GROUP_COUNTER_UPDATED,{groupID:n,key:e.key,value:e.value})}))),1===o&&t._deleteLocalGroupCounters({groupID:n,groupCounterSeq:s,counterList:r})})),He.l("".concat(this._n,"._onGroupCountersUpdated groupID:").concat(n))}},{key:"initGroupCountersCache",value:function(e){var t=e.groupID,n=e.avChatRoomKey;this._groupCountersMap.set(t,{lastUpdateTime:0,groupCounterSeq:0,counters:new Map,avChatRoomKey:n}),He.l("".concat(this._n,".initGroupCountersCache groupID:").concat(t," avChatRoomKey:").concat(n))}},{key:"setGroupCounters",value:function(e){var t=this;if(!this._groupModule.canIUse(B.GRP_COUNTER))return Oi({code:Kr});var n="".concat(this._n,".setGroupCounters"),o=e.groupID,s=e.counters,a=this._convertObjectToList(s),r=this._getLocalGroupCounters(o).avChatRoomKey,i="groupID:".concat(o," count:").concat(a.length),u=new li("setGroupCounters");return u.setMessage("".concat(i)),He.l("".concat(n,". ").concat(i)),this._updateGroupCounters({groupID:o,counterList:a,avChatRoomKey:r,mode:cu}).then((function(e){return u.end(),He.l("".concat(n," ok.")),Li({counters:e})})).catch((function(e){return t._groupModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];u.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"increaseGroupCounter",value:function(e){var t=this;if(!this._groupModule.canIUse(B.GRP_COUNTER))return Oi({code:Kr});var n="".concat(this._n,".increaseGroupCounters"),o=e.groupID,s=e.key,a=e.value,r=this._getLocalGroupCounters(o).avChatRoomKey,i="groupID:".concat(o," key:").concat(s," value:").concat(a),u=new li("increaseGroupCounter");u.setMessage("".concat(i)),He.l("".concat(n,". ").concat(i));var c=[{key:s,value:a}];return this._updateGroupCounters({groupID:o,counterList:c,avChatRoomKey:r,mode:lu}).then((function(e){return u.end(),He.l("".concat(n," ok.")),Li({counters:e})})).catch((function(e){return t._groupModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];u.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"decreaseGroupCounter",value:function(e){var t=this;if(!this._groupModule.canIUse(B.GRP_COUNTER))return Oi({code:Kr});var n="".concat(this._n,".decreaseGroupCounter"),o=e.groupID,s=e.key,a=e.value,r=this._getLocalGroupCounters(o).avChatRoomKey,i="groupID:".concat(o," key:").concat(s," value:").concat(a),u=new li("decreaseGroupCounter");u.setMessage("".concat(i)),He.l("".concat(n,". ").concat(i));var c=[{key:s,value:a}];return this._updateGroupCounters({groupID:o,counterList:c,avChatRoomKey:r,mode:pu}).then((function(e){return u.end(),He.l("".concat(n," ok.")),Li({counters:e})})).catch((function(e){return t._groupModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];u.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"getGroupCounters",value:function(e){var t=this;if(!this._groupModule.canIUse(B.GRP_COUNTER))return Oi({code:Kr});var n="".concat(this._n,".getGroupCounters"),o=e.groupID,s=e.keyList,a=void 0===s?[]:s,r=this._getLocalGroupCounters(o),i=r.avChatRoomKey,u=r.lastUpdateTime,c=new li("getGroupCounters");if(c.setMessage("groupID:".concat(o)),Date.now()-u>=this.EXPIRE_TIME)return this._getRemoteGroupCounters({groupID:o,avChatRoomKey:i}).then((function(e){c.setMoreMessage("from remote. count:".concat(e.length)).end(),He.l("".concat(n," from remote. groupID:").concat(o));var s=t._getLocalCounters(o,a);return Li({counters:s})})).catch((function(e){return t._groupModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];c.setError(e,o,s).end()})),Oi(e)}));c.setMoreMessage("from cache").end(),He.l("".concat(n," from cache. groupID:").concat(o));var l=this._getLocalCounters(o,a);return Ni({counters:l})}},{key:"_getRemoteGroupCounters",value:function(e){var n=this;return this._groupModule.request({protocolName:Gs,requestData:t({},e)}).then((function(t){var o=t.data,s=o.counterList,a=void 0===s?[]:s,r=o.groupCounterSeq;return n._updateLocalGroupCounters({groupID:e.groupID,counterList:a,groupCounterSeq:r}),He.l("".concat(n._n,"._getRemoteGroupCounters ok. groupID:").concat(e.groupID)),a})).catch((function(e){return Oi(e)}))}},{key:"_convertObjectToList",value:function(e){var t=[];return Object.keys(e).forEach((function(n){t.push({key:n,value:e[n]})})),t}},{key:"_updateGroupCounters",value:function(e){var n="".concat(this._n,"._updateGroupCounters"),o=e.groupID,s=e.avChatRoomKey,a=e.mode;return He.l("".concat(n,". groupID:").concat(o," avChatRoomKey:").concat(s," mode:").concat(a)),this._groupModule.request({protocolName:Os,requestData:t({},e)}).then((function(e){He.l("".concat(n," ok."));var t=e.data.counterList,o={};return(void 0===t?[]:t).forEach((function(e){var t=e.key,n=e.value;o[t]=n})),o})).catch((function(e){return Oi(e)}))}},{key:"_hasLocalGroupCounters",value:function(e){return this._groupCountersMap.has(e)}},{key:"_getLocalGroupCounters",value:function(e){return this._hasLocalGroupCounters(e)||this.initGroupCountersCache({groupID:e}),this._groupCountersMap.get(e)}},{key:"_updateLocalGroupCounters",value:function(e){var t=e.groupID,n=e.counterList,o=void 0===n?[]:n,s=e.groupCounterSeq;if(this._hasLocalGroupCounters(t)){var a=this._getLocalGroupCounters(t),r=a.counters,i=a.avChatRoomKey,u=a.groupCounterSeq;if(s>0&&s0)t.forEach((function(e){o.has(e)&&(n[e]=o.get(e))}));else{var s,a=D(o.keys());try{for(a.s();!(s=a.n()).done;){var r=s.value;n[r]=o.get(r)}}catch(i){a.e(i)}finally{a.f()}}return n}},{key:"reset",value:function(){this._groupCountersMap.clear(),this.EXPIRE_TIME=3e4}}]),e}(),gu=function(){function e(t){o(this,e);var n=t.manager,s=t.groupID,a=t.onInit,r=t.onSuccess,i=t.onFail;this._n="Polling",this._manager=n,this._groupModule=n._groupModule,this._onInit=a,this._onSuccess=r,this._onFail=i,this._groupID=s,this._timeoutID=-1,this._isRunning=!1,this._protocolName=Ms}return a(e,[{key:"start",value:function(){var e=this._groupModule.isLoggedIn();e||(this._protocolName=ys),He.l("".concat(this._n,".start pollingInterval:").concat(this._manager.getPollingInterval()," isLoggedIn:").concat(e)),this._isRunning=!0,this._request()}},{key:"isRunning",value:function(){return this._isRunning}},{key:"_request",value:function(){var e=this,t=this._onInit(this._groupID);this._groupModule.request({protocolName:this._protocolName,requestData:t}).then((function(t){e._onSuccess(e._groupID,t),e.isRunning()&&(clearTimeout(e._timeoutID),e._timeoutID=setTimeout(e._request.bind(e),e._manager.getPollingInterval()))})).catch((function(t){e._onFail(e._groupID,t),e.isRunning()&&(clearTimeout(e._timeoutID),e._timeoutID=setTimeout(e._request.bind(e),e._manager.MAX_POLLING_INTERVAL))}))}},{key:"stop",value:function(){He.l("".concat(this._n,".stop")),this._timeoutID>0&&(clearTimeout(this._timeoutID),this._timeoutID=-1),this._isRunning=!1}}]),e}(),hu={3:!0,4:!0,5:!0,6:!0,17:!0},_u=function(){function e(t){o(this,e),this._groupModule=t,this._n="AVChatRoomHandler",this._joinedGroupMap=new Map,this._pollingRequestInfoMap=new Map,this._pollingInstanceMap=new Map,this.sequencesLinkedList=new Yi(200),this.messageIDLinkedList=new Yi(100),this.receivedMessageCount=0,this._reportMessageStackedCount=0,this._onlineMemberCountMap=new Map,this.DEFAULT_EXPIRE_TIME=60,this.DEFAULT_POLLING_INTERVAL=300,this.MAX_POLLING_INTERVAL=2e3,this._pollingInterval=this.DEFAULT_POLLING_INTERVAL,this.DEFAULT_POLLING_NO_MESSAGE_COUNT=20,this.DEFAULT_POLLING_INTERVAL_PLUS=2e3,this._pollingNoMessageCount=0,this._startBroadcastSeq=1,this._broadcastMessageIDMap=new Map,this.DEFAULT_POLLING_SIMPLIFIED_MSG=0}return a(e,[{key:"hasJoinedAVChatRoom",value:function(){return this._joinedGroupMap.size>0}},{key:"checkJoinedAVChatRoomByID",value:function(e){return this._joinedGroupMap.has(e)}},{key:"getJoinedAVChatRoom",value:function(){return this._joinedGroupMap.size>0?m(this._joinedGroupMap.keys()):null}},{key:"_updateRequestData",value:function(e){var n=this._pollingRequestInfoMap.get(e);return e===m(this._pollingInstanceMap.keys())[0]?t(t({},n),{},{startBroadcastSeq:this._startBroadcastSeq,simplifiedMessage:this.DEFAULT_POLLING_SIMPLIFIED_MSG}):t(t({},n),{},{simplifiedMessage:this.DEFAULT_POLLING_SIMPLIFIED_MSG})}},{key:"_handleSuccess",value:function(e,t){var n=t.data,o=n.key,s=n.nextSeq,a=n.rspMsgList,r=n.errorCode,i=n.nextBroadcastSeq,u=n.broadcastMessageList;if(0!==r){var c=this._pollingRequestInfoMap.get(e),l=new li("longPollingAVError"),p=c?"".concat(c.key,"-").concat(c.startSeq):"requestInfo is undefined";l.setMessage("".concat(e,"-").concat(p,"-").concat(t.errorInfo)).setCode(t.errorCode).setNetworkType(this._groupModule.getNetworkType()).end(!0)}else{if(!this.checkJoinedAVChatRoomByID(e))return;st(o)&&ot(s)&&this._pollingRequestInfoMap.set(e,{key:o,startSeq:s}),ot(i)&&i>this._startBroadcastSeq&&(this._startBroadcastSeq=i),it(a)&&a.length>0?(a.forEach((function(e){e.to=e.groupID})),this.onMessage(a)):(this._pollingNoMessageCount+=1,this._pollingNoMessageCount===this.DEFAULT_POLLING_NO_MESSAGE_COUNT&&(this._pollingInterval=this.DEFAULT_POLLING_INTERVAL+this.DEFAULT_POLLING_INTERVAL_PLUS)),this._onBroadcastMessage(u)}}},{key:"_handleFailure",value:function(e,t){}},{key:"onMessage",value:function(e){if(it(e)&&0!==e.length){0!==this._pollingNoMessageCount&&(this._pollingNoMessageCount=0,this._pollingInterval=this.DEFAULT_POLLING_INTERVAL);var t=null,n=[],o=this._getModule(Hn),s=this._getModule(so),a=e.length;a>1&&e.sort((function(e,t){return e.sequence-t.sequence}));for(var r=this._getModule(Kn),i=0;i1&&g<=20?this._getModule(eo).onMessageMaybeLost(p,d+1,g-1):g<-1&&g>=-20&&this._getModule(eo).onMessageMaybeLost(p,t.sequence+1,Math.abs(g)-1)}this.sequencesLinkedList.set(t.sequence),this.messageIDLinkedList.set(t.ID);var h=!1;if(this._isMessageSentByCurrentInstance(t)?c&&(h=!0,t.isModified=c,o.updateMessageIsModifiedProperty(t)):h=!0,h){if(t.conversationType===S.CONV_SYSTEM&&5===t.payload.operationType&&this._onGroupDismissed(t.payload.groupProfile.groupID),!l&&t.conversationType!==S.CONV_SYSTEM){var _=t.conversationID.replace(S.CONV_GROUP,"");this._pollingInstanceMap.has(_)?this._groupModule.isLoggedIn()&&s.addMessageSequence({key:ai,message:t}):(t.type!==S.MSG_GRP_TIP&&t.clientTime>0&&s.addMessageDelay(t.clientTime),s.addMessageSequence({key:si,message:t}))}n.push(t)}}}else He.w("".concat(this._n,".onMessage unknown event:").concat(u.event))}if(0!==n.length){this._groupModule.filterModifiedMessage(n);var f=this.packConversationOption(n);if(f.length>0)this._getModule(Hn).onNewMessage({conversationOptionsList:f,isInstantMessage:!0});He.d("".concat(this._n,".onMessage count:").concat(n.length)),this._checkMessageStacked(n);var v=this._groupModule.filterUnmodifiedMessage(n);v.length>0&&this._groupModule.emitOuterEvent(k.MESSAGE_RECEIVED,v),n.length=0}}}},{key:"isBroadcastOrNormal",value:function(e){return 3===e||17===e}},{key:"isGroupTip",value:function(e){return 4===e||6===e}},{key:"isGroupSystemNotice",value:function(e){return 5===e}},{key:"restoreGroupTipElements",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.groupJoinType||(e.groupJoinType=1);var t=e.operatorInfo,n=void 0===t?{}:t,o=e.operatorID,s=e.userIDList,a=void 0===s?[]:s,r=n.userID,i=void 0===r?o:r,u=n.avatar,c=void 0===u?"":u,l=n.nick,p=void 0===l?"":l;e.operatorInfo={userID:i,avatar:c,nick:p};var d=a.map((function(e){return{userID:e}}));return e.memberInfoList=e.memberInfoList||d,e}},{key:"restoreMessageFromSimplified",value:function(e){var n=e.event;if(this.isBroadcastOrNormal(n)&&(e.cloudCustomData=e.cloudCustomData||"",e.elements=e.elements.map((function(e){if(e.type===S.MSG_CUSTOM){var n=e.content,o=void 0===n?{}:n;e.content=t({data:"",description:"",extension:""},o)}return e}))),(this.isGroupTip(n)||this.isGroupSystemNotice(n))&&(e.from=e.from||"@TIM#SYSTEM"),this.isGroupTip(n)){e.elements=this.restoreGroupTipElements(e.elements);var o=e.elements,s=void 0===o?{}:o,a=s.operationType,i=s.operatorInfo;if(1===a){var u=[{userID:(void 0===i?{}:i).userID}];s.memberInfoList=s.memberInfoList||u}}if(this.isGroupSystemNotice(n)){var c=e.elements,l=c.memberInfoList,p=c.operatorInfo;l||(l=void 0===p?{}:p),e.elements.memberInfoList=t({userID:e.elements.operatorID,avatar:"",nick:""},l),e.elements=t({authentication:"",remarkInfo:"",messageKey:1e3*e.time},e.elements);var d=Object.keys(e.elements).filter((function(e){return"operatorInfo"!==e})).reduce((function(n,o){return t(t({},n),{},r({},o,e.elements[o]))}),{});e.elements=d}return e}},{key:"_onGroupDismissed",value:function(e){He.l("".concat(this._n,"._onGroupDismissed groupID:").concat(e)),this._groupModule.deleteLocalGroupAndConversation(e),this.reset(e)}},{key:"_checkMessageStacked",value:function(e){var t="MessageStacked",n=e.length;n>=100&&(this._groupModule.outputWarning(t),this._reportMessageStackedCount<5&&(new li(t).setNetworkType(this._groupModule.getNetworkType()).setMessage("count:".concat(n," groupID:").concat(m(this._joinedGroupMap.keys()))).setLevel("warning").end(),this._reportMessageStackedCount+=1))}},{key:"_isMessageSentByCurrentInstance",value:function(e){return!!this._getModule(Hn).isMessageSentByCurrentInstance(e)}},{key:"packMessage",value:function(e,t){e.currentUser=this._groupModule.getMyUserID(),e.conversationType=5===t?S.CONV_SYSTEM:S.CONV_GROUP,e.isSystemMessage=!!e.isSystemMessage;var n=new Si(e),o=this.packElements(e,t);return n.setElement(o,this._groupModule.getFileDownloadProxy()),n}},{key:"packElements",value:function(e,n){return 4===n||6===n?(this._updateMemberCountByGroupTips(e),{type:S.MSG_GRP_TIP,content:t(t({},e.elements),{},{groupProfile:e.groupProfile})}):5===n?{type:S.MSG_GRP_SYS_NOTICE,content:t(t({},e.elements),{},{groupProfile:t(t({},e.groupProfile),{},{groupID:e.groupID})})}:this._getModule(zn).parseElements(e.elements,e.from)}},{key:"packConversationOption",value:function(e){for(var t=new Map,n=0;n0&&this._groupModule.emitOuterEvent(k.MESSAGE_RECEIVED,t)}}},{key:"start",value:function(e){if(this._pollingInstanceMap.has(e)){var t=this._pollingInstanceMap.get(e);t.isRunning()||t.start()}else{var n=new gu({manager:this,groupID:e,onInit:this._updateRequestData.bind(this),onSuccess:this._handleSuccess.bind(this),onFail:this._handleFailure.bind(this)});n.start(),this._pollingInstanceMap.set(e,n),He.l("".concat(this._n,".start groupID:").concat(e))}}},{key:"handleJoinResult",value:function(e){var t=this;return this._preCheck().then((function(){var n=e.longPollingKey,o=e.group,s=o.groupID;return t._joinedGroupMap.set(s,o),t._groupModule.updateGroupMap([o]),t._groupModule.deleteUnjoinedAVChatRoom(s),t._groupModule.emitGroupListUpdate(!0,!1),ut(n)?Ni({status:Je,group:o}):Promise.resolve()}))}},{key:"startRunLoop",value:function(e){var t=this;return this.handleJoinResult(e).then((function(){var n=e.longPollingKey,o=e.group,s=e.startSeq,a=void 0===s?0:s,r=o.groupID;return t._pollingRequestInfoMap.set(r,{key:n,startSeq:a}),t.start(r),t._groupModule.isLoggedIn()?Ni({status:Je,group:o}):Ni({status:Je})}))}},{key:"_preCheck",value:function(){if(this._getModule(Kn).isUnlimitedAVChatRoom())return Promise.resolve();if(!this.hasJoinedAVChatRoom())return Promise.resolve();var e=v(this._joinedGroupMap.entries().next().value,2),t=e[0],n=e[1];if(this._groupModule.isLoggedIn()){if(!(n.selfInfo.role===S.GRP_MBR_ROLE_OWNER||n.ownerID===this._groupModule.getMyUserID()))return this._groupModule.quitGroup(t);this._groupModule.deleteLocalGroupAndConversation(t)}else this._groupModule.deleteLocalGroupAndConversation(t);return this.reset(t),Promise.resolve()}},{key:"joinWithoutAuth",value:function(e){var t=this,n=e.groupID,o="".concat(this._n,".").concat("joinWithoutAuth"),s=new li("joinWithoutAuth");return this._groupModule.request({protocolName:ns,requestData:e}).then((function(e){var a=e.data.longPollingKey;if(t._groupModule.probeNetwork().then((function(e){var t=v(e,2),o=(t[0],t[1]);s.setNetworkType(o).setMessage("groupID:".concat(n," longPollingKey:").concat(a)).end(!0)})),ut(a))return Oi({code:vr});He.l("".concat(o," ok. groupID:").concat(n)),t._getModule(Hn).setCompleted("".concat(S.CONV_GROUP).concat(n));var r=new Ji({groupID:n});return t.startRunLoop({group:r,longPollingKey:a}),Li({status:Je})})).catch((function(e){return He.e("".concat(o," failed. groupID:").concat(n," error:"),e),t._groupModule.probeNetwork().then((function(t){var o=v(t,2),a=o[0],r=o[1];s.setError(e,a,r).setMessage("groupID:".concat(n)).end(!0)})),Oi(e)})).finally((function(){t._groupModule.getModule(jn).reportAtOnce()}))}},{key:"getGroupOnlineMemberCount",value:function(e){var t=this._onlineMemberCountMap.get(e)||{},n=Date.now();return Zt(t)||n-t.lastSyncTime>1e3*t.expireTime&&n-t.latestUpdateTime>1e4&&n-t.lastReqTime>3e3?(t.lastReqTime=n,this._onlineMemberCountMap.set(e,t),this._getGroupOnlineMemberCount(e).then((function(e){return Li({memberCount:e.memberCount})})).catch((function(e){return Oi(e)}))):Ni({memberCount:t.memberCount})}},{key:"_getGroupOnlineMemberCount",value:function(e){var t=this,n="".concat(this._n,".").concat("_getGroupOnlineMemberCount");return this._groupModule.request({protocolName:Is,requestData:{groupID:e}}).then((function(o){var s=t._onlineMemberCountMap.get(e)||{},a=o.data,r=a.onlineMemberNum,i=void 0===r?0:r,u=a.expireTime,c=void 0===u?t.DEFAULT_EXPIRE_TIME:u;He.l("".concat(n," ok. groupID:").concat(e," memberCount:").concat(i," expireTime:").concat(c));var l=Date.now();return Zt(s)&&(s.lastReqTime=l),t._onlineMemberCountMap.set(e,Object.assign(s,{lastSyncTime:l,latestUpdateTime:l,memberCount:i,expireTime:c})),{memberCount:i}})).catch((function(o){return He.w("".concat(n," failed. error:"),o),new li("_getGroupOnlineMemberCount").setCode(o.code).setMessage("groupID:".concat(e," error:").concat(JSON.stringify(o))).setNetworkType(t._groupModule.getNetworkType()).end(),Promise.reject(o)}))}},{key:"_getModule",value:function(e){return this._groupModule.getModule(e)}},{key:"setPollingInterval",value:function(e){ut(e)||(ot(e)?this._pollingInterval=this.DEFAULT_POLLING_INTERVAL=e:this._pollingInterval=this.DEFAULT_POLLING_INTERVAL=parseInt(e,10))}},{key:"setPollingIntervalPlus",value:function(e){ut(e)||(ot(e)?this.DEFAULT_POLLING_INTERVAL_PLUS=e:this.DEFAULT_POLLING_INTERVAL_PLUS=parseInt(e,10))}},{key:"setPollingNoMessageCount",value:function(e){ut(e)||(ot(e)?this.DEFAULT_POLLING_NO_MESSAGE_COUNT=e:this.DEFAULT_POLLING_NO_MESSAGE_COUNT=parseInt(e,10))}},{key:"setPollingSimplifiedMessage",value:function(e){ut(e)||"0"!==e&&"1"!==e||(this.DEFAULT_POLLING_SIMPLIFIED_MSG=parseInt(e,10))}},{key:"getPollingInterval",value:function(){return this._pollingInterval}},{key:"onAVChatRoomMemberBanned",value:function(e){var t=e.payload.groupProfile.groupID;He.l("".concat(this._n,".onAVChatRoomMemberBanned groupID:").concat(t)),this._groupModule.deleteLocalGroupAndConversation(t),this.reset(t)}},{key:"restartPolling",value:function(){He.l("".concat(this._n,".restartPolling count:").concat(this._pollingInstanceMap.size));var e,t=D(this._pollingInstanceMap.values());try{for(t.s();!(e=t.n()).done;){var n=e.value;n.stop(),n.start()}}catch(o){t.e(o)}finally{t.f()}}},{key:"reset",value:function(e){if(e){He.l("".concat(this._n,".reset groupID:").concat(e));var t=this._pollingInstanceMap.get(e);t&&t.stop(),this._pollingInstanceMap.delete(e),this._joinedGroupMap.delete(e),this._pollingRequestInfoMap.delete(e),this._onlineMemberCountMap.delete(e)}else{He.l("".concat(this._n,".reset all"));var n,o=D(this._pollingInstanceMap.values());try{for(o.s();!(n=o.n()).done;){n.value.stop()}}catch(s){o.e(s)}finally{o.f()}this._pollingInstanceMap.clear(),this._joinedGroupMap.clear(),this._pollingRequestInfoMap.clear(),this._onlineMemberCountMap.clear(),this._broadcastMessageIDMap.clear()}this.sequencesLinkedList.reset(),this.messageIDLinkedList.reset(),this.receivedMessageCount=0,this._reportMessageStackedCount=0,this._pollingInterval=this.DEFAULT_POLLING_INTERVAL=300,this.DEFAULT_POLLING_NO_MESSAGE_COUNT=20,this.DEFAULT_POLLING_INTERVAL_PLUS=2e3,this._pollingNoMessageCount=0}}]),e}(),fu=1,vu=15,mu=function(){function e(t){o(this,e),this._groupModule=t,this._n="GroupSystemNoticeHandler",this.pendencyMap=new Map}return a(e,[{key:"onNewGroupSystemNotice",value:function(e){var t=e.dataList,n=e.isSyncingEnded,o=e.isInstantMessage;He.d("".concat(this._n,".onReceiveSystemNotice count:").concat(t.length));var s=this.newSystemNoticeStoredAndSummary({notifiesList:t,isInstantMessage:o}),a=s.eventDataList,r=s.result;a.length>0&&(this._groupModule.getModule(Hn).onNewMessage({conversationOptionsList:a,isInstantMessage:o}),this._onReceivedGroupSystemNotice({result:r,isInstantMessage:o}));o?r.length>0&&this._groupModule.emitOuterEvent(k.MESSAGE_RECEIVED,r):!0===n&&this._clearGroupSystemNotice()}},{key:"newSystemNoticeStoredAndSummary",value:function(e){var n=e.notifiesList,o=e.isInstantMessage,s=null,a=n.length,r=0,i=[],u={conversationID:S.CONV_SYSTEM,unreadCount:0,type:S.CONV_SYSTEM,subType:null,lastMessage:null};for(r=0;r0?[u]:[],result:i}}},{key:"_clearGroupSystemNotice",value:function(){var e=this;this._getPendencyList().then((function(t){t.forEach((function(t){e.pendencyMap.set("".concat(t.from,"_").concat(t.groupID,"_").concat(t.to),t)}));var n=e._groupModule.getModule(Hn).getLocalMessageList(S.CONV_SYSTEM),o=[];n.forEach((function(t){var n=t.payload,s=n.operatorID,a=n.operationType,r=n.groupProfile;if(a===fu){var i="".concat(s,"_").concat(r.groupID,"_").concat(r.to),u=e.pendencyMap.get(i);u&&ot(u.handled)&&0!==u.handled&&o.push(t)}})),e.deleteGroupSystemNotice({messageList:o})}))}},{key:"deleteGroupSystemNotice",value:function(e){var t=this,n="".concat(this._n,".deleteGroupSystemNotice");return it(e.messageList)&&0!==e.messageList.length?(He.l("".concat(n," ")+e.messageList.map((function(e){return e.ID}))),this._groupModule.request({protocolName:ms,requestData:{messageListToDelete:e.messageList.map((function(e){return{from:S.CONV_SYSTEM,messageSeq:e.clientSequence,messageRandom:e.random}}))}}).then((function(){He.l("".concat(n," ok"));var o=t._groupModule.getModule(Hn);return e.messageList.forEach((function(e){o.deleteLocalMessage(e)})),Li()})).catch((function(e){return He.e("".concat(n," error:"),e),Oi(e)}))):Ni()}},{key:"_getPendencyList",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.type,o=void 0===n?void 0:n,s=t.startTime,a=void 0===s?0:s,r=t.limit,i=void 0===r?20:r;return this._groupModule.request({protocolName:vs,requestData:{type:o,startTime:a,limit:i,handleAccount:this._groupModule.getMyUserID()}}).then((function(t){var n=t.data.pendencyList;return 0!==t.data.nextStartTime?e._getPendencyList({startTime:t.data.nextStartTime}).then((function(e){return[].concat(m(n),m(e))})):n}))}},{key:"getGroupApplicationList",value:function(){var e=this;return this._getPendencyList().then((function(t){return e._getPendencyList({type:S.GRP_COMMUNITY}).then((function(n){return t.push.apply(t,m(n)),e._handlePendencyResult(t)})).catch((function(n){return e._handlePendencyResult(t)}))}))}},{key:"_handlePendencyResult",value:function(e){var t=this,n=[];return e.forEach((function(e){t.pendencyMap.set("".concat(e.from,"_").concat(e.groupID,"_").concat(e.to),e),0===e.handled&&n.push({applicant:e.from,applicantNick:e.fromUserNickName,groupName:e.groupName,groupID:e.groupID,authentication:e.authentication,messageKey:e.time,applicationType:e.applicationType,userID:e.userID})})),Ni({applicationList:n})}},{key:"_onReceivedGroupSystemNotice",value:function(e){var t=this,n=e.result;e.isInstantMessage&&n.forEach((function(e){switch(e.payload.operationType){case 1:break;case 2:t._onApplyGroupRequestAgreed(e);break;case 3:break;case 4:t._onMemberKicked(e);break;case 5:t._onGroupDismissed(e);break;case 6:break;case 7:t._onInviteGroup(e);break;case 8:t._onQuitGroup(e);break;case 9:t._onSetManager(e);break;case 10:t._onDeleteManager(e);break;case 11:case 12:case 15:break;case 20:t._onMessageRemindTypeSynced(e);break;case 21:t._groupModule.onAVChatRoomMemberBanned(e)}}))}},{key:"_onApplyGroupRequestAgreed",value:function(e){var t=this,n=e.payload.groupProfile.groupID;this._groupModule.hasLocalGroup(n)||this._groupModule.getGroupProfile({groupID:n}).then((function(e){var n=e.data.group;if(n){t._groupModule.updateGroupMap([n]);var o=!n.isSupportTopic;t._groupModule.emitGroupListUpdate(!0,o)}}))}},{key:"_onMemberKicked",value:function(e){var t=e.payload.groupProfile.groupID;this._groupModule.hasLocalGroup(t)&&this._groupModule.deleteLocalGroupAndConversation(t)}},{key:"_onGroupDismissed",value:function(e){var t=e.payload.groupProfile.groupID;this._groupModule.hasLocalGroup(t)&&this._groupModule.deleteLocalGroupAndConversation(t);var n=this._groupModule._AVChatRoomHandler;n&&n.checkJoinedAVChatRoomByID(t)&&n.reset(t)}},{key:"_onInviteGroup",value:function(e){var t=this,n=e.payload.groupProfile.groupID;this._groupModule.hasLocalGroup(n)||this._groupModule.getGroupProfile({groupID:n}).then((function(e){var n=e.data.group;n&&(t._groupModule.updateGroupMap([n]),t._groupModule.emitGroupListUpdate())}))}},{key:"_onQuitGroup",value:function(e){var t=e.payload.groupProfile.groupID;this._groupModule.hasLocalGroup(t)&&this._groupModule.deleteLocalGroupAndConversation(t)}},{key:"_onSetManager",value:function(e){var t=e.payload.groupProfile,n=t.to,o=t.groupID,s=this._groupModule.getModule(Vn).getLocalGroupMemberInfo(o,n);s&&s.updateRole(S.GRP_MBR_ROLE_ADMIN)}},{key:"_onDeleteManager",value:function(e){var t=e.payload.groupProfile,n=t.to,o=t.groupID,s=this._groupModule.getModule(Vn).getLocalGroupMemberInfo(o,n);s&&s.updateRole(S.GRP_MBR_ROLE_MEMBER)}},{key:"_onMessageRemindTypeSynced",value:function(e){var t=e.payload.groupProfile.groupID,n=e.payload.messageRemindType;this._groupModule.getModule(Hn).onGroupMessageRemindTypeSynced({groupID:t,messageRemindType:n})}},{key:"_handleTopicSystemNotice",value:function(e){var t=e.groupProfile,n=t.groupID,o=t.topicID,s=e.elements,a=s.operationType,r=s.topicIDList,i=s.messageRemindType,u=this._groupModule.getModule(Bn);17===a?u.onTopicCreated({groupID:n,topicID:o}):18===a?u.onTopicDeleted({groupID:n,topicIDList:r}):20===a&&u.onTopicMessageRemindTypeUpdated({groupID:n,topicID:o,messageRemindType:i})}},{key:"reset",value:function(){this.pendencyMap.clear()}}]),e}(),Mu=["relayFlag"],yu=function(e){i(s,e);var n=f(s);function s(e){var t;return o(this,s),(t=n.call(this,e))._n="GroupModule",t._commonGroupHandler=null,t._AVChatRoomHandler=null,t._groupSystemNoticeHandler=null,t._commonGroupHandler=new nu(h(t)),t._groupAttributesHandler=new uu(h(t)),t._groupCountersHandler=new du(h(t)),t._AVChatRoomHandler=new _u(h(t)),t._groupTipsHandler=new tu(h(t)),t._groupSystemNoticeHandler=new mu(h(t)),t.groupMap=new Map,t._unjoinedAVChatRoomList=new Map,t._receiptDetailCompleteMap=new Map,t.getInnerEmitterInstance().on(bi,t._onCloudConfigUpdated,h(t)),t}return a(s,[{key:"_onCloudConfigUpdated",value:function(){var e=this.getCloudConfig("polling_interval"),t=this.getCloudConfig("polling_interval_plus"),n=this.getCloudConfig("polling_no_msg_count"),o=this.getCloudConfig("polling_simplified_msg");this._AVChatRoomHandler&&(He.l("".concat(this._n,"._onCloudConfigUpdated pollingInterval:").concat(e)+" pollingIntervalPlus:".concat(t," pollingNoMessageCount:").concat(n)+" pollingSimplifiedMessage:".concat(o)),this._AVChatRoomHandler.setPollingInterval(e),this._AVChatRoomHandler.setPollingIntervalPlus(t),this._AVChatRoomHandler.setPollingNoMessageCount(n),this._AVChatRoomHandler.setPollingSimplifiedMessage(o))}},{key:"onCheckTimer",value:function(e){this.isLoggedIn()&&(this._commonGroupHandler.onCheckTimer(e),this._groupTipsHandler.onCheckTimer(e))}},{key:"guardForAVChatRoom",value:function(e){var t=this;if(e.conversationType===S.CONV_GROUP){var n=At(e.to)?Kt(e.to):e.to;return this.hasLocalGroup(n)?Ni():this.getGroupProfile({groupID:n}).then((function(o){var s=o.data.group.type;if(He.l("".concat(t._n,".guardForAVChatRoom. groupID:").concat(n," type:").concat(s)),s===S.GRP_AVCHATROOM){var a=La;return Oi(new Ei({code:a,message:t.getErrorMessage(a,e.from,n),data:{message:e}}))}return Ni()}))}return Ni()}},{key:"checkJoinedAVChatRoomByID",value:function(e){return!!this._AVChatRoomHandler&&this._AVChatRoomHandler.checkJoinedAVChatRoomByID(e)}},{key:"onNewGroupMessage",value:function(e){this._commonGroupHandler&&this._commonGroupHandler.onNewGroupMessage(e)}},{key:"updateNextMessageSeq",value:function(e){var t=this;if(it(e)){var n=this.getModule(Bn);e.forEach((function(e){var o=e.conversationID.replace(S.CONV_GROUP,"");At(o)&&n.updateLastMessage(o,e.lastMessage),t.groupMap.has(o)&&(t.groupMap.get(o).nextMessageSeq=e.lastMessage.sequence+1)}))}}},{key:"onNewGroupTips",value:function(e){this._groupTipsHandler&&this._groupTipsHandler.onNewGroupTips(e)}},{key:"onGroupMessageRevoked",value:function(e){this._commonGroupHandler&&this._commonGroupHandler.onGroupMessageRevoked(e)}},{key:"onNewGroupSystemNotice",value:function(e){this._groupSystemNoticeHandler&&this._groupSystemNoticeHandler.onNewGroupSystemNotice(e)}},{key:"onGroupMessageReadNotice",value:function(e){var t=this;e.dataList.forEach((function(e){var n=e.elements.groupMessageReadNotice;if(!ut(n)){var o=t.getModule(Hn);n.forEach((function(e){var n=e.groupID,s=e.topicID,a=void 0===s?void 0:s,r=e.lastMessageSeq;He.d("".concat(t._n,".onGroupMessageReadNotice groupID:").concat(n," lastMessageSeq:").concat(r));var i="".concat(S.CONV_GROUP).concat(n),u=!0;Zt(a)||(i="".concat(S.CONV_GROUP).concat(a),u=!1),o.updateIsReadAfterReadReport({conversationID:i,lastMessageSeq:r}),o.updateUnreadCount(i,u),o.clearGroupAtInfoList(i,u)}))}}))}},{key:"onReadReceiptList",value:function(e){var t=this;He.d("".concat(this._n,".onReadReceiptList options:"),JSON.stringify(e)),e.dataList.forEach((function(e){var n=e.groupProfile,o=e.elements,s=n.groupID,a=t.getModule(Hn),r=o.readReceiptList;a.updateReadReceiptInfo({groupID:s,readReceiptList:r})}))}},{key:"onGroupMessageModified",value:function(e){He.d("".concat(this._n,".onGroupMessageModified options:"),JSON.stringify(e));var n=this.getModule(Hn);e.dataList.forEach((function(e){n.onMessageModified(t(t({},e),{},{conversationType:S.CONV_GROUP,to:e.topicID?e.topicID:e.groupID}))}))}},{key:"deleteGroupSystemNotice",value:function(e){this._groupSystemNoticeHandler&&this._groupSystemNoticeHandler.deleteGroupSystemNotice(e)}},{key:"initGroupMap",value:function(e){this.groupMap.set(e.groupID,new Ji(e))}},{key:"deleteGroup",value:function(e){this.groupMap.delete(e)}},{key:"updateGroupMap",value:function(e){var t,n=this,o=this.getModule(Hn);e.forEach((function(e){t=e.groupID,n.groupMap.has(t)?n.groupMap.get(t).updateGroup(e):(n.groupMap.set(t,new Ji(e)),o.deleteGroupRomaingMessageInfo(t))}));var s,a=this.getMyUserID(),r=D(this.groupMap);try{for(r.s();!(s=r.n()).done;){var i=v(s.value,2)[1];i.selfInfo.userID=a,"Owner"===i.selfInfo.role&&(i.ownerID=a)}}catch(u){r.e(u)}finally{r.f()}this._setStorageGroupList()}},{key:"getStorageGroupList",value:function(){return this.getModule(Wn).getItem("groupMap")}},{key:"_setStorageGroupList",value:function(){var e=this.getLocalGroupList().filter((function(e){var t=e.type;return!Lt(t)})).filter((function(e){return!e.isSupportTopic})).slice(0,20).map((function(e){return{groupID:e.groupID,name:e.name,avatar:e.avatar,type:e.type}}));this.getModule(Wn).setItem("groupMap",e)}},{key:"getGroupMap",value:function(){return this.groupMap}},{key:"getLocalGroupList",value:function(){return m(this.groupMap.values())}},{key:"getLocalGroupProfile",value:function(e){return this.groupMap.get(e)}},{key:"sortLocalGroupList",value:function(){var e=m(this.groupMap).filter((function(e){var t=v(e,2);t[0];return!Zt(t[1].lastMessage)}));e.sort((function(e,t){return t[1].lastMessage.lastTime-e[1].lastMessage.lastTime})),this.groupMap=new Map(m(e))}},{key:"updateGroupLastMessage",value:function(e){this._commonGroupHandler&&this._commonGroupHandler.handleUpdateGroupLastMessage(e)}},{key:"emitGroupListUpdate",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.getLocalGroupList();if(e&&this.emitOuterEvent(k.GROUP_LIST_UPDATED),t){var o=JSON.parse(JSON.stringify(n)),s=this.getModule(Hn);s.updateConversationGroupProfile(o)}}},{key:"patchGroupMessageRemindType",value:function(){var e=this.getLocalGroupList(),t=this.getModule(Hn),n=0;e.forEach((function(e){!0===t.patchMessageRemindType({ID:e.groupID,isC2CConversation:!1,messageRemindType:e.selfInfo.messageRemindType})&&(n+=1)})),He.l("".concat(this._n,".patchGroupMessageRemindType count:").concat(n))}},{key:"recomputeUnreadCount",value:function(){var e=this.getLocalGroupList(),t=this.getModule(Hn);e.forEach((function(e){var n=e.groupID,o=e.selfInfo,s=o.excludedUnreadSequenceList,a=o.readedSequence;if(it(s)){var r=0;s.forEach((function(t){t>=a&&t<=e.nextMessageSeq-1&&(r+=1)})),r>=1&&t.recomputeGroupUnreadCount({conversationID:"".concat(S.CONV_GROUP).concat(n),count:r})}}))}},{key:"getMyNameCardByGroupID",value:function(e){var t=this.getLocalGroupProfile(e);return t?t.selfInfo.nameCard:""}},{key:"isPagingGetCompleted",value:function(){return!!this._commonGroupHandler&&this._commonGroupHandler.isPagingGetCompleted()}},{key:"getGroupList",value:function(e){return this._commonGroupHandler?this._commonGroupHandler.getGroupList(e):Ni()}},{key:"getGroupProfile",value:function(e){var t=this,n="".concat(this._n,".").concat("getGroupProfile"),o=new li("getGroupProfile"),s=e.groupID,a=e.groupCustomFieldFilter;He.l("".concat(n," groupID:").concat(s));var r={groupIDList:[s],responseFilter:{groupBaseInfoFilter:["Type","Name","Introduction","Notification","FaceUrl","Owner_Account","CreateTime","InfoSeq","LastInfoTime","LastMsgTime","MemberNum","MaxMemberNum","ApplyJoinOption","NextMsgSeq","ShutUpAllMember","InviteJoinOption"],groupCustomFieldFilter:a,memberInfoFilter:["Role","JoinTime","MsgSeq","MsgFlag","NameCard"]}};return this.getGroupProfileAdvance(r).then((function(e){var a,r=e.data,i=r.successGroupList,u=r.failureGroupList;if(He.l("".concat(n," ok")),u.length>0)return Oi(u[0]);(Lt(i[0].type)&&!t.hasLocalGroup(s)?a=new Ji(i[0]):(t.updateGroupMap(i),a=t.getLocalGroupProfile(s)),a.isSupportTopic)||t.getModule(Hn).updateConversationGroupProfile([a]);return o.setNetworkType(t.getNetworkType()).setMessage("groupID:".concat(s," type:").concat(a.type," muteAllMembers:").concat(a.muteAllMembers," ownerID:").concat(a.ownerID)).end(),Li({group:a})})).catch((function(s){return t.probeNetwork().then((function(t){var n=v(t,2),a=n[0],r=n[1];o.setError(s,a,r).setMessage("groupID:".concat(e.groupID)).end()})),He.e("".concat(n," failed. error:"),s),Oi(s)}))}},{key:"getGroupProfileAdvance",value:function(e){var n="".concat(this._n,".getGroupProfileAdvance"),o=e.groupIDList;it(o)&&o.length>50&&(this.outputWarning("GetGroupProfileLimit"),o.length=50);var s=[],a=[];o.forEach((function(e){Et({groupID:e})?a.push(e):s.push(e)}));var r=[];if(s.length>0){var i=this._getGroupProfileAdvance(t(t({},e),{},{groupIDList:s}));r.push(i)}if(a.length>0){var u=this._getGroupProfileAdvance(t(t({},e),{},{groupIDList:a,relayFlag:s.length>0}));r.push(u)}return Promise.all(r).then((function(e){var t=[],n=[];return e.forEach((function(e){t.push.apply(t,m(e.successGroupList)),n.push.apply(n,m(e.failureGroupList))})),Li({successGroupList:t,failureGroupList:n})})).catch((function(e){return He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_getGroupProfileAdvance",value:function(e){var t=this,n=e.relayFlag,o=void 0!==n&&n,s=g(e,Mu);return this.request({protocolName:Qo,requestData:s}).then((function(e){He.l("".concat(t._n,"._getGroupProfileAdvance ok."));var n=e.data.groups;return{successGroupList:n.filter((function(e){return ut(e.errorCode)||0===e.errorCode})),failureGroupList:n.filter((function(e){return e.errorCode&&0!==e.errorCode})).map((function(e){return new Ei({code:e.errorCode,message:e.errorInfo,data:{groupID:e.groupID}})}))}})).catch((function(t){return o&&Et({groupID:e.groupIDList[0]})?{successGroupList:[],failureGroupList:[]}:Oi(t)}))}},{key:"createGroup",value:function(e){var n=this,o="".concat(this._n,".").concat("createGroup"),s=e.type,a=e.groupID;if(e.name&&!1===this._filterProfanity("name",e))return Oi({code:Wr});if(e.introduction&&!1===this._filterProfanity("introduction",e))return Oi({code:Wr});if(e.notification&&!1===this._filterProfanity("notification",e))return Oi({code:Wr});if(!["Public","Private","ChatRoom","AVChatRoom","Community"].includes(s))return Oi({code:ir});if(!Et({type:s})){if(!Zt(a)&&Et({groupID:a}))return Oi({code:cr});e.isSupportTopic=void 0}if(Lt(s)&&!ut(e.memberList)&&e.memberList.length>0&&(e.memberList=void 0),this._canIUseJoinOption(s)||ut(e.joinOption)||(e.joinOption=void 0),Et({type:s})){if(!Zt(a)&&!Et({groupID:a}))return Oi({code:cr});e.isSupportTopic=!0===e.isSupportTopic?1:0}var r=new li("createGroup");He.l("".concat(o," options:"),e);var i=null,u=[];return this.request({protocolName:Zo,requestData:t(t({},e),{},{ownerID:this.getMyUserID(),webPushFlag:1})}).then((function(s){var a=s.data,c=a.groupID,l=a.overLimitUserIDList,p=void 0===l?[]:l;if(i=c,u=p,r.setNetworkType(n.getNetworkType()).setMessage("groupType:".concat(e.type," groupID:").concat(c," overLimitUserIDList=").concat(p)).end(),He.l("".concat(o," ok groupID:").concat(c," overLimitUserIDList:"),p),e.type===S.GRP_AVCHATROOM)return n.getGroupProfile({groupID:c});if(e.type===S.GRP_COMMUNITY&&1===e.isSupportTopic)return n.getGroupProfile({groupID:c});Zt(e.memberList)||Zt(p)||(e.memberList=e.memberList.filter((function(e){return-1===p.indexOf(e.userID)}))),n.updateGroupMap([t(t({},e),{},{groupID:c})]);var d=n.getModule(Un),g=d.createCustomMessage({to:c,conversationType:S.CONV_GROUP,payload:{data:"group_create",extension:n.isIntl()?"".concat(n.getMyUserID()," created a group"):"".concat(n.getMyUserID(),"创建群组")}});return d.sendMessageInstance(g),n.emitGroupListUpdate(),n.getGroupProfile({groupID:c})})).then((function(e){var t=e.data.group,n=t.selfInfo,o=n.nameCard,s=n.joinTime;return t.updateSelfInfo({nameCard:o,joinTime:s,messageRemindType:S.MSG_REMIND_ACPT_AND_NOTE,role:S.GRP_MBR_ROLE_OWNER}),Li({group:t,overLimitUserIDList:u})})).catch((function(s){if(r.setMessage("groupType:".concat(e.type)),n.probeNetwork().then((function(e){var t=v(e,2),n=t[0],o=t[1];r.setError(s,n,o).end()})),10010===s.code||10007===s.code){n.updateGroupMap([t(t({},e),{},{groupID:i})]);var a=n.getLocalGroupProfile(i);return He.l("".concat(o," success, but failed to get group profile.")),Li({group:a,overLimitUserIDList:u})}return He.e("".concat(o," failed. error:"),s),Oi(s)}))}},{key:"dismissGroup",value:function(e){var t=this,n="".concat(this._n,".").concat("dismissGroup");if(this.hasLocalGroup(e)&&this.getLocalGroupProfile(e).type===S.GRP_WORK)return Oi(new Ei({code:gr}));var o=new li("dismissGroup");return o.setMessage("groupID:".concat(e)),He.l("".concat(n," groupID:").concat(e)),this.request({protocolName:$o,requestData:{groupID:e}}).then((function(){return o.setNetworkType(t.getNetworkType()).end(),He.l("".concat(n," ok")),t.deleteLocalGroupAndConversation(e),t.checkJoinedAVChatRoomByID(e)&&t._AVChatRoomHandler.reset(e),t._groupAttributesHandler.deleteLocalGroupAttributes(e),Li({groupID:e})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"updateGroupProfile",value:function(e){var t=this,n="".concat(this._n,".").concat("updateGroupProfile");if(this.hasLocalGroup(e.groupID)){var o=this.getLocalGroupProfile(e.groupID).type;this._canIUseJoinOption(o)||ut(e.joinOption)||(He.w("".concat(n," joinOption is unavailable for Work/Meeting/AVChatRoom")),e.joinOption=void 0)}if(ut(e.muteAllMembers)||(e.muteAllMembers?e.muteAllMembers="On":e.muteAllMembers="Off"),e.name&&!1===this._filterProfanity("name",e))return Oi({code:Wr});if(e.introduction&&!1===this._filterProfanity("introduction",e))return Oi({code:Wr});if(e.notification&&!1===this._filterProfanity("notification",e))return Oi({code:Wr});var s=new li("updateGroupProfile");return s.setMessage(JSON.stringify(e)),He.l("".concat(n," groupID:").concat(e.groupID)),this.request({protocolName:es,requestData:e}).then((function(){(s.setNetworkType(t.getNetworkType()).end(),He.l("".concat(n," ok")),t.hasLocalGroup(e.groupID))&&(t.groupMap.get(e.groupID).updateGroup(e),t._setStorageGroupList());return Li({group:t.groupMap.get(e.groupID)})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],a=n[1];s.setError(e,o,a).end()})),He.l("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_filterProfanity",value:function(e,t){var n=this.getModule(io);if(!n)return!0;var o=n.filterText(t[e],z),s=o.isAllowedToSend,a=o.modifiedText;return!0===s&&(t[e]=a,!0)}},{key:"joinGroup",value:function(e){var t=this,n=e.groupID,o=e.type,s="".concat(this._n,".joinGroup");if(o===S.GRP_WORK)return Oi({code:ur});if(this.deleteUnjoinedAVChatRoom(n),this.hasLocalGroup(n)){if(!this.isLoggedIn())return Ni({status:S.JOIN_STATUS_ALREADY_IN_GROUP});var a=new li("applyJoinGroup");return this.getGroupProfile({groupID:n}).then((function(){return a.setNetworkType(t.getNetworkType()).setMessage("groupID:".concat(n," joinedStatus:").concat(S.JOIN_STATUS_ALREADY_IN_GROUP)).end(),Ni({status:S.JOIN_STATUS_ALREADY_IN_GROUP})})).catch((function(o){return a.setNetworkType(t.getNetworkType()).setMessage("groupID:".concat(n," unjoined")).end(),He.w("".concat(s," ").concat(n," was unjoined, now join!")),t.groupMap.delete(n),t.applyJoinGroup(e)}))}return He.l("".concat(s," groupID:").concat(n)),this.isLoggedIn()?this.applyJoinGroup(e):this._AVChatRoomHandler.joinWithoutAuth(e)}},{key:"applyJoinGroup",value:function(e){var n=this,o="".concat(this._n,".").concat("applyJoinGroup"),s=e.groupID;if(!Zt(e.applyMessage)&&!1===this._filterProfanity("applyMessage",e))return Oi({code:Wr});var a=new li("applyJoinGroup"),r=t({},e),i=this.canIUse(B.AVCHATROOM_HISTORY_MSG);return i&&(r.historyMessageFlag=1),this.getModule(Hn).deleteTopicRoamingMessageInfo(s),this.request({protocolName:ts,requestData:r}).then((function(e){var t=e.data,r=t.joinedStatus,u=t.longPollingKey,c=t.startSeq,l=t.avChatRoomFlag,p=t.avChatRoomKey,d=t.messageList,g="groupID:".concat(s," joinedStatus:").concat(r," longPollingKey:").concat(u," startSeq:").concat(c)+" avChatRoomFlag:".concat(l," canGetAVChatRoomHistoryMessage:").concat(i,",")+" history message count:".concat(Zt(d)?0:d.length);switch(a.setNetworkType(n.getNetworkType()).setMessage("".concat(g)).end(),He.l("".concat(o," ok. ").concat(g)),r){case Xe:return Li({status:Xe});case Je:return n.getGroupProfile({groupID:s}).then((function(e){var t=e.data.group;return n._handleJoinResult({group:t,avChatRoomFlag:l,longPollingKey:u,startSeq:c,avChatRoomKey:p,messageList:d})})).catch((function(){var e=new Ji({groupID:s});return n._handleJoinResult({group:e,avChatRoomFlag:l,longPollingKey:u,startSeq:c,avChatRoomKey:p,messageList:d})}));default:var h=new Ei({code:_r});return He.e("".concat(o," failed. error:"),h),Oi(h)}})).catch((function(e){return a.setMessage("groupID:".concat(s)),n.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];a.setError(e,o,s).end()})),He.e("".concat(o," failed. error:"),e),Oi(e)}))}},{key:"_handleJoinResult",value:function(e){var t,n=this,o=e.group,s=e.avChatRoomFlag,a=e.longPollingKey,r=e.startSeq,i=e.avChatRoomKey,u=e.messageList,c=o.groupID;return 1===s?(this.getModule(Hn).setCompleted("".concat(S.CONV_GROUP).concat(c)),this._groupAttributesHandler.initGroupAttributesCache({groupID:c,avChatRoomKey:i}),this._groupCountersHandler.initGroupCountersCache({groupID:c,avChatRoomKey:i}),(t=ut(a)?this._AVChatRoomHandler.handleJoinResult({group:o}):this._AVChatRoomHandler.startRunLoop({group:o,longPollingKey:a,startSeq:r})).then((function(){n._onAVChatRoomHistoryMessage(u)})),t):(this.emitGroupListUpdate(!0,!1),Li({status:Je,group:o}))}},{key:"quitGroup",value:function(e){var t=this,n="".concat(this._n,".").concat("quitGroup");He.l("".concat(n," groupID:").concat(e));var o=this.checkJoinedAVChatRoomByID(e);if(!o&&!this.hasLocalGroup(e))return Oi({code:hr});if(o&&!this.isLoggedIn())return He.l("".concat(n," anonymously ok. groupID:").concat(e)),this.deleteLocalGroupAndConversation(e),this._AVChatRoomHandler.reset(e),Ni({groupID:e});var s=new li("quitGroup");return s.setMessage("groupID:".concat(e)),this.request({protocolName:os,requestData:{groupID:e}}).then((function(){return s.setNetworkType(t.getNetworkType()).end(),He.l("".concat(n," ok")),t.deleteLocalGroupAndConversation(e),o&&t._AVChatRoomHandler.reset(e),t._groupAttributesHandler.deleteLocalGroupAttributes(e),Li({groupID:e})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],a=n[1];s.setError(e,o,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"searchGroupByID",value:function(e){var t=this,n="".concat(this._n,".").concat("searchGroupByID"),o={groupIDList:[e]},s=new li("searchGroupByID");return s.setMessage("groupID:".concat(e)),He.l("".concat(n," groupID:").concat(e)),this.request({protocolName:ss,requestData:o}).then((function(e){var o=e.data.groupProfile;if(0!==o[0].errorCode)throw new Ei({code:o[0].errorCode,message:o[0].errorInfo});return s.setNetworkType(t.getNetworkType()).end(),He.l("".concat(n," ok")),Li({group:new Ji(o[0])})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],a=n[1];s.setError(e,o,a).end()})),He.w("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"changeGroupOwner",value:function(e){var t=this,n="".concat(this._n,".").concat("changeGroupOwner");if(this.hasLocalGroup(e.groupID)&&this.getLocalGroupProfile(e.groupID).type===S.GRP_AVCHATROOM)return Oi({code:pr});if(e.newOwnerID===this.getMyUserID())return Oi({code:dr});var o=new li("changeGroupOwner");return o.setMessage("groupID:".concat(e.groupID," newOwnerID:").concat(e.newOwnerID)),He.l("".concat(n," groupID:").concat(e.groupID)),this.request({protocolName:as,requestData:e}).then((function(){o.setNetworkType(t.getNetworkType()).end(),He.l("".concat(n," ok"));var s=e.groupID,a=e.newOwnerID;t.groupMap.get(s).ownerID=a;var r=t.getModule(Vn).getLocalGroupMemberList(s);if(r instanceof Map){var i=r.get(t.getMyUserID());ut(i)||(i.updateRole("Member"),t.groupMap.get(s).selfInfo.role="Member");var u=r.get(a);ut(u)||u.updateRole("Owner")}return t.emitGroupListUpdate(!0,!1),Li({group:t.groupMap.get(s)})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"getGroupApplicationList",value:function(){return this._groupSystemNoticeHandler.getGroupApplicationList()}},{key:"handleGroupApplication",value:function(e){var t,n,o,s,a,r=this,i="".concat(this._n,".").concat("handleGroupApplication"),u=e.handleAction,c=e.handleMessage,l=e.message,p=e.application;l?(t=l.payload.operatorID,n=l.payload.groupProfile.groupID,o=l.payload.authentication,s=l.payload.messageKey):p&&(t=p.applicant,n=p.groupID,o=p.authentication,s=p.messageKey);var d=rs;p&&2===p.applicationType&&(d=is,a=p.userID);var g=new li("handleGroupApplication");return g.setMessage("groupID:".concat(n)),He.l("".concat(i," groupID:").concat(n)),this.request({protocolName:d,requestData:{handleAction:u,handleMessage:c,applicant:t,invitee:a,groupID:n,authentication:o,messageKey:s}}).then((function(){return g.setNetworkType(r.getNetworkType()).end(),He.l("".concat(i," ok")),l&&r._groupSystemNoticeHandler.deleteGroupSystemNotice({messageList:[e.message]}),Li({group:r.getLocalGroupProfile(n)})})).catch((function(e){return r.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];g.setError(e,o,s).end()})),He.e("".concat(i," failed. error"),e),Oi(e)}))}},{key:"handleGroupInvitation",value:function(e){var n=this,o="".concat(this._n,".").concat("handleGroupInvitation"),s=e.message.payload,a=s.groupProfile.groupID,r=s.authentication,i=s.messageKey,u=s.operatorID,c=e.handleAction,l=new li("handleGroupInvitation");return l.setMessage("groupID:".concat(a," inviter:").concat(u," handleAction:").concat(c)),He.l("".concat(o," groupID:").concat(a," inviter:").concat(u," handleAction:").concat(c)),this.request({protocolName:us,requestData:t(t({},e),{},{inviter:u,groupID:a,authentication:r,messageKey:i})}).then((function(){return l.setNetworkType(n.getNetworkType()).end(),He.l("".concat(o," ok")),n._groupSystemNoticeHandler.deleteGroupSystemNotice({messageList:[e.message]}),Li({group:n.getLocalGroupProfile(a)})})).catch((function(e){return n.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];l.setError(e,o,s).end()})),He.e("".concat(o," failed. error"),e),Oi(e)}))}},{key:"getGroupOnlineMemberCount",value:function(e){return this._AVChatRoomHandler?this._AVChatRoomHandler.checkJoinedAVChatRoomByID(e)?this._AVChatRoomHandler.getGroupOnlineMemberCount(e):Ni({memberCount:0}):Oi({code:Pr})}},{key:"hasLocalGroup",value:function(e){return this.groupMap.has(e)}},{key:"deleteLocalGroupAndConversation",value:function(e){var t=this.checkJoinedAVChatRoomByID(e);(He.l("".concat(this._n,".deleteLocalGroupAndConversation isJoinedAVChatRoom:").concat(t)),t)&&this.getModule(Hn).deleteLocalConversation("".concat(S.CONV_GROUP).concat(e));if(Et({groupID:e})){var n=this.getLocalGroupProfile(e);if(n&&!0===n.isSupportTopic)this.getModule(Bn).deleteTopicListInCommunity(e)}this._deleteLocalGroup(e),this.emitGroupListUpdate(!0,!1)}},{key:"_deleteLocalGroup",value:function(e){this.groupMap.delete(e),this.getModule(Vn).deleteGroupMemberList(e),this._setStorageGroupList()}},{key:"sendMessage",value:function(e,t){if(it(e._receiverList)&&e._receiverList.length>0&&!this.canIUse(B.MSG_TO_SPECIFIED_GRP_MBR))return Oi({code:Kr});var n=this.createGroupMessagePack(e,t);return this.request(n)}},{key:"createGroupMessagePack",value:function(e,t){var n=null;t&&t.offlinePushInfo&&(n=t.offlinePushInfo);var o="";st(e.cloudCustomData)&&e.cloudCustomData.length>0&&(o=e.cloudCustomData);var s=[];if(rt(t)&&rt(t.messageControlInfo)){var a=t.messageControlInfo,r=a.excludedFromUnreadCount,i=a.excludedFromLastMessage,u=a.excludedFromContentModeration;!0===r&&s.push("NoUnread"),!0===i&&s.push("NoLastMsg"),!0===u&&s.push("NoMsgCheck")}var c=void 0;it(e._receiverList)&&e._receiverList.length>0&&(c=e._receiverList,e._receiverList.length>50&&(c=e._receiverList.slice(0,50),this.outputWarning("ReceiverListLimit")));var l=this.isOnlineMessage(e,t)?1:0,p=e.getGroupAtInfoList(),d={fromAccount:this.getMyUserID(),groupID:e.to,msgBody:e.getElements(),cloudCustomData:o,random:e.random,priority:e.priority,clientSequence:e.clientSequence,groupAtInfo:e.type!==S.MSG_TEXT||Zt(p)?void 0:p,onlineOnlyFlag:l,clientTime:e.clientTime,offlinePushInfo:n?{pushFlag:!0===n.disablePush?1:0,title:n.title||"",desc:n.description||"",ext:n.extension||"",apnsInfo:{badgeMode:!0===n.ignoreIOSBadge?1:0,isVoipPush:this._isVoipPush(n)},androidInfo:{OPPOChannelID:n.androidOPPOChannelID||""}}:void 0,messageControlInfo:0===l?s:void 0,needReadReceipt:!0!==e.needReadReceipt||this.isMessageFromOrToAVChatroom(e.to)?0:1,receiverList:c,isSupportExtension:!0===e.isSupportExtension?1:0};return At(e.to)&&(d.groupID=Kt(e.to),d.topicID=e.to),{protocolName:yo,tjgID:this.generateTjgID(e),requestData:d}}},{key:"_isVoipPush",value:function(e){var t=void 0;return ut(e.disableVoipPush)||(t=!1===e.disableVoipPush?1:0),t}},{key:"revokeMessage",value:function(e){var t={groupID:e.to,msgSeqList:[{msgSeq:e.sequence}]};return At(e.to)&&(t.groupID=Kt(e.to),t.topicID=e.to),this.request({protocolName:cs,requestData:t})}},{key:"deleteMessage",value:function(e){var t=e.to,n=e.keyList;He.l("".concat(this._n,".deleteMessage groupID:").concat(t," count:").concat(n.length));var o={groupID:t,deleter:this.getMyUserID(),keyList:n};return At(t)&&(o.groupID=Kt(t),o.topicID=t),this.request({protocolName:Cs,requestData:o})}},{key:"modifyRemoteMessage",value:function(e){var t=e.to,n=e.sequence,o=e.payload,s=e.type,a=e.version,r=void 0===a?0:a,i=e.cloudCustomData,u=t,c=void 0;At(t)&&(u=Kt(t),c=t);var l=void 0;return jt(s)&&(l=[]).push({type:s,content:o}),this.request({protocolName:Ts,requestData:{groupID:u,topicID:c,sequence:n,version:r,elements:l,cloudCustomData:i}})}},{key:"getRoamingMessage",value:function(e){var t=this,n="".concat(this._n,".getRoamingMessage"),o=e.conversationID,s=e.groupID,a=e.sequence,r=new li("getGroupRoamingMessages"),i=0,u=void 0;return At(s)&&(s=Kt(u=s)),this._computeLastSequence({groupID:s,topicID:u,sequence:a}).then((function(e){return i=e,He.l("".concat(n," groupID:").concat(s," startSequence:").concat(i)),t.request({protocolName:ds,requestData:{groupID:s,count:21,sequence:i,topicID:u}})})).then((function(e){var a=e.data,c=a.messageList,l=a.complete,p=a.invisibleSequenceList,d=void 0===p?[]:p;ut(c)?He.l("".concat(n," ok. complete:").concat(l," but messageList is undefined!")):He.l("".concat(n," ok. complete:").concat(l," count:").concat(c.length));var g=t._getMinSequence(d,c)-1;r.setNetworkType(t.getNetworkType()).setMessage("groupID:".concat(s," topicID:").concat(u," startSequence:").concat(i," complete:").concat(l," nextSequence:").concat(g)).end();var h=t.getModule(Hn),_=[];return Zt(c)||(h.updateRoamingMessageSequence(o,g),_=h.onRoamingMessage(c,o),h.updateIsRead(o),h.patchConversationLastMessage(o)),2===l&&(h.setCompleted(o),g=""),He.l("".concat(n," nextReqID:").concat(g,", stored message count:").concat(_.length,", invisible sequence count:").concat(d.length)),{nextReqID:g+"",storedMessageList:_}})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],a=n[1];r.setError(e,o,a).setMessage("groupID:".concat(s," topicID:").concat(u," startSequence:").concat(i)).end()})),He.w("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_getGroupIDOfMessage",value:function(e){return e.conversationID.replace(S.CONV_GROUP,"")}},{key:"_getMinSequence",value:function(e,t){var n=0;Zt(t)||(n=t[t.length-1].sequence);var o=0;Zt(e)||(o=e[e.length-1]);return He.l("".concat(this._n,"._getMinSequence minVisibleSequence:").concat(n," minInvisibleSequence:").concat(o)),o>0&&o=100?100:a,h="groupID:".concat(r," sequence:").concat(u," cursor:").concat(d," filter:").concat(p," completeFlag:").concat(l);He.l("".concat(c," ").concat(h));var _={cursor:"",isCompleted:!1,messageID:i,unreadUserIDList:[],readUserIDList:[]},f=new li("getReadReceiptDetail");return f.setMessage(h),this.request({protocolName:fs,requestData:{groupID:r,sequence:u,flag:p,cursor:d,count:g}}).then((function(e){f.end();var n=e.data,o=n.cursor,s=n.isCompleted,a=n.unreadUserIDList,r=n.readUserIDList;return _.cursor=o,1===s&&(_.isCompleted=!0,t._receiptDetailCompleteMap.set(i,!0)),0===p?_.readUserIDList=r.map((function(e){return e.userID})):1===p&&(_.unreadUserIDList=a.map((function(e){return e.userID}))),He.l("".concat(c," ok")),Li(_)})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];f.setError(e,o,s).end()})),He.w("".concat(c," failed. error:"),e),Oi(e)}))}},{key:"getRoamingMessagesHopping",value:function(e){var t=this,n="".concat(this._n,".getRoamingMessagesHopping"),o=new li("getGroupRoamingMessagesHopping"),s=e.groupID,a=e.count,r=e.sequence,i=e.direction,u=r;1===i&&(u=r+a-1);var c=void 0;At(s)&&(s=Kt(c=s));var l="".concat(c?"topicID:".concat(c):"groupID:".concat(s)," sequence:").concat(r," direction:").concat(i);return He.l("".concat(n," ").concat(l)),this.request({protocolName:ds,requestData:{groupID:s,topicID:c,count:a,sequence:u}}).then((function(s){var a=s.data,u=a.messageList,c=a.complete,p="complete:".concat(c," count:").concat(u?u.length:0);if(He.l("".concat(n," ok. ").concat(p)),o.setNetworkType(t.getNetworkType()).setMessage("".concat(l," ").concat(p)).end(),2===c||Zt(u)){var d=t._computeResult();return Li(d)}var g="".concat(S.CONV_GROUP).concat(e.groupID),h=t.getModule(Hn).onRoamingMessage(u,g,!1),_=t._computeResult({direction:i,sequence:r,remoteMessageList:u,processedMessageList:h});return Li(_)})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),i=n[0],u=n[1];o.setError(e,i,u).setMessage("groupID:".concat(s," sequence:").concat(r," count:").concat(a)).end()})),He.w("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_computeResult",value:function(e){var t={messageList:[],isCompleted:!1,nextMessageSeq:""};if(ut(e))return t.isCompleted=!0,t;var n=e.direction,o=e.sequence,s=e.remoteMessageList,a=void 0===s?[]:s,r=e.processedMessageList,i=void 0===r?[]:r,u=a.length;return 1===n?(t.nextMessageSeq=a[0].sequence+1,i.forEach((function(e){e.sequence>=o&&t.messageList.push(e)})),0===t.messageList.length&&a[0].sequence0?Promise.resolve(s):ut(o)||this.hasLocalGroup(t)?ut(o)?this.getGroupLastSequence(t):this.getTopicLastSequence({groupID:t,topicID:o}):Promise.resolve(0)}},{key:"getGroupLastSequence",value:function(e){var t=this,n="".concat(this._n,".").concat("getGroupLastSequence"),o=new li("getGroupLastSequence"),s=0,a="";if(this.hasLocalGroup(e)){var r=this.getLocalGroupProfile(e),i=r.lastMessage;if(i.lastSequence>0&&!1===i.onlineOnlyFlag)return s=i.lastSequence,a="got lastSequence:".concat(s," from local group profile[lastMessage.lastSequence]. groupID:").concat(e),He.l("".concat(n," ").concat(a)),o.setNetworkType(this.getNetworkType()).setMessage("".concat(a)).end(),Promise.resolve(s);if(r.nextMessageSeq>1)return s=r.nextMessageSeq-1,a="got lastSequence:".concat(s," from local group profile[nextMessageSeq]. groupID:").concat(e),He.l("".concat(n," ").concat(a)),o.setNetworkType(this.getNetworkType()).setMessage("".concat(a)).end(),Promise.resolve(s)}var u="GROUP".concat(e),c=this.getModule(Hn).getLocalConversation(u);if(c&&c.lastMessage.lastSequence&&!1===c.lastMessage.onlineOnlyFlag)return s=c.lastMessage.lastSequence,a="got lastSequence:".concat(s," from local conversation profile[lastMessage.lastSequence]. groupID:").concat(e),He.l("".concat(n," ").concat(a)),o.setNetworkType(this.getNetworkType()).setMessage("".concat(a)).end(),Promise.resolve(s);var l={groupIDList:[e],responseFilter:{groupBaseInfoFilter:["NextMsgSeq"]}};return this.getGroupProfileAdvance(l).then((function(r){var i=r.data.successGroupList;return Zt(i)?He.l("".concat(n," successGroupList is empty. groupID:").concat(e)):(s=i[0].nextMessageSeq-1,a="got lastSequence:".concat(s," from getGroupProfileAdvance. groupID:").concat(e),He.l("".concat(n," ").concat(a))),o.setNetworkType(t.getNetworkType()).setMessage("".concat(a)).end(),s})).catch((function(s){return t.probeNetwork().then((function(t){var n=v(t,2),a=n[0],r=n[1];o.setError(s,a,r).setMessage("get lastSequence failed from getGroupProfileAdvance. groupID:".concat(e)).end()})),He.w("".concat(n," failed. error:"),s),Oi(s)}))}},{key:"getTopicLastSequence",value:function(e){var t=this,n=e.groupID,o=e.topicID,s="".concat(this._n,".").concat("getTopicLastSequence"),a=new li("getTopicLastSequence"),r=0,i="",u=this.getModule(Bn);return u.hasLocalTopic(n,o)?(r=u.getLocalTopic(n,o).nextMessageSeq-1,i="get lastSequence:".concat(r," from local topic info[nextMessageSeq]. topicID:").concat(o),He.l("".concat(s," ").concat(i)),a.setNetworkType(this.getNetworkType()).setMessage("".concat(i)).end(),Promise.resolve(r)):u.getTopicList({groupID:n,topicIDList:[o]}).then((function(e){var n=e.data.successTopicList;return Zt(n)?He.l("".concat(s," successTopicList is empty. topicID:").concat(o)):(r=n[0].nextMessageSeq-1,i="get lastSequence:".concat(r," from getTopicList. topicID:").concat(o),He.l("".concat(s," ").concat(i))),a.setNetworkType(t.getNetworkType()).setMessage("".concat(i)).end(),r})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),s=n[0],r=n[1];a.setError(e,s,r).setMessage("get lastSequence failed from getTopicList. topicID:".concat(o)).end()})),He.w("".concat(s," failed. error:"),e),Oi(e)}))}},{key:"isMessageFromOrToAVChatroom",value:function(e){return!!this._AVChatRoomHandler&&this._AVChatRoomHandler.checkJoinedAVChatRoomByID(e)}},{key:"hasJoinedAVChatRoom",value:function(){return this._AVChatRoomHandler?this._AVChatRoomHandler.hasJoinedAVChatRoom():0}},{key:"getJoinedAVChatRoom",value:function(){return this._AVChatRoomHandler?this._AVChatRoomHandler.getJoinedAVChatRoom():[]}},{key:"isOnlineMessage",value:function(e,t){return!(!this._canIUseOnlineOnlyFlag(e)||!t||!0!==t.onlineUserOnly)}},{key:"_canIUseOnlineOnlyFlag",value:function(e){var t=this.getJoinedAVChatRoom();return!t||!t.includes(e.to)||e.conversationType!==S.CONV_GROUP}},{key:"_onAVChatRoomHistoryMessage",value:function(e){if(!Zt(e)){He.l("".concat(this._n,"._onAVChatRoomHistoryMessage count:").concat(e.length));var n=[];e.forEach((function(e){n.push(t(t({},e),{},{isHistoryMessage:1}))})),this.onAVChatRoomMessage(n)}}},{key:"onAVChatRoomMessage",value:function(e){this._AVChatRoomHandler&&this._AVChatRoomHandler.onMessage(e)}},{key:"onAVChatRoomMemberBanned",value:function(e){this._AVChatRoomHandler&&this._AVChatRoomHandler.onAVChatRoomMemberBanned(e)}},{key:"getGroupSimplifiedInfo",value:function(e){var t=this,n=new li("getGroupSimplifiedInfo"),o={groupIDList:[e],responseFilter:{groupBaseInfoFilter:["Type","Name"]}};return this.getGroupProfileAdvance(o).then((function(o){var s=o.data.successGroupList;return n.setNetworkType(t.getNetworkType()).setMessage("groupID:".concat(e," type:").concat(s[0].type)).end(),s[0]})).catch((function(o){t.probeNetwork().then((function(t){var s=v(t,2),a=s[0],r=s[1];n.setError(o,a,r).setMessage("groupID:".concat(e)).end()}))}))}},{key:"setUnjoinedAVChatRoom",value:function(e){this._unjoinedAVChatRoomList.set(e,1)}},{key:"deleteUnjoinedAVChatRoom",value:function(e){this._unjoinedAVChatRoomList.has(e)&&this._unjoinedAVChatRoomList.delete(e)}},{key:"isUnjoinedAVChatRoom",value:function(e){return this._unjoinedAVChatRoomList.has(e)}},{key:"isGroupAttributesUpdatedNotice",value:function(e){return this._groupAttributesHandler.isGroupAttributesUpdatedNotice(e)}},{key:"updateLocalMainSequenceOnReconnected",value:function(){this._groupAttributesHandler.updateLocalMainSequenceOnReconnected()}},{key:"initGroupAttributes",value:function(e){return this._groupAttributesHandler.initGroupAttributes(e)}},{key:"setGroupAttributes",value:function(e){return this._groupAttributesHandler.setGroupAttributes(e)}},{key:"deleteGroupAttributes",value:function(e){return this._groupAttributesHandler.deleteGroupAttributes(e)}},{key:"getGroupAttributes",value:function(e){return this._groupAttributesHandler.getGroupAttributes(e)}},{key:"isMessageFromTopic",value:function(e,t){return 2===e&&!Zt(t)}},{key:"isMessageFromCommunityOfTopic",value:function(e,t){return 2===e&&Zt(t)}},{key:"getMessageExtensions",value:function(e,t){return He.l("".concat(this._n,".getMessageExtensions startSequence:").concat(t)),this.request({protocolName:Rs,requestData:{groupID:e.to,messageSequence:e.sequence,startSequence:t}})}},{key:"modifyMessageExtensions",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return He.l("".concat(this._n,".modifyMessageExtensions operateType:").concat(n)),this.request({protocolName:As,requestData:{groupID:e.to,messageSequence:e.sequence,extensionList:t,operateType:n}})}},{key:"getGroupNotify",value:function(e){var n=this;if(this.hasLocalGroup(e)){var o=this.getLocalGroupProfile(e),s=o.type,a=o.isSupportTopic;if(!Lt(s)&&!a){var r="".concat(this._n,".getGroupNotify"),i=this._getGroupLastRevokedTime(e),u=1e3*we();He.l("".concat(r," groupID:").concat(e," type:").concat(s," beginTime:").concat(i," endTime:").concat(u)),this.request({protocolName:Ns,requestData:{type:Et({type:s,groupID:e})?S.GRP_COMMUNITY:void 0,groupID:e,beginTime:i,endTime:u}}).then((function(o){var s=o.data,a=s.nextRevokedTime,i=s.notifyList;He.l("".concat(r," ok. groupID:").concat(e," nextRevokedTime:").concat(a));var u={dataList:[{elements:{revokedInfos:[]}}]};it(i)&&i.forEach((function(n){u.dataList[0].elements.revokedInfos.push({groupID:e,sequence:n.sequence,random:n.random,revokerInfo:t({},n.revokerInfo)})})),n.onGroupMessageRevoked(u),0!==a?(n._setGroupLastRevokedTime(e,a),n.getGroupNotify(e)):n._setGroupLastRevokedTime(e,1e3*we())})).catch((function(e){He.e("".concat(r," failed. error:"),e)}))}}}},{key:"_getGroupLastRevokedTime",value:function(e){return this.hasLocalGroup(e)?this.getLocalGroupProfile(e)._lastRevokedTime:0}},{key:"_setGroupLastRevokedTime",value:function(e,t){this.hasLocalGroup(e)&&(this.getLocalGroupProfile(e)._lastRevokedTime=t)}},{key:"isGroupCountersNotice",value:function(e){return this._groupCountersHandler.isGroupCountersNotice(e)}},{key:"setGroupCounters",value:function(e){return this._groupCountersHandler.setGroupCounters(e)}},{key:"increaseGroupCounter",value:function(e){return this._groupCountersHandler.increaseGroupCounter(e)}},{key:"decreaseGroupCounter",value:function(e){return this._groupCountersHandler.decreaseGroupCounter(e)}},{key:"getGroupCounters",value:function(e){return this._groupCountersHandler.getGroupCounters(e)}},{key:"restartPolling",value:function(){this._AVChatRoomHandler&&this._AVChatRoomHandler.restartPolling()}},{key:"_canIUseJoinOption",value:function(e){return function(e){return e===S.GRP_PUBLIC}(e)||Et({type:e})}},{key:"reset",value:function(){this.groupMap.clear(),this._unjoinedAVChatRoomList.clear(),this._receiptDetailCompleteMap.clear(),this._commonGroupHandler.reset(),this._groupSystemNoticeHandler.reset(),this._groupTipsHandler.reset(),this._groupAttributesHandler.reset(),this._groupCountersHandler.reset(),this._AVChatRoomHandler&&this._AVChatRoomHandler.reset()}}]),s}(po),Iu=function(){function e(t){o(this,e),this.userID="",this.avatar="",this.nick="",this.role="",this.joinTime="",this.lastSendMsgTime="",this.nameCard="",this.muteUntil=0,this.memberCustomField=[],this._initMember(t)}return a(e,[{key:"_initMember",value:function(e){this.updateMember(e)}},{key:"updateMember",value:function(e){var t=[null,void 0,"",0,NaN];e.memberCustomField&&St(this.memberCustomField,e.memberCustomField),ft(this,e,["memberCustomField","marks"],t)}},{key:"updateRole",value:function(e){["Owner","Admin","Member"].indexOf(e)<0||(this.role=e)}},{key:"updateMuteUntil",value:function(e){ut(e)||(this.muteUntil=Math.floor((Date.now()+1e3*e)/1e3))}},{key:"updateNameCard",value:function(e){ut(e)||(this.nameCard=e)}},{key:"updateMemberCustomField",value:function(e){e&&St(this.memberCustomField,e)}}]),e}(),Cu=function(e){i(s,e);var n=f(s);function s(e){var t;return o(this,s),(t=n.call(this,e))._n="GroupMemberModule",t.groupMemberListMap=new Map,t.getInnerEmitterInstance().on(wi,t._onProfileUpdated,h(t)),t}return a(s,[{key:"_onProfileUpdated",value:function(e){for(var t=this,n=e.data,o=function(e){var o=n[e];t.groupMemberListMap.forEach((function(e){e.has(o.userID)&&e.get(o.userID).updateMember({nick:o.nick,avatar:o.avatar})}))},s=0;s100?100:r};Et({groupID:n})?h.next="".concat(s):(h.offset=s,g=s+r);var _=[];return this.request({protocolName:Ps,requestData:h}).then((function(e){var o=e.data,s=o.members,a=o.memberNum,r=o.next,i=void 0===r?void 0:r;if(ut(i)||(g=Zt(i)?0:i),!it(s)||0===s.length)return g=0,Promise.resolve([]);var u=t.getModule(Fn);return u.hasLocalGroup(n)&&(u.getLocalGroupProfile(n).memberNum=a),_=t._updateLocalGroupMemberMap(n,s),t.getModule(wn).getUserProfile({userIDList:s.map((function(e){return e.userID})),tagList:[We.NICK,We.AVATAR]})})).then((function(e){var o=e.data;if(!it(o)||0===o.length)return Ni({memberList:[],offset:g});var a=o.map((function(e){return{userID:e.userID,nick:e.nick,avatar:e.avatar}}));return t._updateLocalGroupMemberMap(n,a),_.length5?"userIDList.length:".concat(e.userIDList.length):"userIDList:".concat(e.userIDList)),He.l("".concat(o," groupID:").concat(e.groupID," userIDList:").concat(e.userIDList.join(","))),e.userIDList.length>50&&(e.userIDList=e.userIDList.slice(0,50));var a=e.groupID,r=e.userIDList;return this._getGroupMemberProfileAdvance(t(t({},e),{},{userIDList:r})).then((function(e){var t=e.data.members;return it(t)&&0!==t.length?(n._updateLocalGroupMemberMap(a,t),n.getModule(wn).getUserProfile({userIDList:t.map((function(e){return e.userID})),tagList:[We.NICK,We.AVATAR]})):Ni([])})).then((function(e){var t=e.data.map((function(e){return{userID:e.userID,nick:e.nick,avatar:e.avatar}}));n._updateLocalGroupMemberMap(a,t);var o=r.filter((function(e){return n.hasLocalGroupMember(a,e)})).map((function(e){return n.getLocalGroupMemberInfo(a,e)}));return s.setNetworkType(n.getNetworkType()).end(),Li({memberList:o})}))}},{key:"addGroupMember",value:function(e){var t=this,n="".concat(this._n,".").concat("addGroupMember"),o=e.groupID,s=this.getModule(Fn).getLocalGroupProfile(o),a=s.type,r=new li("addGroupMember");if(r.setMessage("groupID:".concat(o," groupType:").concat(a)),Lt(a)){var i=new Ei({code:fr});return r.setError(i,!0,this.getNetworkType()).end(),Oi(i)}return e.userIDList=e.userIDList.map((function(e){return{userID:e}})),He.l("".concat(n," groupID:").concat(o)),this.request({protocolName:ws,requestData:e}).then((function(o){var a=o.data.members;He.l("".concat(n," ok"));var i=a.filter((function(e){return 1===e.result})).map((function(e){return e.userID})),u=a.filter((function(e){return 0===e.result})).map((function(e){return e.userID})),c=a.filter((function(e){return 2===e.result})).map((function(e){return e.userID})),l=a.filter((function(e){return 4===e.result})).map((function(e){return e.userID})),p="groupID:".concat(e.groupID,", ")+"successUserIDList:".concat(i,", ")+"failureUserIDList:".concat(u,", ")+"existedUserIDList:".concat(c,", ")+"overLimitUserIDList:".concat(l);return r.setNetworkType(t.getNetworkType()).setMoreMessage(p).end(),0===i.length?Li({successUserIDList:i,failureUserIDList:u,existedUserIDList:c,overLimitUserIDList:l}):(s.memberCount+=i.length,t._updateConversationGroupProfile(s),Li({successUserIDList:i,failureUserIDList:u,existedUserIDList:c,overLimitUserIDList:l,group:s}))})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"deleteGroupMember",value:function(e){var t=this,n="".concat(this._n,".").concat("deleteGroupMember"),o=e.groupID,s=e.userIDList,a=this.getModule(Fn).getLocalGroupProfile(o);if(ut(a))return Oi({code:lr});if(Lt(a.type))return this.canIUse(B.AVCHATROOM_BAN_MBR)?this._banAVChatRoomMember(e):Oi({code:Kr});var r=new li("deleteGroupMember"),i="groupID:".concat(o," ").concat(s.length>5?"userIDList.length:".concat(s.length):"userIDList:".concat(s));return r.setMessage(i),He.l("".concat(n," groupID:").concat(o," userIDList:"),s),this.request({protocolName:qs,requestData:e}).then((function(){return r.setNetworkType(t.getNetworkType()).end(),He.l("".concat(n," ok")),a.memberCount-=1,t._updateConversationGroupProfile(a),t.deleteLocalGroupMembers(o,s),Li({group:a,userIDList:s})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_updateConversationGroupProfile",value:function(e){this.getModule(Hn).updateConversationGroupProfile([e])}},{key:"_banAVChatRoomMember",value:function(e){var t=this,n="".concat(this._n,".").concat("deleteGroupMember"),o=e.groupID,s=e.userIDList,a="groupID:".concat(o," ").concat(s.length>5?"userIDList.length:".concat(s.length):"userIDList:".concat(s)),r=new li("deleteGroupMember");r.setMessage(a),He.l("".concat(n," groupID:").concat(o," userIDList:"),s);var i=this.getModule(Fn).getLocalGroupProfile(o);return ut(e.duration)||0===e.duration?Oi({code:Tr}):this.request({protocolName:Fs,requestData:e}).then((function(){return r.setNetworkType(t.getNetworkType()).end(),He.l("".concat(n," ok")),t.deleteLocalGroupMembers(o,s),Li({group:i,userIDList:s})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"setGroupMemberMuteTime",value:function(e){var t=this,n=e.groupID,o=e.userID,s=e.muteTime,a="".concat(this._n,".").concat("setGroupMemberMuteTime");if(o===this.getMyUserID())return Oi(new Ei({code:Cr}));He.l("".concat(a," groupID:").concat(n," userID:").concat(o));var r=new li("setGroupMemberMuteTime");return r.setMessage("groupID:".concat(n," userID:").concat(o," muteTime:").concat(s)),this.modifyGroupMemberInfo({groupID:n,userID:o,muteTime:s}).then((function(e){r.setNetworkType(t.getNetworkType()).end(),He.l("".concat(a," ok"));var o=t.getModule(Fn);return Li({group:o.getLocalGroupProfile(n),member:e})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),He.e("".concat(a," failed. error:"),e),Oi(e)}))}},{key:"setGroupMemberRole",value:function(e){var t=this,n="".concat(this._n,".").concat("setGroupMemberRole"),o=e.groupID,s=e.userID,a=e.role,r=this.getModule(Fn).getLocalGroupProfile(o);if(r.selfInfo.role!==S.GRP_MBR_ROLE_OWNER)return Oi({code:mr});if([S.GRP_WORK,S.GRP_AVCHATROOM].includes(r.type))return Oi({code:Mr});var i=[S.GRP_MBR_ROLE_ADMIN,S.GRP_MBR_ROLE_MEMBER];if(Et({groupID:o})&&i.push(S.GRP_MBR_ROLE_CUSTOM),i.indexOf(a)<0)return Oi({code:yr});if(s===this.getMyUserID())return Oi({code:Ir});var u=new li("setGroupMemberRole");return u.setMessage("groupID:".concat(o," userID:").concat(s," role:").concat(a)),He.l("".concat(n," groupID:").concat(o," userID:").concat(s)),this.modifyGroupMemberInfo({groupID:o,userID:s,role:a}).then((function(e){return u.setNetworkType(t.getNetworkType()).end(),He.l("".concat(n," ok")),Li({group:r,member:e})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];u.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_filterProfanity",value:function(e,t){var n=this.getModule(io);if(!n)return!0;var o=n.filterText(t[e],J),s=o.isAllowedToSend,a=o.modifiedText;return!0===s&&(t[e]=a,!0)}},{key:"setGroupMemberNameCard",value:function(e){var t=this,n="".concat(this._n,".").concat("setGroupMemberNameCard");if(e.nameCard&&!1===this._filterProfanity("nameCard",e))return Oi({code:Wr});var o=e.groupID,s=e.userID,a=void 0===s?this.getMyUserID():s,r=e.nameCard;He.l("".concat(n," groupID:").concat(o," userID:").concat(a));var i=new li("setGroupMemberNameCard");return i.setMessage("groupID:".concat(o," userID:").concat(a," nameCard:").concat(r)),this.modifyGroupMemberInfo({groupID:o,userID:a,nameCard:r}).then((function(e){He.l("".concat(n," ok")),i.setNetworkType(t.getNetworkType()).end();var s=t.getModule(Fn).getLocalGroupProfile(o);return a===t.getMyUserID()&&s&&s.setSelfNameCard(r),Li({group:s,member:e})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];i.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"setGroupMemberCustomField",value:function(e){var t=this,n="".concat(this._n,".").concat("setGroupMemberCustomField"),o=e.groupID,s=e.userID,a=void 0===s?this.getMyUserID():s,r=e.memberCustomField;He.l("".concat(n," groupID:").concat(o," userID:").concat(a));var i=new li("setGroupMemberCustomField");return i.setMessage("groupID:".concat(o," userID:").concat(a," memberCustomField:").concat(JSON.stringify(r))),this.modifyGroupMemberInfo({groupID:o,userID:a,memberCustomField:r}).then((function(e){i.setNetworkType(t.getNetworkType()).end(),He.l("".concat(n," ok"));var s=t.getModule(Fn).getLocalGroupProfile(o);return Li({group:s,member:e})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];i.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"modifyGroupMemberInfo",value:function(e){var n=this,o=e.groupID,s=e.userID,a=void 0;return At(o)&&(o=Kt(a=o)),this.request({protocolName:xs,requestData:t(t({},e),{},{groupID:o,topicID:a})}).then((function(){if(n.hasLocalGroupMember(o,s)){var t=n.getLocalGroupMemberInfo(o,s);return ut(e.muteTime)||t.updateMuteUntil(e.muteTime),ut(e.role)||t.updateRole(e.role),ut(e.nameCard)||t.updateNameCard(e.nameCard),ut(e.memberCustomField)||t.updateMemberCustomField(e.memberCustomField),t}return n.getGroupMemberProfile({groupID:o,userIDList:[s]}).then((function(e){return v(e.data.memberList,1)[0]}))}))}},{key:"markGroupMemberList",value:function(e){var t=this,n="".concat(this._n,".").concat("markGroupMemberList"),o=e.groupID,s=e.markType,a=e.enableMark,r=e.userIDList,i=void 0===r?[]:r,u="groupID:".concat(o," markType:").concat(s," enableMark:").concat(a," userIDList count: ").concat(i.length);He.l("".concat(n," ").concat(u));var c=2,l=[];!0===a&&(c=1);var p=m(i);i.length>500&&(p=i.slice(0,500),He.w("".concat(n," ").concat(Jt(500)))),p.forEach((function(e){l.push({userID:e,markType:[s]})})),p=null;var d=new li("markGroupMemberList");return d.setMessage("".concat(u)),this.request({protocolName:Vs,requestData:{groupID:o,operationType:c,memberList:l}}).then((function(e){var o=e.data.memberList,s=void 0===o?[]:o,a=[],r=[];s.length===i.length?a.push.apply(a,m(i)):(s.forEach((function(e){a.push(e.userID)})),i.forEach((function(e){a.includes(e)||r.push(e)})));var u="success count:".concat(a.length," fail count:").concat(r.length);return d.setNetworkType(t.getNetworkType()).setMessage(u).end(),He.l("".concat(n," ok. ").concat(u)),Li({successUserIDList:a,failureUserIDList:r})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];d.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_getGroupMemberProfileAdvance",value:function(e){return this.request({protocolName:bs,requestData:t(t({},e),{},{memberInfoFilter:e.memberInfoFilter?e.memberInfoFilter:["Role","JoinTime","NameCard","ShutUpUntil"]})})}},{key:"_updateLocalGroupMemberMap",value:function(e,t){var n=this;return it(t)&&0!==t.length?t.map((function(t){return n.hasLocalGroupMember(e,t.userID)?n.getLocalGroupMemberInfo(e,t.userID).updateMember(t):n.setLocalGroupMember(e,new Iu(t)),n.getLocalGroupMemberInfo(e,t.userID)})):[]}},{key:"deleteLocalGroupMembers",value:function(e,t){var n=this.groupMemberListMap.get(e);n&&t.forEach((function(e){n.delete(e)}))}},{key:"getLocalGroupMemberInfo",value:function(e,t){return this.groupMemberListMap.has(e)?this.groupMemberListMap.get(e).get(t):null}},{key:"setLocalGroupMember",value:function(e,t){if(this.groupMemberListMap.has(e))this.groupMemberListMap.get(e).set(t.userID,t);else{var n=(new Map).set(t.userID,t);this.groupMemberListMap.set(e,n)}}},{key:"getLocalGroupMemberList",value:function(e){return this.groupMemberListMap.get(e)}},{key:"hasLocalGroupMember",value:function(e,t){return this.groupMemberListMap.has(e)&&this.groupMemberListMap.get(e).has(t)}},{key:"hasLocalGroupMemberMap",value:function(e){return this.groupMemberListMap.has(e)}},{key:"reset",value:function(){this.groupMemberListMap.clear()}}]),s}(po),Tu=["topicID","topicName","avatar","introduction","notification","unreadCount","muteAllMembers","customData","groupAtInfoList","nextMessageSeq","selfInfo"],Du=function(e,t){return Zt(e)?{lastTime:0,lastSequence:0,fromAccount:"",payload:null,type:"",messageForShow:"",nick:"",version:0,cloudCustomData:"",isRevoked:!1,revoker:null}:{lastTime:e.time||0,lastSequence:e.sequence||0,fromAccount:e.from||"",payload:e.payload||null,type:e.type||"",messageForShow:Wt(e.type,e.payload,t),nick:e.nick||"",version:e.version||0,cloudCustomData:e.cloudCustomData||"",isRevoked:e.isRevoked||!1,revoker:e.revoker||null}},ku=function(){function e(t,n){o(this,e),this.topicID="",this.topicName="",this.avatar="",this.introduction="",this.notification="",this.unreadCount=0,this.muteAllMembers=!1,this.customData="",this.groupAtInfoList=[],this.nextMessageSeq=0,this.lastMessage=Du(t.lastMessage,n),this.selfInfo={muteTime:0,readedSequence:0,messageRemindType:"",excludedUnreadSequenceList:void 0},this._initTopic(t)}return a(e,[{key:"_initTopic",value:function(e){for(var t in e)Tu.indexOf(t)<0||("selfInfo"===t?this.updateSelfInfo(e[t]):this[t]="muteAllMembers"===t?1===e[t]:e[t])}},{key:"updateUnreadCount",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.unreadCount=e}},{key:"updateNextMessageSeq",value:function(e){this.nextMessageSeq=e}},{key:"updateLastMessage",value:function(e){this.lastMessage=Du(e)}},{key:"updateGroupAtInfoList",value:function(e){this.groupAtInfoList=JSON.parse(JSON.stringify(e))}},{key:"updateTopic",value:function(e){ut(e.selfInfo)||this.updateSelfInfo(e.selfInfo),ut(e.muteAllMembers)||(this.muteAllMembers=1===e.muteAllMembers),ft(this,e,["groupID","lastMessageTime","selfInfo","muteAllMembers","lastMsg"])}},{key:"updateSelfInfo",value:function(e){return 0!==ft(this.selfInfo,e,[],[""])}},{key:"reduceUnreadCount",value:function(){return this.unreadCount>=1&&(this.unreadCount-=1,!0)}},{key:"isLastMessageRevoked",value:function(e){return e.sequence===this.lastMessage.lastSequence}},{key:"setLastMessageRevoked",value:function(e){this.lastMessage.isRevoked=e}},{key:"setLastMessageRevoker",value:function(e){this.lastMessage.revoker=e}}]),e}(),Su=function(e){i(s,e);var n=f(s);function s(e){var t;return o(this,s),(t=n.call(this,e))._n="TopicModule",t._topicMap=new Map,t._getTopicTimeMap=new Map,t.TOPIC_CACHE_TIME=300,t.TOPIC_LAST_ACTIVE_TIME=3600,t.getInnerEmitterInstance().on(bi,t._onCloudConfigUpdated,h(t)),t}return a(s,[{key:"_onCloudConfigUpdated",value:function(){var e=this.getCloudConfig("topic_cache_time"),t=this.getCloudConfig("topic_last_active_time");ut(e)||(this.TOPIC_CACHE_TIME=Number(e)),ut(t)||(this.TOPIC_LAST_ACTIVE_TIME=Number(t))}},{key:"onTopicCreated",value:function(e){var t=e.groupID;this.resetGetTopicTime(t),this.emitOuterEvent(k.TOPIC_CREATED,e)}},{key:"onTopicDeleted",value:function(e){var t=this,n=e.groupID,o=e.topicIDList;(void 0===o?[]:o).forEach((function(e){t._deleteLocalTopic(n,e)})),this.emitOuterEvent(k.TOPIC_DELETED,e)}},{key:"onTopicMessageRemindTypeUpdated",value:function(e){var t=e.groupID,n=e.topicID,o=e.messageRemindType,s=this.getLocalTopic(t,n);if(s){var a=s.updateSelfInfo({messageRemindType:o});a&&this.emitOuterEvent(k.TOPIC_UPDATED,{groupID:t,topic:s}),He.d("".concat(this._n,".onTopicMessageRemindTypeUpdated topicID:").concat(n)+" messageRemindType:".concat(o," isTopicUpdated:").concat(a))}}},{key:"onTopicProfileUpdated",value:function(e){var t=e.groupID,n=e.topicID,o=this.getLocalTopic(t,n);o&&(o.updateTopic(e),this.emitOuterEvent(k.TOPIC_UPDATED,{groupID:t,topic:o}))}},{key:"onConversationProxy",value:function(e){var t=e.topicID,n=e.unreadCount,o=e.groupAtInfoList,s=Kt(t),a=this.getLocalTopic(s,t),r=!1;a&&(ut(n)||a.unreadCount===n||(a.updateUnreadCount(n),r=!0),ut(o)||(a.updateGroupAtInfoList(o),r=!0)),r&&this.emitOuterEvent(k.TOPIC_UPDATED,{groupID:s,topic:a})}},{key:"onMessageSent",value:function(e){var t=e.groupID,n=e.topicID,o=e.lastMessage,s=this.getLocalTopic(t,n);s&&(s.nextMessageSeq+=1,s.updateLastMessage(o),this.emitOuterEvent(k.TOPIC_UPDATED,{groupID:t,topic:s}))}},{key:"onMessageModified",value:function(e){var t=e.to,n=e.time,o=e.sequence,s=e.elements,a=e.cloudCustomData,r=e.messageVersion,i=Kt(t),u=this.getLocalTopic(i,t);if(u){var c=u.lastMessage;He.d("".concat(this._n,".onMessageModified topicID:").concat(t," lastMessage:"),JSON.stringify(c),"options:",JSON.stringify(e)),c&&(null===c.payload||c.lastTime===n&&c.lastSequence===o&&c.version!==r)&&(c.type=s[0].type,c.payload=s[0].content,c.messageForShow=Wt(c.type,c.payload,this.isIntl()),c.cloudCustomData=a,c.version=r,c.lastSequence=o,c.lastTime=n,this.emitOuterEvent(k.TOPIC_UPDATED,{groupID:i,topic:u}))}}},{key:"onMessageRevoked",value:function(e){var t=this;if(0!==e.length){var n=null,o=null,s=!1;e.forEach((function(e){var a=e.to;o=Kt(a),(n=t.getLocalTopic(o,a))&&(n.reduceUnreadCount()&&(s=!0),n.isLastMessageRevoked(e)&&(n.setLastMessageRevoked(!0),n.setLastMessageRevoker(e.revoker),s=!0))})),s&&this.emitOuterEvent(k.TOPIC_UPDATED,{groupID:o,topic:n})}}},{key:"isLastMessageRevoked",value:function(e){var t=e.topicID,n=e.sequence,o=Kt(t),s=this.getLocalTopic(o,t),a=!1;return s&&(a=s.isLastMessageRevoked({sequence:n})),a}},{key:"getJoinedCommunityList",value:function(){return this.getModule(Fn).getGroupList({isGroupWithTopicOnly:!0}).then((function(e){var t=e.data.groupList;return Li({groupList:void 0===t?[]:t})})).catch((function(e){return Oi(e)}))}},{key:"createTopicInCommunity",value:function(e){var n=this,o="".concat(this._n,".").concat("createTopicInCommunity"),s=e.topicID;if(!ut(s)&&!At(s))return Oi({code:Hr});if(e.topicName&&!1===this._filterProfanity("topicName",e))return Oi({code:Wr});if(e.introduction&&!1===this._filterProfanity("introduction",e))return Oi({code:Wr});if(e.notification&&!1===this._filterProfanity("notification",e))return Oi({code:Wr});var a=new li("createTopicInCommunity");return this.request({protocolName:sa,requestData:t({},e)}).then((function(s){var r=s.data.topicID;return a.setMessage("topicID:".concat(r)).setNetworkType(n.getNetworkType()).end(),He.l("".concat(o," ok")),n._updateTopicMap([t(t({},e),{},{topicID:r})]),Li({topicID:r})})).catch((function(e){return n.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];a.setError(e,o,s).end()})),He.e("".concat(o," failed. error:"),e),Oi(e)}))}},{key:"deleteTopicFromCommunity",value:function(e){var t=this,n="".concat(this._n,".").concat("deleteTopicFromCommunity"),o=e.groupID,s=e.topicIDList,a=void 0===s?[]:s,r=new li("deleteTopicFromCommunity");return r.setMessage("groupID:".concat(o," topicIDList:").concat(a)),this.request({protocolName:aa,requestData:{groupID:o,topicIDList:a}}).then((function(e){var n=e.data.resultList,s=[],a=[];(void 0===n?[]:n).forEach((function(e){var t=e.topicID,n=e.errorCode,o=e.errorInfo;0===n?s.push({topicID:t}):a.push({topicID:t,code:n,message:o})}));var i="success count:".concat(s.length,", fail count:").concat(a.length);return r.setMoreMessage("".concat(i)).setNetworkType(t.getNetworkType()).end(),He.l("".concat(i)),s.forEach((function(e){t._deleteLocalTopic(o,e.topicID)})),Li({successTopicList:s,failureTopicList:a})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"updateTopicProfile",value:function(e){var n=this,o="".concat(this._n,".").concat("updateTopicProfile");if(He.l("".concat(o," options:"),e),e.topicName&&!1===this._filterProfanity("topicName",e))return Oi({code:Wr});if(e.introduction&&!1===this._filterProfanity("introduction",e))return Oi({code:Wr});if(e.notification&&!1===this._filterProfanity("notification",e))return Oi({code:Wr});var s=new li("updateTopicProfile");return s.setMessage("groupID:".concat(e.groupID," topicID:").concat(e.topicID)),ut(e.muteAllMembers)||(e.muteAllMembers=!0===e.muteAllMembers?"On":"Off"),this.request({protocolName:ra,requestData:t({},e)}).then((function(){return s.setNetworkType(n.getNetworkType()).end(),He.l("".concat(o," ok")),n._updateTopicMap([e]),Li({topic:n.getLocalTopic(e.groupID,e.topicID)})})).catch((function(e){return n.probeNetwork().then((function(t){var n=v(t,2),o=n[0],a=n[1];s.setError(e,o,a).end()})),He.e("".concat(o," failed. error:"),e),Oi(e)}))}},{key:"getTopicList",value:function(e){var n=this,o="".concat(this._n,".").concat("getTopicList"),s=e.groupID,a=e.topicIDList,r=void 0===a?[]:a,i=0===r.length,u=new li("getTopicList");if(u.setMessage("groupID:".concat(s)),this._getTopicTimeMap.has(s)){var c=this._getTopicTimeMap.get(s),l=c.isGetAll,p=c.time;if((l||!l&&!i)&&Date.now()-p<1e3*this.TOPIC_CACHE_TIME){var d=this._getLocalTopicList(s,r);if(i||d.length===r.length)return u.setNetworkType(this.getNetworkType()).setMoreMessage("from cache, topic count:".concat(d.length)).end(),He.l("".concat(o," groupID:").concat(s," from cache, topic count:").concat(d.length)),Ni({successTopicList:d,failureTopicList:[]})}}return this.request({protocolName:ia,requestData:{groupID:s,topicIDList:r}}).then((function(e){var a=e.data.topicInfoList,r=[],c=[],l=[];(void 0===a?[]:a).forEach((function(e){var n=e.topic,o=e.selfInfo,s=e.errorCode,a=e.errorInfo,i=n.topicID;0===s?(r.push(t(t({},n),{},{selfInfo:o})),c.push(i)):l.push({topicID:i,code:s,message:a})})),n._updateTopicMap(r),n._handleTopicAtInfo(r);var p="success count:".concat(c.length,", fail count:").concat(l.length);u.setNetworkType(n.getNetworkType()).setMoreMessage("".concat(p)).end(),He.l("".concat(o," groupID:").concat(s," from remote, ").concat(p));var d=[];return Zt(c)||(n._getTopicTimeMap.set(s,{time:Date.now(),isGetAll:i}),d=n._getLocalTopicList(s,c)),Li({successTopicList:d,failureTopicList:l})})).catch((function(e){return n.probeNetwork(e).then((function(t){var n=v(t,2),o=n[0],s=n[1];u.setError(e,o,s).end()})),He.e("".concat(o," failed. error:"),e),Oi(e)}))}},{key:"hasLocalTopic",value:function(e,t){return!!this._topicMap.has(e)&&this._topicMap.get(e).has(t)}},{key:"getLocalTopic",value:function(e,t){var n=null;return this._topicMap.has(e)&&(n=this._topicMap.get(e).get(t)),n}},{key:"_getLocalTopicList",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=this._topicMap.get(e),o=[];return n&&(o=m(n.values())),0===t.length?o:o.filter((function(e){return t.includes(e.topicID)}))}},{key:"_deleteLocalTopic",value:function(e,t){this._topicMap.has(e)&&(this._topicMap.get(e).delete(t),He.l("".concat(this._n,"._deleteLocalTopic groupID:").concat(e," topicID:").concat(t)))}},{key:"_updateTopicMap",value:function(e){var t=this,n=[];(e.forEach((function(e){var o=e.groupID,s=e.topicID,a=null;t._topicMap.has(o)||t._topicMap.set(o,new Map),t._topicMap.get(o).has(s)?(a=t._topicMap.get(o).get(s)).updateTopic(e):(t._getTopicLastMessage(e),a=new ku(e,t.isIntl()),t._topicMap.get(o).set(s,a));var r=t._computeUnreadCount(a);a.updateUnreadCount(r),n.push({conversationID:"".concat(S.CONV_GROUP).concat(s),type:S.CONV_TOPIC,unreadCount:r})})),n.length>0)&&this.getModule(Hn).updateTopicConversation(n)}},{key:"resetGetTopicTime",value:function(e){var t=this;ut(e)?m(this._getTopicTimeMap.keys()).forEach((function(e){t._getTopicTimeMap.set(e,0)})):this._getTopicTimeMap.set(e,0)}},{key:"getTopicListOnReconnected",value:function(){var e=this,t=m(this._topicMap.keys()),n=[];t.forEach((function(t){var o=[];e._getLocalTopicList(t).forEach((function(t){var n=t.lastMessage.lastTime,s=void 0===n?0:n;Date.now()-1e3*s<1e3*e.TOPIC_LAST_ACTIVE_TIME&&o.push(t.topicID)})),o.length>0&&n.push({groupID:t,topicIDList:o})})),He.l("".concat(this._n,".getTopicListOnReconnected. active community count:").concat(n.length)),this._relayGetTopicList(n)}},{key:"_relayGetTopicList",value:function(e){var t=this;if(0!==e.length){var n=e.shift(),o=n.topicIDList.length>5?"topicIDList.length:".concat(n.topicIDList.length):"topicIDList:".concat(n.topicIDList),s=new li("relayGetTopicList");s.setMessage(o),He.l("".concat(this._n,"._relayGetTopicList. ").concat(o)),this.getTopicList(n).then((function(){s.setNetworkType(t.getNetworkType()).end(),t._relayGetTopicList(e)})).catch((function(n){t.probeNetwork().then((function(e){var t=v(e,2),o=t[0],a=t[1];s.setError(n,o,a).end()})),t._relayGetTopicList(e)}))}}},{key:"_handleTopicAtInfo",value:function(e){var n=this;0!==e.length&&e.forEach((function(e){var o=e.groupID,s=e.topicID,a=e.groupAtInfoList,r=[];ut(a)||(a.forEach((function(e){r.push(t(t({},e),{},{groupID:o,topicID:s}))})),n.getModule(Hn).onNewGroupAtTips({dataList:r}))}))}},{key:"_getTopicLastMessage",value:function(e){if(!ut(e.lastMsg)){var t={time:e.lastMsg.time,sequence:e.lastMsg.sequence,from:e.lastMsg.from,payload:e.lastMsg.elements[0]?e.lastMsg.elements[0].content:null,type:e.lastMsg.elements[0]?e.lastMsg.elements[0].type:"",nick:e.lastMsg.nick,version:e.lastMsg.messageVersion,cloudCustomData:e.lastMsg.cloudCustomData,isRevoked:2===e.lastMsg.isPlaceMessage,revoker:Zt(e.lastMsg.revokerInfo)?null:e.lastMsg.revokerInfo.revoker};e.lastMessage=t}}},{key:"deleteTopicListInCommunity",value:function(e){var t=this,n=this._getLocalTopicList(e),o=this.getModule(Hn);n.forEach((function(n){var s=n.topicID;t._deleteLocalTopic(e,s),t._getTopicTimeMap.delete(e),o.deleteLocalConversation("".concat(S.CONV_GROUP).concat(s))}))}},{key:"_computeUnreadCount",value:function(e){var t=e.selfInfo,n=t.excludedUnreadSequenceList,o=t.readedSequence,s=e.nextMessageSeq-e.selfInfo.readedSequence-1;if(it(n)){var a=0;n.forEach((function(t){t>=o&&t<=e.nextMessageSeq-1&&(a+=1)})),a>=1&&(s-=a)}return s<0?0:s}},{key:"_filterProfanity",value:function(e,t){var n=this.getModule(io);if(!n)return!0;var o=n.filterText(t[e],z),s=o.isAllowedToSend,a=o.modifiedText;return!0===s&&(t[e]=a,!0)}},{key:"updateLastMessage",value:function(e,t){var n=Kt(e),o=this.getLocalTopic(n,e);if(o){var s=t.sequence+1;o.updateNextMessageSeq(s),o.updateLastMessage(t),this.emitOuterEvent(k.TOPIC_UPDATED,{groupID:n,topic:o})}}},{key:"getMessageExtensions",value:function(e,t){He.l("".concat(this._n,".getMessageExtensions startSequence:").concat(t));var n=Kt(e.to);return this.request({protocolName:Rs,requestData:{groupID:n,topicID:e.to,messageSequence:e.sequence,startSequence:t}})}},{key:"modifyMessageExtensions",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;He.l("".concat(this._n,".modifyMessageExtensions operateType:").concat(n));var o=Kt(e.to);return this.request({protocolName:As,requestData:{groupID:o,topicID:e.to,messageSequence:e.sequence,extensionList:t,operateType:n}})}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._topicMap.clear(),this._getTopicTimeMap.clear(),this.TOPIC_CACHE_TIME=300,this.TOPIC_LAST_ACTIVE_TIME=3600}}]),s}(po),Lu=function(){function e(t){o(this,e),this._userModule=t,this._n="ProfileHandler",this.TAG="profile",this.accountProfileMap=new Map,this.expirationTime=864e5}return a(e,[{key:"setExpirationTime",value:function(e){this.expirationTime=e}},{key:"getUserProfile",value:function(e){var t=this,n=e.userIDList;e.fromAccount=this._userModule.getMyAccount(),n.length>100&&(He.w("".concat(this._n,".getUserProfile ").concat(Jt(100))),n.length=100);for(var o,s=[],a=[],r=0,i=n.length;r5?"userIDList.length:".concat(n.length):"userIDList:".concat(n)),this._userModule.request({protocolName:Io,requestData:e}).then((function(e){l.setNetworkType(t._userModule.getNetworkType()).end(),He.i("".concat(t._n,".getUserProfile ok"));var n=t._handleResponse(e).concat(a);return Li(u?n[0]:n)})).catch((function(e){return t._userModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];l.setError(e,o,s).end()})),He.e("".concat(t._n,".getUserProfile failed. error:"),e),Oi(e)}))}},{key:"getMyProfile",value:function(){var e=this._userModule.getMyAccount();if(He.l("".concat(this._n,".getMyProfile myAccount:").concat(e)),this._fillMap(),this._containsAccount(e)){var t=this._getProfileFromMap(e);return He.d("".concat(this._n,".getMyProfile from cache, myProfile:")+JSON.stringify(t)),Ni(t)}return this.getUserProfile({fromAccount:e,userIDList:[e],bFromGetMyProfile:!0})}},{key:"_handleResponse",value:function(e){for(var t,n,o=_t(),s=e.data.userProfileItem,a=[],r=0,i=s.length;r-1)n.profileCustomField.push({key:t[o].tag,value:t[o].value});else switch(t[o].tag){case We.NICK:n.nick=t[o].value;break;case We.GENDER:n.gender=t[o].value;break;case We.BIRTHDAY:n.birthday=t[o].value;break;case We.LOCATION:n.location=t[o].value;break;case We.SELFSIGNATURE:n.selfSignature=t[o].value;break;case We.ALLOWTYPE:n.allowType=t[o].value;break;case We.LANGUAGE:n.language=t[o].value;break;case We.AVATAR:n.avatar=t[o].value;break;case We.MESSAGESETTINGS:n.messageSettings=t[o].value;break;case We.ADMINFORBIDTYPE:n.adminForbidType=t[o].value;break;case We.LEVEL:n.level=t[o].value;break;case We.ROLE:n.role=t[o].value;break;default:He.w("".concat(this._n,"._handleResponse unknown tag:"),t[o].tag,t[o].value)}return n}},{key:"updateMyProfile",value:function(e){var t=this,n="".concat(this._n,".updateMyProfile");if(e.nick&&!1===this._userModule.filterProfanity("nick",e))return Oi({code:Wr});if(e.selfSignature&&!1===this._userModule.filterProfanity("selfSignature",e))return Oi({code:Wr});var o=new li("updateMyProfile");o.setMessage(JSON.stringify(e));var s=(new Wi).validate(e);if(!s.valid)return o.setCode(Dr).setMoreMessage("updateMyProfile info:".concat(s.tips)).setNetworkType(this._userModule.getNetworkType()).end(),He.e("".concat(n," info:").concat(s.tips)),Oi({code:Dr});var a=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&("profileCustomField"===r?e.profileCustomField.forEach((function(e){a.push({tag:e.key,value:e.value})})):a.push({tag:We[r.toUpperCase()],value:e[r]}));if(0===a.length){var i=new Ei({code:kr});return o.setError(i,!0,this._userModule.getNetworkType()).end(),He.e("".concat(n," failed. error:"),i),Oi(i)}return this._userModule.request({protocolName:Co,requestData:{fromAccount:this._userModule.getMyAccount(),profileItem:a}}).then((function(s){o.setNetworkType(t._userModule.getNetworkType()).end(),He.i("".concat(n," ok"));var a=t._updateMap(t._userModule.getMyAccount(),e);return t._userModule.emitOuterEvent(k.PROFILE_UPDATED,[a]),Ni(a)})).catch((function(e){return t._userModule.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"onProfileModified",value:function(e){var t=e.dataList;if(!Zt(t)){var n,o,s=t.length;He.d("".concat(this._n,".onProfileModified count:").concat(s," dataList:"),e.dataList);for(var a=[],r=0;r0&&(this._userModule.emitInnerEvent(wi,a),this._userModule.emitOuterEvent(k.PROFILE_UPDATED,a))}}},{key:"_fillMap",value:function(){if(0===this.accountProfileMap.size){for(var e=this._getCachedProfiles(),t=Date.now(),n=0,o=e.length;n0&&s.push(n)):s.push(t.userID));0!==s.length&&(He.i("".concat(this._n,".onConversationsProfileUpdated toAccountList:").concat(s)),this.getUserProfile({userIDList:s}))}},{key:"getNickAndAvatarByUserID",value:function(e){if(this._containsAccount(e)){var t=this._getProfileFromMap(e);return{nick:t.nick,avatar:t.avatar}}return{nick:"",avatar:""}}},{key:"reset",value:function(){this._flushMap(!0),this.accountProfileMap.clear()}}]),e}(),Eu=a((function e(t){o(this,e),Zt||(this.userID=t.userID||"",this.timeStamp=t.timeStamp||0)})),Au=function(){function e(t){o(this,e),this._userModule=t,this._n="BlacklistHandler",this._blacklistMap=new Map,this.startIndex=0,this.maxLimited=100,this.currentSequence=0}return a(e,[{key:"getLocalBlacklist",value:function(){return m(this._blacklistMap.keys())}},{key:"getBlacklist",value:function(){var e=this,t="".concat(this._n,".getBlacklist"),n={fromAccount:this._userModule.getMyAccount(),maxLimited:this.maxLimited,startIndex:0,lastSequence:this.currentSequence},o=new li("getBlacklist");return this._userModule.request({protocolName:To,requestData:n}).then((function(n){var s=n.data,a=s.blackListItem,r=s.currentSequence,i=Zt(a)?0:a.length;o.setNetworkType(e._userModule.getNetworkType()).setMessage("count:".concat(i)).end(),He.i("".concat(t," ok")),e.currentSequence=r,e._handleResponse(a,!0),e._userModule.emitOuterEvent(k.BLACKLIST_UPDATED,m(e._blacklistMap.keys()))})).catch((function(n){return e._userModule.probeNetwork().then((function(e){var t=v(e,2),s=t[0],a=t[1];o.setError(n,s,a).end()})),He.e("".concat(t," failed. error:"),n),Oi(n)}))}},{key:"addBlacklist",value:function(e){var t=this,n=new li("addToBlacklist"),o="".concat(this._n,".addBlacklist"),s=this._userModule.getMyAccount();if(1===e.userIDList.length&&e.userIDList[0]===s){var a=Sr,r=this._userModule.getErrorMessage(a);n.setCode(a).setMessage(r).setNetworkType(this._userModule.getNetworkType()).end();var i=new Ei({code:a});return He.e("".concat(o," failed. error:"),i),Oi(i)}return e.userIDList.includes(s)&&(e.userIDList=e.userIDList.filter((function(e){return e!==s}))),e.fromAccount=this._userModule.getMyAccount(),e.toAccount=e.userIDList,this._userModule.request({protocolName:Do,requestData:e}).then((function(s){return n.setNetworkType(t._userModule.getNetworkType()).setMessage(e.userIDList.length>5?"userIDList.length:".concat(e.userIDList.length):"userIDList:".concat(e.userIDList)).end(),He.i("".concat(o," ok")),t._handleResponse(s.resultItem,!0),Li(m(t._blacklistMap.keys()))})).catch((function(e){return t._userModule.probeNetwork().then((function(t){var o=v(t,2),s=o[0],a=o[1];n.setError(e,s,a).end()})),He.e("".concat(o," failed. error:"),e),Oi(e)}))}},{key:"_handleResponse",value:function(e,t){if(!Zt(e))for(var n,o,s,a=0,r=e.length;a5?"userIDList.length:".concat(e.userIDList.length):"userIDList:".concat(e.userIDList)).end(),He.i("".concat(n," ok")),t._handleResponse(s.data.resultItem,!1),Li(m(t._blacklistMap.keys()))})).catch((function(e){return t._userModule.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"onAccountDeleted",value:function(e){for(var t,n=[],o=0,s=e.length;o0&&(He.l("".concat(this._n,".onAccountDeleted count:").concat(n.length," userIDList:"),n),this._userModule.emitOuterEvent(k.BLACKLIST_UPDATED,m(this._blacklistMap.keys())))}},{key:"onAccountAdded",value:function(e){for(var t,n=[],o=0,s=e.length;o0&&(He.l("".concat(this._n,".onAccountAdded count:").concat(n.length," userIDList:"),n),this._userModule.emitOuterEvent(k.BLACKLIST_UPDATED,m(this._blacklistMap.keys())))}},{key:"reset",value:function(){this._blacklistMap.clear(),this.startIndex=0,this.maxLimited=100,this.currentSequence=0}}]),e}(),Ru=function(e){var t=String(e).replace(/[=]+$/,""),n="";if(t.length%4==1)return"";for(var o,s,a=0,r=0;s=t.charAt(r++);~s&&(o=a%4?64*o+s:s,a++%4)?n+=String.fromCharCode(255&o>>(-2*a&6)):0)s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(s);try{return decodeURIComponent(escape(n))}catch(i){return""}},Nu=function(){function e(t){o(this,e),this._userModule=t,this._n="UserStatusHandler",this.MAX_QUERY_USER_COUNT=500,this.MAX_SUBSCRIBE_USER_COUNT=100,this.MAX_UNSUBSCRIBE_USER_COUNT=100,this._userModule.getInnerEmitterInstance().on(bi,this._onCloudConfigUpdated,this)}return a(e,[{key:"_onCloudConfigUpdated",value:function(){var e=this._userModule.getCloudConfig("status_query_count"),t=this._userModule.getCloudConfig("status_sub_count"),n=this._userModule.getCloudConfig("status_unsub_count");He.l("".concat(this._n,"._onCloudConfigUpdated statusQueryCount:").concat(e," statusSubscribeCount:").concat(t)+" statusUnsubscribeCount:".concat(n)),ut(e)||(this.MAX_QUERY_USER_COUNT=parseInt(e,10)),ut(e)||(this.MAX_SUBSCRIBE_USER_COUNT=parseInt(t,10)),ut(e)||(this.MAX_UNSUBSCRIBE_USER_COUNT=parseInt(n,10))}},{key:"onUserStatusUpdated",value:function(e){var t=e.dataList,n=this._userModule.getMyUserID(),o=this._userModule.getModule(Kn),s=t.map((function(e){var t=e.to,s=e.statusType,a=e.customStatus,r=Ru(a);return t===n&&o.setCustomStatus(r),{userID:t,statusType:s,customStatus:r}}));this._userModule.emitOuterEvent(k.USER_STATUS_UPDATED,s)}},{key:"setSelfStatus",value:function(e){var t=this,n="".concat(this._n,".setSelfStatus");if(!1===this._userModule.filterProfanity("customStatus",e))return Oi({code:Wr});var o=new li("setSelfStatus"),s=e.customStatus;return this._userModule.request({protocolName:ua,requestData:{customStatus:s}}).then((function(e){return o.setNetworkType(t._userModule.getNetworkType()).setMessage("customStatus:".concat(s)).end(),He.l("".concat(n," ok. customStatus:").concat(s)),t._userModule.getModule(Kn).setCustomStatus(s),Li({userID:t._userModule.getMyUserID(),statusType:1,customStatus:s})})).catch((function(e){return t._userModule.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"getUserStatus",value:function(e){var t=this,n="".concat(this._n,".getUserStatus"),o=e.userIDList,s=void 0===o?[]:o,a=this._userModule.getMyUserID(),r=m(s),i=void 0,u=r.indexOf(a);if(u>-1){r.splice(u,1);var c=this._userModule.getModule(Kn).getCustomStatus();i={userID:a,statusType:1,customStatus:c}}if(0===r.length)return Ni({successUserList:[i],failureUserList:[]});if(!this._userModule.canIUse(B.USER_STATUS))return Oi({code:Kr});r.length>this.MAX_QUERY_USER_COUNT&&(He.w("".concat(n," ").concat(Jt(this.MAX_QUERY_USER_COUNT))),r=s.slice(0,this.MAX_QUERY_USER_COUNT));var l=new li("getUserStatus");return this._userModule.request({protocolName:ca,requestData:{userIDList:r}}).then((function(e){var o=e.data,a=o.successUserList,r=void 0===a?[]:a,u=o.failureUserList,c=void 0===u?[]:u,p=r.map((function(e){var t=e.userID,n=e.statusType,o=e.customStatus;return{userID:t,statusType:n,customStatus:Ru(o)}})),d=c.map((function(e){var t=e.userID,n=e.invalidUserID,o=e.errorCode,s=e.errorInfo;return{userID:Zt(n)?t:n,code:o,message:s}}));ut(i)||p.unshift(i);var g="userID count:".concat(s.length,", success count:").concat(p.length,", fail count:").concat(d.length);return l.setNetworkType(t._userModule.getNetworkType()).setMessage("".concat(g)).end(),He.l("".concat(n," ok. ").concat(g,".")),Li({successUserList:p,failureUserList:d})})).catch((function(e){return t._userModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],a=n[1];l.setMessage("userID count:".concat(s.length)).setError(e,o,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"subscribeUserStatus",value:function(e){var t=this;if(!this._userModule.canIUse(B.USER_STATUS))return Oi({code:Kr});var n="".concat(this._n,".subscribeUserStatus"),o=e.userIDList,s=void 0===o?[]:o,a=m(s);a.length>this.MAX_SUBSCRIBE_USER_COUNT&&(He.w("".concat(n," ").concat(Jt(this.MAX_SUBSCRIBE_USER_COUNT))),a=s.slice(0,this.MAX_SUBSCRIBE_USER_COUNT));var r=new li("subscribeUserStatus"),i="userID count:".concat(s.length);return He.l("".concat(n," ").concat(i)),this._userModule.request({protocolName:la,requestData:{userIDList:a}}).then((function(e){var o=e.data.failureUserList,s=(void 0===o?[]:o).map((function(e){var t=e.userID,n=e.invalidUserID,o=e.errorCode,s=e.errorInfo;return{userID:Zt(n)?t:n,code:o,message:s}}));return r.setNetworkType(t._userModule.getNetworkType()).setMessage("".concat(i," fail count:").concat(s.length)).end(),He.l("".concat(n," ok. fail count:").concat(s.length,".")),Li({failureUserList:s})})).catch((function(e){return t._userModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setMessage("".concat(i)).setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"unsubscribeUserStatus",value:function(e){var t=this;if(!this._userModule.canIUse(B.USER_STATUS))return Oi({code:Kr});var n="".concat(this._n,".unsubscribeUserStatus"),o=(e||{}).userIDList,s=void 0===o?[]:o,a=m(s);s.length>this.MAX_UNSUBSCRIBE_USER_COUNT&&(He.w("".concat(n," ").concat(Jt(this.MAX_UNSUBSCRIBE_USER_COUNT))),a=s.slice(0,this.MAX_UNSUBSCRIBE_USER_COUNT));var r=new li("unsubscribeUserStatus"),i="userID count:".concat(s.length);He.l("".concat(n," ").concat(i));var u={userIDList:a};return 0===a.length&&(u.userIDList=void 0,u.unsubscribeAll=1),this._userModule.request({protocolName:pa,requestData:u}).then((function(e){var o=e.data.failureUserList,s=(void 0===o?[]:o).map((function(e){var t=e.userID,n=e.invalidUserID,o=e.errorCode,s=e.errorInfo;return{userID:Zt(n)?t:n,code:o,message:s}}));return r.setNetworkType(t._userModule.getNetworkType()).setMessage("".concat(i," fail count:").concat(s.length)).end(),He.l("".concat(n," ok. fail count:").concat(s.length,".")),Li({failureUserList:s})})).catch((function(e){return t._userModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setMessage("".concat(i)).setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"reset",value:function(){this.MAX_QUERY_USER_COUNT=500,this.MAX_SUBSCRIBE_USER_COUNT=100,this.MAX_UNSUBSCRIBE_USER_COUNT=100}}]),e}(),Ou=function(e){i(n,e);var t=f(n);function n(e){var s;return o(this,n),(s=t.call(this,e))._n="UserModule",s._profileHandler=new Lu(h(s)),s._blacklistHandler=new Au(h(s)),s._userStatusHandler=new Nu(h(s)),s.getInnerEmitterInstance().on(Ui,s.onContextUpdated,h(s)),s}return a(n,[{key:"onContextUpdated",value:function(e){this._profileHandler.getMyProfile(),this._blacklistHandler.getBlacklist()}},{key:"onProfileModified",value:function(e){this._profileHandler.onProfileModified(e)}},{key:"onRelationChainModified",value:function(e){var t=e.dataList;if(!Zt(t)){var n=[];t.forEach((function(e){e.blackListDelAccount&&n.push.apply(n,m(e.blackListDelAccount))})),n.length>0&&this._blacklistHandler.onAccountDeleted(n);var o=[];t.forEach((function(e){e.blackListAddAccount&&o.push.apply(o,m(e.blackListAddAccount))})),o.length>0&&this._blacklistHandler.onAccountAdded(o)}}},{key:"onConversationsProfileUpdated",value:function(e){this._profileHandler.onConversationsProfileUpdated(e)}},{key:"getMyAccount",value:function(){return this.getMyUserID()}},{key:"getMyProfile",value:function(){return this._profileHandler.getMyProfile()}},{key:"getStorageModule",value:function(){return this.getModule(Wn)}},{key:"filterProfanity",value:function(e,t){var n=this.getModule(io);if(!n)return!0;var o=n.filterText(t[e],Y),s=o.isAllowedToSend,a=o.modifiedText;return!0===s&&(t[e]=a,!0)}},{key:"isMyFriend",value:function(e){var t=this.getModule(xn);return!!t&&t.isMyFriend(e)}},{key:"getUserProfile",value:function(e){return this._profileHandler.getUserProfile(e)}},{key:"updateMyProfile",value:function(e){return this._profileHandler.updateMyProfile(e)}},{key:"getNickAndAvatarByUserID",value:function(e){return this._profileHandler.getNickAndAvatarByUserID(e)}},{key:"getLocalBlacklist",value:function(){var e=this._blacklistHandler.getLocalBlacklist();return Ni(e)}},{key:"addBlacklist",value:function(e){return this._blacklistHandler.addBlacklist(e)}},{key:"deleteBlacklist",value:function(e){return this._blacklistHandler.deleteBlacklist(e)}},{key:"onUserStatusUpdated",value:function(e){this._userStatusHandler.onUserStatusUpdated(e)}},{key:"setSelfStatus",value:function(e){return this._userStatusHandler.setSelfStatus(e)}},{key:"getUserStatus",value:function(e){return this._userStatusHandler.getUserStatus(e)}},{key:"subscribeUserStatus",value:function(e){return this._userStatusHandler.subscribeUserStatus(e)}},{key:"unsubscribeUserStatus",value:function(e){return this._userStatusHandler.unsubscribeUserStatus(e)}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._profileHandler.reset(),this._blacklistHandler.reset(),this._userStatusHandler.reset()}}]),n}(po),Gu=function(){function e(t,n){o(this,e),this._m=t,this._isLoggedIn=!1,this._SDKAppID=n.SDKAppID,this._userID=n.userID||"",this._userSig=n.userSig||"",this._version="2.27.0",this._a2Key="",this._tinyID="",this._customStatus="",this._contentType="json",this._unlimitedAVChatRoom=n.unlimitedAVChatRoom,this._scene=n.scene||"",this._oversea=n.oversea,this._instanceID=n.instanceID,this._statusInstanceID=0,this._isDevMode=n.devMode,this._proxyServer=n.proxyServer,this._fileUploadProxy=n.fileUploadProxy,this._fileDownloadProxy=n.fileDownloadProxy}return a(e,[{key:"isLoggedIn",value:function(){return this._isLoggedIn}},{key:"isOversea",value:function(){return this._oversea}},{key:"isPrivateNetWork",value:function(){return this._proxyServer}},{key:"isDevMode",value:function(){return this._isDevMode}},{key:"isSingaporeSite",value:function(){return this._SDKAppID>=2e7&&this._SDKAppID<3e7||this._SDKAppID>=172e7&&this._SDKAppID<173e7}},{key:"isKoreaSite",value:function(){return this._SDKAppID>=3e7&&this._SDKAppID<4e7||this._SDKAppID>=173e7&&this._SDKAppID<174e7}},{key:"isGermanySite",value:function(){return this._SDKAppID>=4e7&&this._SDKAppID<5e7||this._SDKAppID>=174e7&&this._SDKAppID<175e7}},{key:"isIndiaSite",value:function(){return this._SDKAppID>=5e7&&this._SDKAppID<6e7||this._SDKAppID>=175e7&&this._SDKAppID<176e7}},{key:"isJapanSite",value:function(){return this._SDKAppID>=6e7&&this._SDKAppID<7e7||this._SDKAppID>=176e7&&this._SDKAppID<177e7}},{key:"isUSASite",value:function(){return this._SDKAppID>=7e7&&this._SDKAppID<8e7||this._SDKAppID>=177e7&&this._SDKAppID<178e7}},{key:"isIntl",value:function(){return 0===(e=this._SDKAppID)||e>=2e7&&e<8e7||e>=172e7&&e<178e7;var e}},{key:"isUnlimitedAVChatRoom",value:function(){return this._unlimitedAVChatRoom}},{key:"setUserID",value:function(e){this._userID=e}},{key:"getUserID",value:function(){return this._userID}},{key:"setUserSig",value:function(e){this._userSig=e}},{key:"getUserSig",value:function(){return this._userSig}},{key:"getSDKAppID",value:function(){return this._SDKAppID}},{key:"setTinyID",value:function(e){this._tinyID=e,this._isLoggedIn=!0}},{key:"getTinyID",value:function(){return this._tinyID}},{key:"setCustomStatus",value:function(e){this._customStatus=e}},{key:"getCustomStatus",value:function(){return this._customStatus}},{key:"getScene",value:function(){return Ne?window.tencent_cloud_im_csig_flutter_for_web_25F_cy:this._isTUIKit()?"tuikit":this._scene}},{key:"getInstanceID",value:function(){return this._instanceID}},{key:"getStatusInstanceID",value:function(){return this._statusInstanceID}},{key:"setStatusInstanceID",value:function(e){this._statusInstanceID=e}},{key:"getVersion",value:function(){return this._version}},{key:"getA2Key",value:function(){return this._a2Key}},{key:"setA2Key",value:function(e){this._a2Key=e}},{key:"getContentType",value:function(){return this._contentType}},{key:"getProxyServer",value:function(){return this._proxyServer}},{key:"getFileUploadProxy",value:function(){return this._fileUploadProxy}},{key:"getFileDownloadProxy",value:function(){return this._fileDownloadProxy}},{key:"_isTUIKit",value:function(){var e=!1,t=!1,n=!1,o=!1,s=[];ue&&(s=Object.keys(le)),ce&&(s=ie?Object.keys(uni):Object.keys(window));for(var a=0,r=s.length;a0){for(var c=0,l=u.length;c0&&void 0!==arguments[0]?arguments[0]:0;if(!this.isLoggedIn())return Oi({code:Ca});var n=new li("logout");n.setNetworkType(this.getNetworkType()).setMessage("identifier:".concat(this.getMyUserID())).end(!0);var o="".concat(this._n,".logout");return He.i("".concat(o," type:").concat(t)),0===t&&this._m.setNotReadyReason(Vr),this.request({protocolName:ho,requestData:{type:t}}).then((function(){return e.resetReady(),Ni({})})).catch((function(t){return He.e("".concat(o," error:"),t),e.resetReady(),Ni({})}))}},{key:"_fetchCloudControlConfig",value:function(){this.getModule(to).fetchConfig()}},{key:"_getStatusInstanceID",value:function(){return uni.getStorageSync("timUniAppInstanceID")}},{key:"_hello",value:function(){var e=this;this._lastWsHelloTs=Date.now(),this.request({protocolName:_o,requestData:{isWebUniapp:this._isWebUniapp}}).catch((function(t){He.w("".concat(e._n,"._hello error:"),t)}))}},{key:"getLastWsHelloTs",value:function(){return this._lastWsHelloTs}},{key:"_checkLoginInfo",value:function(e){var t=0;return Zt(this.getModule(Kn).getSDKAppID())?t=va:Zt(e.userID)?t=ma:Zt(e.userSig)&&(t=Ma),{code:t}}},{key:"_isReactUIKit",value:function(){return ce&&void 0!==window.tencent_cloud_im_csig_react_uikit_23F_xa}},{key:"onMultipleAccountKickedOut",value:function(e){var t=this;new li("kickedOut").setNetworkType(this.getNetworkType()).setMessage("type:".concat(S.KICKED_OUT_MULT_ACCOUNT," newInstanceInfo:").concat(JSON.stringify(e))).end(!0),He.w("".concat(this._n,".onMultipleAccountKickedOut userID:").concat(this.getMyUserID()," newInstanceInfo:"),e),this.logout(1).then((function(){t.emitOuterEvent(k.KICKED_OUT,{type:S.KICKED_OUT_MULT_ACCOUNT}),t._m.setNotReadyReason(Fr),t._m.reset()}))}},{key:"onMultipleDeviceKickedOut",value:function(e){var t=this;new li("kickedOut").setNetworkType(this.getNetworkType()).setMessage("type:".concat(S.KICKED_OUT_MULT_DEVICE," newInstanceInfo:").concat(JSON.stringify(e))).end(!0),He.w("".concat(this._n,".onMultipleDeviceKickedOut userID:").concat(this.getMyUserID()," newInstanceInfo:"),e),this.logout(1).then((function(){t.emitOuterEvent(k.KICKED_OUT,{type:S.KICKED_OUT_MULT_DEVICE}),t._m.setNotReadyReason(qr),t._m.reset()}))}},{key:"onUserSigExpired",value:function(){new li("kickedOut").setNetworkType(this.getNetworkType()).setMessage(S.KICKED_OUT_USERSIG_EXPIRED).end(!0),He.w("".concat(this._n,".onUserSigExpired: userSig expired")),0!==this.getModule(Kn).getStatusInstanceID()&&(this.emitOuterEvent(k.KICKED_OUT,{type:S.KICKED_OUT_USERSIG_EXPIRED}),this._m.setNotReadyReason(xr),this._m.reset())}},{key:"onRestApiKickedOut",value:function(e){(new li("kickedOut").setNetworkType(this.getNetworkType()).setMessage("type:".concat(S.KICKED_OUT_REST_API," newInstanceInfo:").concat(JSON.stringify(e))).end(!0),He.w("".concat(this._n,".onRestApiKickedOut userID:").concat(this.getMyUserID()," newInstanceInfo:"),e),0!==this.getModule(Kn).getStatusInstanceID())&&(this.emitOuterEvent(k.KICKED_OUT,{type:S.KICKED_OUT_REST_API}),this._m.setNotReadyReason(Br),this._m.reset(),this.getModule($n).onRestApiKickedOut())}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this.resetReady(),this._helloInterval=120,this._lastLoginTs=0,this._lastWsHelloTs=0,this._isWebUniapp=0}}]),n}(po);function Uu(){return null}var bu=function(){function e(t){o(this,e),this._m=t,this._n="StorageModule",this._storageQueue=new Map,this._errorTolerantHandle()}return a(e,[{key:"_errorTolerantHandle",value:function(){ue||!ut(window)&&this._canIUseCookies()||(this.getItem=Uu,this.setItem=Uu,this.removeItem=Uu,this.clear=Uu)}},{key:"onCheckTimer",value:function(e){if(e%20==0){if(0===this._storageQueue.size)return;this._doFlush()}}},{key:"_doFlush",value:function(){try{var e,t=D(this._storageQueue);try{for(t.s();!(e=t.n()).done;){var n=v(e.value,2),o=n[0],s=n[1];this._setStorageSync(this._getKey(o),s)}}catch(a){t.e(a)}finally{t.f()}this._storageQueue.clear()}catch(r){He.w("".concat(this._n,"._doFlush error:"),r)}}},{key:"_getPrefix",value:function(){var e=this._m.getModule(Kn);return"TIM_".concat(e.getSDKAppID(),"_").concat(e.getUserID(),"_")}},{key:"_getKey",value:function(e){return"".concat(this._getPrefix()).concat(e)}},{key:"getItem",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];try{var n=t?this._getKey(e):e;return this.getStorageSync(n)}catch(o){return He.w("".concat(this._n,".getItem error:"),o),{}}}},{key:"setItem",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(n){var s=o?this._getKey(e):e;this._setStorageSync(s,t)}else this._storageQueue.set(e,t)}},{key:"clear",value:function(){try{ue?le.clearStorageSync():this._canIUseCookies()&&localStorage.clear()}catch(e){He.w("".concat(this._n,".clear error:"),e)}}},{key:"removeItem",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];try{var n=t?this._getKey(e):e;this._removeStorageSync(n)}catch(o){He.w("".concat(this._n,".removeItem error:"),o)}}},{key:"getSize",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"b";try{var o={size:0,limitSize:5242880,unit:n};if(Object.defineProperty(o,"leftSize",{enumerable:!0,get:function(){return o.limitSize-o.size}}),ue&&(o.limitSize=1024*le.getStorageInfoSync().limitSize),e)o.size=JSON.stringify(this.getItem(e)).length+this._getKey(e).length;else if(ue){var s=le.getStorageInfoSync(),a=s.keys;a.forEach((function(e){o.size+=JSON.stringify(t.getStorageSync(e)).length+t._getKey(e).length}))}else if(this._canIUseCookies())for(var r in localStorage)localStorage.hasOwnProperty(r)&&(o.size+=localStorage.getItem(r).length+r.length);return this._convertUnit(o)}catch(i){He.w("".concat(this._n," error:"),i)}}},{key:"_convertUnit",value:function(e){var t={},n=e.unit;for(var o in t.unit=n,e)"number"==typeof e[o]&&("kb"===n.toLowerCase()?t[o]=Math.round(e[o]/1024):"mb"===n.toLowerCase()?t[o]=Math.round(e[o]/1024/1024):t[o]=e[o]);return t}},{key:"_setStorageSync",value:function(e,t){ue?se?my.setStorageSync({key:e,data:t}):le.setStorageSync(e,t):this._canIUseCookies()&&localStorage.setItem(e,JSON.stringify(t))}},{key:"getStorageSync",value:function(e){return ue?se?my.getStorageSync({key:e}).data:le.getStorageSync(e):this._canIUseCookies()?JSON.parse(localStorage.getItem(e)):{}}},{key:"_removeStorageSync",value:function(e){ue?se?my.removeStorageSync({key:e}):le.removeStorageSync(e):this._canIUseCookies()&&localStorage.removeItem(e)}},{key:"_canIUseCookies",value:function(){return navigator&&navigator.cookieEnabled&&localStorage}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._doFlush()}}]),e}(),wu=function(){function e(t){o(this,e),this._n="SSOLogBody",this._report=[]}return a(e,[{key:"pushIn",value:function(e){He.d("".concat(this._n,".pushIn"),this._report.length,e),this._report.push(e)}},{key:"backfill",value:function(e){var t;it(e)&&0!==e.length&&(He.d("".concat(this._n,".backfill"),this._report.length,e.length),(t=this._report).unshift.apply(t,m(e)))}},{key:"getLogsNumInMemory",value:function(){return this._report.length}},{key:"isEmpty",value:function(){return 0===this._report.length}},{key:"_reset",value:function(){this._report.length=0,this._report=[]}},{key:"getLogsInMemory",value:function(){var e=this._report.slice();return this._reset(),e}}]),e}(),qu=function(e){var t=e.getModule(Kn);return{SDKType:10,SDKAppID:t.getSDKAppID(),SDKVersion:t.getVersion(),tinyID:Number(t.getTinyID()),userID:t.getUserID(),platform:e.getPlatform(),instanceID:t.getInstanceID(),traceID:we()}},Fu=function(e){i(s,e);var n=f(s);function s(e){var t;o(this,s),(t=n.call(this,e))._n="EventStatModule",t.TAG="im-ssolog-event",t._reportBody=new wu,t.MIN_THRESHOLD=20,t.MAX_THRESHOLD=100,t.WAITING_TIME=6e4,t.REPORT_LEVEL=[4,5,6],t.REPORT_SDKAPPID_BLACKLIST=[],t.REPORT_TINYID_WHITELIST=[],t._lastReportTime=Date.now();var a=t.getInnerEmitterInstance();return a.on(Ui,t._onLoginSuccess,h(t)),a.on(bi,t._onCloudConfigUpdated,h(t)),t}return a(s,[{key:"reportAtOnce",value:function(){He.d("".concat(this._n,".reportAtOnce")),this._report()}},{key:"_onLoginSuccess",value:function(){var e=this,t=this.getModule(Wn),n=t.getItem(this.TAG,!1);!Zt(n)&<(n.forEach)&&(He.l("".concat(this._n,"._onLoginSuccess get ssolog in storage, count:").concat(n.length)),n.forEach((function(t){e._reportBody.pushIn(t)})),t.removeItem(this.TAG,!1))}},{key:"_onCloudConfigUpdated",value:function(){var e=this.getCloudConfig("evt_rpt_threshold"),t=this.getCloudConfig("evt_rpt_waiting"),n=this.getCloudConfig("evt_rpt_level"),o=this.getCloudConfig("evt_rpt_sdkappid_bl"),s=this.getCloudConfig("evt_rpt_tinyid_wl");ut(e)||(this.MIN_THRESHOLD=Number(e)),ut(t)||(this.WAITING_TIME=Number(t)),ut(n)||(this.REPORT_LEVEL=n.split(",").map((function(e){return Number(e)}))),ut(o)||(this.REPORT_SDKAPPID_BLACKLIST=o.split(",").map((function(e){return Number(e)}))),ut(s)||(this.REPORT_TINYID_WHITELIST=s.split(","))}},{key:"pushIn",value:function(e){e instanceof li&&(e.updateTimeStamp(),this._reportBody.pushIn(e),this._reportBody.getLogsNumInMemory()>=this.MIN_THRESHOLD&&this._report())}},{key:"onCheckTimer",value:function(){Date.now()e.MAX_THRESHOLD&&e._flushAtOnce()}))}else this._lastReportTime=Date.now()}}},{key:"_flushAtOnce",value:function(){var e=this.getModule(Wn),t=e.getItem(this.TAG,!1),n=this._reportBody.getLogsInMemory(),o="".concat(this._n,"._flushAtOnce");if(Zt(t))He.l("".concat(o," count:").concat(n.length)),e.setItem(this.TAG,n,!0,!1);else{var s=n.concat(t);s.length>this.MAX_THRESHOLD&&(s=s.slice(0,this.MAX_THRESHOLD)),He.l("".concat(o," count:").concat(s.length)),e.setItem(this.TAG,s,!0,!1)}}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._lastReportTime=0,this._report(),this.REPORT_SDKAPPID_BLACKLIST=[],this.REPORT_TINYID_WHITELIST=[]}}]),s}(po),xu="none",Vu="online",Bu=[Or,Jr],Hu=function(){function e(t){o(this,e),this._m=t,this._networkType="",this._n="NetMonitorModule",this.MAX_WAIT_TIME=3e3,this._mpNetworkStatusCallback=null,this._webOnlineCallback=null,this._webOfflineCallback=null}return a(e,[{key:"start",value:function(){var e=this;ue?(le.getNetworkType({success:function(t){e._networkType=t.networkType||t.subtype||"",t.networkType===xu?He.w("".concat(e._n,".start no network, please check!")):He.i("".concat(e._n,".start networkType:").concat(t.networkType))}}),this._mpNetworkStatusCallback=this._onNetworkStatusChange.bind(this),le.onNetworkStatusChange(this._mpNetworkStatusCallback)):(this._networkType=Vu,this._webOnlineCallback=this._onWebOnline.bind(this),this._webOfflineCallback=this._onWebOffline.bind(this),window&&(window.addEventListener("online",this._webOnlineCallback),window.addEventListener("offline",this._webOfflineCallback)))}},{key:"_onWebOnline",value:function(){this._onNetworkStatusChange({isConnected:!0,networkType:Vu})}},{key:"_onWebOffline",value:function(){this._onNetworkStatusChange({isConnected:!1,networkType:xu})}},{key:"_onNetworkStatusChange",value:function(e){var t=e.isConnected,n=e.networkType,o="".concat(this._n,"._onNetworkStatusChange"),s=!1;t?(He.i("".concat(o," previous:").concat(this._networkType," current:").concat(n)),this._networkType!==n&&(s=!0,this._m.getModule($n).reConnect(!0))):this._networkType!==n&&(s=!0,He.w("".concat(o," no network, please check!")),this._m.getModule($n).offline());s&&(new li("networkChange").setMessage("isConnected:".concat(t," previousNetworkType:").concat(this._networkType," networkType:").concat(n)).end(),this._networkType=n)}},{key:"probe",value:function(e){var t=this;if(!ut(e)&&Bu.includes(e.code))return Promise.resolve([!0,this._networkType]);var n="".concat(this._n,".probe");return new Promise((function(e,o){ue?le.getNetworkType({success:function(o){t._networkType=o.networkType,o.networkType===xu?(He.w("".concat(n," no network, please check!")),e([!1,o.networkType])):(He.i("".concat(n," networkType:").concat(o.networkType)),e([!0,o.networkType]))}}):t._networkType===xu?e([!1,xu]):e([!0,Vu])}))}},{key:"getNetworkType",value:function(){return this._networkType}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),ue?null!==this._mpNetworkStatusCallback&&(le.offNetworkStatusChange&&(re||ne?le.offNetworkStatusChange(this._mpNetworkStatusCallback):le.offNetworkStatusChange()),this._mpNetworkStatusCallback=null):window&&(null!==this._webOnlineCallback&&(window.removeEventListener("online",this._webOnlineCallback),this._webOnlineCallback=null),null!==this._onWebOffline&&(window.removeEventListener("offline",this._webOfflineCallback),this._webOfflineCallback=null))}}]),e}();var Ku=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t=Object.prototype.hasOwnProperty,n="~";function o(){}function s(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function a(e,t,o,a,r){if("function"!=typeof o)throw new TypeError("The listener must be a function");var i=new s(o,a||e,r),u=n?n+t:t;return e._events[u]?e._events[u].fn?e._events[u]=[e._events[u],i]:e._events[u].push(i):(e._events[u]=i,e._eventsCount++),e}function r(e,t){0==--e._eventsCount?e._events=new o:delete e._events[t]}function i(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),(new o).__proto__||(n=!1)),i.prototype.eventNames=function(){var e,o,s=[];if(0===this._eventsCount)return s;for(o in e=this._events)t.call(e,o)&&s.push(n?o.slice(1):o);return Object.getOwnPropertySymbols?s.concat(Object.getOwnPropertySymbols(e)):s},i.prototype.listeners=function(e){var t=n?n+e:e,o=this._events[t];if(!o)return[];if(o.fn)return[o.fn];for(var s=0,a=o.length,r=new Array(a);s=this.cosOptions.expiredTime-120&&this._getAuthorizationKey())}},{key:"_getAuthorization",value:function(e,t){t({TmpSecretId:this.cosOptions.secretId,TmpSecretKey:this.cosOptions.secretKey,XCosSecurityToken:this.cosOptions.sessionToken,ExpiredTime:this.cosOptions.expiredTime})}},{key:"upload",value:function(e){if(!0===e.getRelayFlag())return Promise.resolve();var t=this.getModule(so);switch(e.type){case S.MSG_IMAGE:return t.addTotalCount(ni),this._uploadImage(e);case S.MSG_FILE:return t.addTotalCount(ni),this._uploadFile(e);case S.MSG_AUDIO:return t.addTotalCount(ni),this._uploadAudio(e);case S.MSG_VIDEO:return t.addTotalCount(ni),this._uploadVideo(e);default:return Promise.resolve()}}},{key:"_uploadImage",value:function(e){var n=this,o=this.getModule(Un),s=e.getElements()[0],a=o.getMessageOption(e.clientSequence);return this.doUploadImage({file:a.payload.file,to:a.to,onProgress:function(e){if(s.updatePercent(e),lt(a.onProgress))try{a.onProgress(e)}catch(t){return Oi({code:Na})}}}).then((function(o){var a,r,i=o.location,u=o.fileType,c=o.fileSize,l=o.width,p=o.height,d=o.smallImageUrl,g=o.smallImageWidth,h=o.smallImageHeight,_=o.largeImageUrl,f=o.largeImageWidth,v=o.largeImageHeight,m=n.isPrivateNetWork()?i:Dt(i);return s.updateImageFormat(u),d&&_?(a={url:d,width:g,height:h},r={url:_,width:f,height:v}):(a=qt({originUrl:m,originWidth:l,originHeight:p,min:198}),r=qt({originUrl:m,originWidth:l,originHeight:p,min:720})),s.updateImageInfoArray([{size:c,url:m,width:l,height:p},t({},r),t({},a)]),e}))}},{key:"_uploadFile",value:function(e){var t=this,n=this.getModule(Un),o=e.getElements()[0],s=n.getMessageOption(e.clientSequence);return this.doUploadFile({file:s.payload.file,to:s.to,onProgress:function(e){if(o.updatePercent(e),lt(s.onProgress))try{s.onProgress(e)}catch(t){return Oi({code:Na})}}}).then((function(n){var s=n.location,a=t.isPrivateNetWork()?s:Dt(s);return o.updateFileUrl(a),e}))}},{key:"_uploadAudio",value:function(e){var t=this,n=this.getModule(Un),o=e.getElements()[0],s=n.getMessageOption(e.clientSequence);return this.doUploadAudio({file:s.payload.file,to:s.to,onProgress:function(e){if(o.updatePercent(e),lt(s.onProgress))try{s.onProgress(e)}catch(t){return Oi({code:Na})}}}).then((function(n){var s=n.location,a=t.isPrivateNetWork()?s:Dt(s);return o.updateAudioUrl(a),e}))}},{key:"_uploadVideo",value:function(e){var t=this,n=this.getModule(Un),o=e.getElements()[0],s=n.getMessageOption(e.clientSequence);return this.doUploadVideo({file:s.payload.file,to:s.to,onProgress:function(e){if(o.updatePercent(e),lt(s.onProgress))try{s.onProgress(e)}catch(t){return Oi({code:Na})}}}).then((function(n){var s=n.location,a=n.snapshotInfo,r=t.isPrivateNetWork()?s:Dt(s);return o.updateVideoUrl(r),Zt(a)||o.updateSnapshotInfo(a),e}))}},{key:"doUploadImage",value:function(e){var t=this;if(!e.file)return Oi({code:Fa});var n=this._checkImageType(e.file);if(!0!==n)return n;var o=this._checkImageSize(e.file);if(!0!==o)return o;var s=null;return this._setUploadFileType(Vi),this.uploadByCOS(e).then((function(e){return s=e,t.isPrivateNetWork()?Pt(e.location):Pt("https://".concat(e.location))})).then((function(e){return s.width=e.width,s.height=e.height,Promise.resolve(s)}))}},{key:"_checkImageType",value:function(e){var t="";return t=ue?e.url.slice(e.url.lastIndexOf(".")+1):e.files[0].name.slice(e.files[0].name.lastIndexOf(".")+1),Fi.indexOf(t.toLowerCase())>=0||Oi({code:xa})}},{key:"_checkImageSize",value:function(e){var t=0;return 0===(t=ue?e.size:e.files[0].size)?Oi({code:Ra}):t<20971520||Oi({code:Va})}},{key:"doUploadFile",value:function(e){return e.file?e.file.files[0].size>104857600?Oi({code:Ja}):0===e.file.files[0].size?Oi({code:Ra}):(this._setUploadFileType(Ki),this.uploadByCOS(e)):Oi({code:za})}},{key:"doUploadVideo",value:function(e){return e.file.videoFile.size>104857600?Oi({code:Wa}):0===e.file.videoFile.size?Oi({code:Ra}):-1===xi.indexOf(e.file.videoFile.type)?Oi({code:ja}):(this._setUploadFileType(Bi),ue?this.handleVideoUpload({file:e.file.videoFile,onProgress:e.onProgress}):ce?this.handleVideoUpload(e):void 0)}},{key:"handleVideoUpload",value:function(e){var t=this;return new Promise((function(n,o){t.uploadByCOS(e).then((function(e){n(e)})).catch((function(){t.uploadByCOS(e).then((function(e){n(e)})).catch((function(){o(new Ei({code:Ka}))}))}))}))}},{key:"doUploadAudio",value:function(e){return e.file?e.file.size>20971520?Oi({code:Ha}):0===e.file.size?Oi({code:Ra}):(this._setUploadFileType(Hi),this.uploadByCOS(e)):Oi({code:Ba})}},{key:"uploadByCOS",value:function(e){var t=this;if(!lt(this._cosUploadMethod))return this.outputWarning("PluginUndetected"),Oi({code:Da});if(this.timUploadPlugin)return this._uploadWithPreSigUrl(e);var n=new li("upload"),o="".concat(this._n,".uploadByCOS"),s=Date.now(),a=this._getFile(e);return new Promise((function(r,i){var u=ue?t._createCosOptionsWXMiniApp(e):t._createCosOptionsWeb(e),c=t;t._cosUploadMethod(u,(function(e,u){var l=Object.create(null);if(u){if(e||it(u.files)&&u.files[0].error){var p=new Ei({code:Ya});return n.setError(p,!0,t.getNetworkType()).end(),He.l("".concat(o," failed. error:"),u.files[0].error),403===u.files[0].error.statusCode&&(He.w("".concat(o," failed. cos AccessKeyId was invalid, regain auth key!")),t._getAuthorizationKey()),void i(p)}l.fileName=a.name,l.fileSize=a.size,l.fileType=a.type.slice(a.type.indexOf("/")+1).toLowerCase(),l.location=ue?u.Location:u.files[0].data.Location;var d=Date.now()-s,g=c._formatFileSize(a.size),h=c._formatSpeed(1e3*a.size/d),_="size:".concat(g," time:").concat(d,"ms speed:").concat(h);He.l("".concat(o," success. name:").concat(a.name," ").concat(_)),r(l);var f=t.getModule(so);return f.addCost(ni,d),f.addFileSize(ni,a.size),void n.setNetworkType(t.getNetworkType()).setMessage(_).end()}var v=new Ei({code:Ya});n.setError(v,!0,c.getNetworkType()).end(),He.w("".concat(o," failed. error:"),e),403===e.statusCode&&(He.w("".concat(o," failed. cos AccessKeyId was invalid, regain auth key!")),t._getAuthorizationKey()),i(v)}))}))}},{key:"_uploadWithPreSigUrl",value:function(e){var t=this,n="".concat(this._n,"._uploadWithPreSigUrl"),o=this._getFile(e);return this._createCosOptionsPreSigUrl(e).then((function(e){return new Promise((function(s,a){var r=new li("upload"),i=e.requestSnapshotUrl,u=void 0===i?void 0:i,c=g(e,ju),l=Date.now();t._cosUploadMethod(c,(function(e,i){if(e||403===i.statusCode)return r.setError(new Ei(e),!0,t.getNetworkType()).end(),He.l("".concat(n," failed, error:"),e),void a(new Ei({code:Ya}));var p=Object.create(null),d=i.data.location||"";t.isPrivateNetWork()||0!==d.indexOf("https://")&&0!==d.indexOf("http://")||(d=d.split("//")[1]),p.fileName=o.name,p.fileSize=o.size,p.fileType=o.type.slice(o.type.indexOf("/")+1).toLowerCase(),p.location=d;var g=Date.now()-l,h=t._formatFileSize(o.size),_=t._formatSpeed(1e3*o.size/g),f="size:".concat(h,",time:").concat(g,"ms,speed:").concat(_," res:").concat(JSON.stringify(i.data));He.l("".concat(n," success name:").concat(o.name,",").concat(f)),r.setNetworkType(t.getNetworkType()).setMessage(f).end();var v=t.getModule(so);v.addCost(ni,g),v.addFileSize(ni,o.size);var m=[];if(c.thumbUrl&&c.largeUrl&&(m=[t._getSmallImageInfoByUrl(c.thumbUrl,p),t._getLargeImageInfoByUrl(c.largeUrl,p)]),u&&m.push(t._getSnapshotInfoByUrl(u,p)),m.length>0)return Promise.all(m).then((function(){s(p)}));s(p)}))}))}))}},{key:"_getRawOrUploadProxyUrl",value:function(e){var t=this.getModule(Kn).getFileUploadProxy(),n=e;return t&&(n=e.replace(/^https:\/\/[^/]+/,t)),n}},{key:"_getFile",value:function(e){var t;return it(e.file.files)||(t=e.file.files,"filelist"===dt(t))?e.file.files[0]:e.file}},{key:"_formatFileSize",value:function(e){return e<1024?e+"B":e<1048576?Math.floor(e/1024)+"KB":Math.floor(e/1048576)+"MB"}},{key:"_formatSpeed",value:function(e){return e<=1048576?Vt(e/1024,1)+"KB/s":Vt(e/1048576,1)+"MB/s"}},{key:"_createCosOptionsWeb",value:function(e){var t=this._getFile(e),n=t.name,o=n.slice(n.lastIndexOf(".")),s=this._genFileName("".concat(Mt(999999)).concat(o));return{files:[{Bucket:"".concat(this.bucketName,"-").concat(this.appid),Region:this.region,Key:"".concat(this.directory,"/").concat(s),Body:t}],SliceSize:1048576,onProgress:function(t){if("function"==typeof e.onProgress)try{e.onProgress(t.percent)}catch(n){He.w("onProgress callback error:",n)}},onFileFinish:function(e,t,n){}}}},{key:"_createCosOptionsWXMiniApp",value:function(e){var t=this._getFile(e),n=this._genFileName(t.name),o=t.url;return{Bucket:"".concat(this.bucketName,"-").concat(this.appid),Region:this.region,Key:"".concat(this.directory,"/").concat(n),FilePath:o,onProgress:function(t){if(He.l(JSON.stringify(t)),"function"==typeof e.onProgress)try{e.onProgress(t.percent)}catch(n){He.w("onProgress callback error:",n)}}}}},{key:"_createCosOptionsPreSigUrl",value:function(e){var t=this,n="",o="",s=0,a=this._getFile(e);if(ue)n=this._genFileName(a.name),o=a.url,s=1;else{var r=a.name,i=r.slice(r.lastIndexOf("."));n=this._genFileName("".concat(Mt(999999)).concat(i)),o=a,s=0}return this._getCosPreSigUrl({fileType:this.uploadFileType,fileName:n,uploadMethod:s,duration:this.duration}).then((function(s){var a=s.uploadUrl,r=s.downloadUrl,i=s.requestSnapshotUrl,u=void 0===i?void 0:i,c=s.thumbUrl,l=s.largeUrl;return{url:t._getRawOrUploadProxyUrl(a),fileType:t.uploadFileType,fileName:n,resources:o,downloadUrl:r,requestSnapshotUrl:u,thumbUrl:c,largeUrl:l,onProgress:function(t){if("function"==typeof e.onProgress)try{e.onProgress(t.percent)}catch(n){He.w("onProgress callback error:",n),He.e(n)}}}}))}},{key:"_genFileName",value:function(e){return"".concat(Ut(),"-").concat(e)}},{key:"_setUploadFileType",value:function(e){this.uploadFileType=e}},{key:"_getSnapshotInfoByUrl",value:function(e,t){var n=this,o=new li("getSnapshotInfo");return this.request({protocolName:Ks,requestData:{platform:this.getPlatform(),coverName:this._genFileName(Mt(99999)),requestSnapshotUrl:e}}).then((function(e){var n=(e.data||{}).snapshotUrl;return o.setMessage("snapshotUrl:".concat(n)).end(),Zt(n)?{}:Pt(n).then((function(e){t.snapshotInfo={snapshotUrl:n,snapshotWidth:e.width,snapshotHeight:e.height}}))})).catch((function(e){return He.w("".concat(n._n,"._getSnapshotInfoByUrl failed. error:"),e),o.setCode(e.errorCode).setMessage(e.errorInfo).end(),{}}))}},{key:"_getSmallImageInfoByUrl",value:function(e,t){return Pt(e).then((function(n){t.smallImageUrl=e,t.smallImageWidth=n.width,t.smallImageHeight=n.height}))}},{key:"_getLargeImageInfoByUrl",value:function(e,t){return Pt(e).then((function(n){t.largeImageUrl=e,t.largeImageWidth=n.width,t.largeImageHeight=n.height}))}},{key:"reset",value:function(){He.l("".concat(this._n,".reset"))}}]),s}(po),zu=["downloadKey","pbDownloadKey","messageList"],Ju=function(){function e(t){o(this,e),this._n="MergerMessageHandler",this._messageModule=t}return a(e,[{key:"uploadMergerMessage",value:function(e,t){var n=this,o="".concat(this._n,".").concat("uploadMergerMessage");He.d("".concat(o," message:"),e,"messageBytes:".concat(t));var s=e.payload.messageList,a=s.length,r=new li("uploadMergerMessage");return this._messageModule.request({protocolName:Qs,requestData:{messageList:s}}).then((function(e){He.d("".concat(o," ok. response:"),e.data);var s=e.data,i=s.pbDownloadKey,u=s.downloadKey,c={pbDownloadKey:i,downloadKey:u,messageNumber:a};return r.setNetworkType(n._messageModule.getNetworkType()).setMessage("".concat(a,"-").concat(t,"-").concat(u)).end(),c})).catch((function(e){throw He.w("".concat(o," failed. error:"),e),n._messageModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),e}))}},{key:"downloadMergerMessage",value:function(e){var n=this,o="".concat(this._n,".").concat("downloadMergerMessage");He.d("".concat(o," message:"),e);var s=e.payload.downloadKey,a=this._messageModule.getFileDownloadProxy(),r=new li("downloadMergerMessage");return r.setMessage("downloadKey:".concat(s)),this._messageModule.request({protocolName:Zs,requestData:{downloadKey:s}}).then((function(s){if(He.d("".concat(o," ok. response:"),s.data),lt(e.clearElement)){var i=e.payload,u=(i.downloadKey,i.pbDownloadKey,i.messageList,g(i,zu));e.clearElement(),e.setElement({type:e.type,content:t({messageList:s.data.messageList},u)},a)}else{var c=[];s.data.messageList.forEach((function(e){if(!Zt(e)){var t=new Ti(e,a);c.push(t)}})),e.payload.messageList=c,e.payload.downloadKey="",e.payload.pbDownloadKey=""}return r.setNetworkType(n._messageModule.getNetworkType()).end(),e})).catch((function(e){throw He.w("".concat(o," failed. key:").concat(s," error:"),e),n._messageModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),e}))}},{key:"createMergerMessagePack",value:function(e,t,n){return e.conversationType===S.CONV_C2C?this._createC2CMergerMessagePack(e,t,n):this._createGroupMergerMessagePack(e,t,n)}},{key:"_createC2CMergerMessagePack",value:function(e,t,n){var o=null;t&&(t.offlinePushInfo&&(o=t.offlinePushInfo),!0===t.onlineUserOnly&&(o?o.disablePush=!0:o={disablePush:!0}));var s=[];if(rt(t)&&rt(t.messageControlInfo)){var a=t.messageControlInfo,r=a.excludedFromUnreadCount,i=a.excludedFromLastMessage,u=a.excludedFromContentModeration;!0===r&&s.push("NoUnread"),!0===i&&s.push("NoLastMsg"),!0===u&&s.push("NoMsgCheck")}var c="";st(e.cloudCustomData)&&e.cloudCustomData.length>0&&(c=e.cloudCustomData);var l=n.pbDownloadKey,p=n.downloadKey,d=n.messageNumber,g=e.payload,h=g.title,_=g.abstractList,f=g.compatibleText,v=this._messageModule.getModule(qn),m=v&&v.isOnlineMessage(e,t)?0:void 0;return{protocolName:Mo,tjgID:this._messageModule.generateTjgID(e),requestData:{fromAccount:this._messageModule.getMyUserID(),toAccount:e.to,msgBody:[{msgType:e.type,msgContent:{pbDownloadKey:l,downloadKey:p,title:h,abstractList:_,compatibleText:f,messageNumber:d}}],cloudCustomData:c,clientTime:e.clientTime,msgSeq:e.sequence,msgRandom:e.random,msgLifeTime:m,offlinePushInfo:o?{pushFlag:!0===o.disablePush?1:0,title:o.title||"",desc:o.description||"",ext:o.extension||"",apnsInfo:{badgeMode:!0===o.ignoreIOSBadge?1:0},androidInfo:{OPPOChannelID:o.androidOPPOChannelID||""}}:void 0,messageControlInfo:0!==m?s:void 0,isSupportExtension:!0===e.isSupportExtension?1:0}}}},{key:"_createGroupMergerMessagePack",value:function(e,t,n){var o=null;t&&t.offlinePushInfo&&(o=t.offlinePushInfo);var s=[];if(rt(t)&&rt(t.messageControlInfo)){var a=t.messageControlInfo,r=a.excludedFromUnreadCount,i=a.excludedFromLastMessage,u=a.excludedFromContentModeration;!0===r&&s.push("NoUnread"),!0===i&&s.push("NoLastMsg"),!0===u&&s.push("NoMsgCheck")}var c="";st(e.cloudCustomData)&&e.cloudCustomData.length>0&&(c=e.cloudCustomData);var l=n.pbDownloadKey,p=n.downloadKey,d=n.messageNumber,g=e.payload,h=g.title,_=g.abstractList,f=g.compatibleText,v=this._messageModule.getModule(Fn),m=v&&v.isOnlineMessage(e,t)?1:0;return{protocolName:yo,tjgID:this._messageModule.generateTjgID(e),requestData:{fromAccount:this._messageModule.getMyUserID(),groupID:e.to,msgBody:[{msgType:e.type,msgContent:{pbDownloadKey:l,downloadKey:p,title:h,abstractList:_,compatibleText:f,messageNumber:d}}],random:e.random,priority:e.priority,clientSequence:e.clientSequence,groupAtInfo:void 0,cloudCustomData:c,onlineOnlyFlag:m,offlinePushInfo:o?{pushFlag:!0===o.disablePush?1:0,title:o.title||"",desc:o.description||"",ext:o.extension||"",apnsInfo:{badgeMode:!0===o.ignoreIOSBadge?1:0},androidInfo:{OPPOChannelID:o.androidOPPOChannelID||""}}:void 0,clientTime:e.clientTime,needReadReceipt:!0!==e.needReadReceipt||v.isMessageFromOrToAVChatroom(e.to)?0:1,messageControlInfo:0===m?s:void 0,isSupportExtension:!0===e.isSupportExtension?1:0}}}}]),e}(),Xu={ERR_SVR_COMM_SENSITIVE_TEXT:80001,ERR_SVR_COMM_BODY_SIZE_LIMIT:80002,OPEN_SERVICE_OVERLOAD_ERROR:60022,ERR_SVR_MSG_PKG_PARSE_FAILED:20001,ERR_SVR_MSG_INTERNAL_AUTH_FAILED:20002,ERR_SVR_MSG_INVALID_ID:20003,ERR_SVR_MSG_PUSH_DENY:20006,ERR_SVR_MSG_IN_PEER_BLACKLIST:20007,ERR_SVR_MSG_BOTH_NOT_FRIEND:20009,ERR_SVR_MSG_NOT_PEER_FRIEND:20010,ERR_SVR_MSG_NOT_SELF_FRIEND:20011,ERR_SVR_MSG_SHUTUP_DENY:20012,ERR_SVR_GROUP_INVALID_PARAMETERS:10004,ERR_SVR_GROUP_PERMISSION_DENY:10007,ERR_SVR_GROUP_NOT_FOUND:10010,ERR_SVR_GROUP_INVALID_GROUPID:10015,ERR_SVR_GROUP_REJECT_FROM_THIRDPARTY:10016,ERR_SVR_GROUP_SHUTUP_DENY:10017,MESSAGE_SEND_FAIL:2100,OVER_FREQUENCY_LIMIT:2996},Qu=[Na,Fa,xa,Ra,Va,za,Ja,Wa,ja,Ba,Ha,Da];function Zu(e){var t=!1;return Object.values(Xu).includes(e)&&(t=!0),(e>=120001&&e<=13e4||e>=10100&&e<=10200)&&(t=!0),t}var $u=function(e){i(s,e);var n=f(s);function s(e){var t;return o(this,s),(t=n.call(this,e))._n="MessageModule",t._messageOptionsMap=new Map,t._mergerMessageHandler=new Ju(h(t)),t}return a(s,[{key:"createTextMessage",value:function(e){var t=this.getMyUserID();e.currentUser=t,e.senderTinyID=this.getMyTinyID();var n=new Si(e),o="string"==typeof e.payload?e.payload:e.payload.text,s=new pi({text:o}),a=this._getNickAndAvatarByUserID(t);return n.setElement(s),n.setNickAndAvatar(a),n.setNameCard(this._getNameCardByGroupID(n)),n}},{key:"createImageMessage",value:function(e){var t=this.getMyUserID();e.currentUser=t,e.senderTinyID=this.getMyTinyID();var n=new Si(e);if(ue){var o=e.payload.file;if(nt(o))return void this.outputWarning("FileUnsupportedInMP","createImageMessage");var s=o.tempFiles[0].path||o.tempFiles[0].tempFilePath,a={url:s,name:s.slice(s.lastIndexOf("/")+1),size:o.tempFiles&&o.tempFiles[0].size||1,type:s.slice(s.lastIndexOf(".")+1).toLowerCase()};e.payload.file=a}else if(ce)if(nt(e.payload.file)){var r=e.payload.file;e.payload.file={files:[r]}}else if(rt(e.payload.file)&&"undefined"!=typeof uni){var i=e.payload.file.tempFiles[0];e.payload.file={files:[i]}}var u=new di({imageFormat:Ke.UNKNOWN,uuid:this._generateUUID(e.payload.file),file:e.payload.file}),c=this._getNickAndAvatarByUserID(t);return n.setElement(u),n.setNickAndAvatar(c),n.setNameCard(this._getNameCardByGroupID(n)),this._messageOptionsMap.set(n.clientSequence,e),n}},{key:"createAudioMessage",value:function(e){var t=e.payload.file;if(ue){var n={url:t.tempFilePath,name:t.tempFilePath.slice(t.tempFilePath.lastIndexOf("/")+1),size:t.fileSize,second:parseInt(t.duration)/1e3,type:t.tempFilePath.slice(t.tempFilePath.lastIndexOf(".")+1).toLowerCase()};e.payload.file=n}var o=this.getMyUserID();e.currentUser=o,e.senderTinyID=this.getMyTinyID();var s=new Si(e),a=new hi({second:Math.floor(t.duration/1e3),size:t.fileSize||t.size,url:t.tempFilePath,uuid:this._generateUUID(e.payload.file)}),r=this._getNickAndAvatarByUserID(o);return s.setElement(a),s.setNickAndAvatar(r),s.setNameCard(this._getNameCardByGroupID(s)),this._messageOptionsMap.set(s.clientSequence,e),s}},{key:"createVideoMessage",value:function(e){var t=this.getMyUserID();e.currentUser=t,e.senderTinyID=this.getMyTinyID(),e.payload.file.thumbUrl="",e.payload.file.thumbSize=0;var n={};if(ue){if(se)return void this.outputWarning("VideoUnsupportedInAlipay");if(nt(e.payload.file))return void this.outputWarning("FileUnsupportedInMP","createVideoMessage");var o=e.payload.file;it(o.tempFiles)&&(o=o.tempFiles[0]),n.url=o.tempFilePath,n.name=o.tempFilePath.slice(o.tempFilePath.lastIndexOf("/")+1),n.size=o.size||1,n.second=o.duration||0,n.type=o.tempFilePath.slice(o.tempFilePath.lastIndexOf(".")+1).toLowerCase()}else if(ce){if(nt(e.payload.file)){var s=e.payload.file;e.payload.file.files=[s]}else if(rt(e.payload.file)&&"undefined"!=typeof uni){var a=e.payload.file.tempFile;e.payload.file.files=[a]}var r=e.payload.file;n.url=window.URL.createObjectURL(r.files[0]),n.name=r.files[0].name,n.size=r.files[0].size||1,n.second=r.files[0].duration||0,n.type=r.files[0].type.split("/")[1]}e.payload.file.videoFile=n;var i=new Si(e),u=new Ii({videoFormat:n.type,videoSecond:Vt(n.second,0),videoSize:n.size,remoteVideoUrl:"",videoUrl:n.url,videoUUID:this._generateUUID(e.payload.file.videoFile),thumbUUID:this._generateUUID(e.payload.file.videoFile),thumbWidth:e.payload.file.width||200,thumbHeight:e.payload.file.height||200,thumbUrl:e.payload.file.thumbUrl,thumbSize:e.payload.file.thumbSize,thumbFormat:e.payload.file.thumbUrl.slice(e.payload.file.thumbUrl.lastIndexOf(".")+1).toLowerCase()}),c=this._getNickAndAvatarByUserID(t);return i.setElement(u),i.setNickAndAvatar(c),i.setNameCard(this._getNameCardByGroupID(i)),this._messageOptionsMap.set(i.clientSequence,e),i}},{key:"createCustomMessage",value:function(e){var t=this.getMyUserID();e.currentUser=t,e.senderTinyID=this.getMyTinyID();var n=new Si(e),o=new yi({data:e.payload.data,description:e.payload.description,extension:e.payload.extension}),s=this._getNickAndAvatarByUserID(t);return n.setElement(o),n.setNickAndAvatar(s),n.setNameCard(this._getNameCardByGroupID(n)),n}},{key:"createFaceMessage",value:function(e){var t=this.getMyUserID();e.currentUser=t,e.senderTinyID=this.getMyTinyID();var n=new Si(e),o=new gi(e.payload),s=this._getNickAndAvatarByUserID(t);return n.setElement(o),n.setNickAndAvatar(s),n.setNameCard(this._getNameCardByGroupID(n)),n}},{key:"createMergerMessage",value:function(e){var t=this.getMyUserID();e.currentUser=t,e.senderTinyID=this.getMyTinyID();var n=this._getNickAndAvatarByUserID(t),o=new Si(e),s=new Di(e.payload);return o.setElement(s),o.setNickAndAvatar(n),o.setNameCard(this._getNameCardByGroupID(o)),o.setRelayFlag(!0),o}},{key:"createForwardMessage",value:function(e){var t=e.to,n=e.conversationType,o=e.priority,s=e.payload,a=e.needReadReceipt,r=e.receiverList,i=this.getMyUserID(),u=this._getNickAndAvatarByUserID(i);if(s.type===S.MSG_GRP_TIP)return Oi({code:er});var c={to:t,conversationType:n,conversationID:"".concat(n).concat(t),priority:o,isPlaceMessage:0,status:nn.UNSEND,currentUser:i,senderTinyID:this.getMyTinyID(),cloudCustomData:e.cloudCustomData||s.cloudCustomData||"",needReadReceipt:a,receiverList:r,isSupportExtension:e.isSupportExtension||!1},l=new Si(c);return l.setElement(s.getElements()[0]),l.setNickAndAvatar(u),l.setNameCard(this._getNameCardByGroupID(s)),l.setRelayFlag(!0),l}},{key:"downloadMergerMessage",value:function(e){return this._mergerMessageHandler.downloadMergerMessage(e)}},{key:"createFileMessage",value:function(e){if(ue){if(!ee&&!te&&!re)return;var n=le.getSystemInfoSync().SDKVersion;if(ee&&wt(n,"2.5.0")<0)return void this.outputWarning("WXChooseMessageFile");if(te&&wt(n,"1.18.0")<0)return void this.outputWarning("QQChooseMessageFile")}if(ce||re){if(nt(e.payload.file)){var o=e.payload.file;e.payload.file={files:[o]}}else if(rt(e.payload.file)&&"undefined"!=typeof uni){var s=e.payload.file,a=s.tempFiles,r=s.files,i=null;it(a)?i=a[0]:it(r)&&(i=r[0]),e.payload.file={files:[i]}}}else if(ee||te){var u=e.payload.file.tempFiles,c=t(t({},u[0]),{},{url:u[0].path});e.payload.file={files:[c]}}var l=this.getMyUserID();e.currentUser=l,e.senderTinyID=this.getMyTinyID();var p=new Si(e),d=new Mi({uuid:this._generateUUID(e.payload.file),file:e.payload.file}),g=this._getNickAndAvatarByUserID(l);return p.setElement(d),p.setNickAndAvatar(g),p.setNameCard(this._getNameCardByGroupID(p)),this._messageOptionsMap.set(p.clientSequence,e),p}},{key:"createLocationMessage",value:function(e){var t=this.getMyUserID();e.currentUser=t,e.senderTinyID=this.getMyTinyID();var n=new Si(e),o=new Ci(e.payload),s=this._getNickAndAvatarByUserID(t);return n.setElement(o),n.setNickAndAvatar(s),n.setNameCard(this._getNameCardByGroupID(n)),n}},{key:"_onCannotFindModule",value:function(){return Oi({code:Pr})}},{key:"sendMessageInstance",value:function(e,t){var n=this;if(!1===this.getModule(io).filterMessage(e,t))return this._onSendMessageFailed(e,new Ei({code:Wr}));var o,s=null;switch(e.conversationType){case S.CONV_C2C:if(!(s=this.getModule(qn)))return this._onCannotFindModule();break;case S.CONV_GROUP:if(!(s=this.getModule(Fn)))return this._onCannotFindModule();if(Et({groupID:e.to})){var a=s.getLocalGroupProfile(e.to);if(a&&a.isSupportTopic)return Oi({code:ba})}break;default:return Oi({code:Aa})}var r=this.getModule(Jn),i=this.getModule(Fn);return r.upload(e).then((function(){n._getSendMessageSpecifiedKey(e)===ti&&n.getModule(so).addSuccessCount(ni);return i.guardForAVChatRoom(e).then((function(){if(!e.isSendable())return Oi({code:Xa});n._addSendMessageTotalCount(e),o=Date.now();var a=function(e){var t="utf-8";ce&&document&&(t=document.charset.toLowerCase());var n,o,s=0;if(o=e.length,"utf-8"===t||"utf8"===t)for(var a=0;a11264?n._mergerMessageHandler.uploadMergerMessage(e,a).then((function(o){var s=n._mergerMessageHandler.createMergerMessagePack(e,t,o);return n.request(s)})):(n.getModule(Hn).setMessageRandom(e),e.conversationType===S.CONV_C2C||e.conversationType===S.CONV_GROUP?s.sendMessage(e,t):void 0)})).then((function(a){var r=a.data,i=r.time,u=r.sequence,c=r.readReceiptCode;ot(c)&&0!==c&&(new li("sendMessageWithReceipt").setMessage("from:".concat(e.from," to:").concat(e.to," sequence:").concat(u," readReceiptCode:").concat(c)).end(),He.w("".concat(n._n,".sendMessageInstance readReceiptCode:").concat(c," message:").concat(n.getErrorMessage(c))));n._addSendMessageSuccessCount(e,o),n._messageOptionsMap.delete(e.clientSequence);var l=n.getModule(Hn);e.status=nn.SUCCESS,e.time=i;var p=!1;if(e.conversationType===S.CONV_GROUP)e.sequence=u;else if(e.conversationType===S.CONV_C2C){var d=l.getLatestMessageSentByMe(e.conversationID);if(d){var g=d.nick,h=d.avatar;g===e.nick&&h===e.avatar||(p=!0)}}if(p&&l.modifyMessageSentByMe({conversationID:e.conversationID,latestNick:e.nick,latestAvatar:e.avatar}),s.isOnlineMessage(e,t))e._onlineOnlyFlag=!0;else{l.appendToMessageList(e);var _=e;rt(t)&&rt(t.messageControlInfo)&&(!0===t.messageControlInfo.excludedFromLastMessage&&(e._isExcludedFromLastMessage=!0,_=""),!0===t.messageControlInfo.excludedFromUnreadCount&&(e._isExcludedFromUnreadCount=!0));var f=e.conversationType;if(At(e.to))f=S.CONV_TOPIC,n.getModule(Bn).onMessageSent({groupID:Kt(e.to),topicID:e.to,lastMessage:_});l.onMessageSent({conversationOptionsList:[{conversationID:e.conversationID,unreadCount:0,type:f,subType:e.conversationSubType,lastMessage:_}]})}return e.getRelayFlag()||"TIMImageElem"!==e.type||Ft(e.payload.imageInfoArray),Li({message:e})}))})).catch((function(t){return n._onSendMessageFailed(e,t)}))}},{key:"_onSendMessageFailed",value:function(e,t){e.status=nn.FAIL,this.getModule(Hn).deleteMessageRandom(e),this._addSendMessageFailCountOnUser(e,t);var n=new li("sendMessage");return n.setMessage("tjg_id:".concat(this.generateTjgID(e)," type:").concat(e.type," from:").concat(e.from," to:").concat(e.to)),this.probeNetwork().then((function(e){var o=v(e,2),s=o[0],a=o[1];n.setError(t,s,a).end()})),He.e("".concat(this._n,"._onSendMessageFailed error:"),t),Oi(new Ei({code:t&&t.code?t.code:Sa,message:t&&t.message?t.message:void 0,data:{message:e}}))}},{key:"_getSendMessageSpecifiedKey",value:function(e){if([S.MSG_IMAGE,S.MSG_AUDIO,S.MSG_VIDEO,S.MSG_FILE].includes(e.type))return ti;if(e.conversationType===S.CONV_C2C)return Zr;if(e.conversationType===S.CONV_GROUP){var t=this.getModule(Fn).getLocalGroupProfile(e.to);if(!t)return;var n=t.type;return Lt(n)?ei:$r}}},{key:"_addSendMessageTotalCount",value:function(e){var t=this._getSendMessageSpecifiedKey(e);t&&this.getModule(so).addTotalCount(t)}},{key:"_addSendMessageSuccessCount",value:function(e,t){var n=Math.abs(Date.now()-t),o=this._getSendMessageSpecifiedKey(e);if(o){var s=this.getModule(so);s.addSuccessCount(o),s.addCost(o,n)}}},{key:"_addSendMessageFailCountOnUser",value:function(e,t){var n,o,s=t.code,a=void 0===s?-1:s,r=this.getModule(so),i=this._getSendMessageSpecifiedKey(e);i===ti&&(n=a,o=!1,Qu.includes(n)&&(o=!0),o)?r.addFailedCountOfUserSide(ni):Zu(a)&&i&&r.addFailedCountOfUserSide(i)}},{key:"resendMessage",value:function(e){return e.isResend=!0,e.status=nn.UNSEND,this.sendMessageInstance(e)}},{key:"revokeMessage",value:function(e){var t=this,n=null;if(e.conversationType===S.CONV_C2C?n=this.getModule(qn):e.conversationType===S.CONV_GROUP&&(n=this.getModule(Fn)),!n)return this._onCannotFindModule();var o=new li("revokeMessage");o.setMessage("tjg_id:".concat(this.generateTjgID(e)," type:").concat(e.type," from:").concat(e.from," to:").concat(e.to));var s="".concat(this._n,".").concat("revokeMessage");return n.revokeMessage(e).then((function(n){var a=n.data.recallRetList;if(!Zt(a)&&0!==a[0].retCode){var r=new Ei({code:a[0].retCode,data:{message:e}});return o.setCode(r.code).setMoreMessage(r.message).end(),Oi(r)}return He.i("".concat(s," ok. ID:").concat(e.ID)),e.isRevoked=!0,o.end(),t.getModule(Hn).onMessageRevoked([e]),Li({message:e})})).catch((function(n){t.probeNetwork().then((function(e){var t=v(e,2),s=t[0],a=t[1];o.setError(n,s,a).end()}));var a=new Ei({code:n&&n.code?n.code:Oa,message:n&&n.message?n.message:void 0,data:{message:e}});return He.w("".concat(s," failed. error:"),n),Oi(a)}))}},{key:"deleteMessage",value:function(e){var t=this,n=null,o=e[0],s=o.conversationID,a="",r=[],i=[];if(o.conversationType===S.CONV_C2C)n=this.getModule(qn),a=s.replace(S.CONV_C2C,""),e.forEach((function(e){e&&e.status===nn.SUCCESS&&e.conversationID===s&&(e._onlineOnlyFlag||r.push("".concat(e.sequence,"_").concat(e.random,"_").concat(e.time)),i.push(e))}));else if(o.conversationType===S.CONV_GROUP)n=this.getModule(Fn),a=s.replace(S.CONV_GROUP,""),e.forEach((function(e){e&&e.status===nn.SUCCESS&&e.conversationID===s&&(e._onlineOnlyFlag||r.push("".concat(e.sequence)),i.push(e))}));else if(o.conversationType===S.CONV_SYSTEM)return Oi({code:wa});if(!n)return this._onCannotFindModule();if(0===r.length)return this._onMessageDeleted(i);r.length>30&&(r=r.slice(0,30),i=i.slice(0,30));var u=new li("deleteMessage");u.setMessage("to:".concat(a," count:").concat(r.length));var c="".concat(this._n,".").concat("deleteMessage");return n.deleteMessage({to:a,keyList:r}).then((function(e){return u.end(),He.i("".concat(c," ok")),t._onMessageDeleted(i)})).catch((function(e){t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];u.setError(e,o,s).end()})),He.w("".concat(c," failed. error:"),e);var n=new Ei({code:e&&e.code?e.code:Ga,message:e&&e.message?e.message:void 0});return Oi(n)}))}},{key:"_onMessageDeleted",value:function(e){return this.getModule(Hn).onMessageDeleted(e),Ni({messageList:e})}},{key:"translateText",value:function(e){var n="".concat(this._n,".").concat("translateText"),o=e.sourceTextList,s=e.sourceLanguage,a=e.targetLanguage,r=new li("translateText");return r.setMessage("sourceLanguage:".concat(s," targetLanguage:").concat(a)),this.request({protocolName:fa,requestData:{sourceTextList:o,source:s||"auto",target:a,from:this.getMyTinyID(),SDKAppID:this.getSDKAppID()}}).then((function(e){var o=e.data,s=o.error,a=o.requestID,i=o.translatedTextList;if(0===s.code)return r.end(),He.i("".concat(n," ok. requestID:").concat(a)),Li({translatedTextList:i});throw t(t({},s),{},{requestID:a})})).catch((function(e){return r.setCode(e.code).setMoreMessage(e.requestID).end(),He.w("".concat(n," failed. error:"),e),Oi({code:qa})}))}},{key:"modifyRemoteMessage",value:function(e){var t=this,n=null,o=e.conversationType,s=e.to;if(this.getModule(Fn).isMessageFromOrToAVChatroom(s))return Oi({code:nr,data:{message:e}});if(!1===this.getModule(io).filterMessage(e))return Oi({code:Wr,data:{message:e}});o===S.CONV_C2C?n=this.getModule(qn):o===S.CONV_GROUP&&(n=this.getModule(Fn));var a=new li("modifyMessage");a.setMessage("to:".concat(s));var r="".concat(this._n,".modifyRemoteMessage");return n.modifyRemoteMessage(e).then((function(n){a.end(),He.i("".concat(r," ok"));var o=t._onModifyRemoteMessageResp(e,n.data);return Li({message:o})})).catch((function(n){if(a.setCode(n.code).setMoreMessage(n.message).end(),He.w("".concat(r," failed. error:"),n),20027===n.code){var o=t._onModifyRemoteMessageResp(e,n.data);return Oi({code:tr,data:{message:o}})}return Oi({code:n.code,message:n.message,data:{message:e}})}))}},{key:"_onModifyRemoteMessageResp",value:function(e,t){He.d("".concat(this._n,"._onModifyRemoteMessageResp options:"),t);var n=e.conversationType,o=e.from,s=e.to,a=e.random,r=e.sequence,i=e.time,u=t.elements,c=t.messageVersion,l=t.cloudCustomData,p=void 0===l?"":l;return this.getModule(Hn).onMessageModified({conversationType:n,from:o,to:s,time:i,random:a,sequence:r,elements:u,cloudCustomData:p,messageVersion:c})}},{key:"_generateUUID",value:function(e){var t=this.getModule(Kn),n="".concat(t.getSDKAppID(),"-").concat(t.getUserID(),"-").concat(function(){for(var e="",t=32;t>0;--t)e+=yt[Math.floor(Math.random()*It)];return e}()),o=e.name||e.value||e.url||e.tempFilePath,s=o&&o.slice(o.lastIndexOf(".")+1);return s&&(n="".concat(n,".").concat(s)),n}},{key:"getMessageOption",value:function(e){return this._messageOptionsMap.get(e)}},{key:"_getNickAndAvatarByUserID",value:function(e){return this.getModule(wn).getNickAndAvatarByUserID(e)}},{key:"_getNameCardByGroupID",value:function(e){if(e.conversationType===S.CONV_GROUP){var t=this.getModule(Fn);if(t)return t.getMyNameCardByGroupID(e.to)}return""}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._messageOptionsMap.clear()}}]),s}(po),ec=function(e){i(n,e);var t=f(n);function n(e){var s;return o(this,n),(s=t.call(this,e))._n="MessageExtensionModule",s.messageExtensionMap=new Map,s.globalSeqMap=new Map,s.getMessageExtensionsMap=new Map,s}return a(n,[{key:"onMessageExtensionNotify",value:function(e){var t=this,n=e.dataList,o=n.messageInfo,s=n.operateType,a=n.operateResultList,r=n.tinyID,i=n.globalSequence,u=o.clientTime,c=o.random,l="".concat(r,"-").concat(u,"-").concat(c),p=[],d=[];He.l("".concat(this._n,".onMessageExtensionNotify messageID:").concat(l," operateType:").concat(s," globalSequence:").concat(i)),this._updateGlobalSequence(l,i);var g=!1,h=!1;a.forEach((function(e){var n=e.extensions,o=void 0===n?[]:n,a=e.clearSequence;if(1===s)g=!0,o.forEach((function(e){p.push({key:e.key,value:e.value})})),t._updateLocalExtension(l,o);else if(2===s)h=!0,o.forEach((function(e){d.push(e.key)})),t._updateLocalExtension(l,o);else if(3===s){if(h=!0,t._hasLocalExtension(l))t._getLocalExtension(l).forEach((function(e,t){e.seq<=a&&!Zt(e.value)&&d.push(t)}));t._clearLocalExtension(l,a)}})),g&&this.emitOuterEvent(k.MESSAGE_EXTENSIONS_UPDATED,{messageID:l,extensions:p}),h&&this.emitOuterEvent(k.MESSAGE_EXTENSIONS_DELETED,{messageID:l,keyList:d})}},{key:"setMessageExtensions",value:function(e,t){var n=this;if(!this.canIUse(B.MSG_EXT))return Oi({code:Kr});var o="".concat(this._n,".").concat("setMessageExtensions"),s=e.ID,a=e.conversationID,r=e.sequence,i=e.time,u=m(t);t.length>20&&(u=t.slice(0,20),He.w("".concat(o,". the length of extensions cannot exceed 20.")));var c="conversationID:".concat(a," messageID:").concat(s," sequence:").concat(r," time:").concat(i," count:").concat(u.length),l=new li("setMessageExtensions");return l.setMessage(c),He.l("".concat(o," ").concat(c)),this._modifyMessageExtensions(e,u).then((function(e){var t=e.resultList,n=e.successCount,s=e.failureCount,a="success count:".concat(n," fail count:").concat(s);return l.setMoreMessage(a).end(),He.l("".concat(o," ok. ").concat(a)),Li({extensions:t})})).catch((function(e){return n.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];l.setError(e,o,s).end()})),He.e("".concat(o," failed. error:"),e),Oi(e)}))}},{key:"getMessageExtensions",value:function(e){var t=this;if(!this.canIUse(B.MSG_EXT))return Oi({code:Kr});var n="".concat(this._n,".").concat("getMessageExtensions"),o=e.ID,s=e.conversationID,a=e.sequence,r=e.time,i="conversationID:".concat(s," messageID:").concat(o," sequence:").concat(a," time:").concat(r),u=new li("getMessageExtensions");u.setMessage(i),He.l("".concat(n," ").concat(i));var c=void 0;return this.getMessageExtensionsMap.has(o)&&(c=this._getGlobalSequence(o)),this._getMessageExtensions(e,c).then((function(e){return u.end(),He.l("".concat(n," ok. total count:").concat(e.length)),ut(c)&&e.length>0&&t.getMessageExtensionsMap.set(o,1),Li({extensions:e})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];u.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"deleteMessageExtensions",value:function(e,t){var n=this;if(!this.canIUse(B.MSG_EXT))return Oi({code:Kr});var o="".concat(this._n,".").concat("deleteMessageExtensions"),s=[],a=3;Zt(t)||(a=2,t.forEach((function(e){s.push({key:e,value:"",seq:0})})));var r=e.ID,i=e.conversationID,u=e.sequence,c=e.time,l="conversationID:".concat(i," messageID:").concat(r," sequence:").concat(u," time:").concat(c," operateType:").concat(a),p=new li("deleteMessageExtensions");return p.setMessage(l),He.l("".concat(o," ").concat(l)),this._modifyMessageExtensions(e,s,a).then((function(e){var t=e.resultList,n=e.successCount,s=e.failureCount,r="";return 2===a&&(r="success count:".concat(n," fail count:").concat(s)),p.setMoreMessage("".concat(r)).end(),He.l("".concat(o," ok. ").concat(r)),Li({extensions:t})})).catch((function(e){return n.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];p.setError(e,o,s).end()})),He.e("".concat(o," failed. error:"),e),Oi(e)}))}},{key:"_modifyMessageExtensions",value:function(e,t){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,s=At(e.to)?S.CONV_TOPIC:e.conversationType,a=void 0;3!==o&&(a=this._getRequestExtensions(e,t));var r=null;switch(s){case S.CONV_C2C:r=this.getModule(qn);break;case S.CONV_GROUP:r=this.getModule(Fn);break;case S.CONV_TOPIC:r=this.getModule(Bn);break;default:return Oi({code:Pr})}return r.modifyMessageExtensions(e,a,o).then((function(t){var o=t.data,s=o.extensions,a=o.seq,r=[],i=0,u=0,c=[];return(s=Zt(s)?[]:s).forEach((function(e){var t=e.errorCode,n=e.extension,o=n.key,s=n.value,a=n.seq;r.push({code:t,key:o,value:s}),0===t?i++:u++,c.push({key:o,value:s,seq:a})})),n._updateGlobalSequence(e.ID,a),c.length>0&&(n._updateLocalExtension(e.ID,c),c=null),{resultList:r,successCount:i,failureCount:u}})).catch((function(e){return Oi(e)}))}},{key:"_getRequestExtensions",value:function(e,t){var n=[];if(this._hasLocalExtension(e.ID)){var o=this._getLocalExtension(e.ID);return t.forEach((function(e){var t=e.key,s=e.value,a=0;o.has(t)&&(a=o.get(t).seq),n.push({key:t,value:s,seq:a})})),n}return t.forEach((function(e){var t=e.key,o=e.value;n.push({key:t,value:o,seq:0})})),n}},{key:"_getMessageExtensions",value:function(e,t){var n=this,o="".concat(this._n,"._getMessageExtensions"),s=e.ID,a=e.to,r=null;switch(At(a)?S.CONV_TOPIC:e.conversationType){case S.CONV_C2C:r=this.getModule(qn);break;case S.CONV_GROUP:r=this.getModule(Fn);break;case S.CONV_TOPIC:r=this.getModule(Bn);break;default:return Oi({code:Pr})}return r.getMessageExtensions(e,t).then((function(t){var a=t.data,r=a.extensions,i=a.completeFlag,u=a.globalSequence,c=a.clearSequence;if(r=Zt(r)?[]:r,He.l("".concat(o," ok. completeFlag:").concat(i," globalSequence:").concat(u," clearSequence:").concat(c," count:").concat(r.length)),n._updateLocalExtension(s,r),n._clearLocalExtension(s,c),n._updateGlobalSequence(s,u),1!==i){var l=r.slice(-1)[0].seq+1;return n._getMessageExtensions(e,l)}return n._getLocalExtensions(s)})).catch((function(e){return Oi(e)}))}},{key:"_hasLocalExtension",value:function(e){return this.messageExtensionMap.has(e)}},{key:"_getLocalExtension",value:function(e){return this.messageExtensionMap.get(e)}},{key:"_updateLocalExtension",value:function(e,t){this._hasLocalExtension(e)||this.messageExtensionMap.set(e,new Map);var n=this._getLocalExtension(e);t.forEach((function(e){var t=e.key,o=e.value,s=void 0===o?"":o,a=e.seq;n.set(t,{value:s,seq:a})}))}},{key:"_clearLocalExtension",value:function(e,t){if(!(t<=0)&&this._hasLocalExtension(e)){var n=this._getLocalExtension(e);n.forEach((function(e,o){e.seq<=t&&n.delete(o)}))}}},{key:"_getLocalExtensions",value:function(e){var t=[];this._hasLocalExtension(e)&&this._getLocalExtension(e).forEach((function(e,n){var o=e.value;Zt(o)||t.push({key:n,value:o})}));return t}},{key:"_getGlobalSequence",value:function(e){return this.globalSeqMap.get(e)}},{key:"_updateGlobalSequence",value:function(e,t){this.globalSeqMap.set(e,t)}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this.messageExtensionMap.clear(),this.globalSeqMap.clear(),this.getMessageExtensionsMap.clear()}}]),n}(po),tc=function(e){i(n,e);var t=f(n);function n(e){var s;return o(this,n),(s=t.call(this,e))._n="ComboMessageModule",s}return a(n,[{key:"sendMessage",value:function(e){var t=this,n=this._constructMessageInstance(e);if(null===n)return Oi({code:Sa});this._addSendMessageTotalCount(n);var o=Date.now();return this.getModule(Hn).setMessageRandom(n),this._sendComboMessage(n,e).then((function(e){var s=e.data,a=s.time,r=s.sequence,i=s.readReceiptCode;ot(i)&&0!==i&&(new li("sendMessageWithReceipt").setMessage("from:".concat(n.from," to:").concat(n.to," sequence:").concat(r," readReceiptCode:").concat(i)).end(),He.w("".concat(t._n,".sendMessage readReceiptCode:").concat(i," message:").concat(t.getErrorMessage(i))));t._addSendMessageSuccessCount(n,o);var u=t.getModule(Hn);n.status=nn.SUCCESS,n.time=a,n.conversationType===S.CONV_GROUP&&(n.sequence=r),u.appendToMessageList(n);var c=n;return!0===n._isExcludedFromLastMessage&&(c=""),u.onMessageSent({conversationOptionsList:[{conversationID:n.conversationID,unreadCount:0,type:n.conversationType,subType:n.conversationSubType,lastMessage:c}]}),Li({message:n})})).catch((function(e){return t._onSendMessageFailed(n,e)}))}},{key:"_sendComboMessage",value:function(e,t){var n=this._m.getModule(Zn),o="";return e.conversationType===S.CONV_C2C&&(o="".concat(V.NAME.OPEN_IM,".").concat(V.CMD.SEND_MESSAGE)),e.conversationType===S.CONV_GROUP&&(o="".concat(V.NAME.GROUP,".").concat(V.CMD.SEND_GROUP_MESSAGE)),n.sendComboMessage({servcmd:o,data:t})}},{key:"_constructMessageInstance",value:function(e){var t="".concat(this._n,"._constructMessageInstance"),n=null;try{var o=this.getMyUserID(),s={};if(s.senderTinyID=this.getMyTinyID(),s.currentUser=o,s.from=e.From_Account||o,e.GroupId?(s.conversationID="".concat(S.CONV_GROUP).concat(e.GroupId),s.conversationType=S.CONV_GROUP,s.to=e.GroupId):e.To_Account&&(s.conversationID="".concat(S.CONV_C2C).concat(e.To_Account),s.conversationType=S.CONV_C2C,s.to=e.To_Account),s.time=e.MsgTimeStamp||0,s.random=e.Random||e.MsgRandom||0,s.priority=e.MsgPriority,st(e.CloudCustomData)&&e.CloudCustomData.length>0&&(s.cloudCustomData=e.CloudCustomData),it(e.SendMsgControl)&&(s.messageControlInfo={},e.SendMsgControl.includes("NoUnread")&&(s.messageControlInfo.excludedFromUnreadCount=1),e.SendMsgControl.includes("NoLastMsg")&&(s.messageControlInfo.excludedFromLastMessage=1)),s.conversationType===S.CONV_GROUP&&it(e.To_Account)&&e.To_Account.length>0){var a=e.To_Account;e.To_Account.length>50&&(a=e.To_Account.slice(0,50),He.w("".concat(t," To_Account must be less than or equal to 50."))),s.receiverList=m(a),e.To_Account=m(a)}1!==e.IsNeedReadReceipt&&1!==e.NeedReadReceipt||(s.needReadReceipt=!0),1===e.SupportMessageExtension&&(s.isSupportExtension=!0),(n=new Si(s)).status=nn.UNSEND,e.MsgClientTime=n.clientTime,n.conversationType===S.CONV_C2C&&(e.MsgSeq=n.sequence);for(var r,i=e.MsgBody.length,u=0;u100)return n--,t;if(it(t)){var s=t.map((function(t){return at(t)?e(t,o):t}));return n--,s}if(at(t)){var a=(r=t,i=function(e,t){if(!gt(t))return!1;if((s=t)!==ac(s))for(var n=0;n65535)return cc(240|t>>>18,128|t>>>12&63,128|t>>>6&63,128|63&t)}else t=65533}else t<=57343&&(t=65533);return t<=2047?cc(192|t>>>6,128|63&t):cc(224|t>>>12,128|t>>>6&63,128|63&t)},pc=function(e){for(var t=void 0===e?"":(""+e).replace(/[\x80-\uD7ff\uDC00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,lc),n=0|t.length,o=new Uint8Array(n),s=0;s0)for(var u=0;u=a&&(He.l("".concat(e._n,"._checkPromiseMap request timeout, delete requestID:").concat(n)),e._promiseMap.delete(n),o(new Ei({code:Er})),e._channelModule.onRequestTimeout(n))}))}},{key:"onOpen",value:function(e){if(""!==this._readyState){this._onOpenTs=Date.now();var t=e.id;this._socketID=t;var n=Date.now()-this._startTs;He.l("".concat(this._n,"._onOpen cost ").concat(n," ms. socketID:").concat(t)),new li("wsOnOpen").setMessage(n).setCostTime(n).setMoreMessage("socketID:".concat(t)).end(),e.id===this._socketID&&(this._readyState=mc,this._reConnectCount=0,this._resend(),!0===this._reConnectFlag&&(this._channelModule.onReconnected(),this._reConnectFlag=!1),this._channelModule.onOpen())}}},{key:"onClose",value:function(e){var t=new li("wsOnClose"),n=e.id,o=e.e,s="sourceSocketID:".concat(n," currentSocketID:").concat(this._socketID," code:").concat(o.code," reason:").concat(o.reason),a=0;0!==this._onOpenTs&&(a=Date.now()-this._onOpenTs),t.setMessage(a).setCostTime(a).setMoreMessage(s).setCode(o.code).end(),He.l("".concat(this._n,"._onClose ").concat(s," onlineTime:").concat(a)),n===this._socketID&&(this._readyState=yc,a<1e3?this._channelModule.onReconnectFailed():this._channelModule.onClose())}},{key:"onError",value:function(e){var t=e.id,n=e.e,o="sourceSocketID:".concat(t," currentSocketID:").concat(this._socketID);new li("wsOnError").setMessage(n.errMsg||vt(n)).setMoreMessage(o).setLevel("error").end(),He.w("".concat(this._n,"._onError"),n,o),t===this._socketID&&(this._readyState="",this._channelModule.onError())}},{key:"onMessage",value:function(e){var t;try{t=JSON.parse(e.data)}catch(c){new li("jsonParseError").setMessage(e.data).end()}if(t&&t.head){var n=this._getRequestIDFromHead(t.head),o=t.body;if(!n.startsWith(V.NAME.TUIROOM_SVR)){var s=xt(t.head);o=uc(t.body,this._getResponseKeyMap(s))}if(He.d("".concat(this._n,".onMessage ret:").concat(JSON.stringify(o)," requestID:").concat(n," has:").concat(this._promiseMap.has(n))),this._setNextPingTs(),this._promiseMap.has(n)){var a=this._promiseMap.get(n),r=a.resolve,i=a.reject,u=a.timestamp;return this._promiseMap.delete(n),this._calcRTT(u),void(o.errorCode&&0!==o.errorCode?(this._channelModule.onErrorCodeNotZero(o),i(new Ei({code:o.errorCode,message:o.errorInfo||"",data:n.includes(Go)||n.includes(Ts)?{elements:o.elements,messageVersion:o.messageVersion,cloudCustomData:o.cloudCustomData}:void 0}))):r(Li(o)))}this._channelModule.onMessage({head:t.head,body:o})}}},{key:"_calcRTT",value:function(e){var t=Date.now()-e;this._channelModule.getModule(so).addRTT(t)}},{key:"_connect",value:function(){this._startTs=Date.now(),this._onOpenTs=0,this._socket=new gc(this),this._socketID=this._socket.getID(),this._readyState=Mc,He.l("".concat(this._n,"._connect isWorkerEnabled:").concat(this.getIsWorkerEnabled()," socketID:").concat(this._socketID," url:").concat(this.getURL())),new li("wsConnect").setMessage("socketID:".concat(this._socketID," url:").concat(this.getURL())).end()}},{key:"getURL",value:function(){this._channelModule.isDevMode()&&(this._canIUseBinaryFrame=!1);var e=bt();(se||ee&&"windows"===e||re)&&(this._canIUseBinaryFrame=!1);var t=-1;"ios"===e?t=Me||-1:"android"===e&&(t=Ie||-1);var n=this._channelModule.getModule(Kn),o=this._channelModule.getPlatform(),s=n.getSDKAppID(),a=n.getInstanceID(),r="sdkappid=".concat(s,"&instanceid=").concat(a,"&random=").concat(this._getRandom(),"&platform=").concat(o,"&host=").concat(e,"&version=").concat(t);return this._canIUseBinaryFrame?"".concat(this._url,"/binfo?").concat(r):"".concat(this._url,"/info?").concat(r)}},{key:"_closeConnection",value:function(e){He.l("".concat(this._n,"._closeConnection socketID:").concat(this._socketID)),this._socket&&(this._socket.close(e),this._socketID=-1,this._socket=null,this._readyState=yc)}},{key:"_resend",value:function(){var e=this;if(He.l("".concat(this._n,"._resend reConnectFlag:").concat(this._reConnectFlag),"promiseMap.size:".concat(this._promiseMap.size," simpleRequestMap.size:").concat(this._simpleRequestMap.size)),this._promiseMap.size>0&&this._promiseMap.forEach((function(t,n){var o=t.uplinkData,s=t.resolve,a=t.reject;e._promiseMap.set(n,{resolve:s,reject:a,timestamp:Date.now(),uplinkData:o}),e._execute(n,o)})),this._simpleRequestMap.size>0){var t,n=D(this._simpleRequestMap);try{for(n.s();!(t=n.n()).done;){var o=v(t.value,2),s=o[0],a=o[1];this._execute(s,a)}}catch(r){n.e(r)}finally{n.f()}this._simpleRequestMap.clear()}}},{key:"send",value:function(e){var t=this;e.head.seq=this._getSequence(),e.head.reqtime=Math.floor(Date.now()/1e3);e.keyMap;var n=g(e,fc),o=this._getRequestIDFromHead(e.head),s=JSON.stringify(n);return new Promise((function(e,a){(t._promiseMap.set(o,{resolve:e,reject:a,timestamp:Date.now(),uplinkData:s}),He.d("".concat(t._n,".send uplinkData:").concat(JSON.stringify(n)," requestID:").concat(o," readyState:").concat(t._readyState)),t._readyState!==mc)?t._reConnect():(t._execute(o,s),t._channelModule.getModule(so).addRequestCount())}))}},{key:"simplySend",value:function(e){e.head.seq=this._getSequence(),e.head.reqtime=Math.floor(Date.now()/1e3);e.keyMap;var t=g(e,vc),n=this._getRequestIDFromHead(e.head),o=JSON.stringify(t);this._readyState!==mc?(this._simpleRequestMap.size0&&(clearInterval(this._timerForNotLoggedIn),this._timerForNotLoggedIn=-1),this._socketHandler.onCheckTimer(e)):this._socketHandler.onCheckTimer(1),this._checkNextPing())}},{key:"onErrorCodeNotZero",value:function(e){this.getModule(Zn).onErrorCodeNotZero(e)}},{key:"onMessage",value:function(e){this.getModule(Zn).onMessage(e)}},{key:"send",value:function(e){return this._socketHandler?this._previousState!==S.NET_STATE_CONNECTED&&e.head.servcmd.includes(Ws)?(this.reConnect(),this._sendLogViaHTTP(e)):this._socketHandler.send(e):Promise.reject()}},{key:"_sendLogViaHTTP",value:function(e){var t=V.HOST.CURRENT.STAT;return new Promise((function(n,o){var s="".concat(t,"/v4/imopenstat/tim_web_report_v2?sdkappid=").concat(e.head.sdkappid,"&reqtime=").concat(Date.now()),a=JSON.stringify(e.body),r="application/x-www-form-urlencoded;charset=UTF-8";if(ue)le.request({url:s,data:a,method:"POST",timeout:3e3,header:{"content-type":r},success:function(){n()},fail:function(){o(new Ei({code:Lr}))}});else{var i=new XMLHttpRequest,u=setTimeout((function(){i.abort(),o(new Ei({code:Er}))}),3e3);i.onreadystatechange=function(){4===i.readyState&&(clearTimeout(u),200===i.status||304===i.status?n():o(new Ei({code:Lr})))},i.open("POST",s,!0),i.setRequestHeader("Content-type",r),i.send(a)}}))}},{key:"simplySend",value:function(e){return this._socketHandler?this._socketHandler.simplySend(e):Promise.reject()}},{key:"onOpen",value:function(){this._ping()}},{key:"onClose",value:function(){this._socketHandler&&(this._socketHandler.getReconnectFlag()&&this._emitNetStateChangeEvent(S.NET_STATE_DISCONNECTED));this.reConnect()}},{key:"onError",value:function(){ue&&!re&&this.outputWarning("DomainNameInMP"),this._emitNetStateChangeEvent(S.NET_STATE_DISCONNECTED)}},{key:"getKeyMap",value:function(e){return this.getModule(Zn).getKeyMap(e)}},{key:"_onAppHide",value:function(){this._isAppShowing=!1}},{key:"_onAppShow",value:function(){this._isAppShowing=!0}},{key:"onRequestTimeout",value:function(e){}},{key:"onReconnected",value:function(){He.l("".concat(this._n,".onReconnected")),this._m.restartTimer(),this.getModule(Zn).onReconnected(),this._emitNetStateChangeEvent(S.NET_STATE_CONNECTED)}},{key:"onReconnectFailed",value:function(){He.l("".concat(this._n,".onReconnectFailed")),this._emitNetStateChangeEvent(S.NET_STATE_DISCONNECTED)}},{key:"setIsWorkerEnabled",value:function(e){this._socketHandler&&this._socketHandler.setIsWorkerEnabled(!1)}},{key:"offline",value:function(){this._emitNetStateChangeEvent(S.NET_STATE_DISCONNECTED)}},{key:"reConnect",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=!1;this._socketHandler&&(t=this._socketHandler.getReconnectFlag());var n="forcedFlag:".concat(e," fatalErrorFlag:").concat(this._fatalErrorFlag," previousState:").concat(this._previousState," reconnectFlag:").concat(t);if(He.l("".concat(this._n,".reConnect ").concat(n)),!this._fatalErrorFlag&&this._socketHandler){if(!0===e)this._socketHandler.forcedReconnect();else{if(this._previousState===S.NET_STATE_CONNECTING&&t)return;this._socketHandler.forcedReconnect()}this._emitNetStateChangeEvent(S.NET_STATE_CONNECTING)}}},{key:"_emitNetStateChangeEvent",value:function(e){this._previousState!==e&&(He.l("".concat(this._n,"._emitNetStateChangeEvent from ").concat(this._previousState," to ").concat(e)),this._previousState=e,this.emitOuterEvent(k.NET_STATE_CHANGE,{state:e}))}},{key:"_ping",value:function(){var e=this;if(!0!==this._probing){this._probing=!0;var t=this.getModule(Zn).getProtocolData({protocolName:js});this.send(t).then((function(){e._probing=!1})).catch((function(t){if(He.w("".concat(e._n,"._ping failed. error:"),t),e._probing=!1,t&&60002===t.code)return new li("error").setMessage("code:".concat(t.code," message:").concat(t.message)).setNetworkType(e.getModule(Yn).getNetworkType()).end(),e._fatalErrorFlag=!0,void e._emitNetStateChangeEvent(S.NET_STATE_DISCONNECTED);e.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];He.l("".concat(e._n,"._ping failed. probe network, isAppShowing:").concat(e._isAppShowing," online:").concat(o," networkType:").concat(s)),o?e.reConnect():e._emitNetStateChangeEvent(S.NET_STATE_DISCONNECTED)}))}))}}},{key:"_checkNextPing",value:function(){this._socketHandler&&(this._socketHandler.isConnected()&&Date.now()>=this._socketHandler.getNextPingTs()&&this._ping())}},{key:"dealloc",value:function(){this._socketHandler&&(this._socketHandler.close(),this._socketHandler=null),this._timerForNotLoggedIn>-1&&clearInterval(this._timerForNotLoggedIn)}},{key:"onRestApiKickedOut",value:function(){this._socketHandler&&(this._socketHandler.close(),this.reConnect(!0))}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._previousState=S.NET_STATE_CONNECTED,this._probing=!1,this._fatalErrorFlag=!1,this._timerForNotLoggedIn=setInterval(this.onCheckTimer.bind(this),1e3)}}]),n}(po),Tc=["a2","tinyid"],Dc=["a2","tinyid"],kc=function(){function e(t){o(this,e),this._n="ProtocolHandler",this._sessionModule=t,this._configMap=new Map,this._fillConfigMap()}return a(e,[{key:"_fillConfigMap",value:function(){this._configMap.clear();var e=this._sessionModule.genCommonHead(),n=this._sessionModule.genCosSpecifiedHead(),o=this._sessionModule.genSSOReportHead(),s=this._sessionModule.isIntl();this._configMap.set(go,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.LOGIN)}),body:{state:"Online",isWebUniapp:0,deviceBrand:0},keyMap:{request:{deviceBrand:"InstType"},response:{InstId:"instanceID",HelloInterval:"helloInterval"}}}}(e)),this._configMap.set(ho,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.LOGOUT)}),body:{type:0},keyMap:{request:{type:"wslogout_type"}}}}(e)),this._configMap.set(_o,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.HELLO)}),body:{isWebUniapp:0},keyMap:{response:{NewInstInfo:"newInstanceInfo"}}}}(e)),this._configMap.set(fo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.STAT_SERVICE,".").concat(V.CMD.KICK_OTHER)}),body:{}}}(e)),this._configMap.set(Bs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_COS_SIGN,".").concat(V.CMD.COS_SIGN)}),body:{cmd:"open_im_cos_svc",subCmd:"get_cos_token",duration:300,version:2},keyMap:{request:{userSig:"usersig",subCmd:"sub_cmd",cmd:"cmd",duration:"duration",version:"version"},response:{expired_time:"expiredTime",bucket_name:"bucketName",session_token:"sessionToken",tmp_secret_id:"secretId",tmp_secret_key:"secretKey"}}}}(n)),this._configMap.set(Hs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.CUSTOM_UPLOAD,".").concat(V.CMD.COS_PRE_SIG)}),body:{fileType:void 0,fileName:void 0,uploadMethod:0,duration:900},keyMap:{request:{userSig:"usersig",fileType:"file_type",fileName:"file_name",uploadMethod:"upload_method"},response:{expired_time:"expiredTime",request_id:"requestId",head_url:"headUrl",upload_url:"uploadUrl",download_url:"downloadUrl",ci_url:"ciUrl",snapshot_url:"requestSnapshotUrl"}}}}(n)),this._configMap.set(Ks,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.CUSTOM_UPLOAD,".").concat(V.CMD.VIDEO_COVER)}),body:{version:1,platform:void 0,coverName:void 0,requestSnapshotUrl:void 0},keyMap:{request:{version:"version",platform:"platform",coverName:"cover_name",requestSnapshotUrl:"snapshot_url"},response:{error_code:"errorCode",error_msg:"errorInfo",download_url:"snapshotUrl"}}}}(n)),this._configMap.set(ta,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_CONFIG_MANAGER,".").concat(V.CMD.FETCH_COMMERCIAL_CONFIG)}),body:{SDKAppID:0},keyMap:{request:{SDKAppID:"uint32_sdkappid"},response:{int32_error_code:"errorCode",str_error_message:"errorMessage",str_purchase_bits:"purchaseBits",uint32_expired_time:"expiredTime"}}}}(e)),this._configMap.set(na,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_CONFIG_MANAGER,".").concat(V.CMD.PUSHED_COMMERCIAL_CONFIG)}),body:{},keyMap:{response:{int32_error_code:"errorCode",str_error_message:"errorMessage",str_purchase_bits:"purchaseBits",uint32_expired_time:"expiredTime"}}}}(e)),this._configMap.set($s,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_CONFIG_MANAGER,".").concat(V.CMD.FETCH_CLOUD_CONTROL_CONFIG)}),body:{SDKAppID:0,version:0},keyMap:{request:{SDKAppID:"uint32_sdkappid",version:"uint64_version"},response:{int32_error_code:"errorCode",str_error_message:"errorMessage",str_json_config:"cloudControlConfig",uint32_expired_time:"expiredTime",uint32_sdkappid:"SDKAppID",uint64_version:"version"}}}}(e)),this._configMap.set(ea,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_CONFIG_MANAGER,".").concat(V.CMD.PUSHED_CLOUD_CONTROL_CONFIG)}),body:{},keyMap:{response:{int32_error_code:"errorCode",str_error_message:"errorMessage",str_json_config:"cloudControlConfig",uint32_expired_time:"expiredTime",uint32_sdkappid:"SDKAppID",uint64_version:"version"}}}}(e)),this._configMap.set(oa,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OVERLOAD_PUSH,".").concat(V.CMD.OVERLOAD_NOTIFY)}),body:{},keyMap:{response:{OverLoadServCmd:"overloadCommand",DelaySecs:"waitingTime"}}}}(e)),this._configMap.set(vo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.GET_MESSAGES)}),body:{cookie:"",syncFlag:0,needAbstract:1,isOnlineSync:0,needSignaling:1},keyMap:{request:{fromAccount:"From_Account",toAccount:"To_Account",from:"From_Account",to:"To_Account",time:"MsgTimeStamp",sequence:"MsgSeq",random:"MsgRandom",elements:"MsgBody"},response:{MsgList:"messageList",SyncFlag:"syncFlag",To_Account:"to",From_Account:"from",ClientSeq:"clientSequence",MsgSeq:"sequence",NoticeSeq:"noticeSequence",NotifySeq:"notifySequence",MsgRandom:"random",MsgTimeStamp:"time",MsgContent:"content",ToGroupId:"to",MsgKey:"messageKey",GroupTips:"groupTips",MsgBody:"elements",MsgType:"type",C2CRemainingUnreadCount:"C2CRemainingUnreadList",C2CPairUnreadCount:"C2CPairUnreadList"}}}}(e)),s||(this._configMap.set(mo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.BIG_DATA_HALLWAY_AUTH_KEY)}),body:{}}}(e)),this._configMap.set(_a,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_MSG_AUDIT_MGR,".").concat(V.CMD.GET_RPOFANITY_LIST)}),body:{version:0,deviceID:"",startIndex:void 0},keyMap:{request:{version:"uint64_version",deviceID:"str_device_id",startIndex:"uint64_start_index"},response:{msg_cmd_error_code:"errorInfo",str_err_msg:"errorMessage",uint32_code:"errorCode",msg_scene_ctl_config:"filterConfig",uint64_c2c_custom_msg_flag:"c2c_custom_message",uint64_c2c_text_msg_flag:"c2c_text_message",uint64_group_custom_msg_flag:"group_custom_message",uint64_group_text_msg_flag:"group_text_message",uint64_group_info_flag:"group_profile",uint64_group_member_info_flag:"group_member_profile",uint64_relation_chain_flag:"sns",uint64_user_info_flag:"user_profile",rpt_msg_dirty_word:"lexicon",str_dirty_word:"profanity",str_replaced_content:"replacement",uint64_filter_type:"filterType",uint64_id:"id",uint64_word_type:"profanityType",uint64_complete_flag:"completeFlag",uint64_next_start_index:"nextStartIndex",uint64_version:"version",uint64_expired_time:"expiredTime"}}}}(e))),this._configMap.set(Mo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.SEND_MESSAGE)}),body:{fromAccount:"",toAccount:"",msgSeq:0,msgRandom:0,msgBody:[],cloudCustomData:void 0,nick:"",avatar:"",msgLifeTime:void 0,offlinePushInfo:{pushFlag:0,title:"",desc:"",ext:"",apnsInfo:{badgeMode:0,isVoipPush:void 0},androidInfo:{OPPOChannelID:""}},messageControlInfo:void 0,clientTime:void 0,needReadReceipt:0,isSupportExtension:0},keyMap:{request:{fromAccount:"From_Account",toAccount:"To_Account",msgTimeStamp:"MsgTimeStamp",msgSeq:"MsgSeq",msgRandom:"MsgRandom",msgBody:"MsgBody",count:"MaxCnt",lastMessageTime:"LastMsgTime",messageKey:"MsgKey",peerAccount:"Peer_Account",data:"Data",description:"Desc",extension:"Ext",type:"MsgType",content:"MsgContent",sizeType:"Type",uuid:"UUID",url:"",imageUrl:"URL",fileUrl:"Url",remoteAudioUrl:"Url",remoteVideoUrl:"VideoUrl",thumbUUID:"ThumbUUID",videoUUID:"VideoUUID",videoUrl:"",downloadFlag:"Download_Flag",nick:"From_AccountNick",avatar:"From_AccountHeadurl",from:"From_Account",time:"MsgTimeStamp",messageRandom:"MsgRandom",messageSequence:"MsgSeq",elements:"MsgBody",clientSequence:"ClientSeq",payload:"MsgContent",messageList:"MsgList",messageNumber:"MsgNum",abstractList:"AbstractList",messageBody:"MsgBody",needReadReceipt:"IsNeedReadReceipt"}}}}(e)),this._configMap.set(yo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.SEND_GROUP_MESSAGE)}),body:{fromAccount:"",groupID:"",random:0,clientSequence:0,priority:"",msgBody:[],cloudCustomData:void 0,onlineOnlyFlag:0,offlinePushInfo:{pushFlag:0,title:"",desc:"",ext:"",apnsInfo:{badgeMode:0,isVoipPush:void 0},androidInfo:{OPPOChannelID:""}},groupAtInfo:[],messageControlInfo:void 0,clientTime:void 0,needReadReceipt:0,topicID:void 0,receiverList:void 0,isSupportExtension:0},keyMap:{request:{to:"GroupId",extension:"Ext",data:"Data",description:"Desc",random:"Random",sequence:"ReqMsgSeq",count:"ReqMsgNumber",type:"MsgType",priority:"MsgPriority",content:"MsgContent",elements:"MsgBody",sizeType:"Type",uuid:"UUID",url:"",imageUrl:"URL",fileUrl:"Url",remoteAudioUrl:"Url",remoteVideoUrl:"VideoUrl",thumbUUID:"ThumbUUID",videoUUID:"VideoUUID",videoUrl:"",downloadFlag:"Download_Flag",clientSequence:"ClientSeq",from:"From_Account",time:"MsgTimeStamp",messageRandom:"MsgRandom",messageSequence:"MsgSeq",payload:"MsgContent",messageList:"MsgList",messageNumber:"MsgNum",abstractList:"AbstractList",messageBody:"MsgBody",needReadReceipt:"NeedReadReceipt",receiverList:"To_Account"},response:{MsgTime:"time",MsgSeq:"sequence"}}}}(e)),this._configMap.set(So,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.REVOKE_C2C_MESSAGE)}),body:{msgInfo:{fromAccount:"",toAccount:"",msgTimeStamp:0,msgSeq:0,msgRandom:0}},keyMap:{request:{msgInfo:"MsgInfo",msgTimeStamp:"MsgTimeStamp",msgSeq:"MsgSeq",msgRandom:"MsgRandom"}}}}(e)),this._configMap.set(cs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.REVOKE_GROUP_MESSAGE)}),body:{groupID:"",msgSeqList:void 0,topicID:""},keyMap:{request:{msgSeqList:"MsgSeqList",msgSeq:"MsgSeq"}}}}(e)),this._configMap.set(Ro,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.GET_C2C_ROAM_MESSAGES)}),body:{peerAccount:"",count:15,lastMessageTime:0,messageKey:"",withRecalledMessage:1,direction:0},keyMap:{request:{messageKey:"MsgKey",peerAccount:"Peer_Account",count:"MaxCnt",lastMessageTime:"LastMsgTime",withRecalledMessage:"WithRecalledMsg",direction:"GetDirection"},response:{LastMsgTime:"lastMessageTime",IsNeedReadReceipt:"needReadReceipt",IsPeerRead:"readReceiptSentByPeer"}}}}(e)),this._configMap.set(Go,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.MODIFY_C2C_MESSAGE)}),body:{from:"",to:"",sequence:0,random:0,time:0,version:0,elements:void 0,cloudCustomData:void 0},keyMap:{request:{sequence:"MsgSeq",random:"MsgRandom",time:"MsgTime",version:"MsgVersion",type:"MsgType",content:"MsgContent"}}}}(e)),this._configMap.set(ds,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_GROUP_ROAM_MESSAGES)}),body:{withRecalledMsg:1,groupID:"",count:15,sequence:"",topicID:void 0},keyMap:{request:{sequence:"ReqMsgSeq",count:"ReqMsgNumber",withRecalledMessage:"WithRecalledMsg"},response:{Random:"random",MsgTime:"time",MsgSeq:"sequence",ReqMsgSeq:"sequence",RspMsgList:"messageList",IsPlaceMsg:"isPlaceMessage",IsSystemMsg:"isSystemMessage",ToGroupId:"to",EnumFrom_AccountType:"fromAccountType",EnumTo_AccountType:"toAccountType",GroupCode:"groupCode",MsgPriority:"priority",MsgBody:"elements",MsgType:"type",MsgContent:"content",IsFinished:"complete",Download_Flag:"downloadFlag",ClientSeq:"clientSequence",ThumbUUID:"thumbUUID",VideoUUID:"videoUUID",ToTopicId:"topicID",InvisibleMsgSeq:"invisibleSequenceList"}}}}(e)),this._configMap.set(Lo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.SET_C2C_MESSAGE_READ)}),body:{C2CMsgReaded:void 0},keyMap:{request:{lastMessageTime:"LastedMsgTime"}}}}(e)),this._configMap.set(Eo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.SET_C2C_PEER_MUTE_NOTIFICATIONS)}),body:{userIDList:void 0,muteFlag:0},keyMap:{request:{userIDList:"Peer_Account",muteFlag:"Mute_Notifications"}}}}(e)),this._configMap.set(Ao,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.GET_C2C_PEER_MUTE_NOTIFICATIONS)}),body:{updateSequence:0},keyMap:{response:{MuteNotificationsList:"muteFlagList"}}}}(e)),this._configMap.set(ls,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.SET_GROUP_MESSAGE_READ)}),body:{groupID:void 0,messageReadSeq:void 0,topicID:void 0},keyMap:{request:{messageReadSeq:"MsgReadedSeq"}}}}(e)),this._configMap.set(ps,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.SET_ALL_MESSAGE_READ)}),body:{readAllC2CMessage:0,groupMessageReadInfoList:[]},keyMap:{request:{readAllC2CMessage:"C2CReadAllMsg",groupMessageReadInfoList:"GroupReadInfo",messageSequence:"MsgSeq"},response:{C2CReadAllMsg:"readAllC2CMessage",GroupReadInfoArray:"groupMessageReadInfoList"}}}}(e)),this._configMap.set(Oo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.DELETE_C2C_MESSAGE)}),body:{fromAccount:"",to:"",keyList:void 0},keyMap:{request:{keyList:"MsgKeyList"}}}}(e)),this._configMap.set(Cs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.DELETE_GROUP_MESSAGE)}),body:{groupID:"",deleter:"",keyList:void 0,topicID:void 0},keyMap:{request:{deleter:"Deleter_Account",keyList:"Seqs"}}}}(e)),this._configMap.set(fa,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_TRANSLATE,".").concat(V.CMD.TRANSLATE_TEXT)}),body:{sourceTextList:void 0,SDKAppID:0,from:0,source:"",target:""},keyMap:{request:{sourceTextList:"SourceText",SDKAppID:"SdkAppId",from:"FromAccount"},response:{TargetText:"translatedTextList",RequestId:"requestID",CmdErrorCode:"error",ErrorCode:"code",ErrorInfo:"message"}}}}(e)),this._configMap.set(Ts,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.MODIFY_GROUP_MESSAGE)}),body:{groupID:"",topicID:void 0,sequence:0,version:0,elements:void 0,cloudCustomData:void 0},keyMap:{request:{sequence:"MsgSeq",version:"MsgVersion",type:"MsgType",content:"MsgContent"}}}}(e)),this._configMap.set(gs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_READ_RECEIPT)}),body:{groupID:"",sequenceList:void 0},keyMap:{request:{sequence:"MsgSeq"}}}}(e)),this._configMap.set(_s,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.SEND_C2C_READ_RECEIPT)}),body:{peerAccount:"",messageInfoList:void 0},keyMap:{request:{peerAccount:"Peer_Account",messageInfoList:"C2CMsgInfo",fromAccount:"From_Account",toAccount:"To_Account",sequence:"MsgSeq",random:"MsgRandom",time:"MsgTime",clientTime:"MsgClientTime"}}}}(e)),this._configMap.set(hs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.SEND_READ_RECEIPT)}),body:{groupID:"",sequenceList:void 0},keyMap:{request:{sequenceList:"MsgSeqList",sequence:"MsgSeq"}}}}(e)),this._configMap.set(fs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_READ_RECEIPT_DETAIL)}),body:{groupID:"",sequence:void 0,flag:0,cursor:0,count:0},keyMap:{request:{sequence:"MsgSeq",count:"Num"},response:{ReadList:"readUserIDList",Read_Account:"userID",UnreadList:"unreadUserIDList",Unread_Account:"userID",IsFinish:"isCompleted"}}}}(e)),this._configMap.set(Po,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM_MSG_EXT,".").concat(V.CMD.MODIFY_C2C_MESSAGE_EXTENSIONS)}),body:{from:void 0,to:void 0,messageKey:void 0,operateType:void 0,extensionList:void 0}}}(e)),this._configMap.set(Uo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM_MSG_EXT,".").concat(V.CMD.GET_C2C_MESSAGE_EXTENSIONS)}),body:{from:void 0,to:void 0,messageKey:void 0,startSequence:void 0}}}(e)),this._configMap.set(As,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM_MSG_EXT,".").concat(V.CMD.MODIFY_GROUP_MESSAGE_EXTENSIONS)}),body:{groupID:void 0,topicID:void 0,messageSequence:void 0,operateType:void 0,extensionList:void 0}}}(e)),this._configMap.set(Rs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM_MSG_EXT,".").concat(V.CMD.GET_GROUP_MESSAGE_EXTENSIONS)}),body:{groupID:void 0,topicID:void 0,messageSequence:void 0,startSequence:void 0}}}(e)),this._configMap.set(No,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.GET_PEER_READ_TIME)}),body:{userIDList:void 0},keyMap:{request:{userIDList:"To_Account"},response:{ReadTime:"peerReadTimeList"}}}}(e)),this._configMap.set(wo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.GET_CONVERSATION_LIST)}),body:{fromAccount:void 0,count:0},keyMap:{request:{},response:{SessionItem:"conversations",ToAccount:"groupID",To_Account:"userID",UnreadMsgCount:"unreadCount",MsgGroupReadedSeq:"messageReadSeq",C2cPeerReadTime:"c2cPeerReadTime"}}}}(e)),this._configMap.set(bo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.PAGING_GET_CONVERSATION_LIST)}),body:{fromAccount:void 0,timeStamp:void 0,startIndex:void 0,pinnedTimeStamp:void 0,pinnedStartIndex:void 0,orderType:void 0,messageAssistFlag:4,assistFlag:15},keyMap:{request:{messageAssistFlag:"MsgAssistFlags",assistFlag:"AssistFlags",pinnedTimeStamp:"TopTimeStamp",pinnedStartIndex:"TopStartIndex"},response:{SessionItem:"conversations",ToAccount:"groupID",To_Account:"userID",UnreadMsgCount:"unreadCount",MsgGroupReadedSeq:"messageReadSeq",C2cPeerReadTime:"c2cPeerReadTime",LastMsgFlags:"lastMessageFlag",TopFlags:"isPinned",TopTimeStamp:"pinnedTimeStamp",TopStartIndex:"pinnedStartIndex",GroupId:"convGroupID"}}}}(e)),this._configMap.set(qo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.DELETE_CONVERSATION)}),body:{fromAccount:"",conversationList:void 0,clearHistoryMessage:void 0},keyMap:{request:{toGroupID:"ToGroupid",clearHistoryMessage:"ClearRamble",conversationList:"ContactItem"},response:{ResultItem:"resultList",ToGroupid:"toGroupID",ResultCode:"code",ResultInfo:"info"}}}}(e)),this._configMap.set(Fo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.CLEAR_HISTORY_MESSAGE)}),body:{fromAccount:"",toAccount:void 0,type:1,toGroupID:void 0},keyMap:{request:{toGroupID:"ToGroupid"}}}}(e)),this._configMap.set(xo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.PIN_CONVERSATION)}),body:{fromAccount:"",operationType:1,itemList:void 0},keyMap:{request:{itemList:"RecentContactItem"}}}}(e)),this._configMap.set(Vo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.DELETE_GROUP_AT_TIPS)}),body:{messageListToDelete:void 0},keyMap:{request:{messageListToDelete:"DelMsgList",messageSeq:"MsgSeq",messageRandom:"MsgRandom"}}}}(e)),this._configMap.set(Bo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.MARK_CONVERSATION)}),body:{fromAccount:"",itemList:void 0},keyMap:{request:{itemList:"MarkItem",operationType:"OptType",groupID:"ToGroupId"},response:{ToGroupId:"groupID",OptType:"operationType"}}}}(e)),this._configMap.set(Ho,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.MARK_CONVERSATION)}),body:{fromAccount:"",itemList:void 0},keyMap:{request:{itemList:"MarkItem",operationType:"OptType",groupID:"ToGroupId"},response:{ToGroupId:"groupID",OptType:"operationType"}}}}(e)),this._configMap.set(Ko,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.CREATE_CONVERSATION_GROUP)}),body:{fromAccount:"",itemList:void 0},keyMap:{request:{itemList:"GroupContactItem",groupID:"ToGroupId"},response:{GroupId:"convGroupID",ToGroupId:"groupID",OptType:"operationType"}}}}(e)),this._configMap.set(Wo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.DELETE_CONVERSATION_GROUP)}),body:{fromAccount:"",groupName:void 0},keyMap:{request:{},response:{GroupId:"convGroupID"}}}}(e)),this._configMap.set(jo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.UPDATE_CONVERSATION_GROUP)}),body:{fromAccount:"",updateType:void 0,updateGroup:void 0},keyMap:{request:{oldName:"OldGroupName",newName:"NewGroupName",groupID:"ToGroupId",operationType:"ContactOptType",groupName:"OldGroupName",updateItem:"ContactUpdateItem"},response:{ContactOptType:"operationType",ToGroupId:"groupID",GroupId:"convGroupID"}}}}(e)),this._configMap.set(Yo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.UPDATE_CONVERSATION_GROUP)}),body:{fromAccount:"",updateType:void 0,updateGroup:{groupName:void 0,updateGroupType:void 0,updateItem:void 0}},keyMap:{request:{},response:{}}}}(e)),this._configMap.set(zo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.UPDATE_CONVERSATION_GROUP)}),body:{fromAccount:"",updateType:void 0,updateGroup:void 0},keyMap:{request:{},response:{}}}}(e)),this._configMap.set(Jo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.GET_CONVERSATION_GROUP_LIST)}),body:{fromAccount:"",startTime:void 0,startIndex:void 0},keyMap:{request:{},response:{GroupId:"convGroupID",ToGroupId:"groupID",OptType:"operationType",CustomMark:"customData",ContactGroupId:"convGroupIDList"}}}}(e)),this._configMap.set(Io,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.PROFILE,".").concat(V.CMD.PORTRAIT_GET)}),body:{fromAccount:"",userItem:[]},keyMap:{request:{toAccount:"To_Account",standardSequence:"StandardSequence",customSequence:"CustomSequence"}}}}(e)),this._configMap.set(Co,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.PROFILE,".").concat(V.CMD.PORTRAIT_SET)}),body:{fromAccount:"",profileItem:[{tag:We.NICK,value:""},{tag:We.GENDER,value:""},{tag:We.ALLOWTYPE,value:""},{tag:We.AVATAR,value:""}]},keyMap:{request:{toAccount:"To_Account",standardSequence:"StandardSequence",customSequence:"CustomSequence"}}}}(e)),this._configMap.set(To,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.FRIEND,".").concat(V.CMD.GET_BLACKLIST)}),body:{fromAccount:"",startIndex:0,maxLimited:30,lastSequence:0},keyMap:{response:{CurruentSequence:"currentSequence"}}}}(e)),this._configMap.set(Do,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.FRIEND,".").concat(V.CMD.ADD_BLACKLIST)}),body:{fromAccount:"",toAccount:[]}}}(e)),this._configMap.set(ko,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.FRIEND,".").concat(V.CMD.DELETE_BLACKLIST)}),body:{fromAccount:"",toAccount:[]}}}(e)),this._configMap.set(ua,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.SET_SELF_STATUS)}),body:{customStatus:""},keyMap:{}}}(e)),this._configMap.set(ca,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.GET_USER_STATUS)}),body:{userIDList:void 0},keyMap:{response:{UserStatusList:"successUserList",ErrorList:"failureUserList",To_Account:"userID",Invalid_Account:"invalidUserID",Status:"statusType"}}}}(e)),this._configMap.set(la,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.SUBSCRIBE_USER_STATUS)}),body:{userIDList:void 0},keyMap:{response:{ErrorList:"failureUserList",To_Account:"userID",Invalid_Account:"invalidUserID"}}}}(e)),this._configMap.set(pa,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.UNSUBSCRIBE_USER_STATUS)}),body:{userIDList:void 0,unsubscribeAll:void 0},keyMap:{response:{ErrorList:"failureUserList",To_Account:"userID",Invalid_Account:"invalidUserID"}}}}(e)),this._configMap.set(Xo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_JOINED_GROUPS)}),body:{memberAccount:"",limit:void 0,offset:void 0,groupType:void 0,responseFilter:{groupBaseInfoFilter:void 0,selfInfoFilter:void 0},isSupportTopic:0},keyMap:{request:{memberAccount:"Member_Account"},response:{GroupIdList:"groups",NoUnreadSeqList:"excludedUnreadSequenceList",MsgSeq:"readedSequence",LastRecallTime:"_lastRevokedTime"}}}}(e)),this._configMap.set(Qo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_GROUP_INFO)}),body:{groupIDList:void 0,responseFilter:{groupBaseInfoFilter:["Type","Name","Introduction","Notification","FaceUrl","Owner_Account","CreateTime","InfoSeq","LastInfoTime","LastMsgTime","MemberNum","MaxMemberNum","ApplyJoinOption","NextMsgSeq","ShutUpAllMember"],groupCustomFieldFilter:void 0,memberInfoFilter:void 0,memberCustomFieldFilter:void 0}},keyMap:{request:{groupIDList:"GroupIdList",groupCustomField:"AppDefinedData",memberCustomField:"AppMemberDefinedData",groupCustomFieldFilter:"AppDefinedDataFilter_Group",memberCustomFieldFilter:"AppDefinedDataFilter_GroupMember"},response:{GroupIdList:"groups",AppDefinedData:"groupCustomField",AppMemberDefinedData:"memberCustomField",AppDefinedDataFilter_Group:"groupCustomFieldFilter",AppDefinedDataFilter_GroupMember:"memberCustomFieldFilter",InfoSeq:"infoSequence",MemberList:"members",GroupInfo:"groups",ShutUpUntil:"muteUntil",ShutUpAllMember:"muteAllMembers"}}}}(e)),this._configMap.set(Zo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.CREATE_GROUP)}),body:{type:void 0,name:void 0,groupID:void 0,ownerID:void 0,introduction:void 0,notification:void 0,maxMemberNum:void 0,joinOption:void 0,memberList:void 0,groupCustomField:void 0,memberCustomField:void 0,webPushFlag:1,avatar:"",isSupportTopic:void 0,inviteOption:void 0},keyMap:{request:{ownerID:"Owner_Account",userID:"Member_Account",avatar:"FaceUrl",maxMemberNum:"MaxMemberCount",joinOption:"ApplyJoinOption",groupCustomField:"AppDefinedData",memberCustomField:"AppMemberDefinedData",inviteOption:"InviteJoinOption"},response:{HugeGroupFlag:"avChatRoomFlag",OverJoinedGroupLimit_Account:"overLimitUserIDList"}}}}(e)),this._configMap.set($o,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.DESTROY_GROUP)}),body:{groupID:void 0}}}(e)),this._configMap.set(es,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.MODIFY_GROUP_INFO)}),body:{groupID:void 0,name:void 0,introduction:void 0,notification:void 0,avatar:void 0,joinOption:void 0,groupCustomField:void 0,muteAllMembers:void 0,inviteOption:void 0},keyMap:{request:{groupCustomField:"AppDefinedData",muteAllMembers:"ShutUpAllMember",joinOption:"ApplyJoinOption",avatar:"FaceUrl",inviteOption:"InviteJoinOption"},response:{AppDefinedData:"groupCustomField",ShutUpAllMember:"muteAllMembers"}}}}(e)),this._configMap.set(ts,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.APPLY_JOIN_GROUP)}),body:{groupID:void 0,applyMessage:void 0,userDefinedField:void 0,webPushFlag:1,historyMessageFlag:void 0},keyMap:{request:{applyMessage:"ApplyMsg",historyMessageFlag:"HugeGroupHistoryMsgFlag"},response:{HugeGroupFlag:"avChatRoomFlag",AVChatRoomKey:"avChatRoomKey",RspMsgList:"messageList",ToGroupId:"to"}}}}(e)),this._configMap.set(ns,function(e){e.a2,e.tinyid;return{head:t(t({},g(e,Tc)),{},{servcmd:"".concat(V.NAME.BIG_GROUP_NO_AUTH,".").concat(V.CMD.APPLY_JOIN_GROUP)}),body:{groupID:void 0,applyMessage:void 0,userDefinedField:void 0,webPushFlag:1},keyMap:{request:{applyMessage:"ApplyMsg"},response:{HugeGroupFlag:"avChatRoomFlag"}}}}(e)),this._configMap.set(os,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.QUIT_GROUP)}),body:{groupID:void 0}}}(e)),this._configMap.set(ss,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.SEARCH_GROUP_BY_ID)}),body:{groupIDList:void 0,responseFilter:{groupBasePublicInfoFilter:["Type","Name","Introduction","Notification","FaceUrl","CreateTime","Owner_Account","LastInfoTime","LastMsgTime","NextMsgSeq","MemberNum","MaxMemberNum","ApplyJoinOption","InviteJoinOption"]}},keyMap:{response:{}}}}(e)),this._configMap.set(as,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.CHANGE_GROUP_OWNER)}),body:{groupID:void 0,newOwnerID:void 0},keyMap:{request:{newOwnerID:"NewOwner_Account"}}}}(e)),this._configMap.set(rs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.HANDLE_APPLY_JOIN_GROUP)}),body:{groupID:void 0,applicant:void 0,handleAction:void 0,handleMessage:void 0,authentication:void 0,messageKey:void 0,userDefinedField:void 0},keyMap:{request:{applicant:"Applicant_Account",handleAction:"HandleMsg",handleMessage:"ApprovalMsg",messageKey:"MsgKey"}}}}(e)),this._configMap.set(is,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.HANDLE_INVITE_JOIN_GROUP)}),body:{groupID:void 0,applicant:void 0,invitee:void 0,handleAction:void 0,handleMessage:void 0,authentication:void 0,userDefinedField:void 0},keyMap:{request:{applicant:"Applicant_Account",invitee:"Invited_Account",handleAction:"HandleMsg",handleMessage:"ApprovalMsg"}}}}(e)),this._configMap.set(us,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.HANDLE_GROUP_INVITATION)}),body:{groupID:void 0,inviter:void 0,handleAction:void 0,handleMessage:void 0,authentication:void 0,messageKey:void 0,userDefinedField:void 0},keyMap:{request:{inviter:"Inviter_Account",handleAction:"HandleMsg",handleMessage:"ApprovalMsg",messageKey:"MsgKey"}}}}(e)),this._configMap.set(vs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_GROUP_APPLICATION)}),body:{startTime:void 0,limit:void 0,handleAccount:void 0},keyMap:{request:{handleAccount:"Handle_Account"},response:{To_Account:"userID"}}}}(e)),this._configMap.set(ms,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.DELETE_GROUP_SYSTEM_MESSAGE)}),body:{messageListToDelete:void 0},keyMap:{request:{messageListToDelete:"DelMsgList",messageSeq:"MsgSeq",messageRandom:"MsgRandom"}}}}(e)),this._configMap.set(Ms,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.BIG_GROUP_LONG_POLLING,".").concat(V.CMD.AVCHATROOM_LONG_POLL)}),body:{USP:1,startSeq:1,startBroadcastSeq:void 0,holdTime:90,key:void 0,simplifiedMessage:void 0},keyMap:{request:{USP:"USP"},response:{ToGroupId:"groupID",RspBroadcastMsgList:"broadcastMessageList",IsSystemMsg:"isSystemMessage"}}}}(e)),this._configMap.set(ys,function(e){e.a2,e.tinyid;return{head:t(t({},g(e,Dc)),{},{servcmd:"".concat(V.NAME.BIG_GROUP_LONG_POLLING_NO_AUTH,".").concat(V.CMD.AVCHATROOM_LONG_POLL)}),body:{USP:1,startSeq:1,holdTime:90,key:void 0,simplifiedMessage:void 0},keyMap:{request:{USP:"USP"},response:{ToGroupId:"groupID",RspBroadcastMsgList:"broadcastMessageList",IsSystemMsg:"isSystemMessage"}}}}(e)),this._configMap.set(Is,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_ONLINE_MEMBER_NUM)}),body:{groupID:void 0}}}(e)),this._configMap.set(Ds,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.SET_GROUP_ATTRIBUTES)}),body:{groupID:void 0,groupAttributeList:void 0,mainSequence:void 0,avChatRoomKey:void 0,attributeControl:["RaceConflict"]},keyMap:{request:{key:"key",value:"value"}}}}(e)),this._configMap.set(ks,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.MODIFY_GROUP_ATTRIBUTES)}),body:{groupID:void 0,groupAttributeList:void 0,mainSequence:void 0,avChatRoomKey:void 0,attributeControl:["RaceConflict"]},keyMap:{request:{key:"key",value:"value"}}}}(e)),this._configMap.set(Ss,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.DELETE_GROUP_ATTRIBUTES)}),body:{groupID:void 0,groupAttributeList:void 0,mainSequence:void 0,avChatRoomKey:void 0,attributeControl:["RaceConflict"]},keyMap:{request:{key:"key"}}}}(e)),this._configMap.set(Ls,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.CLEAR_GROUP_ATTRIBUTES)}),body:{groupID:void 0,mainSequence:void 0,avChatRoomKey:void 0,attributeControl:["RaceConflict"]}}}(e)),this._configMap.set(Es,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP_ATTR,".").concat(V.CMD.GET_GROUP_ATTRIBUTES)}),body:{groupID:void 0,avChatRoomKey:void 0,groupType:1},keyMap:{request:{avChatRoomKey:"Key",groupType:"GroupType"}}}}(e)),this._configMap.set(Ns,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_GROUP_NOTIFY)}),body:{notifyType:1,groupID:"",beginTime:0,endTime:0,limit:20},keyMap:{request:{},response:{NextMsgTime:"nextRevokedTime",NotifyMsgList:"notifyList"}}}}(e)),this._configMap.set(Os,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.UPDATE_GROUP_COUNTER)}),body:{groupID:void 0,counterList:void 0,avChatRoomKey:void 0,mode:void 0},keyMap:{request:{counterList:"GroupCounter"}}}}(e)),this._configMap.set(Gs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_GROUP_COUNTER)}),body:{groupID:void 0,keyList:[],avChatRoomKey:void 0},keyMap:{request:{keyList:"GroupCounterKeys"}}}}(e)),this._configMap.set(sa,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP_COMMUNITY,".").concat(V.CMD.CREATE_TOPIC)}),body:{groupID:void 0,topicName:void 0,avatar:void 0,customData:void 0,topicID:void 0,notification:void 0,introduction:void 0},keyMap:{request:{avatar:"FaceUrl"}}}}(e)),this._configMap.set(aa,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP_COMMUNITY,".").concat(V.CMD.DELETE_TOPIC)}),body:{groupID:void 0,topicIDList:void 0},keyMap:{request:{topicIDList:"TopicIdList"},response:{DestroyResultItem:"resultList"}}}}(e)),this._configMap.set(ra,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP_COMMUNITY,".").concat(V.CMD.UPDATE_TOPIC_PROFILE)}),body:{groupID:void 0,topicID:void 0,avatar:void 0,customData:void 0,notification:void 0,introduction:void 0,muteAllMembers:void 0,topicName:void 0},keyMap:{request:{avatar:"FaceUrl",muteAllMembers:"ShutUpAllMember"}}}}(e)),this._configMap.set(ia,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP_COMMUNITY,".").concat(V.CMD.GET_TOPIC_LIST)}),body:{groupID:void 0,topicIDList:void 0,MemberInfoFilter:["NoUnreadSeqList"]},keyMap:{request:{topicIDList:"TopicIdList"},response:{TopicAndSelfInfo:"topicInfoList",TopicInfo:"topic",GroupID:"groupID",ShutUpTime:"muteTime",ShutUpAllFlag:"muteAllMembers",LastMsgTime:"lastMessageTime",MsgSeq:"readedSequence",LastMsgSeq:"sequence",NoUnreadSeqList:"excludedUnreadSequenceList"}}}}(e)),this._configMap.set(Ps,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_GROUP_MEMBER_LIST)}),body:{groupID:void 0,limit:0,offset:void 0,next:void 0,memberRoleFilter:void 0,memberInfoFilter:["Role","NameCard","ShutUpUntil","JoinTime"],memberCustomFieldFilter:void 0},keyMap:{request:{memberCustomFieldFilter:"AppDefinedDataFilter_GroupMember"},response:{AppMemberDefinedData:"memberCustomField",AppDefinedDataFilter_GroupMember:"memberCustomFieldFilter",MemberList:"members",ShutUpUntil:"muteUntil"}}}}(e)),this._configMap.set(Us,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP_AVCHATROOM,".").concat(V.CMD.GET_AVCHATROOM_MEMBER_LIST)}),body:{groupID:void 0,offset:void 0,filter:void 0},keyMap:{request:{offset:"Timestamp",filter:"Mark"},response:{NextTimestamp:"offset"}}}}(e)),this._configMap.set(bs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_GROUP_MEMBER_INFO)}),body:{groupID:void 0,userIDList:void 0,memberInfoFilter:void 0,memberCustomFieldFilter:void 0},keyMap:{request:{userIDList:"Member_List_Account",memberCustomFieldFilter:"AppDefinedDataFilter_GroupMember"},response:{MemberList:"members",ShutUpUntil:"muteUntil",AppDefinedDataFilter_GroupMember:"memberCustomFieldFilter",AppMemberDefinedData:"memberCustomField"}}}}(e)),this._configMap.set(ws,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.ADD_GROUP_MEMBER)}),body:{groupID:void 0,silence:void 0,userIDList:void 0},keyMap:{request:{userID:"Member_Account",userIDList:"MemberList"},response:{MemberList:"members"}}}}(e)),this._configMap.set(qs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.DELETE_GROUP_MEMBER)}),body:{groupID:void 0,userIDList:void 0,reason:void 0},keyMap:{request:{userIDList:"MemberToDel_Account"}}}}(e)),this._configMap.set(Fs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.BAN_AVCHATROOM_MEMBER)}),body:{groupID:void 0,userIDList:void 0,duration:void 0,reason:""},keyMap:{request:{userIDList:"Members_Account",duration:"Duration",reason:"Description"}}}}(e)),this._configMap.set(xs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.MODIFY_GROUP_MEMBER_INFO)}),body:{groupID:void 0,topicID:void 0,userID:void 0,messageRemindType:void 0,nameCard:void 0,role:void 0,memberCustomField:void 0,muteTime:void 0},keyMap:{request:{userID:"Member_Account",memberCustomField:"AppMemberDefinedData",muteTime:"ShutUpTime",messageRemindType:"MsgFlag"}}}}(e)),this._configMap.set(Vs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP_AVCHATROOM,".").concat(V.CMD.MARK_AVCHATROOM_MEMBER_INFO)}),body:{groupID:void 0,operationType:1,memberList:[]},keyMap:{request:{operationType:"CommandType",memberList:"MemberList",markType:"Marks",userID:"Member_Account"},response:{CommandType:"operationType",Marks:"markType",Member_Account:"userID"}}}}(e)),this._configMap.set(Ws,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STAT,".").concat(V.CMD.TIM_WEB_REPORT_V2)}),body:{header:{},event:[],quality:[]},keyMap:{request:{SDKType:"sdk_type",SDKVersion:"sdk_version",deviceType:"device_type",platform:"platform",instanceID:"instance_id",traceID:"trace_id",SDKAppID:"sdk_app_id",userID:"user_id",tinyID:"tiny_id",extension:"extension",timestamp:"timestamp",networkType:"network_type",eventType:"event_type",code:"error_code",message:"error_message",moreMessage:"more_message",duplicate:"duplicate",costTime:"cost_time",level:"level",qualityType:"quality_type",reportIndex:"report_index",wholePeriod:"whole_period",totalCount:"total_count",rttCount:"success_count_business",successRateOfRequest:"percent_business",countLessThan1Second:"success_count_business",percentOfCountLessThan1Second:"percent_business",countLessThan3Second:"success_count_platform",percentOfCountLessThan3Second:"percent_platform",successCountOfBusiness:"success_count_business",successRateOfBusiness:"percent_business",successCountOfPlatform:"success_count_platform",successRateOfPlatform:"percent_platform",successCountOfMessageReceived:"success_count_business",successRateOfMessageReceived:"percent_business",avgRTT:"average_value",avgDelay:"average_value",avgValue:"average_value",uiPlatform:"ui_platform"}}}}(o)),this._configMap.set(js,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.HEARTBEAT,".").concat(V.CMD.ALIVE)}),body:{}}}(e)),this._configMap.set(Ys,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_PUSH,".").concat(V.CMD.MESSAGE_PUSH)}),body:{},keyMap:{response:{C2cMsgArray:"C2CMessageArray",GroupMsgArray:"groupMessageArray",GroupTips:"groupTips",C2cNotifyMsgArray:"C2CNotifyMessageArray",C2cMsgInfo:"C2CReadReceiptArray",ClientSeq:"clientSequence",MsgPriority:"priority",NoticeSeq:"noticeSequence",MsgContent:"content",MsgType:"type",MsgBody:"elements",ToGroupId:"to",Desc:"description",Ext:"extension",IsSyncMsg:"isSyncMessage",Flag:"needSync",NeedAck:"needAck",PendencyAdd_Account:"userID",ProfileImNick:"nick",PendencyType:"applicationType",C2CReadAllMsg:"readAllC2CMessage",IsNeedReadReceipt:"needReadReceipt",Status:"statusType"}}}}(e)),this._configMap.set(zs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_PUSH,".").concat(V.CMD.MULTI_MESSAGE_PUSH)}),body:{},keyMap:{response:{GroupMsgArray:"groupMessageArray",GroupTips:"groupTips",ClientSeq:"clientSequence",MsgPriority:"priority",NoticeSeq:"noticeSequence",MsgContent:"content",MsgType:"type",MsgBody:"elements",ToGroupId:"to",Desc:"description",Ext:"extension",IsSyncMsg:"isSyncMessage",Flag:"needSync",NeedAck:"needAck",PendencyType:"applicationType"}}}}(e)),this._configMap.set(Js,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.MESSAGE_PUSH_ACK)}),body:{sessionData:void 0},keyMap:{request:{sessionData:"SessionData"}}}}(e)),this._configMap.set(Xs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.STATUS_FORCE_OFFLINE)}),body:{},keyMap:{response:{C2cNotifyMsgArray:"C2CNotifyMessageArray",NoticeSeq:"noticeSequence",KickoutMsgNotify:"kickoutMsgNotify",NewInstInfo:"newInstanceInfo"}}}}(e)),this._configMap.set(Zs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_LONG_MESSAGE,".").concat(V.CMD.DOWNLOAD_MERGER_MESSAGE)}),body:{downloadKey:""},keyMap:{response:{Data:"data",Desc:"description",Ext:"extension",Download_Flag:"downloadFlag",ThumbUUID:"thumbUUID",VideoUUID:"videoUUID"}}}}(e)),this._configMap.set(Qs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_LONG_MESSAGE,".").concat(V.CMD.UPLOAD_MERGER_MESSAGE)}),body:{messageList:[]},keyMap:{request:{fromAccount:"From_Account",toAccount:"To_Account",msgTimeStamp:"MsgTimeStamp",msgSeq:"MsgSeq",msgRandom:"MsgRandom",msgBody:"MsgBody",type:"MsgType",content:"MsgContent",data:"Data",description:"Desc",extension:"Ext",sizeType:"Type",uuid:"UUID",url:"",imageUrl:"URL",fileUrl:"Url",remoteAudioUrl:"Url",remoteVideoUrl:"VideoUrl",thumbUUID:"ThumbUUID",videoUUID:"VideoUUID",videoUrl:"",downloadFlag:"Download_Flag",from:"From_Account",time:"MsgTimeStamp",messageRandom:"MsgRandom",messageSequence:"MsgSeq",elements:"MsgBody",clientSequence:"ClientSeq",payload:"MsgContent",messageList:"MsgList",messageNumber:"MsgNum",abstractList:"AbstractList",messageBody:"MsgBody"}}}}(e)),this._configMap.set(ha,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.SET_TOKEN)}),body:{tokenID:"",pushMsg:0,sdkAppID:0,businessID:"",deviceBrand:"",deviceToken:"",isTpns:0,isWebUniapp:0},keyMap:{request:{tokenID:"TokenID",pushMsg:"PushMsg",sdkAppID:"EnterVersion",businessID:"BusiID",deviceBrand:"InstType",deviceToken:"VarToken",isTpns:"IsTpns"}}}}(e)),this._configMap.set(ga,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.STAT_FOREGROUND)}),body:{isWebUniapp:0}}}(e)),this._configMap.set(da,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.STAT_BACKGROUND)}),body:{C2CUnread:0,GroupUnread:0,isWebUniapp:0},keyMap:{request:{c2cUnreadCount:"C2cUnread",groupUnreadCount:"GrpUnread"}}}}(e))}},{key:"has",value:function(e){return this._configMap.has(e)}},{key:"get",value:function(e){return this._configMap.get(e)}},{key:"update",value:function(){this._fillConfigMap()}},{key:"getKeyMap",value:function(e){return this.has(e)?this.get(e).keyMap||{}:(He.w("".concat(this._n,".getKeyMap unknown protocolName:").concat(e)),{})}},{key:"getProtocolData",value:function(e){var t=e.protocolName,n=e.requestData,o=this.get(t),s=null;if(n){var a=this._simpleDeepCopy(o),r=this._updateService(n,a),i=r.body,u=Object.create(null);for(var c in i)if(Object.prototype.hasOwnProperty.call(i,c)){if(u[c]=i[c],void 0===n[c])continue;u[c]=n[c]}r.body=u,s=this._getUplinkData(r)}else s=this._getUplinkData(o);return s}},{key:"_getUplinkData",value:function(e){var t=this._requestDataCleaner(e),n=xt(t.head),o=ic(t.body,this._getRequestKeyMap(n));return t.body=o,t}},{key:"_updateService",value:function(e,t){var n=xt(t.head);if(this._isFromGroupRequest(t)){var o=e.type,s=e.groupID,a=void 0===s?void 0:s,r=e.groupIDList,i=void 0===r?[]:r;ut(a)&&(a=i[0]||""),Et({type:o,groupID:a})&&(t.head.servcmd="".concat(V.NAME.GROUP_COMMUNITY,".").concat(n))}return t}},{key:"_isFromGroupRequest",value:function(e){return e.head.servcmd.includes(V.NAME.GROUP)||e.head.servcmd.includes(V.NAME.GROUP_ATTR)}},{key:"_getRequestKeyMap",value:function(e){var n=this.getKeyMap(e);return t(t({},sc.request),n.request)}},{key:"_requestDataCleaner",value:function(e){var t=Array.isArray(e)?[]:Object.create(null);for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&>(o)&&null!==e[o]&&void 0!==e[o]&&("object"!==n(e[o])?t[o]=e[o]:t[o]=this._requestDataCleaner.bind(this)(e[o]));return t}},{key:"_simpleDeepCopy",value:function(e){for(var t,n=Object.keys(e),o={},s=0,a=n.length;s1e3*s)return this._commandRequestInfoMap.set(t,{startTime:Date.now(),requestCount:1}),!1;i+=1,this._commandRequestInfoMap.set(t,{startTime:r,requestCount:i});var u=!1;return i>o&&(u=!0),u}},{key:"_isServerOverload",value:function(e){if(!this._serverOverloadInfoMap.has(e))return!1;var t=this._serverOverloadInfoMap.get(e),n=t.overloadTime,o=t.waitingTime,s=!1;return Date.now()-n<=1e3*o?s=!0:(this._serverOverloadInfoMap.delete(e),s=!1),s}},{key:"onPushedServerOverload",value:function(e){var t=e.overloadCommand,n=e.waitingTime;this._serverOverloadInfoMap.set(t,{overloadTime:Date.now(),waitingTime:n}),He.w("".concat(this._n,".onPushedServerOverload waitingTime:").concat(n,"s"))}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._updateCommandFrequencyLimitMap(Ec),this._commandRequestInfoMap.clear(),this._serverOverloadInfoMap.clear()}}]),s}(po),Rc=function(e){i(n,e);var t=f(n);function n(e){var s;return o(this,n),(s=t.call(this,e))._n="MessageLossDetectionModule",s._maybeLostSequencesMap=new Map,s._firstRoundRet=[],s}return a(n,[{key:"onMessageMaybeLost",value:function(e,t,n){this._maybeLostSequencesMap.has(e)||this._maybeLostSequencesMap.set(e,[]);for(var o=this._maybeLostSequencesMap.get(e),s=0;s=this._expiredTime}},{key:"fetchConfig",value:function(){var e=this,t=this._canFetchConfig();if(He.l("".concat(this._n,".fetchConfig canFetchConfig:").concat(t)),t){var n=new li("fetchCloudControlConfig"),o=this.getModule(Kn).getSDKAppID();this._isFetching=!0,this.request({protocolName:$s,requestData:{SDKAppID:o,version:this._version}}).then((function(t){e._isFetching=!1,n.setMessage("version:".concat(e._version," newVersion:").concat(t.data.version," config:").concat(t.data.cloudControlConfig)).setNetworkType(e.getNetworkType()).end(),He.l("".concat(e._n,".fetchConfig ok")),e._parseCloudControlConfig(t.data)})).catch((function(t){e._isFetching=!1,e.probeNetwork().then((function(e){var o=v(e,2),s=o[0],a=o[1];n.setError(t,s,a).end()})),He.l("".concat(e._n,".fetchConfig failed. error:"),t),e._setExpiredTimeOnResponseError(12e4)}))}}},{key:"onPushedCloudControlConfig",value:function(e){He.l("".concat(this._n,".onPushedCloudControlConfig")),new li("pushedCloudControlConfig").setNetworkType(this.getNetworkType()).setMessage("newVersion:".concat(e.version," config:").concat(e.cloudControlConfig)).end(),this._parseCloudControlConfig(e)}},{key:"onCheckTimer",value:function(e){this._canFetchConfig()&&this.fetchConfig()}},{key:"_parseCloudControlConfig",value:function(e){var t=this,n="".concat(this._n,"._parseCloudControlConfig"),o=e.errorCode,s=e.errorMessage,a=e.cloudControlConfig,r=e.version,i=e.expiredTime;if(0===o){if(this._version!==r){var u=null;try{u=JSON.parse(a)}catch(c){this.isPrivateNetWork()||He.e("".concat(n," JSON parse error. cloudControlConfig:"),a)}u&&(this._cloudConfig.clear(),Object.keys(u).forEach((function(e){t._cloudConfig.set(e,u[e])})),this._version=r,this.emitInnerEvent(bi))}this._expiredTime=Date.now()+1e3*i}else ut(o)?(He.l("".concat(n," failed. Invalid message format:"),e),this._setExpiredTimeOnResponseError(36e5)):(He.e("".concat(n," errorCode:").concat(o," errorMessage:").concat(s)),this._setExpiredTimeOnResponseError(12e4))}},{key:"_setExpiredTimeOnResponseError",value:function(e){this._expiredTime=Date.now()+e}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._cloudConfig.clear(),this._expiredTime=0,this._version=0,this._isFetching=!1}}]),n}(po),Oc=function(e){i(n,e);var t=f(n);function n(e){var s;return o(this,n),(s=t.call(this,e))._n="RecoverMessageModule",s.PULL_LIMIT_COUNT=15,s}return a(n,[{key:"start",value:function(){this._recoverGroupChat(),this._recoverC2CChat()}},{key:"_recoverGroupChat",value:function(){var e,t,n=this,o=this._getLocalConversationList().filter((function(e){return e.type===S.CONV_GROUP&&e.groupProfile.type!==S.GRP_AVCHATROOM})),s=this.getModule(Hn),a=0,r=0,i=0;o.forEach((function(o){var u=o.conversationID,c=o.lastMessage;t=u.replace(S.CONV_GROUP,""),e=s.getLocalLastMessage(u),c&&0!==c.lastSequence&&e?(r=c.lastSequence,a=e.sequence,i=r-a,a>0&&i>=1&&i<300?n._recoverGroupMessage({groupID:t,localLastMessageSequence:a,remoteLastMessageSequence:r}):n._getGroupNotify(t)):n._getGroupNotify(t)}))}},{key:"_recoverC2CChat",value:function(){var e,t=this,n=this._getLocalConversationList().filter((function(e){return e.type===S.CONV_C2C})),o=this.getModule(Hn),s=0,a=0,r=0,i=[Promise.resolve()];n.forEach((function(n){var u=n.conversationID,c=n.lastMessage;e=o.getLocalLastMessage(u),c&&0!==c.lastTime&&e&&(a=c.lastTime,s=e.time,r=a-s,s>0&&r>=1&&r<=600&&i.push(t._recoverC2CMessage({conversationID:u,localLastMessageTime:s,remoteLastMessageTime:a})))})),Promise.all(i).then((function(){He.l("".concat(t._n,"._recoverC2CChat all promise fulfilled, start to sync unread messages")),t.getModule(Qn).startSyncOnReconnected()}))}},{key:"_getLocalConversationList",value:function(){return this.getModule(Hn).getLocalConversationList()}},{key:"_recoverGroupMessage",value:function(e){var t=this,n="".concat(this._n,"._recoverGroupMessage");He.l("".concat(n," options:"),e);var o=e.groupID,s=e.localLastMessageSequence,a=e.remoteLastMessageSequence;this._getGroupRomaingMessage({groupID:o,sequence:s}).then((function(e){var s=e.data,r=s.complete,i=s.messageList;if(!ut(i)){var u=i[0].sequence;He.l("".concat(n," pkgLastMessageSequence:").concat(u," complete:").concat(r)),u=0&&this._e2eDelayArray.push(t)}},{key:"_calcAvg",value:function(e,t){if(0===t)return 0;var n=0;return e.forEach((function(e){n+=e})),Vt(n/t,1)}},{key:"_calcCountWithLimit",value:function(e){var t=e.e2eDelayArray,n=e.min,o=e.max;return t.filter((function(e){return n<=e&&e100&&(n=100),n}},{key:"_checkE2EDelayException",value:function(e,t){var n=e.filter((function(e){return e>t}));if(n.length>0){var o=n.length,s=Math.min.apply(Math,m(n)),a=Math.max.apply(Math,m(n)),r=this._calcAvg(n,o),i=Vt(o/e.length*100,2);if(i>50)new li("messageE2EDelayException").setMessage("count:".concat(o," min:").concat(s," max:").concat(a," avg:").concat(r," percent:").concat(i)).setLevel("warning").end()}}},{key:"getStatResult",value:function(){var e=this._e2eDelayArray.length;if(0===e)return null;var t=m(this._e2eDelayArray),n=this._calcCountWithLimit({e2eDelayArray:t,min:0,max:1}),o=this._calcCountWithLimit({e2eDelayArray:t,min:1,max:3}),s=this._calcPercent(n,e),a=this._calcPercent(o,e),r=this._calcAvg(t,e);return this._checkE2EDelayException(t,3),t.length=0,this.reset(),{totalCount:e,countLessThan1Second:n,percentOfCountLessThan1Second:s,countLessThan3Second:o,percentOfCountLessThan3Second:a,avgDelay:r}}},{key:"reset",value:function(){this._e2eDelayArray.length=0}}]),e}(),Pc=function(){function e(){o(this,e),this._n="AvgRTT",this._requestCount=0,this._rttArray=[]}return a(e,[{key:"addRequestCount",value:function(){this._requestCount+=1}},{key:"addRTT",value:function(e){this._rttArray.push(e)}},{key:"_calcTotalCount",value:function(){return this._requestCount}},{key:"_calcRTTCount",value:function(e){return e.length}},{key:"_calcSuccessRateOfRequest",value:function(e,t){if(0===t)return 0;var n=Vt(e/t*100,2);return n>100&&(n=100),n}},{key:"_calcAvg",value:function(e,t){if(0===t)return 0;var n=0;return e.forEach((function(e){n+=e})),parseInt(n/t)}},{key:"_calcMax",value:function(){return Math.max.apply(Math,m(this._rttArray))}},{key:"_calcMin",value:function(){return Math.min.apply(Math,m(this._rttArray))}},{key:"getStatResult",value:function(){var e=this._calcTotalCount(),t=m(this._rttArray);if(0===e)return null;var n=this._calcRTTCount(t),o=this._calcSuccessRateOfRequest(n,e),s=this._calcAvg(t,n);return He.l("".concat(this._n,".getStatResult max:").concat(this._calcMax()," min:").concat(this._calcMin()," avg:").concat(s)),this.reset(),{totalCount:e,rttCount:n,successRateOfRequest:o,avgRTT:s}}},{key:"reset",value:function(){this._requestCount=0,this._rttArray.length=0}}]),e}(),Uc=function(){function e(){o(this,e),this._map=new Map}return a(e,[{key:"initMap",value:function(e){var t=this;e.forEach((function(e){t._map.set(e,{totalCount:0,successCount:0,failedCountOfUserSide:0,costArray:[],fileSizeArray:[]})}))}},{key:"addTotalCount",value:function(e){return!(ut(e)||!this._map.has(e))&&(this._map.get(e).totalCount+=1,!0)}},{key:"addSuccessCount",value:function(e){return!(ut(e)||!this._map.has(e))&&(this._map.get(e).successCount+=1,!0)}},{key:"addFailedCountOfUserSide",value:function(e){return!(ut(e)||!this._map.has(e))&&(this._map.get(e).failedCountOfUserSide+=1,!0)}},{key:"addCost",value:function(e,t){return!(ut(e)||!this._map.has(e))&&(this._map.get(e).costArray.push(t),!0)}},{key:"addFileSize",value:function(e,t){return!(ut(e)||!this._map.has(e))&&(this._map.get(e).fileSizeArray.push(t),!0)}},{key:"_calcSuccessRateOfBusiness",value:function(e){if(ut(e)||!this._map.has(e))return-1;var t=this._map.get(e),n=Vt(t.successCount/t.totalCount*100,2);return n>100&&(n=100),n}},{key:"_calcSuccessRateOfPlatform",value:function(e){if(ut(e)||!this._map.has(e))return-1;var t=this._map.get(e),n=this._calcSuccessCountOfPlatform(e)/t.totalCount*100;return(n=Vt(n,2))>100&&(n=100),n}},{key:"_calcTotalCount",value:function(e){return ut(e)||!this._map.has(e)?-1:this._map.get(e).totalCount}},{key:"_calcSuccessCountOfBusiness",value:function(e){return ut(e)||!this._map.has(e)?-1:this._map.get(e).successCount}},{key:"_calcSuccessCountOfPlatform",value:function(e){if(ut(e)||!this._map.has(e))return-1;var t=this._map.get(e);return t.successCount+t.failedCountOfUserSide}},{key:"_calcAvg",value:function(e){return ut(e)||!this._map.has(e)?-1:e===ni?this._calcAvgSpeed(e):this._calcAvgCost(e)}},{key:"_calcAvgCost",value:function(e){var t=this._map.get(e).costArray.length;if(0===t)return 0;var n=0;return this._map.get(e).costArray.forEach((function(e){n+=e})),parseInt(n/t)}},{key:"_calcAvgSpeed",value:function(e){var t=0,n=0;return this._map.get(e).costArray.forEach((function(e){t+=e})),this._map.get(e).fileSizeArray.forEach((function(e){n+=e})),parseInt(1e3*n/t)}},{key:"getStatResult",value:function(e){var t=this._calcTotalCount(e);if(0===t)return null;var n=this._calcSuccessCountOfBusiness(e),o=this._calcSuccessRateOfBusiness(e),s=this._calcSuccessCountOfPlatform(e),a=this._calcSuccessRateOfPlatform(e),r=this._calcAvg(e);return this.reset(e),{totalCount:t,successCountOfBusiness:n,successRateOfBusiness:o,successCountOfPlatform:s,successRateOfPlatform:a,avgValue:r}}},{key:"reset",value:function(e){ut(e)?this._map.clear():this._map.set(e,{totalCount:0,successCount:0,failedCountOfUserSide:0,costArray:[],fileSizeArray:[]})}}]),e}(),bc=function(){function e(){o(this,e),this._lastMap=new Map,this._currentMap=new Map}return a(e,[{key:"initMap",value:function(e){var t=this;e.forEach((function(e){t._lastMap.set(e,new Map),t._currentMap.set(e,new Map)}))}},{key:"addMessageSequence",value:function(e){var t=e.key,n=e.message;if(ut(t)||!this._lastMap.has(t)||!this._currentMap.has(t))return!1;var o=n.conversationID,s=n.sequence,a=o.replace(S.CONV_GROUP,"");if(0===this._lastMap.get(t).size)this._addCurrentMap(e);else if(this._lastMap.get(t).has(a)){var r=this._lastMap.get(t).get(a),i=r.length-1;s>r[0]&&s100&&(o=100),this._copyData(e),{totalCount:t,successCountOfMessageReceived:n,successRateOfMessageReceived:o}}},{key:"reset",value:function(){this._currentMap.clear(),this._lastMap.clear()}}]),e}(),wc=function(e){i(s,e);var n=f(s);function s(e){var t;o(this,s),(t=n.call(this,e))._n="QualityStatModule",t.TAG="im-ssolog-quality-stat",t.reportIndex=0,t.wholePeriod=!1,t._qualityItems=[Xr,Qr,Zr,$r,ei,ti,ni,oi,si,ai],t._messageSentItems=[Zr,$r,ei,ti,ni],t._messageReceivedItems=[oi,si,ai],t.REPORT_INTERVAL=120,t.REPORT_SDKAPPID_BLACKLIST=[],t.REPORT_TINYID_WHITELIST=[],t._statInfoArr=[],t._avgRTT=new Pc,t._avgE2EDelay=new Gc,t._rateMessageSent=new Uc,t._rateMessageReceived=new bc;var a=t.getInnerEmitterInstance();return a.on(Ui,t._onLoginSuccess,h(t)),a.on(bi,t._onCloudConfigUpdated,h(t)),t}return a(s,[{key:"_onLoginSuccess",value:function(){var e=this;this._rateMessageSent.initMap(this._messageSentItems),this._rateMessageReceived.initMap(this._messageReceivedItems);var t=this.getModule(Wn),n=t.getItem(this.TAG,!1);!Zt(n)&<(n.forEach)&&(He.l("".concat(this._n,"._onLoginSuccess get quality stat logs from local storage, count:").concat(n.length)),n.forEach((function(t){e._statInfoArr.push(t)})),t.removeItem(this.TAG,!1))}},{key:"_onCloudConfigUpdated",value:function(){var e=this.getCloudConfig("q_rpt_interval"),t=this.getCloudConfig("q_rpt_sdkappid_bl"),n=this.getCloudConfig("q_rpt_tinyid_wl");ut(e)||(this.REPORT_INTERVAL=Number(e)),ut(t)||(this.REPORT_SDKAPPID_BLACKLIST=t.split(",").map((function(e){return Number(e)}))),ut(n)||(this.REPORT_TINYID_WHITELIST=n.split(","))}},{key:"onCheckTimer",value:function(e){this.isLoggedIn()&&e%this.REPORT_INTERVAL==0&&(this.wholePeriod=!0,this._report())}},{key:"addRequestCount",value:function(){this._avgRTT.addRequestCount()}},{key:"addRTT",value:function(e){this._avgRTT.addRTT(e)}},{key:"addMessageDelay",value:function(e){this._avgE2EDelay.addMessageDelay(e)}},{key:"addTotalCount",value:function(e){this._rateMessageSent.addTotalCount(e)||He.w("".concat(this._n,".addTotalCount invalid key:"),e)}},{key:"addSuccessCount",value:function(e){this._rateMessageSent.addSuccessCount(e)||He.w("".concat(this._n,".addSuccessCount invalid key:"),e)}},{key:"addFailedCountOfUserSide",value:function(e){this._rateMessageSent.addFailedCountOfUserSide(e)||He.w("".concat(this._n,".addFailedCountOfUserSide invalid key:"),e)}},{key:"addCost",value:function(e,t){this._rateMessageSent.addCost(e,t)||He.w("".concat(this._n,".addCost invalid key or cost:"),e,t)}},{key:"addFileSize",value:function(e,t){this._rateMessageSent.addFileSize(e,t)||He.w("".concat(this._n,".addFileSize invalid key or size:"),e,t)}},{key:"addMessageSequence",value:function(e){this._rateMessageReceived.addMessageSequence(e)||He.w("".concat(this._n,".addMessageSequence invalid key:"),e.key)}},{key:"_getQualityItem",value:function(e){var n={},o=ui[this.getNetworkType()];ut(o)&&(o=8);var s={qualityType:ri[e],timestamp:we(),networkType:o,extension:""};switch(e){case Xr:n=this._avgRTT.getStatResult();break;case Qr:n=this._avgE2EDelay.getStatResult();break;case Zr:case $r:case ei:case ti:case ni:n=this._rateMessageSent.getStatResult(e);break;case oi:case si:case ai:n=this._rateMessageReceived.getStatResult(e)}return null===n?null:t(t({},s),n)}},{key:"_report",value:function(e){var t=this,n=[],o=null;ut(e)?this._qualityItems.forEach((function(e){null!==(o=t._getQualityItem(e))&&(o.reportIndex=t.reportIndex,o.wholePeriod=t.wholePeriod,n.push(o))})):null!==(o=this._getQualityItem(e))&&(o.reportIndex=this.reportIndex,o.wholePeriod=this.wholePeriod,n.push(o)),He.d("".concat(this._n,"._report"),n),this._statInfoArr.length>0&&(n=n.concat(this._statInfoArr),this._statInfoArr=[]);var s=this.getModule(Kn),a=s.getSDKAppID(),r=s.getTinyID();Bt(this.REPORT_SDKAPPID_BLACKLIST,a)&&!Ht(this.REPORT_TINYID_WHITELIST,r)&&(n=[]),n.length>0&&this._doReport(n)}},{key:"_doReport",value:function(e){var n=this,o={header:qu(this),quality:e};this.request({protocolName:Ws,requestData:t({},o)}).then((function(){n.reportIndex++,n.wholePeriod=!1})).catch((function(t){He.w("".concat(n._n,"._doReport, online:").concat(n.getNetworkType()," error:"),t),n._statInfoArr=n._statInfoArr.concat(e),n._flushAtOnce()}))}},{key:"_flushAtOnce",value:function(){var e=this.getModule(Wn),t=e.getItem(this.TAG,!1),n=this._statInfoArr,o="".concat(this._n,"._flushAtOnce");if(Zt(t))He.l("".concat(o," count:").concat(n.length)),e.setItem(this.TAG,n,!0,!1);else{var s=n.concat(t);s.length>10&&(s=s.slice(0,10)),He.l("".concat(o," count:").concat(s.length)),e.setItem(this.TAG,s,!0,!1)}this._statInfoArr=[]}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._report(),this.reportIndex=0,this.wholePeriod=!1,this.REPORT_SDKAPPID_BLACKLIST=[],this.REPORT_TINYID_WHITELIST=[],this._avgRTT.reset(),this._avgE2EDelay.reset(),this._rateMessageSent.reset(),this._rateMessageReceived.reset()}}]),s}(po),qc=function(e){i(n,e);var t=f(n);function n(e){var s;return o(this,n),(s=t.call(this,e))._n="WorkerTimerModule",s._isWorkerEnabled=!0,s._workerTimer=null,s._timerID=-1,s._init(),s.getInnerEmitterInstance().on(bi,s._onCloudConfigUpdated,h(s)),s}return a(n,[{key:"isWorkerEnabled",value:function(){return this._isWorkerEnabled&&Ae}},{key:"startWorkerTimer",value:function(){He.l("".concat(this._n,".startWorkerTimer")),this._workerTimer&&this._workerTimer.postMessage("start")}},{key:"stopWorkerTimer",value:function(){He.l("".concat(this._n,".stopWorkerTimer")),this._workerTimer&&this._workerTimer.postMessage("stop")}},{key:"_init",value:function(){if(Ae){var e=URL.createObjectURL(new Blob(['let interval = -1;onmessage = function(event) { if (event.data === "start") { if (interval > 0) { clearInterval(interval); } interval = setInterval(() => { postMessage(""); }, 1000); postMessage(interval); } else if (event.data === "stop") { clearInterval(interval); interval = -1; }};'],{type:"application/javascript; charset=utf-8"}));this._workerTimer=new Worker(e);var t=this;this._workerTimer.onmessage=function(e){e.data?(t._timerID=e.data,He.l("".concat(t._n,"._init seed:").concat(t._timerID))):t._m.onCheckTimer()}}}},{key:"_onCloudConfigUpdated",value:function(){var e=this.getCloudConfig("enable_worker");He.l("".concat(this._n,"._onCloudConfigUpdated enableWorker:").concat(e)),ut(e)||"1"===e?!this._isWorkerEnabled&&Ae&&(this._isWorkerEnabled=!0,this.startWorkerTimer(),this._m.onWorkerTimerEnabled()):this._isWorkerEnabled&&Ae&&(this._isWorkerEnabled=!1,this.stopWorkerTimer(),this._m.onWorkerTimerDisabled())}},{key:"terminate",value:function(){He.l("".concat(this._n,".terminate")),this._workerTimer&&(this._workerTimer.terminate(),this._workerTimer=null,this._timerID=-1)}},{key:"getTimerID",value:function(){return this._timerID}},{key:"reset",value:function(){He.l("".concat(this._n,".reset"))}}]),n}(po),Fc=function(){function e(){o(this,e),this._n="PurchasedFeatureHandler",this._purchasedFeatureMap=new Map}return a(e,[{key:"isValidPurchaseBits",value:function(e){return e&&"string"==typeof e&&e.length>=1&&e.length<=64&&/[01]{1,64}/.test(e)}},{key:"parsePurchaseBits",value:function(e){var t="".concat(this._n,".parsePurchaseBits");if(this.isValidPurchaseBits(e)){this._purchasedFeatureMap.clear();for(var n=null,o=e.length-1,s=0;o>=0;o--,s++)n=s<32?new E(0,Math.pow(2,s)).toString():new E(Math.pow(2,s-32),0).toString(),"1"===e[o]?this._purchasedFeatureMap.set(n,!0):this._purchasedFeatureMap.set(n,!1)}else He.w("".concat(t," invalid purchase bits:").concat(e))}},{key:"hasPurchasedFeature",value:function(e){return!!this._purchasedFeatureMap.get(e)}},{key:"isFeatureEnabled",value:function(e){for(var t=parseInt(e).toString(2),n=void 0,o=!0,s=t.length-1,a=0;s>=0;s--,a++)if("1"===t.charAt(s)&&(n=a<32?new E(0,Math.pow(2,a)).toString():new E(Math.pow(2,a-32),0).toString(),!this._purchasedFeatureMap.get(n))){o=!1;break}return He.l("".concat(this._n,".isFeatureEnabled decimalNumber:").concat(e," binaryString:").concat(t," ret:").concat(o)),Ni({enabled:o})}},{key:"clear",value:function(){this._purchasedFeatureMap.clear()}}]),e}(),xc=function(){function e(t){o(this,e),this._m=t,this._n="CommercialConfigModule",this._expiredTime=0,this._isFetching=!1,this._purchasedFeatureHandler=new Fc}return a(e,[{key:"_canFetch",value:function(){return this._getModule(Kn).isLoggedIn()?!this._isFetching&&Date.now()>=this._expiredTime:(this._expiredTime=Date.now()+2e3,!1)}},{key:"onCheckTimer",value:function(e){this._canFetch()&&this.fetchConfig()}},{key:"fetchConfig",value:function(){var e=this,t=this._canFetch(),n="".concat(this._n,".fetchConfig");if(He.l("".concat(n," canFetch:").concat(t)),t){var o=this._getModule(Yn),s=new li("fetchCommercialConfig");s.setNetworkType(o.getNetworkType());var a=this._getModule(Kn).getSDKAppID(),r=this._getModule(Zn);this._isFetching=!0,r.request({protocolName:ta,requestData:{SDKAppID:a}}).then((function(t){s.setMessage("purchaseBits:".concat(t.data.purchaseBits)).end(),He.l("".concat(n," ok.")),e._parseConfig(t.data),e._isFetching=!1})).catch((function(t){o.probe().then((function(e){var n=v(e,2),o=n[0],a=n[1];s.setError(t,o,a).end()})),e._isFetching=!1}))}}},{key:"onPushedConfig",value:function(e){var t="".concat(this._n,".onPushedConfig");He.l("".concat(t)),new li("pushedCommercialConfig").setNetworkType(this._getModule(Yn).getNetworkType()).setMessage("purchaseBits:".concat(e.purchaseBits)).end(),this._parseConfig(e)}},{key:"_parseConfig",value:function(e){var t="".concat(this._n,"._parseConfig"),n=e.errorCode,o=e.errorMessage,s=e.purchaseBits,a=e.expiredTime;0===n?(this._purchasedFeatureHandler.parsePurchaseBits(s),this._expiredTime=Date.now()+1e3*a):ut(n)?(He.l("".concat(t," failed. Invalid message format:"),e),this._setExpiredTimeOnResponseError(36e5)):(He.e("".concat(t," errorCode:").concat(n," errorMessage:").concat(o)),this._setExpiredTimeOnResponseError(12e4))}},{key:"_setExpiredTimeOnResponseError",value:function(e){this._expiredTime=Date.now()+e}},{key:"canIUse",value:function(e){return this._purchasedFeatureHandler.hasPurchasedFeature(e)}},{key:"isFeatureEnabled",value:function(e){return this._purchasedFeatureHandler.isFeatureEnabled(e)}},{key:"_getModule",value:function(e){return this._m.getModule(e)}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._expiredTime=0,this._isFetching=!1,this._purchasedFeatureHandler.clear()}}]),e}(),Vc=function(e){i(n,e);var t=f(n);function n(e){var s;return o(this,n),(s=t.call(this,e))._m=e,s._n="OfflinePushModule",s._offlinePushPlugin=void 0,s._androidPushConfig={huaweiPushBussinessId:"",xiaomiPushBussinessId:"",xiaomiPushAppId:"",xiaomiPushAppKey:"",meizuPushBussinessId:"",meizuPushAppId:"",meizuPushAppKey:"",vivoPushBussinessId:"",fcmPushBussinessId:"",oppoPushBussinessId:"",oppoPushAppKey:"",oppoPushAppSecret:"",honorPushBussinessId:""},s._deviceToken="",s._businessID=0,s._iosBusinessID=0,s._c2cUnreadCount=0,s._groupUnreadCount=0,s._isWebUniapp=0,s}return a(n,[{key:"registerPlugin",value:function(e){if(re){this._offlinePushPlugin=e["tim-offline-push-plugin"];var t=e.offlinePushConfig||{},n=t.huaweiBusinessID,o=t.xiaomiBusinessID,s=t.xiaomiAppID,a=t.xiaomiAppKey,r=t.meizuBusinessID,i=t.meizuAppID,u=t.meizuAppKey,c=t.vivoBusinessID,l=t.oppoBusinessID,p=t.oppoAppKey,d=t.oppoAppSecret,g=t.honorBusinessID,h=t.iosBusinessID;this._androidPushConfig.huaweiPushBussinessId=n,this._androidPushConfig.xiaomiPushBussinessId=o,this._androidPushConfig.xiaomiPushAppId=s,this._androidPushConfig.xiaomiPushAppKey=a,this._androidPushConfig.meizuPushBussinessId=r,this._androidPushConfig.meizuPushAppId=i,this._androidPushConfig.meizuPushAppKey=u,this._androidPushConfig.vivoPushBussinessId=c,this._androidPushConfig.oppoPushBussinessId=l,this._androidPushConfig.oppoPushAppKey=p,this._androidPushConfig.oppoPushAppSecret=d,this._androidPushConfig.honorPushBussinessId=g,new li("registerPlugin").setMessage("tim-offline-push-plugin").setMoreMessage("isExist:".concat(!ut(this._offlinePushPlugin))).end(!0),He.l("".concat(this._n,".").concat("registerPlugin"," ok. offlinePushConfig:").concat(JSON.stringify(e.offlinePushConfig))),this._iosBusinessID=h,this._setAppShowListener()}else this.outputWarning("OfflinePushInUniapp")}},{key:"init",value:function(){this._isWebUniapp=this.getUniAppPlatform(),this._getDeviceToken()}},{key:"_getDeviceToken",value:function(){var e=this,t="".concat(this._n,".").concat("_getDeviceToken");if(lt(this._offlinePushPlugin.getDeviceToken)){var n="androidPushConfig:".concat(JSON.stringify(this._androidPushConfig),", iosBusinessID:").concat(this._iosBusinessID);He.l("".concat(t," start. ").concat(n)),new li("_getDeviceToken").setMessage("".concat(n)).end(!0),this._offlinePushPlugin.getDeviceToken(this._androidPushConfig,(function(o){var s=new li("getDeviceTokenRes"),a=o.code,r=o.msg;if(0===a){var i=o.data,u=i.deviceToken,c=i.deviceBrand,l=i.deviceType,p=i.bussinessId;e._deviceToken=u,e._businessID=p||e._iosBusinessID,n="deviceToken:".concat(u,", deviceBrand:").concat(c||l,", businessID:").concat(e._businessID),He.l("".concat(t," ok. ").concat(n)),s.setMessage(n).end(!0),e._setToken()}else s.setMessage("code:".concat(a,", msg:").concat(r)).end(!0),He.e("".concat(t," failed. error:"),o)}))}else He.e("".concat(t," getDeviceToken is not a function"))}},{key:"canIUseOfflinePush",value:function(){return re&&!ut(this._offlinePushPlugin)}},{key:"_setAppShowListener",value:function(){var e=this,t="".concat(this._n,".").concat("_setAppShowListener");ut(this._offlinePushPlugin)?He.e("".concat(t," offlinePushPlugin is undefined")):lt(this._offlinePushPlugin.setAppShowListener)?(new li("_setAppShowListener").end(!0),He.l("".concat(t," start")),this._offlinePushPlugin.setAppShowListener((function(n){var o=(n||{}).appShow;new li("setAppShowListenerRes").setMessage("appShow:".concat(o)).end(!0),He.l("".concat(t," ok. appShow:").concat(o)),e._m.isReady()&&(0===o?(e._getConvUnreadCount(),e._onBackground()):1===o&&e._onForeground())}))):He.e("".concat(t," setAppShowListener is not a function"))}},{key:"getDeviceBrand",value:function(){if(!ut(this._offlinePushPlugin)&<(this._offlinePushPlugin.getDeviceType)){var e=(this._offlinePushPlugin.getDeviceType()||{}).deviceType;return He.l("".concat(this._n,".getDeviceBrand ok. deviceType:").concat(e)),e}}},{key:"_setToken",value:function(){var e,t=this,n="".concat(this._n,"._setToken"),o=this.getModule(Kn),s=1,a="",r="";Zt(this._deviceToken)&&(s=0);var i=this.getUniAppPlatform(),u=this.getDeviceBrand();i===R.IOS||i===R.IPAD||i===R.MAC?r=this._deviceToken:i===R.ANDROID&&(a=this._deviceToken);var c=new li("offlinePushSetToken");return e="deviceToken:".concat(r||a,", businessID:").concat(this._businessID,", ")+"deviceBrand:".concat(u,", isWebUniapp:").concat(this._isWebUniapp,", pushMsg:").concat(s,", platform:").concat(i),c.setMessage("".concat(e)),He.l("".concat(n," ").concat(e)),this.request({protocolName:ha,requestData:{tokenID:a,pushMsg:s,sdkAppID:o.getSDKAppID(),businessID:parseInt(this._businessID),deviceBrand:u,deviceToken:r,isWebUniapp:this._isWebUniapp}}).then((function(e){return c.end(),He.l("".concat(n," ok")),e})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];c.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_getConvUnreadCount",value:function(){var e=this;this._c2cUnreadCount=0,this._groupUnreadCount=0,this.getModule(Hn).getLocalConversationList().forEach((function(t){t.type===S.CONV_C2C&&(e._c2cUnreadCount+=t.unreadCount),t.type===S.CONV_GROUP&&(e._groupUnreadCount+=t.unreadCount)}))}},{key:"_onBackground",value:function(){var e=this,t="".concat(this._n,".").concat("_onBackground"),n=new li("_onBackground");this.request({protocolName:da,requestData:{c2cUnreadCount:this._c2cUnreadCount,groupUnreadCount:this._groupUnreadCount,isWebUniapp:this._isWebUniapp}}).then((function(o){return n.setMessage("c2cUnreadCount: ".concat(e._c2cUnreadCount,", groupUnreadCount: ").concat(e._groupUnreadCount)).end(),He.l("".concat(t," ok")),o})).catch((function(o){e.probeNetwork().then((function(e){var t=v(e,2),s=t[0],a=t[1];n.setError(o,s,a).end()})),He.e("".concat(t," failed. error:"),o)}))}},{key:"_onForeground",value:function(){var e=this,t="".concat(this._n,".").concat("_onForeground"),n=new li("_onForeground");this.request({protocolName:ga,requestData:{isWebUniapp:this._isWebUniapp}}).then((function(e){return n.end(),He.l("".concat(t," ok")),e})).catch((function(o){e.probeNetwork().then((function(e){var t=v(e,2),s=t[0],a=t[1];n.setError(o,s,a).end()})),He.e("".concat(t," failed. error:"),o)}))}},{key:"getUniAppPlatform",value:function(){var e=uni.getSystemInfoSync().platform,t=this.getDeviceBrand();return"ios"===e?R.IOS:"android"===e?R.ANDROID:1002===t?R.IPAD:1001===t?R.MAC:void 0}},{key:"reset",value:function(){this._deviceToken="",this._businessID=0,this._c2cUnreadCount=0,this._groupUnreadCount=0,this._isWebUniapp=0,He.l("".concat(this._n,".reset"))}}]),n}(po),Bc=function(e){i(n,e);var t=f(n);function n(e){var s;return o(this,n),(s=t.call(this,e))._n="ProfanityFilterModule",s._plugin=null,s._filterConfigMap=new Map,s._startIndex=0,s._version=0,s._canIUseLexicon=!1,s._isFetching=!1,s._expiredTime=0,s}return a(n,[{key:"init",value:function(){var e=this.getModule(Xn).getPlugin("tim-profanity-filter-plugin");e?(this._plugin=new e({logger:He,isArray:it,isMap:et,isDevMode:this.isDevMode()}),this._getLexicon()):this.outputWarning("ProfanityPluginNotFound")}},{key:"onCheckTimer",value:function(){this._plugin&&this._canIUseLexicon&&this.isLoggedIn()&&!this._isFetching&&Date.now()>=this._expiredTime&&this._getLexicon()}},{key:"filterMessage",value:function(e,t){var n=!0;if(!this._plugin||!this._canIUseLexicon)return n;if(t&&t.messageControlInfo&&!0===t.messageControlInfo.excludedFromContentModeration)return n;var o=e.type,s=e.conversationType;if(o!==S.MSG_TEXT&&o!==S.MSG_CUSTOM)return n;var a,r="".concat(this._n,".filterMessage");if(He.l("".concat(r)),o===S.MSG_TEXT){if(s===S.CONV_C2C?a=H:s===S.CONV_GROUP&&(a=W),!this._isConfigOn(a))return n;var i=this._plugin.filter(e.payload.text),u=i.type,c=i.modifiedText;1===u?n=!1:2===u&&(e.payload.text=c)}else if(o===S.MSG_CUSTOM){if(s===S.CONV_C2C?a=K:s===S.CONV_GROUP&&(a=j),!this._isConfigOn(a))return n;var l=this._plugin.filter(e.payload.data),p=this._plugin.filter(e.payload.description),d=this._plugin.filter(e.payload.extension);1===l.type||1===p.type||1===d.type?n=!1:(2===l.type&&(e.payload.data=l.modifiedText),2===p.type&&(e.payload.description=p.modifiedText),2===d.type&&(e.payload.extension=d.modifiedText))}return He.l("".concat(r," done. isAllowedToSend:").concat(n)),n}},{key:"filterText",value:function(e,t){var n="".concat(this._n,".filterText"),o={isAllowedToSend:!0,modifiedText:e};if(!this._plugin||!this._canIUseLexicon)return o;if(!this._isConfigOn(t))return o;He.l("".concat(n));var s=this._plugin.filter(e),a=s.type,r=s.modifiedText;return 1===a?o.isAllowedToSend=!1:2===a&&(o.modifiedText=r),He.l("".concat(n," done. ret:"),o),o}},{key:"_getLexicon",value:function(){var e=this,t=new li("profanityFilter"),n="".concat(this._n,"._getLexicon");this._isFetching=!0,this.request({protocolName:_a,requestData:{startIndex:this._startIndex,version:this._version}}).then((function(o){var s=o.data,a=s.errorInfo,r=s.filterConfig,i=s.lexicon,u=s.strToken,c=s.completeFlag,l=s.nextStartIndex,p=s.version,d=s.expiredTime,g=a.errorCode,h=a.errorMessage;return 0!==g?(e._isFetching=!1,He.w("".concat(n," failed. error:"),a),void t.setCode(g).setMessage(h).end()):(e._onFilterConfig(r),e._getToken(u),1===c?(He.l("".concat(n," done. version:").concat(p," expiredTime:").concat(d)),e._version=p,e._canIUseLexicon=!0,e._isFetching=!1,e._expiredTime=Date.now()+1e3*d,void e._plugin.onLexiconCompleted(i)):(e._startIndex=l,e._plugin.onLexiconSliced(i),void e._getLexicon()))})).catch((function(o){e.probeNetwork().then((function(e){var n=v(e,2),s=n[0],a=n[1];t.setError(o,s,a).end()})),e._isFetching=!1,He.l("".concat(n," failed. error:"),o)}))}},{key:"_onFilterConfig",value:function(e){var t=this;Zt(e)||(this._filterConfigMap.clear(),Object.keys(e).forEach((function(n){t._filterConfigMap.set(n,e[n])})),He.l("".concat(this._n,"._onFilterConfig. keys:").concat(Array.from(this._filterConfigMap.keys())," values:").concat(Array.from(this._filterConfigMap.values()))))}},{key:"_isConfigOn",value:function(e){return 1===this._filterConfigMap.get(e)}},{key:"_getToken",value:function(e){if(st(e)){var t=e.length,n="";if(t%2==0)for(var o=0;o<=t-1;o+=2)n+=e[o+1],n+=e[o];else{for(var s=0;s=this.STORAGE_EXPIRES_TIME,s=!n||"2.27.0"!==n;return He.l("".concat(this._n,"._needToUpdate isTimeout:").concat(o," isDifferentVersion:").concat(s)),o||s}},{key:"_fetch",value:function(){if(!this._m.getModule(Kn).isPrivateNetWork()){var e="https://web.sdk.qcloud.com/im/download/error-message/0.0.1/tim-error-message.txt",t="application/x-www-form-urlencoded;charset=UTF-8",n="".concat(this._n,"._fetch ok in"),o=this;if(ue)le.request({url:e,method:"GET",timeout:3e3,header:{"content-type":t},dataType:"text",success:function(e){o._fillAndSave(e.data),He.l("".concat(n," mini program"))},fail:function(){}});else{var s=new XMLHttpRequest,a=setTimeout((function(){s.abort()}),3e3);s.onreadystatechange=function(){4===s.readyState&&(clearTimeout(a),200!==s.status&&304!==s.status||(He.l("".concat(n," browser")),o._fillAndSave(s.responseText)))},s.open("GET",e,!0),s.setRequestHeader("Content-type",t),s.send()}}}},{key:"_fillAndSave",value:function(e){this._fillMap(e),this._getStorageModule().setItem(this.TIM_ERROR_ASSISTANCE,JSON.stringify({message:e,localSavedTime:(new Date).getTime(),localSavedVersion:"2.27.0"}),!0,!1)}},{key:"_getStorageModule",value:function(){return this._m.getModule(Wn)}},{key:"_fillMap",value:function(e){this._map.clear();for(var t,n,o,s=e.split(";\n"),a=s.length,r=new RegExp(/'/g),i=0;i0&&(clearInterval(this._checkTimer),this._checkTimer=-1,this._checkCount=0)}},{key:"_stopMainThreadSocket",value:function(){He.l("".concat(this._n,"._stopMainThreadSocket"));var e=this._moduleMap.get($n);e.setIsWorkerEnabled(!0),e.reConnect()}},{key:"_startMainThreadSocket",value:function(){He.l("".concat(this._n,"._startMainThreadSocket"));var e=this._moduleMap.get($n);e.setIsWorkerEnabled(!1),e.reConnect()}},{key:"onWorkerTimerEnabled",value:function(){He.l("".concat(this._n,".onWorkerTimerEnabled, disable main thread timer and socket")),this._stopMainThreadTimer(),this._stopMainThreadSocket()}},{key:"onWorkerTimerDisabled",value:function(){He.l("".concat(this._n,".onWorkerTimerDisabled, enable main thread timer and socket")),this._startMainThreadTimer(),this._startMainThreadSocket()}},{key:"onCheckTimer",value:function(){this._checkCount+=1;var e,t=D(this._moduleMap);try{for(t.s();!(e=t.n()).done;){var n=v(e.value,2)[1];n.onCheckTimer&&n.onCheckTimer(this._checkCount)}}catch(o){t.e(o)}finally{t.f()}}},{key:"_initReadyList",value:function(){var e=this;this._readyList=[this._moduleMap.get(Pn),this._moduleMap.get(Hn)],this._readyList.forEach((function(t){t.ready((function(){return e._onModuleReady()}))}))}},{key:"_onModuleReady",value:function(){var e=!0;if(this._readyList.forEach((function(t){t.isReady()||(e=!1)})),e&&!this._isReady){this._isReady=!0,this._outerEmitter.emit(k.SDK_READY);var t=Date.now()-this._startLoginTs;He.w("SDK is ready. cost ".concat(t," ms")),this._startLoginTs=Date.now();var n=this._moduleMap.get(Yn).getNetworkType(),o=this._ssoLogForReady.getStartTs()+be;this._ssoLogForReady.setNetworkType(n).setMessage(t).start(o).end()}}},{key:"login",value:function(){0===this._startLoginTs&&(qe(),this._startLoginTs=Date.now(),this._startTimer(),this._moduleMap.get(Yn).start(),this._ssoLogForReady=new li("sdkReady"),this._reason=br)}},{key:"onLoginFailed",value:function(){this._startLoginTs=0}},{key:"getOuterEmitterInstance",value:function(){return null===this._outerEmitter&&(this._outerEmitter=new Ku,Ri(this._outerEmitter),this._outerEmitter._emit=this._outerEmitter.emit,this._outerEmitter.emit=function(e,t){var n=this;if(e===k.CONVERSATION_LIST_UPDATED||e===k.FRIEND_LIST_UPDATED||e===k.GROUP_LIST_UPDATED||e===k.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED)if(this._eventThrottleMap.has(e)){var o=Date.now(),s=this._eventThrottleMap.get(e);o-s.last<1e3?(s.timeoutID&&clearTimeout(s.timeoutID),s.timeoutID=setTimeout((function(){s.last=o,n._outerEmitter._emit.apply(n._outerEmitter,[e,{name:e,data:n._getEventData(e)}])}),500)):(s.last=o,this._outerEmitter._emit.apply(this._outerEmitter,[e,{name:e,data:this._getEventData(e)}]))}else this._eventThrottleMap.set(e,{last:Date.now(),timeoutID:-1}),this._outerEmitter._emit.apply(this._outerEmitter,[e,{name:e,data:this._getEventData(e)}]);else this._outerEmitter._emit.apply(this._outerEmitter,[e,{name:e,data:arguments[1]}])}.bind(this)),this._outerEmitter}},{key:"_getEventData",value:function(e){return e===k.CONVERSATION_LIST_UPDATED?this._moduleMap.get(Hn).getLocalConversationList():e===k.FRIEND_LIST_UPDATED?this._moduleMap.get(xn).getLocalFriendList(!1):e===k.GROUP_LIST_UPDATED?this._moduleMap.get(Fn).getLocalGroupList():e===k.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED?this._moduleMap.get(Hn).getTotalUnreadMessageCount():void 0}},{key:"getInnerEmitterInstance",value:function(){return null===this._innerEmitter&&(this._innerEmitter=new Ku,this._innerEmitter._emit=this._innerEmitter.emit,this._innerEmitter.emit=function(e,t){var n;n=rt(arguments[1])&&arguments[1].data?[e,{name:arguments[0],data:arguments[1].data}]:[e,{name:arguments[0],data:arguments[1]}],this._innerEmitter._emit.apply(this._innerEmitter,n)}.bind(this)),this._innerEmitter}},{key:"hasModule",value:function(e){return this._moduleMap.has(e)}},{key:"getModule",value:function(e){return this._moduleMap.get(e)}},{key:"isReady",value:function(){return this._isReady}},{key:"isIntl",value:function(){return this.getModule(Kn).isIntl()}},{key:"getNotReadyReason",value:function(){return this._reason}},{key:"setNotReadyReason",value:function(e){this._reason=e}},{key:"getErrorMessage",value:function(e,t,n){return this._moduleMap.get(lo).get({key:e,replacement1:t,replacement2:n,isIntl:this.isIntl()})}},{key:"outputWarning",value:function(e,t,n){var o=this.getErrorMessage(e,t,n);o&&He.w(o)}},{key:"onError",value:function(e){var t="code:".concat(e.code," message:").concat(e.message);He.w("Oops! ".concat(t)),new li("error").setMessage(t).setNetworkType(this.getModule(Yn).getNetworkType()).setLevel("error").end(),this.getOuterEmitterInstance().emit(k.ERROR,e)}},{key:"restartTimer",value:function(){He.l("".concat(this._n,".restartTimer")),this.stopTimer(),this._startTimer(),this.getModule(Fn).restartPolling()}},{key:"getTimerID",value:function(){var e=this._moduleMap.get(no);return e.isWorkerEnabled()?e.getTimerID():this._checkTimer}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),qe();var e,t=D(this._moduleMap);try{for(t.s();!(e=t.n()).done;){var n=v(e.value,2)[1];n.reset&&n.reset()}}catch(r){t.e(r)}finally{t.f()}this._startLoginTs=0,this._initReadyList(),this._isReady=!1,this.stopTimer(),this._outerEmitter.emit(k.SDK_NOT_READY);var o,s=D(this._eventThrottleMap);try{for(s.s();!(o=s.n()).done;){var a=v(o.value,2)[1];a.timeoutID&&clearTimeout(a.timeoutID)}}catch(r){s.e(r)}finally{s.f()}this._eventThrottleMap.clear()}}]),e}(),jc=function(){function e(t){o(this,e),this._funcMap=new Map,this._m=t}return a(e,[{key:"defense",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;if("string"!=typeof e)return null;if(0===e.length)return null;if("function"!=typeof t)return null;if(this._funcMap.has(e)&&this._funcMap.get(e).has(t))return this._funcMap.get(e).get(t);this._funcMap.has(e)||this._funcMap.set(e,new Map);var o=null;return this._funcMap.get(e).has(t)?o=this._funcMap.get(e).get(t):(o=this._pack(e,t,n),this._funcMap.get(e).set(t,o)),o}},{key:"defenseOnce",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;return"function"!=typeof t?null:this._pack(e,t,n)}},{key:"find",value:function(e,t){return"string"!=typeof e||0===e.length||"function"!=typeof t?null:this._funcMap.has(e)&&this._funcMap.get(e).has(t)?this._funcMap.get(e).get(t):(this._m.outputWarning("ListenerFnNotFound",e),null)}},{key:"delete",value:function(e,t){return"function"==typeof t&&(!!this._funcMap.has(e)&&(!!this._funcMap.get(e).has(t)&&(this._funcMap.get(e).delete(t),0===this._funcMap.get(e).size&&this._funcMap.delete(e),!0)))}},{key:"_pack",value:function(e,t,n){var o=this;return function(){try{t.apply(n,Array.from(arguments))}catch(u){var s=Object.values(k).indexOf(e),a="CallbackError";if(-1!==s){var r=Object.keys(k)[s];o._m.outputWarning(a,r,u)}var i=new li(a);i.setMessage("eventName:".concat(e)).setMoreMessage(u.message).end()}}}}]),e}(),Yc=function(){function e(t){o(this,e);var n={SDKAppID:t.SDKAppID,unlimitedAVChatRoom:t.unlimitedAVChatRoom||!1,scene:t.scene||"",oversea:t.oversea||!1,instanceID:Ut(),devMode:t.devMode||!1,proxyServer:t.proxyServer||void 0,fileUploadProxy:t.fileUploadProxy||void 0,fileDownloadProxy:t.fileDownloadProxy||t.fileUploadProxy||void 0};this._m=new Wc(n),this._safetyCallbackFactory=new jc(this._m)}return a(e,[{key:"onError",value:function(e){this._m.onError(e)}},{key:"login",value:function(e){return this._m.login(),this._getModule(Pn).login(e)}},{key:"logout",value:function(){var e=this;return this._getModule(Pn).logout().then((function(t){return e._m.reset(),t}))}},{key:"isReady",value:function(){return this._m.isReady()}},{key:"isIntl",value:function(){return this._m.isIntl()}},{key:"getNotReadyReason",value:function(){return this._m.getNotReadyReason()}},{key:"getErrorMessage",value:function(e,t,n){return this._m.getErrorMessage(e,t,n)}},{key:"_getModule",value:function(e){return this._m.getModule(e)}},{key:"destroy",value:function(){var e=this;return this.logout().finally((function(){e._m.stopTimer(),e._getModule(no).terminate(),e._getModule($n).dealloc();var t=e._m.getOuterEmitterInstance(),n=e._getModule(Kn);t.emit(k.SDK_DESTROY,{SDKAppID:n.getSDKAppID()})}))}},{key:"on",value:function(e,t,n){He.d("on","eventName:".concat(e)),this._m.getOuterEmitterInstance().on(e,this._safetyCallbackFactory.defense(e,t,n),n)}},{key:"once",value:function(e,t,n){He.d("once","eventName:".concat(e)),this._m.getOuterEmitterInstance().once(e,this._safetyCallbackFactory.defenseOnce(e,t,n),n||this)}},{key:"off",value:function(e,t,n,o){He.d("off","eventName:".concat(e));var s=this._safetyCallbackFactory.find(e,t);null!==s&&(this._m.getOuterEmitterInstance().off(e,s,n,o),this._safetyCallbackFactory.delete(e,t))}},{key:"registerPlugin",value:function(e){ut(e["tim-offline-push-plugin"])?this._getModule(Xn).registerPlugin(e):this._getModule(ro).registerPlugin(e)}},{key:"setLogLevel",value:function(e){if(e<=0){var t=this.getErrorMessage("TIM_ASCII_ART");t&&console.log(t);var n=this.getErrorMessage("API_REFER");if(n){zt()?console.log("%c ".concat("IM SDK API ->"," %c"),"background:#ff9d00; padding:1px; border-radius:3px; color: #fff","background:transparent",n):console.log("IM SDK API ->",n)}var o=this.getErrorMessage("DOCS_GUIDE");o&&console.log(o)}He.setLevel(e)}},{key:"createTextMessage",value:function(e){return this._getModule(Un).createTextMessage(e)}},{key:"createTextAtMessage",value:function(e){return this._getModule(Un).createTextMessage(e)}},{key:"createImageMessage",value:function(e){return this._getModule(Un).createImageMessage(e)}},{key:"createAudioMessage",value:function(e){return this._getModule(Un).createAudioMessage(e)}},{key:"createVideoMessage",value:function(e){return this._getModule(Un).createVideoMessage(e)}},{key:"createCustomMessage",value:function(e){return this._getModule(Un).createCustomMessage(e)}},{key:"createFaceMessage",value:function(e){return this._getModule(Un).createFaceMessage(e)}},{key:"createFileMessage",value:function(e){return this._getModule(Un).createFileMessage(e)}},{key:"createLocationMessage",value:function(e){return this._getModule(Un).createLocationMessage(e)}},{key:"createMergerMessage",value:function(e){return this._getModule(Un).createMergerMessage(e)}},{key:"downloadMergerMessage",value:function(e){return e.type!==S.MSG_MERGER?Oi({code:Qa}):Zt(e.payload.downloadKey)?Oi({code:Za}):this._getModule(Un).downloadMergerMessage(e).catch((function(e){return Oi({code:$a})}))}},{key:"createForwardMessage",value:function(e){return this._getModule(Un).createForwardMessage(e)}},{key:"sendMessage",value:function(e,t){return e instanceof Si?this._getModule(Un).sendMessageInstance(e,t):Oi({code:Ea})}},{key:"callExperimentalAPI",value:function(e,t){return"sendComboMessage"===e?this._getModule(co).sendMessage(t):"handleGroupInvitation"===e?this._getModule(Fn).handleGroupInvitation(t):"isCommercialAbilityEnabled"===e?this._getModule(ao).isFeatureEnabled(t):"isIntl"===e?this.isIntl():"sendTRTCCustomData"===e?this._getModule(uo).sendTRTCCustomData(t):"getTimerID"===e?this._m.getTimerID():Oi({code:Nr})}},{key:"revokeMessage",value:function(e){return this._getModule(Un).revokeMessage(e)}},{key:"resendMessage",value:function(e){return this._getModule(Un).resendMessage(e)}},{key:"deleteMessage",value:function(e){return this._getModule(Un).deleteMessage(e)}},{key:"translateText",value:function(e){return this._getModule(Un).translateText(e)}},{key:"setMessageExtensions",value:function(e,t){return this._getModule(bn).setMessageExtensions(e,t)}},{key:"getMessageExtensions",value:function(e){return this._getModule(bn).getMessageExtensions(e)}},{key:"deleteMessageExtensions",value:function(e,t){return this._getModule(bn).deleteMessageExtensions(e,t)}},{key:"modifyMessage",value:function(e){return this._getModule(Un).modifyRemoteMessage(e)}},{key:"getMessageList",value:function(e){return this._getModule(Hn).getMessageList(e)}},{key:"getMessageListHopping",value:function(e){return this._getModule(Hn).getMessageListHopping(e)}},{key:"sendMessageReadReceipt",value:function(e){return this._getModule(Hn).sendReadReceipt(e)}},{key:"getMessageReadReceiptList",value:function(e){return this._getModule(Hn).getReadReceiptList(e)}},{key:"getGroupMessageReadMemberList",value:function(e){return this._getModule(Fn).getReadReceiptDetail(e)}},{key:"findMessage",value:function(e){return this._getModule(Hn).findMessage(e)}},{key:"setMessageRead",value:function(e){return this._getModule(Hn).setMessageRead(e)}},{key:"getConversationList",value:function(e){return this._getModule(Hn).getConversationList(e)}},{key:"getConversationProfile",value:function(e){return this._getModule(Hn).getConversationProfile(e)}},{key:"deleteConversation",value:function(e){return this._getModule(Hn).deleteConversation(e)}},{key:"clearHistoryMessage",value:function(e){return this._getModule(Hn).clearHistoryMessage(e)}},{key:"pinConversation",value:function(e){return this._getModule(Hn).pinConversation(e)}},{key:"setAllMessageRead",value:function(e){return this._getModule(Hn).setAllMessageRead(e)}},{key:"setMessageRemindType",value:function(e){return this._getModule(Hn).setMessageRemindType(e)}},{key:"getTotalUnreadMessageCount",value:function(){return this._getModule(Hn).getTotalUnreadMessageCount()}},{key:"setConversationCustomData",value:function(e){return this._getModule(Hn).setConversationCustomData(e)}},{key:"markConversation",value:function(e){return this._getModule(Hn).markConversation(e)}},{key:"getConversationGroupList",value:function(){return this._getModule(Hn).getConversationGroupList()}},{key:"createConversationGroup",value:function(e){return this._getModule(Hn).createConversationGroup(e)}},{key:"deleteConversationGroup",value:function(e){return this._getModule(Hn).deleteConversationGroup(e)}},{key:"renameConversationGroup",value:function(e){return this._getModule(Hn).renameConversationGroup(e)}},{key:"addConversationsToGroup",value:function(e){return this._getModule(Hn).addConversationsToGroup(e)}},{key:"deleteConversationsFromGroup",value:function(e){return this._getModule(Hn).deleteConversationsFromGroup(e)}},{key:"getMyProfile",value:function(){return this._getModule(wn).getMyProfile()}},{key:"getUserProfile",value:function(e){return this._getModule(wn).getUserProfile(e)}},{key:"updateMyProfile",value:function(e){return this._getModule(wn).updateMyProfile(e)}},{key:"getBlacklist",value:function(){return this._getModule(wn).getLocalBlacklist()}},{key:"addToBlacklist",value:function(e){return this._getModule(wn).addBlacklist(e)}},{key:"removeFromBlacklist",value:function(e){return this._getModule(wn).deleteBlacklist(e)}},{key:"setSelfStatus",value:function(e){return this._getModule(wn).setSelfStatus(e)}},{key:"getUserStatus",value:function(e){return this._getModule(wn).getUserStatus(e)}},{key:"subscribeUserStatus",value:function(e){return this._getModule(wn).subscribeUserStatus(e)}},{key:"unsubscribeUserStatus",value:function(e){return this._getModule(wn).unsubscribeUserStatus(e)}},{key:"getFriendList",value:function(){var e=this._getModule(xn);return e?e.getLocalFriendList():Oi({code:Pr})}},{key:"addFriend",value:function(e){var t=this._getModule(xn);return t?t.addFriend(e):Oi({code:Pr})}},{key:"deleteFriend",value:function(e){var t=this._getModule(xn);return t?t.deleteFriend(e):Oi({code:Pr})}},{key:"checkFriend",value:function(e){var t=this._getModule(xn);return t?t.checkFriend(e):Oi({code:Pr})}},{key:"getFriendProfile",value:function(e){var t=this._getModule(xn);return t?t.getFriendProfile(e):Oi({code:Pr})}},{key:"updateFriend",value:function(e){var t=this._getModule(xn);return t?t.updateFriend(e):Oi({code:Pr})}},{key:"getFriendApplicationList",value:function(){var e=this._getModule(xn);return e?e.getLocalFriendApplicationList():Oi({code:Pr})}},{key:"acceptFriendApplication",value:function(e){var t=this._getModule(xn);return t?t.acceptFriendApplication(e):Oi({code:Pr})}},{key:"refuseFriendApplication",value:function(e){var t=this._getModule(xn);return t?t.refuseFriendApplication(e):Oi({code:Pr})}},{key:"deleteFriendApplication",value:function(e){var t=this._getModule(xn);return t?t.deleteFriendApplication(e):Oi({code:Pr})}},{key:"setFriendApplicationRead",value:function(){var e=this._getModule(xn);return e?e.setFriendApplicationRead():Oi({code:Pr})}},{key:"getFriendGroupList",value:function(){var e=this._getModule(xn);return e?e.getLocalFriendGroupList():Oi({code:Pr})}},{key:"createFriendGroup",value:function(e){var t=this._getModule(xn);return t?t.createFriendGroup(e):Oi({code:Pr})}},{key:"deleteFriendGroup",value:function(e){var t=this._getModule(xn);return t?t.deleteFriendGroup(e):Oi({code:Pr})}},{key:"addToFriendGroup",value:function(e){var t=this._getModule(xn);return t?t.addToFriendGroup(e):Oi({code:Pr})}},{key:"removeFromFriendGroup",value:function(e){var t=this._getModule(xn);return t?t.removeFromFriendGroup(e):Oi({code:Pr})}},{key:"renameFriendGroup",value:function(e){var t=this._getModule(xn);return t?t.renameFriendGroup(e):Oi({code:Pr})}},{key:"getGroupList",value:function(e){return this._getModule(Fn).getGroupList(e)}},{key:"getGroupProfile",value:function(e){return this._getModule(Fn).getGroupProfile(e)}},{key:"createGroup",value:function(e){return this._getModule(Fn).createGroup(e)}},{key:"dismissGroup",value:function(e){return this._getModule(Fn).dismissGroup(e)}},{key:"updateGroupProfile",value:function(e){return this._getModule(Fn).updateGroupProfile(e)}},{key:"joinGroup",value:function(e){return this._getModule(Fn).joinGroup(e)}},{key:"quitGroup",value:function(e){return this._getModule(Fn).quitGroup(e)}},{key:"searchGroupByID",value:function(e){return this._getModule(Fn).searchGroupByID(e)}},{key:"getGroupOnlineMemberCount",value:function(e){return this._getModule(Fn).getGroupOnlineMemberCount(e)}},{key:"changeGroupOwner",value:function(e){return this._getModule(Fn).changeGroupOwner(e)}},{key:"getGroupApplicationList",value:function(){return this._getModule(Fn).getGroupApplicationList()}},{key:"handleGroupApplication",value:function(e){return this._getModule(Fn).handleGroupApplication(e)}},{key:"initGroupAttributes",value:function(e){return this._getModule(Fn).initGroupAttributes(e)}},{key:"setGroupAttributes",value:function(e){return this._getModule(Fn).setGroupAttributes(e)}},{key:"deleteGroupAttributes",value:function(e){return this._getModule(Fn).deleteGroupAttributes(e)}},{key:"getGroupAttributes",value:function(e){return this._getModule(Fn).getGroupAttributes(e)}},{key:"setGroupCounters",value:function(e){return this._getModule(Fn).setGroupCounters(e)}},{key:"increaseGroupCounter",value:function(e){return this._getModule(Fn).increaseGroupCounter(e)}},{key:"decreaseGroupCounter",value:function(e){return this._getModule(Fn).decreaseGroupCounter(e)}},{key:"getGroupCounters",value:function(e){return this._getModule(Fn).getGroupCounters(e)}},{key:"getGroupMemberList",value:function(e){return this._getModule(Vn).getGroupMemberList(e)}},{key:"getGroupMemberProfile",value:function(e){return this._getModule(Vn).getGroupMemberProfile(e)}},{key:"addGroupMember",value:function(e){return this._getModule(Vn).addGroupMember(e)}},{key:"deleteGroupMember",value:function(e){return this._getModule(Vn).deleteGroupMember(e)}},{key:"setGroupMemberMuteTime",value:function(e){return this._getModule(Vn).setGroupMemberMuteTime(e)}},{key:"setGroupMemberRole",value:function(e){return this._getModule(Vn).setGroupMemberRole(e)}},{key:"setGroupMemberNameCard",value:function(e){return this._getModule(Vn).setGroupMemberNameCard(e)}},{key:"setGroupMemberCustomField",value:function(e){return this._getModule(Vn).setGroupMemberCustomField(e)}},{key:"markGroupMemberList",value:function(e){return this._getModule(Vn).markGroupMemberList(e)}},{key:"getJoinedCommunityList",value:function(){return this._getModule(Bn).getJoinedCommunityList()}},{key:"createTopicInCommunity",value:function(e){return this._getModule(Bn).createTopicInCommunity(e)}},{key:"deleteTopicFromCommunity",value:function(e){return this._getModule(Bn).deleteTopicFromCommunity(e)}},{key:"updateTopicProfile",value:function(e){return this._getModule(Bn).updateTopicProfile(e)}},{key:"getTopicList",value:function(e){return this._getModule(Bn).getTopicList(e)}}]),e}(),zc={login:1,logout:1,destroy:1,on:1,off:1,ready:1,setLogLevel:1,joinGroup:1,quitGroup:1,registerPlugin:1,getGroupOnlineMemberCount:1};function Jc(e,t){if(e.isReady()||1===zc[t])return!0;var n=e.getNotReadyReason(),o={code:n,message:"".concat(e.getErrorMessage(n)," | ").concat(t," | ").concat(e.getErrorMessage(Ur))};return e.onError(o),o}var Xc={},Qc={};return Qc.create=function(e){var n=0,o=e.SDKAppID;if(ot(o))n=o;else if(n=parseInt(o),isNaN(o))return He.e("".concat("TIM.create"," failed. Failed to parse the SDKAppID, please check the arguments")),null;if(n&&Xc[n])return Xc[n];He.l("".concat("TIM.create"));var s=new Yc(t(t({},e),{},{SDKAppID:n}));s.on(k.SDK_DESTROY,(function(e){Xc[e.data.SDKAppID]=null,delete Xc[e.data.SDKAppID]}));var a=function(e){var t=Object.create(null);return Object.keys(Gn).forEach((function(n){if(e[n]){var o=new L;t[n]=function(){var t=Array.from(arguments);return o.use((function(t,o){var s=Jc(e,n);return!0===s?o():Oi(s)})).use((function(e,t){if(!0===$t(e,On[n],n))return t()})).use((function(t,o){return e[n].apply(e,t)})),o.run(t)}}})),t}(s);return Xc[n]=a,On.hookGetAPITips(s.getErrorMessage.bind(s)),He.l("".concat("TIM.create"," ok")),a},Qc.TYPES=S,Qc.EVENT=k,Qc.VERSION="2.27.0",He.l("TIM.VERSION:".concat(Qc.VERSION)),Qc})); diff --git a/TUIService/TUIKit/package.json b/TUIService/TUIKit/package.json new file mode 100644 index 0000000..eed5753 --- /dev/null +++ b/TUIService/TUIKit/package.json @@ -0,0 +1,64 @@ +{ + "_from": "@tencentcloud/chat-uikit-wechat", + "_id": "@tencentcloud/chat-uikit-wechat@1.0.14", + "_inBundle": false, + "_integrity": "sha512-oAD0ZPcsj+VEnElIhmspnbaNKfrK/KDrN3QNY2csd8TVvqe5QDnkeo9W8aAoIWZGkVhZXB5iwa+pigoslRgrww==", + "_location": "/@tencentcloud/chat-uikit-wechat", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "@tencentcloud/chat-uikit-wechat", + "name": "@tencentcloud/chat-uikit-wechat", + "escapedName": "@tencentcloud%2fchat-uikit-wechat", + "scope": "@tencentcloud", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/@tencentcloud/chat-uikit-wechat/-/chat-uikit-wechat-1.0.14.tgz", + "_shasum": "a6947177b2656ee88cde0f6145b49b792fe412ca", + "_spec": "@tencentcloud/chat-uikit-wechat", + "_where": "E:\\gdxz_gitWorkPlace\\wxAppPatient", + "author": "", + "bugs": { + "url": "https://github.com/TencentCloud/chat-uikit-wechat/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@tencentcloud/call-uikit-wechat": "^1.1.3" + }, + "deprecated": false, + "description": "TUIKit 是基于 IM SDK 实现的一套 UI 组件,其包含会话、聊天、群组、个人资料等功能,基于 TUIKit 组件您可以像搭积木一样快速搭建起自己的业务逻辑。", + "directories": { + "lib": "lib" + }, + "homepage": "https://github.com/TencentCloud/chat-uikit-wechat#readme", + "keywords": [ + "uikit", + "chat", + "小程序", + "IM", + "tencent", + "tencentcloud", + "messaging", + "即时通信", + "通信", + "WebSocket" + ], + "license": "ISC", + "main": "index.js", + "name": "@tencentcloud/chat-uikit-wechat", + "repository": { + "type": "git", + "url": "git+https://github.com/TencentCloud/chat-uikit-wechat.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.0.14" +} diff --git a/TUIService/TUIKit/static/assets/add.svg b/TUIService/TUIKit/static/assets/add.svg new file mode 100644 index 0000000..81754c0 --- /dev/null +++ b/TUIService/TUIKit/static/assets/add.svg @@ -0,0 +1,31 @@ + + + + 添加 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/static/assets/addgroup.svg b/TUIService/TUIKit/static/assets/addgroup.svg new file mode 100644 index 0000000..6132492 --- /dev/null +++ b/TUIService/TUIKit/static/assets/addgroup.svg @@ -0,0 +1,19 @@ + + + + 添加成员 + Created with Sketch. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/static/assets/audio-calling.svg b/TUIService/TUIKit/static/assets/audio-calling.svg new file mode 100644 index 0000000..4b3ae43 --- /dev/null +++ b/TUIService/TUIKit/static/assets/audio-calling.svg @@ -0,0 +1,18 @@ + + + + 音频通话 + Created with Sketch. + + + + + + + + + + + + + diff --git a/TUIService/TUIKit/static/assets/audio.svg b/TUIService/TUIKit/static/assets/audio.svg new file mode 100644 index 0000000..43cad84 --- /dev/null +++ b/TUIService/TUIKit/static/assets/audio.svg @@ -0,0 +1,16 @@ + + + + 语音 + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/static/assets/back.png b/TUIService/TUIKit/static/assets/back.png new file mode 100644 index 0000000..4eafa0d Binary files /dev/null and b/TUIService/TUIKit/static/assets/back.png differ diff --git a/TUIService/TUIKit/static/assets/background.svg b/TUIService/TUIKit/static/assets/background.svg new file mode 100644 index 0000000..98640f3 --- /dev/null +++ b/TUIService/TUIKit/static/assets/background.svg @@ -0,0 +1,19 @@ + + + + 背景 + Created with Sketch. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/static/assets/down.svg b/TUIService/TUIKit/static/assets/down.svg new file mode 100644 index 0000000..e836e9e --- /dev/null +++ b/TUIService/TUIKit/static/assets/down.svg @@ -0,0 +1,16 @@ + + + + 下拉 + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/static/assets/face-emoji.svg b/TUIService/TUIKit/static/assets/face-emoji.svg new file mode 100644 index 0000000..961e669 --- /dev/null +++ b/TUIService/TUIKit/static/assets/face-emoji.svg @@ -0,0 +1,18 @@ + + + + 表情 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/static/assets/gruopavatar.svg b/TUIService/TUIKit/static/assets/gruopavatar.svg new file mode 100644 index 0000000..28ffca7 --- /dev/null +++ b/TUIService/TUIKit/static/assets/gruopavatar.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/TUIService/TUIKit/static/assets/ic_back_white.svg b/TUIService/TUIKit/static/assets/ic_back_white.svg new file mode 100644 index 0000000..188092f --- /dev/null +++ b/TUIService/TUIKit/static/assets/ic_back_white.svg @@ -0,0 +1,12 @@ + + + + ic_back_white + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/static/assets/keyboard.svg b/TUIService/TUIKit/static/assets/keyboard.svg new file mode 100644 index 0000000..59acc21 --- /dev/null +++ b/TUIService/TUIKit/static/assets/keyboard.svg @@ -0,0 +1,26 @@ + + + + 键盘 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/static/assets/more.svg b/TUIService/TUIKit/static/assets/more.svg new file mode 100644 index 0000000..3bc8407 --- /dev/null +++ b/TUIService/TUIKit/static/assets/more.svg @@ -0,0 +1,17 @@ + + + + 更多功能 + Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/static/assets/quitgroup.svg b/TUIService/TUIKit/static/assets/quitgroup.svg new file mode 100644 index 0000000..fec6ea1 --- /dev/null +++ b/TUIService/TUIKit/static/assets/quitgroup.svg @@ -0,0 +1,17 @@ + + + + 退出群聊 + Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/static/assets/send-img.svg b/TUIService/TUIKit/static/assets/send-img.svg new file mode 100644 index 0000000..c0488bf --- /dev/null +++ b/TUIService/TUIKit/static/assets/send-img.svg @@ -0,0 +1,16 @@ + + + + 发送照片 + Created with Sketch. + + + + + + + + + + + diff --git a/TUIService/TUIKit/static/assets/send-order.svg b/TUIService/TUIKit/static/assets/send-order.svg new file mode 100644 index 0000000..cbadc12 --- /dev/null +++ b/TUIService/TUIKit/static/assets/send-order.svg @@ -0,0 +1,19 @@ + + + + 发送订单 + Created with Sketch. + + + + + + + + + + + + + + diff --git a/TUIService/TUIKit/static/assets/send-video.svg b/TUIService/TUIKit/static/assets/send-video.svg new file mode 100644 index 0000000..7d2675e --- /dev/null +++ b/TUIService/TUIKit/static/assets/send-video.svg @@ -0,0 +1,23 @@ + + + + 发送视频 + Created with Sketch. + + + + + + + + + + + + + + + + + + diff --git a/TUIService/TUIKit/static/assets/serach-icon.svg b/TUIService/TUIKit/static/assets/serach-icon.svg new file mode 100644 index 0000000..8905e84 --- /dev/null +++ b/TUIService/TUIKit/static/assets/serach-icon.svg @@ -0,0 +1,17 @@ + + + + 搜索 + Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/static/assets/service-assess.svg b/TUIService/TUIKit/static/assets/service-assess.svg new file mode 100644 index 0000000..60fb8d6 --- /dev/null +++ b/TUIService/TUIKit/static/assets/service-assess.svg @@ -0,0 +1,17 @@ + + + + 服务评价 + Created with Sketch. + + + + + + + + + + + + diff --git a/TUIService/TUIKit/static/assets/show.svg b/TUIService/TUIKit/static/assets/show.svg new file mode 100644 index 0000000..78cb912 --- /dev/null +++ b/TUIService/TUIKit/static/assets/show.svg @@ -0,0 +1,18 @@ + + + + 更多 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/static/assets/single-choice-hover.svg b/TUIService/TUIKit/static/assets/single-choice-hover.svg new file mode 100644 index 0000000..a77614c --- /dev/null +++ b/TUIService/TUIKit/static/assets/single-choice-hover.svg @@ -0,0 +1,16 @@ + + + + 单选-hover + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/static/assets/single-choice-normal.svg b/TUIService/TUIKit/static/assets/single-choice-normal.svg new file mode 100644 index 0000000..c192798 --- /dev/null +++ b/TUIService/TUIKit/static/assets/single-choice-normal.svg @@ -0,0 +1,15 @@ + + + + 单选-normal + Created with Sketch. + + + + + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/static/assets/take-photo.svg b/TUIService/TUIKit/static/assets/take-photo.svg new file mode 100644 index 0000000..4ff56eb --- /dev/null +++ b/TUIService/TUIKit/static/assets/take-photo.svg @@ -0,0 +1,17 @@ + + + + 拍摄照片 + Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/static/assets/take-video.svg b/TUIService/TUIKit/static/assets/take-video.svg new file mode 100644 index 0000000..9dfe66d --- /dev/null +++ b/TUIService/TUIKit/static/assets/take-video.svg @@ -0,0 +1,17 @@ + + + + 拍摄视频 + Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/static/assets/up.svg b/TUIService/TUIKit/static/assets/up.svg new file mode 100644 index 0000000..8582d26 --- /dev/null +++ b/TUIService/TUIKit/static/assets/up.svg @@ -0,0 +1,16 @@ + + + + 收起 + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/TUIService/TUIKit/static/assets/video-calling.svg b/TUIService/TUIKit/static/assets/video-calling.svg new file mode 100644 index 0000000..d32e7cd --- /dev/null +++ b/TUIService/TUIKit/static/assets/video-calling.svg @@ -0,0 +1,17 @@ + + + + 视频通话 + Created with Sketch. + + + + + + + + + + + + diff --git a/TUIService/TUIKit/static/images/album.png b/TUIService/TUIKit/static/images/album.png new file mode 100644 index 0000000..f9039e8 Binary files /dev/null and b/TUIService/TUIKit/static/images/album.png differ diff --git a/TUIService/TUIKit/static/images/back.png b/TUIService/TUIKit/static/images/back.png new file mode 100644 index 0000000..4eafa0d Binary files /dev/null and b/TUIService/TUIKit/static/images/back.png differ diff --git a/TUIService/TUIKit/static/images/buyyao.png b/TUIService/TUIKit/static/images/buyyao.png new file mode 100644 index 0000000..b4c438b Binary files /dev/null and b/TUIService/TUIKit/static/images/buyyao.png differ diff --git a/TUIService/TUIKit/static/images/camera.png b/TUIService/TUIKit/static/images/camera.png new file mode 100644 index 0000000..297e770 Binary files /dev/null and b/TUIService/TUIKit/static/images/camera.png differ diff --git a/TUIService/TUIKit/static/images/chat_close.png b/TUIService/TUIKit/static/images/chat_close.png new file mode 100644 index 0000000..0d79ed5 Binary files /dev/null and b/TUIService/TUIKit/static/images/chat_close.png differ diff --git a/TUIService/TUIKit/static/images/close.png b/TUIService/TUIKit/static/images/close.png new file mode 100644 index 0000000..d2368ae Binary files /dev/null and b/TUIService/TUIKit/static/images/close.png differ diff --git a/TUIService/TUIKit/static/images/emoji.png b/TUIService/TUIKit/static/images/emoji.png new file mode 100644 index 0000000..6d41a6a Binary files /dev/null and b/TUIService/TUIKit/static/images/emoji.png differ diff --git a/TUIService/TUIKit/static/images/expertzx.png b/TUIService/TUIKit/static/images/expertzx.png new file mode 100644 index 0000000..78de533 Binary files /dev/null and b/TUIService/TUIKit/static/images/expertzx.png differ diff --git a/TUIService/TUIKit/static/images/file.png b/TUIService/TUIKit/static/images/file.png new file mode 100644 index 0000000..835d13e Binary files /dev/null and b/TUIService/TUIKit/static/images/file.png differ diff --git a/TUIService/TUIKit/static/images/freezx.png b/TUIService/TUIKit/static/images/freezx.png new file mode 100644 index 0000000..33b611e Binary files /dev/null and b/TUIService/TUIKit/static/images/freezx.png differ diff --git a/TUIService/TUIKit/static/images/help.png b/TUIService/TUIKit/static/images/help.png new file mode 100644 index 0000000..0f4ee68 Binary files /dev/null and b/TUIService/TUIKit/static/images/help.png differ diff --git a/TUIService/TUIKit/static/images/mutenotifications.png b/TUIService/TUIKit/static/images/mutenotifications.png new file mode 100644 index 0000000..81c614a Binary files /dev/null and b/TUIService/TUIKit/static/images/mutenotifications.png differ diff --git a/TUIService/TUIKit/static/images/quickzx.png b/TUIService/TUIKit/static/images/quickzx.png new file mode 100644 index 0000000..d64b891 Binary files /dev/null and b/TUIService/TUIKit/static/images/quickzx.png differ diff --git a/TUIService/TUIKit/static/images/sendingaudio.png b/TUIService/TUIKit/static/images/sendingaudio.png new file mode 100644 index 0000000..c9a6369 Binary files /dev/null and b/TUIService/TUIKit/static/images/sendingaudio.png differ diff --git a/TUIService/TUIKit/static/images/star-grey.png b/TUIService/TUIKit/static/images/star-grey.png new file mode 100644 index 0000000..1ea3ee6 Binary files /dev/null and b/TUIService/TUIKit/static/images/star-grey.png differ diff --git a/TUIService/TUIKit/static/images/star.png b/TUIService/TUIKit/static/images/star.png new file mode 100644 index 0000000..8a17c0e Binary files /dev/null and b/TUIService/TUIKit/static/images/star.png differ diff --git a/TUIService/TUIKit/static/images/system.png b/TUIService/TUIKit/static/images/system.png new file mode 100644 index 0000000..94e8fc9 Binary files /dev/null and b/TUIService/TUIKit/static/images/system.png differ diff --git a/TUIService/TUIKit/static/images/tuikit-msg-error.png b/TUIService/TUIKit/static/images/tuikit-msg-error.png new file mode 100644 index 0000000..7c8d199 Binary files /dev/null and b/TUIService/TUIKit/static/images/tuikit-msg-error.png differ diff --git a/TUIService/TUIKit/static/images/up.png b/TUIService/TUIKit/static/images/up.png new file mode 100644 index 0000000..b45bac3 Binary files /dev/null and b/TUIService/TUIKit/static/images/up.png differ diff --git a/TUIService/TUIKit/static/images/xia.png b/TUIService/TUIKit/static/images/xia.png new file mode 100644 index 0000000..5d5fa49 Binary files /dev/null and b/TUIService/TUIKit/static/images/xia.png differ diff --git a/TUIService/TUIKit/utils/common-utils.js b/TUIService/TUIKit/utils/common-utils.js new file mode 100644 index 0000000..c6171a8 --- /dev/null +++ b/TUIService/TUIKit/utils/common-utils.js @@ -0,0 +1,62 @@ +import logger from './logger' + +// -----------------检测类型工具函数----------------- +/** + * 检测input类型是否为数组或者object + * @param {*} input 任意类型的输入 + * @returns {Boolean} true->input is an array or an object + */ +export const isArrayOrObject = function (input) { + return isArray(input) || isObject(input) +} +/** + * 检测input是否为Error的实例 + * @param {*} input 任意类型的输入 + * @returns {Boolean} true->input is an instance of Error + */ +export const isInstanceOfError = function (input) { + return (input instanceof Error) +} + + +// -----------------获取时间工具函数,计算耗时用----------------- + +let baseTime = 0 +if (!Date.now) { + Date.now = function now() { + return new Date().getTime() + } +} + +export const TimeUtil = { + now() { + if (baseTime === 0) { + baseTime = Date.now() - 1 + } + + const diff = Date.now() - baseTime + if (diff > 0xffffffff) { + baseTime += 0xffffffff + return Date.now() - baseTime + } + return diff + }, + + utc() { + return Math.round(Date.now() / 1000) + }, +} + +// -----------------深度合并工具函数----------------- + + +// -----------------其它----------------- +/** + * 序列化Error实例,只序列化Error实例的message和code属性(如果有的话) + * @param {Error} error Error实例 + * @returns {String} 序列化后的内容 + */ +export const stringifyError = function (error) { + return JSON.stringify(error, ['message', 'code']) +} + diff --git a/TUIService/TUIKit/utils/common.js b/TUIService/TUIKit/utils/common.js new file mode 100644 index 0000000..b1b1350 --- /dev/null +++ b/TUIService/TUIKit/utils/common.js @@ -0,0 +1,36 @@ +export function caculateTimeago(dateTimeStamp) { + const minute = 1000 * 60; // 把分,时,天,周,半个月,一个月用毫秒表示 + const hour = minute * 60; + const day = hour * 24; + const week = day * 7; + const now = new Date().getTime(); // 获取当前时间毫秒 + const diffValue = now - dateTimeStamp;// 时间差 + let result = ''; + + if (diffValue < 0) { + return; + } + const minC = diffValue / minute; // 计算时间差的分,时,天,周,月 + const hourC = diffValue / hour; + const dayC = diffValue / day; + const weekC = diffValue / week; + if (weekC >= 1 && weekC <= 4) { + result = ` ${parseInt(weekC, 10)}周前`; + } else if (dayC >= 1 && dayC <= 6) { + result = ` ${parseInt(dayC, 10)}天前`; + } else if (hourC >= 1 && hourC <= 23) { + result = ` ${parseInt(hourC, 10)}小时前`; + } else if (minC >= 1 && minC <= 59) { + result = ` ${parseInt(minC, 10)}分钟前`; + } else if (diffValue >= 0 && diffValue <= minute) { + result = '刚刚'; + } else { + const datetime = new Date(); + datetime.setTime(dateTimeStamp); + const Nyear = datetime.getFullYear(); + const Nmonth = datetime.getMonth() + 1 < 10 ? `0${datetime.getMonth() + 1}` : datetime.getMonth() + 1; + const Ndate = datetime.getDate() < 10 ? `0${datetime.getDate()}` : datetime.getDate(); + result = `${Nyear}-${Nmonth}-${Ndate}`; + } + return result; +} diff --git a/TUIService/TUIKit/utils/console.js b/TUIService/TUIKit/utils/console.js new file mode 100644 index 0000000..e39fcb6 --- /dev/null +++ b/TUIService/TUIKit/utils/console.js @@ -0,0 +1,24 @@ +let _console; let method +if (typeof console !== 'undefined') { + _console = console +} else if (typeof global !== 'undefined' && global.console) { + _console = global.console +} else if (typeof window !== 'undefined' && window.console) { + _console = window.console +} else { + _console = {} +} + +const noop = function () {} +const methods = ['assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', 'timeStamp', 'trace', 'warn'] +let { length } = methods + +while (length--) { + method = methods[length] + + if (!console[method]) { + _console[method] = noop + } +} + +export default _console diff --git a/TUIService/TUIKit/utils/constant.js b/TUIService/TUIKit/utils/constant.js new file mode 100644 index 0000000..5125093 --- /dev/null +++ b/TUIService/TUIKit/utils/constant.js @@ -0,0 +1,47 @@ +const constant = { + FEAT_NATIVE_CODE: { + NATIVE_VERSION: 1, + ISTYPING_STATUS: 1, + NOTTYPING_STATUS: 1, + ISTYPING_ACTION: 14, + NOTTYPING_ACTION: 0, + FEAT_TYPING: 1 + }, + TYPE_INPUT_STATUS_ING: 'EIMAMSG_InputStatus_Ing', + TYPE_INPUT_STATUS_END: 'EIMAMSG_InputStatus_End', + MESSAGE_TYPE_TEXT: { + TIM_CUSTOM_ELEM: 'TIMCustomElem', + }, + BUSINESS_ID_TEXT: { + USER_TYPING: 'user_typing_status', + EVALUATION: 'evaluation', + ORDER: 'order', + LINK: 'text_link', + CREATE_GROUP: 'group_create', + CONSULTION: 'consultion', + }, + + STRING_TEXT: { + TYPETYPING: '对方正在输入...', + TYPETEXT: '对本次服务的评价', + }, + MESSAGE_ERROR_CODE: { + DIRTY_WORDS: 80001, + UPLOAD_FAIL: 6008, + REQUESTOR_TIME: 2081, + DISCONNECT_NETWORK: 2800, + DIRTY_MEDIA: 80004, + }, + TOAST_TITLE_TEXT: { + DIRTY_WORDS: '您发送的消息包含违禁词汇!', + UPLOAD_FAIL: '文件上传失败!', + CONNECT_ERROR: '网络已断开', + DIRTY_MEDIA: '您发送的消息包含违禁内容!', + RESEND_SUCCESS: '重发成功', + }, + + OPERATING_ENVIRONMENT: 'imWxTuikit' +}; + + +export default constant diff --git a/TUIService/TUIKit/utils/dayjs.js b/TUIService/TUIKit/utils/dayjs.js new file mode 100644 index 0000000..ae93b6c --- /dev/null +++ b/TUIService/TUIKit/utils/dayjs.js @@ -0,0 +1,120 @@ +!(function (t, e) { + 'object' === typeof exports && 'undefined' !== typeof module ? module.exports = e() : 'function' === typeof define && define.amd ? define(e) : (t = 'undefined' !== typeof globalThis ? globalThis : t || self).dayjs = e(); +}(this, (() => { + 'use strict';const t = 1e3; const e = 6e4; const n = 36e5; const r = 'millisecond'; const i = 'second'; const s = 'minute'; const u = 'hour'; const a = 'day'; const o = 'week'; const f = 'month'; const h = 'quarter'; const c = 'year'; const d = 'date'; const $ = 'Invalid Date'; const l = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/; const y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g; const M = { name: 'en', weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_') }; const m = function (t, e, n) { + const r = String(t);return !r || r.length >= e ? t : `${Array(e + 1 - r.length).join(n)}${t}`; + }; const g = { s: m, z(t) { + const e = -t.utcOffset(); const n = Math.abs(e); const r = Math.floor(n / 60); const i = n % 60;return `${(e <= 0 ? '+' : '-') + m(r, 2, '0')}:${m(i, 2, '0')}`; + }, m: function t(e, n) { + if (e.date() < n.date()) return -t(n, e);const r = 12 * (n.year() - e.year()) + (n.month() - e.month()); const i = e.clone().add(r, f); const s = n - i < 0; const u = e.clone().add(r + (s ? -1 : 1), f);return +(-(r + (n - i) / (s ? i - u : u - i)) || 0); + }, a(t) { + return t < 0 ? Math.ceil(t) || 0 : Math.floor(t); + }, p(t) { + return { M: f, y: c, w: o, d: a, D: d, h: u, m: s, s: i, ms: r, Q: h }[t] || String(t || '').toLowerCase() + .replace(/s$/, ''); + }, u(t) { + return void 0 === t; + } }; let D = 'en'; const v = {};v[D] = M;const p = function (t) { + return t instanceof _; + }; const S = function (t, e, n) { + let r;if (!t) return D;if ('string' === typeof t)v[t] && (r = t), e && (v[t] = e, r = t);else { + const i = t.name;v[i] = t, r = i; + } return !n && r && (D = r), r || !n && D; + }; const w = function (t, e) { + if (p(t)) return t.clone();const n = 'object' === typeof e ? e : {};return n.date = t, n.args = arguments, new _(n); + }; const O = g;O.l = S, O.i = p, O.w = function (t, e) { + return w(t, { locale: e.$L, utc: e.$u, x: e.$x, $offset: e.$offset }); + }; + var _ = (function () { + function M(t) { + this.$L = S(t.locale, null, !0), this.parse(t); + } const m = M.prototype;return m.parse = function (t) { + this.$d = (function (t) { + const e = t.date; const n = t.utc;if (null === e) return new Date(NaN);if (O.u(e)) return new Date;if (e instanceof Date) return new Date(e);if ('string' === typeof e && !/Z$/i.test(e)) { + const r = e.match(l);if (r) { + const i = r[2] - 1 || 0; const s = (r[7] || '0').substring(0, 3);return n ? new Date(Date.UTC(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, s)) : new Date(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, s); + } + } return new Date(e); + }(t)), this.$x = t.x || {}, this.init(); + }, m.init = function () { + const t = this.$d;this.$y = t.getFullYear(), this.$M = t.getMonth(), this.$D = t.getDate(), this.$W = t.getDay(), this.$H = t.getHours(), this.$m = t.getMinutes(), this.$s = t.getSeconds(), this.$ms = t.getMilliseconds(); + }, m.$utils = function () { + return O; + }, m.isValid = function () { + return !(this.$d.toString() === $); + }, m.isSame = function (t, e) { + const n = w(t);return this.startOf(e) <= n && n <= this.endOf(e); + }, m.isAfter = function (t, e) { + return w(t) < this.startOf(e); + }, m.isBefore = function (t, e) { + return this.endOf(e) < w(t); + }, m.$g = function (t, e, n) { + return O.u(t) ? this[e] : this.set(n, t); + }, m.unix = function () { + return Math.floor(this.valueOf() / 1e3); + }, m.valueOf = function () { + return this.$d.getTime(); + }, m.startOf = function (t, e) { + const n = this; const r = !!O.u(e) || e; const h = O.p(t); const $ = function (t, e) { + const i = O.w(n.$u ? Date.UTC(n.$y, e, t) : new Date(n.$y, e, t), n);return r ? i : i.endOf(a); + }; const l = function (t, e) { + return O.w(n.toDate()[t].apply(n.toDate('s'), (r ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e)), n); + }; const y = this.$W; const M = this.$M; const m = this.$D; const g = `set${this.$u ? 'UTC' : ''}`;switch (h) { + // eslint-disable-next-line no-var + case c:return r ? $(1, 0) : $(31, 11);case f:return r ? $(1, M) : $(0, M + 1);case o:var D = this.$locale().weekStart || 0; var v = (y < D ? y + 7 : y) - D;return $(r ? m - v : m + (6 - v), M);case a:case d:return l(`${g}Hours`, 0);case u:return l(`${g}Minutes`, 1);case s:return l(`${g}Seconds`, 2);case i:return l(`${g}Milliseconds`, 3);default:return this.clone(); + } + }, m.endOf = function (t) { + return this.startOf(t, !1); + }, m.$set = function (t, e) { + let n; const o = O.p(t); const h = `set${this.$u ? 'UTC' : ''}`; const $ = (n = {}, n[a] = `${h}Date`, n[d] = `${h}Date`, n[f] = `${h}Month`, n[c] = `${h}FullYear`, n[u] = `${h}Hours`, n[s] = `${h}Minutes`, n[i] = `${h}Seconds`, n[r] = `${h}Milliseconds`, n)[o]; const l = o === a ? this.$D + (e - this.$W) : e;if (o === f || o === c) { + const y = this.clone().set(d, 1);y.$d[$](l), y.init(), this.$d = y.set(d, Math.min(this.$D, y.daysInMonth())).$d; + } else $ && this.$d[$](l);return this.init(), this; + }, m.set = function (t, e) { + return this.clone().$set(t, e); + }, m.get = function (t) { + return this[O.p(t)](); + }, m.add = function (r, h) { + let d; const $ = this;r = Number(r);const l = O.p(h); const y = function (t) { + const e = w($);return O.w(e.date(e.date() + Math.round(t * r)), $); + };if (l === f) return this.set(f, this.$M + r);if (l === c) return this.set(c, this.$y + r);if (l === a) return y(1);if (l === o) return y(7);const M = (d = {}, d[s] = e, d[u] = n, d[i] = t, d)[l] || 1; const m = this.$d.getTime() + r * M;return O.w(m, this); + }, m.subtract = function (t, e) { + return this.add(-1 * t, e); + }, m.format = function (t) { + const e = this; const n = this.$locale();if (!this.isValid()) return n.invalidDate || $;const r = t || 'YYYY-MM-DDTHH:mm:ssZ'; const i = O.z(this); const s = this.$H; const u = this.$m; const a = this.$M; const o = n.weekdays; const f = n.months; const h = function (t, n, i, s) { + return t && (t[n] || t(e, r)) || i[n].substr(0, s); + }; const c = function (t) { + return O.s(s % 12 || 12, t, '0'); + }; const d = n.meridiem || function (t, _e, n) { + const r = t < 12 ? 'AM' : 'PM';return n ? r.toLowerCase() : r; + }; const l = { YY: String(this.$y).slice(-2), YYYY: this.$y, M: a + 1, MM: O.s(a + 1, 2, '0'), MMM: h(n.monthsShort, a, f, 3), MMMM: h(f, a), D: this.$D, DD: O.s(this.$D, 2, '0'), d: String(this.$W), dd: h(n.weekdaysMin, this.$W, o, 2), ddd: h(n.weekdaysShort, this.$W, o, 3), dddd: o[this.$W], H: String(s), HH: O.s(s, 2, '0'), h: c(1), hh: c(2), a: d(s, u, !0), A: d(s, u, !1), m: String(u), mm: O.s(u, 2, '0'), s: String(this.$s), ss: O.s(this.$s, 2, '0'), SSS: O.s(this.$ms, 3, '0'), Z: i };return r.replace(y, ((t, e) => e || l[t] || i.replace(':', ''))); + }, m.utcOffset = function () { + return 15 * -Math.round(this.$d.getTimezoneOffset() / 15); + }, m.diff = function (r, d, $) { + let l; const y = O.p(d); const M = w(r); const m = (M.utcOffset() - this.utcOffset()) * e; const g = this - M; let D = O.m(this, M);return D = (l = {}, l[c] = D / 12, l[f] = D, l[h] = D / 3, l[o] = (g - m) / 6048e5, l[a] = (g - m) / 864e5, l[u] = g / n, l[s] = g / e, l[i] = g / t, l)[y] || g, $ ? D : O.a(D); + }, m.daysInMonth = function () { + return this.endOf(f).$D; + }, m.$locale = function () { + return v[this.$L]; + }, m.locale = function (t, e) { + if (!t) return this.$L;const n = this.clone(); const r = S(t, e, !0);return r && (n.$L = r), n; + }, m.clone = function () { + return O.w(this.$d, this); + }, m.toDate = function () { + return new Date(this.valueOf()); + }, m.toJSON = function () { + return this.isValid() ? this.toISOString() : null; + }, m.toISOString = function () { + return this.$d.toISOString(); + }, m.toString = function () { + return this.$d.toUTCString(); + }, M; + }()); const b = _.prototype;return w.prototype = b, [['$ms', r], ['$s', i], ['$m', s], ['$H', u], ['$W', a], ['$M', f], ['$y', c], ['$D', d]].forEach(((t) => { + b[t[1]] = function (e) { + return this.$g(e, t[0], t[1]); + }; + })), w.extend = function (t, e) { + return t.$i || (t(e, _, w), t.$i = !0), w; + }, w.locale = S, w.isDayjs = p, w.unix = function (t) { + return w(1e3 * t); + }, w.en = v[D], w.Ls = v, w.p = {}, w; +}))); diff --git a/TUIService/TUIKit/utils/emojiMap.js b/TUIService/TUIKit/utils/emojiMap.js new file mode 100644 index 0000000..81a7b66 --- /dev/null +++ b/TUIService/TUIKit/utils/emojiMap.js @@ -0,0 +1,286 @@ +export const emojiUrl = 'https://web.sdk.qcloud.com/im/assets/emoji/'; +export const emojiMap = { + '[NO]': 'emoji_0@2x.png', + '[OK]': 'emoji_1@2x.png', + '[下雨]': 'emoji_2@2x.png', + '[么么哒]': 'emoji_3@2x.png', + '[乒乓]': 'emoji_4@2x.png', + '[便便]': 'emoji_5@2x.png', + '[信封]': 'emoji_6@2x.png', + '[偷笑]': 'emoji_7@2x.png', + '[傲慢]': 'emoji_8@2x.png', + '[再见]': 'emoji_9@2x.png', + '[冷汗]': 'emoji_10@2x.png', + '[凋谢]': 'emoji_11@2x.png', + '[刀]': 'emoji_12@2x.png', + '[删除]': 'emoji_13@2x.png', + '[勾引]': 'emoji_14@2x.png', + '[发呆]': 'emoji_15@2x.png', + '[发抖]': 'emoji_16@2x.png', + '[可怜]': 'emoji_17@2x.png', + '[可爱]': 'emoji_18@2x.png', + '[右哼哼]': 'emoji_19@2x.png', + '[右太极]': 'emoji_20@2x.png', + '[右车头]': 'emoji_21@2x.png', + '[吐]': 'emoji_22@2x.png', + '[吓]': 'emoji_23@2x.png', + '[咒骂]': 'emoji_24@2x.png', + '[咖啡]': 'emoji_25@2x.png', + '[啤酒]': 'emoji_26@2x.png', + '[嘘]': 'emoji_27@2x.png', + '[回头]': 'emoji_28@2x.png', + '[困]': 'emoji_29@2x.png', + '[坏笑]': 'emoji_30@2x.png', + '[多云]': 'emoji_31@2x.png', + '[大兵]': 'emoji_32@2x.png', + '[大哭]': 'emoji_33@2x.png', + '[太阳]': 'emoji_34@2x.png', + '[奋斗]': 'emoji_35@2x.png', + '[奶瓶]': 'emoji_36@2x.png', + '[委屈]': 'emoji_37@2x.png', + '[害羞]': 'emoji_38@2x.png', + '[尴尬]': 'emoji_39@2x.png', + '[左哼哼]': 'emoji_40@2x.png', + '[左太极]': 'emoji_41@2x.png', + '[左车头]': 'emoji_42@2x.png', + '[差劲]': 'emoji_43@2x.png', + '[弱]': 'emoji_44@2x.png', + '[强]': 'emoji_45@2x.png', + '[彩带]': 'emoji_46@2x.png', + '[彩球]': 'emoji_47@2x.png', + '[得意]': 'emoji_48@2x.png', + '[微笑]': 'emoji_49@2x.png', + '[心碎了]': 'emoji_50@2x.png', + '[快哭了]': 'emoji_51@2x.png', + '[怄火]': 'emoji_52@2x.png', + '[怒]': 'emoji_53@2x.png', + '[惊恐]': 'emoji_54@2x.png', + '[惊讶]': 'emoji_55@2x.png', + '[憨笑]': 'emoji_56@2x.png', + '[手枪]': 'emoji_57@2x.png', + '[打哈欠]': 'emoji_58@2x.png', + '[抓狂]': 'emoji_59@2x.png', + '[折磨]': 'emoji_60@2x.png', + '[抠鼻]': 'emoji_61@2x.png', + '[抱抱]': 'emoji_62@2x.png', + '[抱拳]': 'emoji_63@2x.png', + '[拳头]': 'emoji_64@2x.png', + '[挥手]': 'emoji_65@2x.png', + '[握手]': 'emoji_66@2x.png', + '[撇嘴]': 'emoji_67@2x.png', + '[擦汗]': 'emoji_68@2x.png', + '[敲打]': 'emoji_69@2x.png', + '[晕]': 'emoji_70@2x.png', + '[月亮]': 'emoji_71@2x.png', + '[棒棒糖]': 'emoji_72@2x.png', + '[汽车]': 'emoji_73@2x.png', + '[沙发]': 'emoji_74@2x.png', + '[流汗]': 'emoji_75@2x.png', + '[流泪]': 'emoji_76@2x.png', + '[激动]': 'emoji_77@2x.png', + '[灯泡]': 'emoji_78@2x.png', + '[炸弹]': 'emoji_79@2x.png', + '[熊猫]': 'emoji_80@2x.png', + '[爆筋]': 'emoji_81@2x.png', + '[爱你]': 'emoji_82@2x.png', + '[爱心]': 'emoji_83@2x.png', + '[爱情]': 'emoji_84@2x.png', + '[猪头]': 'emoji_85@2x.png', + '[猫咪]': 'emoji_86@2x.png', + '[献吻]': 'emoji_87@2x.png', + '[玫瑰]': 'emoji_88@2x.png', + '[瓢虫]': 'emoji_89@2x.png', + '[疑问]': 'emoji_90@2x.png', + '[白眼]': 'emoji_91@2x.png', + '[皮球]': 'emoji_92@2x.png', + '[睡觉]': 'emoji_93@2x.png', + '[磕头]': 'emoji_94@2x.png', + '[示爱]': 'emoji_95@2x.png', + '[礼品袋]': 'emoji_96@2x.png', + '[礼物]': 'emoji_97@2x.png', + '[篮球]': 'emoji_98@2x.png', + '[米饭]': 'emoji_99@2x.png', + '[糗大了]': 'emoji_100@2x.png', + '[红双喜]': 'emoji_101@2x.png', + '[红灯笼]': 'emoji_102@2x.png', + '[纸巾]': 'emoji_103@2x.png', + '[胜利]': 'emoji_104@2x.png', + '[色]': 'emoji_105@2x.png', + '[药]': 'emoji_106@2x.png', + '[菜刀]': 'emoji_107@2x.png', + '[蛋糕]': 'emoji_108@2x.png', + '[蜡烛]': 'emoji_109@2x.png', + '[街舞]': 'emoji_110@2x.png', + '[衰]': 'emoji_111@2x.png', + '[西瓜]': 'emoji_112@2x.png', + '[调皮]': 'emoji_113@2x.png', + '[象棋]': 'emoji_114@2x.png', + '[跳绳]': 'emoji_115@2x.png', + '[跳跳]': 'emoji_116@2x.png', + '[车厢]': 'emoji_117@2x.png', + '[转圈]': 'emoji_118@2x.png', + '[鄙视]': 'emoji_119@2x.png', + '[酷]': 'emoji_120@2x.png', + '[钞票]': 'emoji_121@2x.png', + '[钻戒]': 'emoji_122@2x.png', + '[闪电]': 'emoji_123@2x.png', + '[闭嘴]': 'emoji_124@2x.png', + '[闹钟]': 'emoji_125@2x.png', + '[阴险]': 'emoji_126@2x.png', + '[难过]': 'emoji_127@2x.png', + '[雨伞]': 'emoji_128@2x.png', + '[青蛙]': 'emoji_129@2x.png', + '[面条]': 'emoji_130@2x.png', + '[鞭炮]': 'emoji_131@2x.png', + '[风车]': 'emoji_132@2x.png', + '[飞吻]': 'emoji_133@2x.png', + '[飞机]': 'emoji_134@2x.png', + '[饥饿]': 'emoji_135@2x.png', + '[香蕉]': 'emoji_136@2x.png', + '[骷髅]': 'emoji_137@2x.png', + '[麦克风]': 'emoji_138@2x.png', + '[麻将]': 'emoji_139@2x.png', + '[鼓掌]': 'emoji_140@2x.png', + '[龇牙]': 'emoji_141@2x.png', +}; +export const emojiName = [ + '[龇牙]', + '[调皮]', + '[流汗]', + '[偷笑]', + '[再见]', + '[敲打]', + '[擦汗]', + '[猪头]', + '[玫瑰]', + '[流泪]', + '[大哭]', + '[嘘]', + '[酷]', + '[抓狂]', + '[委屈]', + '[便便]', + '[炸弹]', + '[菜刀]', + '[可爱]', + '[色]', + '[害羞]', + '[得意]', + '[吐]', + '[微笑]', + '[怒]', + '[尴尬]', + '[惊恐]', + '[冷汗]', + '[爱心]', + '[示爱]', + '[白眼]', + '[傲慢]', + '[难过]', + '[惊讶]', + '[疑问]', + '[困]', + '[么么哒]', + '[憨笑]', + '[爱情]', + '[衰]', + '[撇嘴]', + '[阴险]', + '[奋斗]', + '[发呆]', + '[右哼哼]', + '[抱抱]', + '[坏笑]', + '[飞吻]', + '[鄙视]', + '[晕]', + '[大兵]', + '[可怜]', + '[强]', + '[弱]', + '[握手]', + '[胜利]', + '[抱拳]', + '[凋谢]', + '[米饭]', + '[蛋糕]', + '[西瓜]', + '[啤酒]', + '[瓢虫]', + '[勾引]', + '[OK]', + '[爱你]', + '[咖啡]', + '[月亮]', + '[刀]', + '[发抖]', + '[差劲]', + '[拳头]', + '[心碎了]', + '[太阳]', + '[礼物]', + '[皮球]', + '[骷髅]', + '[挥手]', + '[闪电]', + '[饥饿]', + '[困]', + '[咒骂]', + '[折磨]', + '[抠鼻]', + '[鼓掌]', + '[糗大了]', + '[左哼哼]', + '[打哈欠]', + '[快哭了]', + '[吓]', + '[篮球]', + '[乒乓]', + '[NO]', + '[跳跳]', + '[怄火]', + '[转圈]', + '[磕头]', + '[回头]', + '[跳绳]', + '[激动]', + '[街舞]', + '[献吻]', + '[左太极]', + '[右太极]', + '[闭嘴]', + '[猫咪]', + '[红双喜]', + '[鞭炮]', + '[红灯笼]', + '[麻将]', + '[麦克风]', + '[礼品袋]', + '[信封]', + '[象棋]', + '[彩带]', + '[蜡烛]', + '[爆筋]', + '[棒棒糖]', + '[奶瓶]', + '[面条]', + '[香蕉]', + '[飞机]', + '[左车头]', + '[车厢]', + '[右车头]', + '[多云]', + '[下雨]', + '[钞票]', + '[熊猫]', + '[灯泡]', + '[风车]', + '[闹钟]', + '[雨伞]', + '[彩球]', + '[钻戒]', + '[沙发]', + '[纸巾]', + '[手枪]', + '[青蛙]', +]; diff --git a/TUIService/TUIKit/utils/formate-time.js b/TUIService/TUIKit/utils/formate-time.js new file mode 100644 index 0000000..18e7d75 --- /dev/null +++ b/TUIService/TUIKit/utils/formate-time.js @@ -0,0 +1,22 @@ +export default function formatTime(secondTime) { + const time = secondTime + let newTime; let hour; let minite; let seconds + if (time >= 3600) { + hour = parseInt(time / 3600) < 10 ? `0${parseInt(time / 3600)}` : parseInt(time / 3600) + minite = parseInt(time % 60 / 60) < 10 ? `0${parseInt(time % 60 / 60)}` : parseInt(time % 60 / 60) + seconds = time % 3600 < 10 ? `0${time % 3600}` : time % 3600 + if (seconds > 60) { + minite = parseInt(seconds / 60) < 10 ? `0${parseInt(seconds / 60)}` : parseInt(seconds / 60) + seconds = seconds % 60 < 10 ? `0${seconds % 60}` : seconds % 60 + } + newTime = `${hour}:${minite}:${seconds}` + } else if (time >= 60 && time < 3600) { + minite = parseInt(time / 60) < 10 ? `0${parseInt(time / 60)}` : parseInt(time / 60) + seconds = time % 60 < 10 ? `0${time % 60}` : time % 60 + newTime = `00:${minite}:${seconds}` + } else if (time < 60) { + seconds = time < 10 ? `0${time}` : time + newTime = `00:00:${seconds}` + } + return newTime + } \ No newline at end of file diff --git a/TUIService/TUIKit/utils/logger.js b/TUIService/TUIKit/utils/logger.js new file mode 100644 index 0000000..e47037b --- /dev/null +++ b/TUIService/TUIKit/utils/logger.js @@ -0,0 +1,191 @@ +import console from './console' +import { isArrayOrObject, TimeUtil, isInstanceOfError, stringifyError } from './common-utils' + +const LOGLEVEL_DEBUG = -1 +const LOGLEVEL_LOG = 0 +const LOGLEVEL_INFO = 1 +const LOGLEVEL_WARN = 2 +const LOGLEVEL_ERROR = 3 +const LOGLEVEL_NON_LOGGING = 4 // 无日志记录级别,sdk将不打印任何日志 +const MAX_LOG_LENGTH = 1000 +let globalLevel = LOGLEVEL_LOG +// 暂停使用 wx.getLogManager,没发现它能起到什么作用 +const bCanIUseWxLog = false +const timerMap = new Map() + +/** + * 对齐毫秒字符串 + * @param {*} ms 毫秒 + * @returns {String} 对齐后的毫秒时间字符串 + */ +function padMs(ms) { + const len = ms.toString().length + let ret + switch (len) { + case 1: + ret = `00${ms}` + break + case 2: + ret = `0${ms}` + break + default: + ret = ms + break + } + + return ret +} + +/** + * log前缀 + * @returns {String} 日志前缀 + */ +function getPrefix() { + const date = new Date() + return `TUIKit ${date.toLocaleTimeString('en-US', { hour12: false })}.${padMs(date.getMilliseconds())}:` +} + + + +const logger = { + _data: [], + _length: 0, + _visible: false, + + // 将函数参数拼成字符串 + arguments2String(args) { + let s + if (args.length === 1) { + s = getPrefix() + args[0] + } else { + s = getPrefix() + for (let i = 0, { length } = args; i < length; i++) { + if (isArrayOrObject(args[i])) { + if (isInstanceOfError(args[i])) { + s += stringifyError(args[i]) + } else { + s += JSON.stringify(args[i]) + } + } else { + s += args[i] + } + s += ' ' + } + } + return s + }, + + /** + * 打印调试日志 + */ + debug() { + if (globalLevel <= LOGLEVEL_DEBUG) { + // 对参数使用slice会阻止某些JavaScript引擎中的优化 (比如 V8 - 更多信息) + // see:https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#3-managing-arguments + const s = this.arguments2String(arguments) + logger.record(s, 'debug') + console.debug(s) + if (bCanIUseWxLog) { + wx.getLogManager().debug(s) + } + } + }, + + /** + * 打印普通日志 + */ + log() { + if (globalLevel <= LOGLEVEL_LOG) { + const s = this.arguments2String(arguments) + logger.record(s, 'log') + console.log(s) + if (bCanIUseWxLog) { + wx.getLogManager().log(s) + } + } + }, + + /** + * 打印release日志 + */ + info() { + if (globalLevel <= LOGLEVEL_INFO) { + const s = this.arguments2String(arguments) + logger.record(s, 'info') + console.info(s) + if (bCanIUseWxLog) { + wx.getLogManager().info(s) + } + } + }, + + /** + * 打印告警日志 + */ + warn() { + if (globalLevel <= LOGLEVEL_WARN) { + const s = this.arguments2String(arguments) + logger.record(s, 'warn') + console.warn(s) + if (bCanIUseWxLog) { + wx.getLogManager().warn(s) + } + } + }, + + /** + * 打印错误日志 + */ + error() { + if (globalLevel <= LOGLEVEL_ERROR) { + const s = this.arguments2String(arguments) + logger.record(s, 'error') + console.error(s) + // 微信写不了error日志,就用warn代替了 + if (bCanIUseWxLog) { + wx.getLogManager().warn(s) + } + } + }, + + time(label) { + timerMap.set(label, TimeUtil.now()) + }, + + timeEnd(label) { + if (timerMap.has(label)) { + const cost = TimeUtil.now() - timerMap.get(label) + timerMap.delete(label) + return cost + } + console.warn(`未找到对应label: ${label}, 请在调用 logger.timeEnd 前,调用 logger.time`) + return 0 + }, + + setLevel(newLevel) { + if (newLevel < LOGLEVEL_NON_LOGGING) { + console.log(`${getPrefix()} set level from ${globalLevel} to ${newLevel}`) + } + globalLevel = newLevel + }, + + record(s, type) { + if (bCanIUseWxLog) { + // 小程序环境不在内存缓存日志 + return + } + + if (logger._length === MAX_LOG_LENGTH + 100) { + logger._data.splice(0, 100) + logger._length = MAX_LOG_LENGTH + } + logger._length++ + logger._data.push(`${s} [${type}] \n`) + }, + + getLog() { + return logger._data + }, +} + +export default logger diff --git a/TUIService/TUIKit/utils/message-parse.js b/TUIService/TUIKit/utils/message-parse.js new file mode 100644 index 0000000..18de0ef --- /dev/null +++ b/TUIService/TUIKit/utils/message-parse.js @@ -0,0 +1,192 @@ +import { emojiMap, emojiUrl } from './emojiMap'; +/** 传入message.element(群系统消息SystemMessage,群提示消息GroupTip除外) + * content = { + * type: 'TIMTextElem', + * content: { + * text: 'AAA[龇牙]AAA[龇牙]AAA[龇牙AAA]' + * } + *} + **/ + +// 群提示消息的含义 (opType) +const GROUP_TIP_TYPE = { + MEMBER_JOIN: 1, + MEMBER_QUIT: 2, + MEMBER_KICKED_OUT: 3, + MEMBER_SET_ADMIN: 4, // 被设置为管理员 + MEMBER_CANCELED_ADMIN: 5, // 被取消管理员 + GROUP_INFO_MODIFIED: 6, // 修改群资料,转让群组为该类型,msgBody.msgGroupNewInfo.ownerAccount表示新群主的ID + MEMBER_INFO_MODIFIED: 7, // 修改群成员信息 +}; + +// 解析小程序text, 表情信息也是[嘻嘻]文本 +export function parseText(message) { + const renderDom = []; + let temp = message.payload.text; + let left = -1; + let right = -1; + while (temp !== '') { + left = temp.indexOf('['); + right = temp.indexOf(']'); + switch (left) { + case 0: + if (right === -1) { + renderDom.push({ + name: 'span', + text: temp, + }); + temp = ''; + } else { + const _emoji = temp.slice(0, right + 1); + if (emojiMap[_emoji]) { + renderDom.push({ + name: 'img', + src: emojiUrl + emojiMap[_emoji], + }); + temp = temp.substring(right + 1); + } else { + renderDom.push({ + name: 'span', + text: '[', + }); + temp = temp.slice(1); + } + } + break; + case -1: + renderDom.push({ + name: 'span', + text: temp, + }); + temp = ''; + break; + default: + renderDom.push({ + name: 'span', + text: temp.slice(0, left), + }); + temp = temp.substring(left); + break; + } + } + return renderDom; +} +// 解析群系统消息 operationType详情见 https://web.sdk.qcloud.com/im/doc/preview/Message.html#.GroupSystemNoticePayload +export function parseGroupSystemNotice(message) { + const { payload } = message; + const groupName = payload.groupProfile.name || payload.groupProfile.groupID; + const { groupID } = payload.groupProfile; + let text; + + switch (payload.operationType) { + case 1: + text = `${payload.operatorID} 申请加入群组:${groupName}(群ID:${groupID})`; + break; + case 2: + text = `成功加入群组:${groupName} (群ID:${groupID})`; + break; + case 3: + text = `申请加入群组:${groupName} (群ID:${groupID})被拒绝`; + break; + case 4: + text = `被管理员${payload.operatorID}踢出群组:${groupName}(群ID:${groupID})`; + break; + case 5: + text = `群:${groupName} (群ID:${groupID})已被${payload.operatorID}解散`; + break; + case 6: + text = `我(用户ID:${payload.operatorID})成功创建群聊:${groupName}(群ID:${groupID})`; + break; + case 7: + text = `用户ID:${payload.operatorID}邀请你加群:${groupName}(群ID:${groupID})`; + break; + case 8: + text = `你退出群组:${groupName}(群ID:${groupID})`; + break; + case 9: + text = `你被${payload.operatorID}设置为群:${groupName}(群ID:${groupID})的管理员`; + break; + case 10: + text = `你被${payload.operatorID}撤销群:${groupName} (群ID:${groupID})的管理员身份`; + break; + case 255: + text = `自定义群系统通知: ${payload.userDefinedField}`; + break; + } + return text; +} +// 解析群提示消息 +export function parseGroupTip(message) { + const { payload } = message; + const userName = message.nick || payload.userIDList.join(','); + let tip; + let user; + switch (payload.operationType) { + case GROUP_TIP_TYPE.MEMBER_JOIN: + tip = `${userName} 加入群聊`; + break; + case GROUP_TIP_TYPE.MEMBER_QUIT: + tip = `群成员退群:${userName}`; + break; + case GROUP_TIP_TYPE.MEMBER_KICKED_OUT: + tip = `群成员被踢:${userName}`; + break; + case GROUP_TIP_TYPE.MEMBER_SET_ADMIN: + tip = `${payload.operatorID}将 ${userName}设置为管理员`; + break; + case GROUP_TIP_TYPE.MEMBER_CANCELED_ADMIN: + tip = `${payload.operatorID}将 ${userName}取消作为管理员`; + break; + case GROUP_TIP_TYPE.GROUP_INFO_MODIFIED: + tip = '群资料修改'; + break; + case GROUP_TIP_TYPE.MEMBER_INFO_MODIFIED: + for (const member of payload.memberList) { + if (member.muteTime > 0) { + tip = `群成员:${member.userID}被禁言${member.muteTime}秒`; + } else { + tip = `群成员:${member.userID}被取消禁言`; + } + } + break; + case 256: + user = message.nick || message.from; + if (payload.text === '无应答') { + user = payload.userIDList.join(','); + } + tip = payload.text === '结束群聊' ? '结束群聊' : `"${user}" ${payload.text}`; + break; + } + return [{ + name: 'groupTip', + text: tip, + }]; +} + +// 解析图片消息 +export function parseImage(message) { + const renderDom = [{ + name: 'image', + // 这里默认渲染的是 1080P 的图片 + src: message.payload.imageInfoArray[0].url, + }]; + return renderDom; +} +// 解析视频消息 +export function parseVideo(message) { + const renderDom = [{ + name: 'video', + src: message.payload.videoUrl, + }]; + return renderDom; +} +// 解析语音消息 +export function parseAudio(message) { + const renderDom = [{ + name: 'audio', + src: message.payload.url, + second: message.payload.second === 0 ? 1 : message.payload.second, + }]; + return renderDom; +} + diff --git a/TUIService/TUIKit/utils/touchMove.js b/TUIService/TUIKit/utils/touchMove.js new file mode 100644 index 0000000..6408d9e --- /dev/null +++ b/TUIService/TUIKit/utils/touchMove.js @@ -0,0 +1,65 @@ +class TouchMoveItem { + _staticHeight = 0 + _clientY = 0 + newHeight = 0 + _temp = 0 + _diff = 0 + _step = 80 + max = 630 + min = 480 + setBlockHeight(_staticHeight) { + this._staticHeight = _staticHeight + this.newHeight = _staticHeight + } + setMaxHeight(val) { + this.max = val + } + setMinHeight(val) { + this.min = val + } + // touch start + initTouchY(clientY) { + this._clientY = clientY + } + // touch move计算差值 + diff(clientY) { + return clientY - this._clientY + } + // get new block hight + updateHeight(clientY) { + let diff = this.diff(clientY) + this._diff = diff + if (this.newHeight - diff >= this.min && this.newHeight - diff <= this.max) { + this._temp = this.newHeight - diff + } else { + if (this.newHeight - diff < this.min) { + this._temp = this.min + } + if (this.newHeight - diff > this.max) { + this._temp = this.max + + } + } + + return this._temp + } + // touch end + touchEnd() { + if (Math.abs(this._diff) > this._step) { + if (this._diff > 0) { + this.newHeight = this.min + } else { + this.newHeight = this.max + } + } else { + this.newHeight = this.newHeight + } + } + getStaticHeight() { + return this._staticHeight + } + + +} + +export default TouchMoveItem \ No newline at end of file diff --git a/TUIService/pages/index.js b/TUIService/pages/index.js new file mode 100644 index 0000000..3e21393 --- /dev/null +++ b/TUIService/pages/index.js @@ -0,0 +1,12 @@ +Page({ + + // 其他代码 + onLoad(options) { + let {order_inquiry_id,inquiry_type,currentConversationID,fromType}=options; + const TUIKit = this.selectComponent('#TUIKit'); + TUIKit.init(order_inquiry_id,inquiry_type,currentConversationID,fromType); + }, + onShow(){ + //this.onLoad(this.options) + } + }); \ No newline at end of file diff --git a/TUIService/pages/index.json b/TUIService/pages/index.json new file mode 100644 index 0000000..6decd6a --- /dev/null +++ b/TUIService/pages/index.json @@ -0,0 +1,7 @@ +{ + "usingComponents": { + "TUIKit": "../TUIKit/index" + }, + "disableScroll":true, + "navigationStyle": "custom" +} \ No newline at end of file diff --git a/TUIService/pages/index.wxml b/TUIService/pages/index.wxml new file mode 100644 index 0000000..d1f725f --- /dev/null +++ b/TUIService/pages/index.wxml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/TUIService/pages/index.wxss b/TUIService/pages/index.wxss new file mode 100644 index 0000000..a194fdf --- /dev/null +++ b/TUIService/pages/index.wxss @@ -0,0 +1 @@ +/* TUIService/pages/index.wxss */ \ No newline at end of file diff --git a/agreement.htm b/agreement.htm new file mode 100644 index 0000000..a807de5 --- /dev/null +++ b/agreement.htm @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/api/address.js b/api/address.js new file mode 100644 index 0000000..3d49bfe --- /dev/null +++ b/api/address.js @@ -0,0 +1,25 @@ +import {request} from '../utils/request.js' +function getAddress(data){ //获取地址 + return request('/address','GET',data,true) +}; +function addAddress(data){ //添加地址 + return request('/address','POST',data) +}; +function editAddress(id,data){ //修改地址 + return request('/address/'+id,'PUT',data) +}; +function delAddress(id){ //删除地址 + return request('/address/'+id,'DELETE') +}; +function getAddressDetail(id){ //获取地址 + return request('/address/'+id,'GET',true) +}; + + +module.exports={ + getAddress, + addAddress, + editAddress, + delAddress, + getAddressDetail +} diff --git a/api/checkSugar.js b/api/checkSugar.js new file mode 100644 index 0000000..0c11148 --- /dev/null +++ b/api/checkSugar.js @@ -0,0 +1,71 @@ +import {request} from '../utils/request.js' +function getDiseaseList(data){ //获取检测疾病分类列表 + return request('/basic/detection/disease','GET',data,true) +}; +function getLocation(data){ //上报用户地址 + return request('/user/location','POST',data) +}; +function getProjectList(data){ //获取合作公司检测项目列表 + return request('/patient/detection/project','GET',data) +}; +function getProject(id){ //获取合作公司检测项目 + return request('/patient/detection/project/'+id,'GET',{},true) +}; +function getDoctorList(data){ //获取检测机构合作医生列表 + return request('/patient/detection/doctor','GET',data) +}; +// function getDoctorList(data){ //获取检测机构合作医生列表 +// return request('/patient/detection/doctor','GET',data) +// }; +function getPurposeList(data){ //获取检测项目用途列表 + return request('/patient/detection/project/purpose','GET',data) +}; +function createDetection(data){ //创建检测订单 + return request('/patient/detection','POST',data) +}; +function detectionList(data){ //获取患者检测订单列表 + return request('/patient/order/detection','GET',data) +}; +function detectionDetail(id){ //获取患者检测订单详情 + return request('/patient/order/detection/'+id,'GET',{}) +}; +function bindCheck(id,data){ //上报用户地址 + return request('/patient/detection/bind/'+id,'PUT',data,true) +}; +function cancelCheckPay(id){ //取消支付 + return request('/patient/order/detection/cancel-pay/'+id,'PUT') +}; +function cancelCheckOrder(id){ //取消支付 + return request('/patient/order/detection/cancel/'+id,'PUT') +}; +function delCheckOrder(id){ + return request('/patient/order/detection/'+id,'DELETE') +}; +function hasCreate(data){ + return request('/patient/detection','GET',data) +} +function getArea(){ //获取用户地址 + return request('/user/location','GET') +} +function checkInquiry(id){ //创建检测问诊订单 + return request('/patient/detection/inquiry/'+id,'POST',{},true) +} +module.exports={ + checkInquiry, + getArea, + hasCreate, + cancelCheckOrder, + delCheckOrder, + cancelCheckPay, + getDiseaseList, + getLocation, + getProjectList, + getProject, + getDoctorList, + getPurposeList, + createDetection, + detectionList, + detectionDetail, + bindCheck +} + diff --git a/api/common.js b/api/common.js new file mode 100644 index 0000000..fe80c4c --- /dev/null +++ b/api/common.js @@ -0,0 +1,54 @@ +import {request} from '../utils/request.js' +function sickType(data){ //疾病专长列表 + return request('/basic/disease/expertise','GET',data) +}; +function sickList(data){ //搜索疾病分类-系统 + return request('/basic/disease/search','GET',data) +}; +function hotSickList(data){ //搜索疾病分类-系统 + return request('/basic/disease/hot','GET',data,true) +}; + +function getSign(data){ //oss上传签名 + return request('/sign/oss','GET',data) +}; +function imSign(data){ //获取im签名数据 + return request('/sign/im','GET',data) +}; +function searchMedince(data){ + return request('/basic/product/search','GET',data) +}; +function nation(data){//获取民族数据 + return request('/basic/nation','GET',data) +}; + +function job(){//获取职业数据 + return request('/basic/job','GET') +}; +function chatMsg(id){//获取问诊订单消息内页基础数据 + return request('/inquiry/message/basic/'+id,'GET') +}; +function hotSearch(data){//热门搜索 + return request('/basic/keyword/search','GET',data) +}; +function popup(data){ + return request('/popup','GET',data) +} +function agreement(id){ + return request('/basic/agreement/'+id,'GET',{},true) +} + +module.exports={ + sickType, + sickList, + getSign, + imSign, + searchMedince, + nation, + job, + chatMsg, + hotSickList, + hotSearch, + popup, + agreement +} diff --git a/api/consult.js b/api/consult.js new file mode 100644 index 0000000..7c4019a --- /dev/null +++ b/api/consult.js @@ -0,0 +1,27 @@ +import {request} from '../utils/request.js' +function createOrder(data){ //创建问诊订单 + return request('/patient/inquiry','POST',data,true) +}; +function pay(data){ //获取患者订单支付数据 + return request('/patient/order/pay','GET',data) +}; +function lingyuanpay(data){ //模拟支付成功-金额为0时使用 + return request('/patient/order/pay','POST',data,true) +}; +function recommendPrice(){ //在线推荐咨询价格 + return request('/patient/inquiry/lowest-price','GET') +}; +function assignDoctor(id){ //检测快速、购药订单分配医生状态 + return request('/patient/inquiry/assign/'+id,'GET') +} +function evaluation(data){ //评价, + return request('/patient/inquiry/evaluation','POST',data) +} +module.exports={ + createOrder, + pay, + lingyuanpay, + recommendPrice, + assignDoctor, + evaluation +} \ No newline at end of file diff --git a/api/consultExpert.js b/api/consultExpert.js new file mode 100644 index 0000000..44912bc --- /dev/null +++ b/api/consultExpert.js @@ -0,0 +1,54 @@ +import {request} from '../utils/request.js' +function doctorList(data){ //创建问诊订单 + return request('/patient/doctor/inquiry','GET',data,true) +}; +function doctorDetail(data){ //获取问诊医生详情 + return request('/patient/doctor/'+data,'GET',data,true) +}; +function getEvaluation(id,data){ //获取医生评价 + return request('/patient/doctor/evaluation/'+id,'GET',data) +}; +function getConsultTime(data){ //获取系统问诊时间 + return request('/system/inquiry/time','GET',data) +}; +function isReceivepatient(data){ //检测是否可以接诊 + return request('/patient/inquiry/check','GET',data) +}; +function lastSick(id){ //获取家庭成员病例数据 + return request('/patient/family/case/'+id,'GET') +}; +function getProvince(data){ //获取省份 + return request('/area/province','GET',data) +}; +function getCity(data){ //获取城市 + return request('/area/city','GET',data) +}; +function getCountry(data){ //获取区县信息 + return request('/area/county','GET',data) +}; +function commentList(data){ + return request('/evaluation','GET',data,true) + +} +function fllowDoctor(id){ + return request('/patient/doctor/follow/'+id,'POST') +} +function notfllowDoctor(id){ + return request('/patient/doctor/follow/'+id,'DELETE') +} + +module.exports={ + doctorList, + doctorDetail, + getConsultTime, + isReceivepatient, + getEvaluation, + lastSick, + getProvince, + getCity, + getCountry, + commentList, + fllowDoctor, + notfllowDoctor + +} \ No newline at end of file diff --git a/api/consultOrder.js b/api/consultOrder.js new file mode 100644 index 0000000..b7b92b4 --- /dev/null +++ b/api/consultOrder.js @@ -0,0 +1,35 @@ +import {request} from '../utils/request.js' +function cancelOrder(data){ //取消问诊订单 + return request('/patient/order/inquiry/cancel/'+data,'PUT',{},true) +}; +function inquiryList(data){ //获取患者问诊订单列表 + return request('/patient/order/inquiry','GET',data,true) +}; +function inquiryDetail(id){ //获取患者问诊订单详情 + return request('/patient/order/inquiry/'+id,'GET',{},true) +}; +function inquiryDel(data){ //删除问诊订单 + return request('/patient/order/inquiry/'+data,'DELETE',{},true) +}; +function cancelPay(data){ //问诊订单取消支付 + return request('/patient/order/inquiry/cancel-pay/'+data,'PUT',{},true) +}; +function sickInfo(data){ //获取患者问诊病例 + return request('/case','GET',data) +}; +function getRate(id){ //获取患者问诊病例 + return request('/patient/inquiry/evaluation/'+id,'GET') +}; +function finishConsult(id){ //结束问诊 + return request('/inquiry/finish/'+id,'PUT') +}; +module.exports={ + cancelOrder, + inquiryList, + inquiryDetail, + inquiryDel, + cancelPay, + sickInfo, + getRate, + finishConsult +} diff --git a/api/familyDoc.js b/api/familyDoc.js new file mode 100644 index 0000000..0f44590 --- /dev/null +++ b/api/familyDoc.js @@ -0,0 +1,61 @@ +import {request} from '../utils/request.js' +function family(data){ //获取家庭成员列表 + return request('/patient/family','GET',data,true) +}; +function addfamily(data){ //新增家庭成员 + return request('/patient/family','POST',data,true) +}; +function delfamily(id){ //删除家庭成员 + return request('/patient/family/'+id,'DELETE',data,true) +}; +function familyDetail(id){ //获取家庭成员详情 + return request('/patient/family/'+id,'GET',{},true) +}; +function editfamilyDetail(id,data){ //修改家庭成员 + return request('/patient/family/'+id,'PUT',data,true) +}; +function getpersonal(id,data){ //获取家庭成员详情-个人情况 + return request('/patient/family/personal/'+id,'GET',data,true) +}; +function addPersonal(data){ //新增家庭成员详情-个人情况 + return request('/patient/family/personal','POST',data,true) +}; +function editPersonal(id,data){ //修改家庭成员详情-个人情况 + return request('/patient/family/personal/'+id,'PUT',data,true) +}; +function getHealthy(id,data){ //获取家庭成员详情-个人情况 + return request('/patient/family/health/'+id,'GET',data,true) +}; +function addHealthy(data){ //新增家庭成员-健康情况 + return request('/patient/family/health','POST',data,true) +}; +function editHealthy(id,data){ //修改家庭成员详情-个人情况 + return request('/patient/family/health/'+id,'PUT',data,true) +}; +function myDoctor(data){ //我的医生 + return request('/patient/doctor/my','GET',data,true) +}; +function delDoctor(id){ //删除医生 + return request('/patient/doctor/history/'+id,'DELETE',{},true) +}; +function medinceRecord(data){ //获取家庭成员用药记录列表 + return request('/patient/family/product/record','GET',data,true) +}; + + +module.exports={ + family, + addfamily, + delfamily, + familyDetail, + editfamilyDetail, + getpersonal, + addPersonal, + editPersonal, + getHealthy, + addHealthy, + editHealthy, + myDoctor, + delDoctor, + medinceRecord +} diff --git a/api/goodsCar.js b/api/goodsCar.js new file mode 100644 index 0000000..603c356 --- /dev/null +++ b/api/goodsCar.js @@ -0,0 +1,16 @@ +import {request} from '../utils/request.js' +function cart(){ //获取购物车药品数据 + return request('/patient/product/shopping/cart','GET',{},true) +}; +function editCart(data){ //修改购物车药品数据 + return request('/patient/product/shopping/cart','PUT',data) +}; +function goodList(data){ //修改购物车药品数据 + return request('/basic/product/search','GET',data,true) +}; + +module.exports={ + cart, + editCart, + goodList +} diff --git a/api/index.js b/api/index.js new file mode 100644 index 0000000..ac246e0 --- /dev/null +++ b/api/index.js @@ -0,0 +1,29 @@ +import {request} from '../utils/request.js' +function auth(){ //鉴权 + return new Promise((resolve,reject)=>{ + wx.login({ + success(res){ + if(res.errMsg=="login:ok"){ + resolve(res.code) + }else{ + wx.showToast({ + title:res.errMsg, + icon:'error' + }) + } + }, + fail(err){ + reject(err) + } + }) + }) +} + +function homeData(data){ + return request('/patient/index','GET',data,true) + +} +module.exports = { + homeData, + auth +} \ No newline at end of file diff --git a/api/login.js b/api/login.js new file mode 100644 index 0000000..b281735 --- /dev/null +++ b/api/login.js @@ -0,0 +1,19 @@ +import {request} from '../utils/request.js' +function wechatMobileLogin(data){ //微信手机号登陆 + return request('/login/wechat_mobile_login','POST',data,true) +}; +function mobileLogin(data){ //手机号登陆 + return request('/login/mobile_login','POST',data,true) +}; +function phone(data){ //获取手机号验证码 + return request('/code/phone','POST',data,true) +} +function phoneCode(data){ //获取手机号验证码 + return request('/code/phone','POST',data,true) +} +module.exports={ + wechatMobileLogin, + mobileLogin, + phone, + phoneCode +} \ No newline at end of file diff --git a/api/medinceOrder.js b/api/medinceOrder.js new file mode 100644 index 0000000..31d378f --- /dev/null +++ b/api/medinceOrder.js @@ -0,0 +1,28 @@ +import {request} from '../utils/request.js' +function product(data){ //获取药品订单列表 + return request('/patient/order/product','GET',data,true) +}; +function productDetail(id){ //获取药品订单详情 + return request('/patient/order/product/'+id,'GET',{},true) +}; +function cancelPayProduct(id){ //药品订单取消支付 + return request('/patient/order/product/cancel-pay/'+id,'PUT',{},true); +}; +function delProduct(id){ //删除药品订单 + return request('/patient/order/product/'+id,'DELETE',{},true) +}; +function createProduct(data){ //创建药品订单 + return request('/patient/order/product','POST',data,true) +}; +function logistics(id){ //创建药品订单 + return request('/patient/order/product/logistics/'+id,'GET',{},true) +}; + +module.exports={ + product, + productDetail, + cancelPayProduct, + delProduct, + createProduct, + logistics +} diff --git a/api/msg.js b/api/msg.js new file mode 100644 index 0000000..3ab3f80 --- /dev/null +++ b/api/msg.js @@ -0,0 +1,27 @@ +import {request} from '../utils/request.js' +function hasRead(id){ //消息已读 + return request('/message/notice/read/'+id,'PUT') +}; +function allRead(data){ //一键消息已读 + return request('/message/notice/read','PUT',data) +}; +function lastMsg(data){ //获取患者系统消息通知最后一条消息列表 + return request('/patient/message/system/list-last','GET',data,true) +}; +function getMsg(data){ //获取患者服务、福利、退款、物流消息通知列表- + return request('/patient/message/system','GET',data,true) +}; +function lastSysMsg(data){ //获取患者系统消息通知最后一条消息 + return request('/patient/message/system/last','GET',data) +}; + + + + +module.exports={ + hasRead, + allRead, + lastMsg, + getMsg, + lastSysMsg +} diff --git a/api/personCenter.js b/api/personCenter.js new file mode 100644 index 0000000..d07d071 --- /dev/null +++ b/api/personCenter.js @@ -0,0 +1,43 @@ +import {request} from '../utils/request.js' +function getCenter(data){ //获取患者个人中心数据 + return request('/patient/center','GET',data,true) +}; +function getInfo(data){ //获取患者信息 + return request('/patient/center/info','GET',data) +}; +function editAvatar(data){ //修改用户头像 + return request('/user/avatar','PUT',data) +}; +function editName(data){ //修改用户名 + return request('/user/name','PUT',data) +}; +function loginout(data){ //退出登陆 + return request('/user/loginout','PUT',data) +}; +function coupon(data){ //获取患者优惠卷列表 + return request('/patient/coupon','GET',data,true) +}; +function delDocotorList(data){ //删除服务过患者的医生 + return request('/patient/doctor/history/'+data,'DELETE',data) +}; +function getList(data){ //获取我的问诊、关注医生列表 + return request('/patient/doctor/my','POST',data) +}; +function getConfig(){ //获取用户配置 + return request('/user/system','GET',{}) +}; +function editConfig(data){ //获取用户配置 + return request('/user/system','PUT',data) +}; +module.exports={ + getConfig, + editConfig, + getCenter, + getInfo, + editAvatar, + editName, + loginout, + coupon, + delDocotorList, + getList +} \ No newline at end of file diff --git a/api/prescription.js b/api/prescription.js new file mode 100644 index 0000000..f50e462 --- /dev/null +++ b/api/prescription.js @@ -0,0 +1,20 @@ +import {request} from '../utils/request.js' +function prescription(data){ //获取处方订单列表 + return request('/patient/order/prescription','GET',data,true) +}; +function prescriptionDetail(id){ //获取处方订单详情 + return request('/patient/order/prescription/'+id,'GET') +}; +function payPrescription(id){ //获取处方订单支付页详情 + return request('/patient/order/prescription/pay/'+id,'GET') +}; +function delPrescription(id){ //获取处方订单详情 + return request('/patient/order/prescription/'+id,'DELETE') +}; + +module.exports={ + prescription, + prescriptionDetail, + payPrescription, + delPrescription +} diff --git a/app.js b/app.js new file mode 100644 index 0000000..c446da1 --- /dev/null +++ b/app.js @@ -0,0 +1,189 @@ +import router from './utils/router.js' +import TIM from './lib/tim-wx-sdk' +import TIMUploadPlugin from './lib/tim-upload-plugin' +import {lastSysMsg} from "/api/msg" +import { + imSign +} from "./api/common" +import { + loginout +} from "./api/personCenter" +import { + setBarData +} from "./utils/util" +import { + hostConfig +} from "./utils/config" +const myconfig = hostConfig(); +//import { genTestUserSig } from './debug/GenerateTestUserSig'; +//进去小程序方式origion // 0 正常进入 // 1分享 //2 订阅消息 +App({ + onLaunch: function (options) { + // 绑定分享参数 + wx.onCopyUrl(() => { + setTimeout(() => { + wx.setClipboardData({ + data: '暂不支持分享', + success(res) {}, + complete() { + wx.hideToast() + } + }) + }, 1000) + return + }) + }, + onShow: function (options) { + if (options.scene == 1007 || options.scene == 1008) { + this.globalData.origion = 1; + } else if (options.scene == 1014 || options.scene == 1017) { + this.globalData.origion = 2; + } else { + this.globalData.origion = 0; + }; + this.imLogin(); + + }, + method: router, + hostConfig: hostConfig, + imLogin() { + imSign().then(data => { + wx.$TUIKit = TIM.create({ + SDKAppID: this.globalData.config.SDKAPPID, + }); + //const userSig = genTestUserSig(this.globalData.config).userSig; + wx.$chat_SDKAppID = this.globalData.config.SDKAPPID; + wx.$TUIKitTIM = TIM; + + wx.$chat_userID = this.globalData.config.userID; + //wx.$chat_userSig = userSig; + wx.$TUIKit.registerPlugin({ + 'tim-upload-plugin': TIMUploadPlugin + }); + const { + envVersion + } = wx.getAccountInfoSync().miniProgram; + if (envVersion == 'release') { + wx.$TUIKit.setLogLevel(1); + } else { + wx.$TUIKit.setLogLevel(0); + }; + wx.$chat_userSig = data; + let USER_ID = wx.getStorageSync('USER_ID'); + if (USER_ID) { + wx.$TUIKit.login({ + userID: wx.getStorageSync('USER_ID'), + userSig: data + }).then(res => { + console.log("登录成功"); + }).catch(function (imError) { + console.warn('login error:', imError); // 登录失败的相关信息 + }); + wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.SDK_READY, this.onSDKReady); + } else { + console.log("IM未登录") + } + }) + }, + onUnload() { + wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.SDK_READY, this.onSDKReady); + wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.ERROR, this.errorMsg); + wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.KICKED_OUT, this.onKickOut); + wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED, this.onTotalUnreadMessageCountUpdated); + }, + onSDKReady() { + this.getLastMsg(); + wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.ERROR, this.errorMsg, this); + wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.KICKED_OUT, this.onKickOut, this); + wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED, this.onTotalUnreadMessageCountUpdated, this); + }, + errorMsg(event) { + wx.showToast({ + title: event.data.message, + icon: 'none' + }) + }, + onTotalUnreadMessageCountUpdated(event) { + this.globalData.allCount = event.data; + this.getLastMsg(); + }, + onKickOut(event) { + this.handleLogout(); + }, + handleLogout() { + if (wx.$TUIKit) { + wx.$TUIKit.destroy() + }; + loginout().then(data => { + this.globalData.totalUnread = 0; + this.globalData.conversationList = []; + wx.clearStorageSync(); + wx.reLaunch({ + url: '/pages/login/login', + complete() { + wx.showToast({ + title: '账号在其他端登录', + duration: 3000, + icon: 'none' + }); + } + }) + }) + }, + getConversationList(msg) { + wx.$TUIKit.getConversationList().then((res) => { + const { + conversationList + } = res.data; + let list = conversationList.filter(item => item.conversationID != 'C2Cadministrator'); + let unRead = 0; + list.forEach((item) => { + unRead = unRead + item.unreadCount; + }) + this.globalData.conversationList = list; + this.globalData.totalUnread = Number(unRead) + msg; + setBarData(Number(unRead) + msg); + }); + }, + getLastMsg() { + lastSysMsg().then(data => { + let msg = data.count; + //this.globalData.sysNumber=msg; + this.getConversationList(msg); + }).catch(() => { + let msg = 0; + this.globalData.sysNumber = 0; + this.getConversationList(msg) + }) + }, + watch: function (callback) { + var obj = this.globalData; + Object.defineProperty(obj, "allCount", { + configurable: true, + enumerable: true, + set: function (value) { + this._name = value; + callback(value); + }, + get: function () { + // 可以在这里打印一些东西,然后在其他界面调用getApp().globalData.name的时候,这里就会执行。 + return this._name + } + }) + }, + globalData: { + config: { + userID: wx.getStorageSync('USER_ID'), //User ID + SECRETKEY: myconfig.SECRETKEY, //'a5bcd8c583181cf004e9d91a47687d719d4b5d2a10ce33fbee95d587889447d8', // Your secretKey //fc45ab469ca632a700166973d87b3a6f56a855cb92d7cffb54e4d37135c097da + SDKAPPID: myconfig.SDKAPPID, //1400796919,// Your SDKAppID //1400798221 + EXPIRETIME: 604800, + }, + conversationList: [], //会话列表 + imghost: "", + host: '', + origion: 0, + allCount: 0, //总会话数,监听需要, + totalUnread: 0 + + } +}); \ No newline at end of file diff --git a/app.json b/app.json new file mode 100644 index 0000000..4a0635c --- /dev/null +++ b/app.json @@ -0,0 +1,105 @@ +{ + "pages": [ + "pages/index/index", + "pages/login/login", + "pages/mobileLogin/mobileLogin", + "pages/expertConsult/expertConsult", + "pages/expertDetail/expertDetail", + "pages/selectPatient/selectPatient", + "pages/writeSick/writeSick", + "pages/comment/comment", + "pages/my/my", + "pages/personCenter/personCenter", + "pages/message/message", + "pages/myWelfare/myWelfare", + "pages/medinceRecord/medinceRecord", + "pages/myDoctor/myDoctor", + "pages/familyDoc/familyDoc", + "pages/memberDetail/memberDetail", + "pages/address/address", + "pages/editAddress/editAddress", + "pages/consultOrder/consultOrder", + "pages/checkOrder/checkOrder", + "pages/checkOrderDetail/checkOrderDetail", + "pages/orderDetail/orderDetail", + "components/consultList/consultList", + "pages/sickInfo/sickInfo", + "pages/myPrescript/myPrescript", + "pages/prescriptDetail/prescriptDetail", + "pages/payInfo/payInfo", + "pages/payOrder/payOrder", + "pages/medinceOrder/medinceOrder", + "pages/medinceOrderDetail/medinceOrderDetail", + "pages/sysMsgDetail/sysMsgDetail", + "pages/sysMsgList/sysMsgList", + "pages/gandansecretary/gandansecretary", + "pages/fuliMsgList/fuliMsgList", + "pages/refundMsgList/refundMsgList", + "pages/quickConsult/quickConsult", + "pages/applyMedince/applyMedince", + "pages/medinceList/medinceList", + "pages/allotDoctor/allotDoctor", + "pages/search/search", + "pages/payPlatform/payPlatform", + "pages/linkPage/linkPage", + "pages/expressDetail/expressDetail", + "pages/medinceSearch/medinceSearch", + "pages/commonSick/commonSick", + "pages/agreement/agreement", + "pages/agreeList/agreeList", + "pages/imgPreview/imgpreview", + "pages/sugarDetail/sugarDetail", + "pages/sugarSickInfo/sugarSickInfo", + "pages/notify/notify" + ], + "subPackages": [ + { + "root": "TUIService", + "pages": [ + "pages/index" + ], + "independent": false + } + ], + "window": { + "backgroundTextStyle": "light", + "navigationBarBackgroundColor": "#fff", + "navigationBarTitleText": "肝胆相照互联网医院", + "navigationBarTextStyle": "black" + }, + "tabBar": { + "color": "#333333", + "selectedColor": "#333", + "borderStyle": "black", + "list": [ + { + "pagePath": "pages/index/index", + "text": "首页", + "iconPath": "/assets/images/home.png", + "selectedIconPath": "/assets/images/homeon.png" + }, + { + "pagePath": "pages/message/message", + "text": "消息", + "iconPath": "/assets/images/msg.png", + "selectedIconPath": "/assets/images/msgon.png" + }, + { + "pagePath": "pages/my/my", + "text": "个人中心", + "iconPath": "/assets/images/my.png", + "selectedIconPath": "/assets/images/myon.png" + } + ] + }, + "__usePrivacyCheck__": true, + "permission": { + "scope.userFuzzyLocation": { + "desc": "你的位置信息将用于小程序位置接口的效果展示" + } + }, + "requiredPrivateInfos": [ + "getFuzzyLocation" + ], + "sitemapLocation": "sitemap.json" +} \ No newline at end of file diff --git a/app.wxss b/app.wxss new file mode 100644 index 0000000..60aff14 --- /dev/null +++ b/app.wxss @@ -0,0 +1,119 @@ +/**app.wxss**/ +.container { + padding-top: 135px; + padding-bottom: 10rpx; + /* top:280rpx; */ + /* position: absolute; */ + width:100%; + /* overflow-y: scroll; */ + background: #F2F2F2; +} +input{ + font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica, +} +page{ + position: relative; + width:100%; + height:100%; + font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica, + Segoe UI, Arial, Roboto, 'PingFang SC', 'miui', 'Hiragino Sans GB', 'Microsoft Yahei', + sans-serif; +} +.page{ + width:100vw; + height:100vh; + background: #f2f2f2; +} +.contain{padding: 0 30rpx 0rpx;height: 100%;overflow: hidden;position: relative;} +::-webkit-scrollbar { + display: none; + width: 0; + height: 0; + color: transparent; +} +.van-picker__confirm { + color:#3CC7C0!important; + font-size: 32rpx!important; +} +.van-picker__title{ + font-weight: 600!important; +color: rgba(0,0,0,0.9)!important; +font-size: 32rpx!important; +} +.van-picker__cancel{ + color: rgba(0,0,0,0.6)!important; + font-size: 32rpx!important; +} +.nonedata{ + width:100%; + color:#666; + min-height: 320rpx; + font-size: 28rpx; + display: flex; + justify-content: center; + align-items: center; +} +.ui-navigatorbar { + position: fixed; + z-index:99; + top: 0; + width: 750rpx; + height: 172rpx; + background: #F2F2F2; + backdrop-filter: blur(20px); +} + +.ui-navigatorbar-back { + position: absolute; + padding-left:40rpx; + padding-right:40rpx; + width:30rpx; + height:60rpx; + left: 0rpx; + bottom: 20rpx; +} + +.ui-title { + position: absolute; + width: 350rpx; + height: 88rpx; + line-height: 56rpx; + font-size: 36rpx; + color: #000000; + bottom: 0; + left: 200rpx; + display: flex; + justify-content: center; + align-items: center; +} +.droptitle.active{ + color:#3CC7C0; +} +.slotmsg{ + -webkit-overflow-scrolling: touch; + font-size: 28rpx; + line-height:40rpx; + max-height:60vh; + overflow-y: auto; + padding:48rpx; + text-align: center; +} +.van-dropdown-item__title{ + width:100%!important; + flex:1; + text-align: center; +} +.van-dropdown-item__icon{ + z-index:2; + position: absolute!important; + + right:25rpx; +} + .van-cell__value{ + flex:none!important; + z-index:1; +} + +/* .van-dialog__cancel{ + border-right: 1px solid rgba(0,0,0,0.1)!important; +} */ \ No newline at end of file diff --git a/assets/images/back.png b/assets/images/back.png new file mode 100644 index 0000000..4eafa0d Binary files /dev/null and b/assets/images/back.png differ diff --git a/assets/images/cf_new.png b/assets/images/cf_new.png new file mode 100644 index 0000000..6cc5b4d Binary files /dev/null and b/assets/images/cf_new.png differ diff --git a/assets/images/check_close.png b/assets/images/check_close.png new file mode 100644 index 0000000..d1f256d Binary files /dev/null and b/assets/images/check_close.png differ diff --git a/assets/images/check_error.png b/assets/images/check_error.png new file mode 100644 index 0000000..391ad63 Binary files /dev/null and b/assets/images/check_error.png differ diff --git a/assets/images/check_new.png b/assets/images/check_new.png new file mode 100644 index 0000000..05ddaba Binary files /dev/null and b/assets/images/check_new.png differ diff --git a/assets/images/doctor_new.png b/assets/images/doctor_new.png new file mode 100644 index 0000000..b6bf017 Binary files /dev/null and b/assets/images/doctor_new.png differ diff --git a/assets/images/edoc_new.png b/assets/images/edoc_new.png new file mode 100644 index 0000000..54b1180 Binary files /dev/null and b/assets/images/edoc_new.png differ diff --git a/assets/images/freetalk.png b/assets/images/freetalk.png new file mode 100644 index 0000000..8e16579 Binary files /dev/null and b/assets/images/freetalk.png differ diff --git a/assets/images/home.png b/assets/images/home.png new file mode 100644 index 0000000..1cb7034 Binary files /dev/null and b/assets/images/home.png differ diff --git a/assets/images/homeon.png b/assets/images/homeon.png new file mode 100644 index 0000000..4493384 Binary files /dev/null and b/assets/images/homeon.png differ diff --git a/assets/images/kefu.png b/assets/images/kefu.png new file mode 100644 index 0000000..5fd8cbf Binary files /dev/null and b/assets/images/kefu.png differ diff --git a/assets/images/mask_check1.png b/assets/images/mask_check1.png new file mode 100644 index 0000000..f273e5f Binary files /dev/null and b/assets/images/mask_check1.png differ diff --git a/assets/images/mask_check2.png b/assets/images/mask_check2.png new file mode 100644 index 0000000..7d2d8f7 Binary files /dev/null and b/assets/images/mask_check2.png differ diff --git a/assets/images/msg.png b/assets/images/msg.png new file mode 100644 index 0000000..4cccc60 Binary files /dev/null and b/assets/images/msg.png differ diff --git a/assets/images/msg_new.png b/assets/images/msg_new.png new file mode 100644 index 0000000..3f8710c Binary files /dev/null and b/assets/images/msg_new.png differ diff --git a/assets/images/msgon.png b/assets/images/msgon.png new file mode 100644 index 0000000..0387e69 Binary files /dev/null and b/assets/images/msgon.png differ diff --git a/assets/images/my.png b/assets/images/my.png new file mode 100644 index 0000000..9a16104 Binary files /dev/null and b/assets/images/my.png differ diff --git a/assets/images/mybg.png b/assets/images/mybg.png new file mode 100644 index 0000000..000263d Binary files /dev/null and b/assets/images/mybg.png differ diff --git a/assets/images/myon.png b/assets/images/myon.png new file mode 100644 index 0000000..ce75514 Binary files /dev/null and b/assets/images/myon.png differ diff --git a/assets/images/nocheck.png b/assets/images/nocheck.png new file mode 100644 index 0000000..cf77548 Binary files /dev/null and b/assets/images/nocheck.png differ diff --git a/assets/images/people2.gif b/assets/images/people2.gif new file mode 100644 index 0000000..54c7768 Binary files /dev/null and b/assets/images/people2.gif differ diff --git a/assets/images/record_new.png b/assets/images/record_new.png new file mode 100644 index 0000000..23fdd2f Binary files /dev/null and b/assets/images/record_new.png differ diff --git a/assets/images/scancode.png b/assets/images/scancode.png new file mode 100644 index 0000000..b1da600 Binary files /dev/null and b/assets/images/scancode.png differ diff --git a/assets/images/sugar_down.png b/assets/images/sugar_down.png new file mode 100644 index 0000000..61517d1 Binary files /dev/null and b/assets/images/sugar_down.png differ diff --git a/assets/images/sugar_left.png b/assets/images/sugar_left.png new file mode 100644 index 0000000..0449daa Binary files /dev/null and b/assets/images/sugar_left.png differ diff --git a/assets/images/sugar_process.png b/assets/images/sugar_process.png new file mode 100644 index 0000000..a9ca10c Binary files /dev/null and b/assets/images/sugar_process.png differ diff --git a/assets/images/tangzu.png b/assets/images/tangzu.png new file mode 100644 index 0000000..88ea31d Binary files /dev/null and b/assets/images/tangzu.png differ diff --git a/assets/images/upload.png b/assets/images/upload.png new file mode 100644 index 0000000..701cb00 Binary files /dev/null and b/assets/images/upload.png differ diff --git a/assets/images/wz_new.png b/assets/images/wz_new.png new file mode 100644 index 0000000..7254c45 Binary files /dev/null and b/assets/images/wz_new.png differ diff --git a/assets/images/yp_new.png b/assets/images/yp_new.png new file mode 100644 index 0000000..7ae3141 Binary files /dev/null and b/assets/images/yp_new.png differ diff --git a/components/consultList/consultList.js b/components/consultList/consultList.js new file mode 100644 index 0000000..f2fe8a4 --- /dev/null +++ b/components/consultList/consultList.js @@ -0,0 +1,73 @@ + import{recommendPrice} from "../../api/consult.js" + const app = getApp() + import {throttle} from "../../utils/util" +Component({ + behaviors: [], + externalClasses: ['consultbox'], + // 属性定义(详情参见下文) + properties: { + myProperty: { // 属性名 + type: String, + value: '' + } + }, + + data: { + price:null, + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static' + }, // 私有数据,可用于模板渲染 + + lifetimes: { + // 生命周期函数,可以为函数,或一个在 methods 段中定义的方法名 + attached: function () { }, + moved: function () { }, + detached: function () { }, + }, + + // 生命周期函数,可以为函数,或一个在 methods 段中定义的方法名 + attached: function () { }, // 此处 attached 的声明会被 lifetimes 字段中的声明覆盖 + ready: function() { }, + + pageLifetimes: { + // 组件所在页面的生命周期函数 + show() { + this.getPrice(); + this.setData({ + img_host:app.hostConfig().imghost + }) + }, + hide: function () { }, + resize: function () { }, + }, + + methods: { + goFree:throttle(function(){ + app.method.navigateTo({ + url: '/pages/expertConsult/expertConsult?type=free', + }) + }), + goQuick:throttle(function(){ + app.method.navigateTo({ + url: '/pages/quickConsult/quickConsult' + }) + }), + goExpert:throttle(function(){ + app.method.navigateTo({ + url: '/pages/expertConsult/expertConsult' + }) + }), + goBuyMedince:throttle(function(){ + app.method.navigateTo({ + url: '/pages/quickConsult/quickConsult?inquiry_type=4' + }) + }), + getPrice(){ + recommendPrice().then(data=>{ + this.setData({ + price:data + }) + }) + } + } + +}) \ No newline at end of file diff --git a/components/consultList/consultList.json b/components/consultList/consultList.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/components/consultList/consultList.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/components/consultList/consultList.wxml b/components/consultList/consultList.wxml new file mode 100644 index 0000000..fa3aaf7 --- /dev/null +++ b/components/consultList/consultList.wxml @@ -0,0 +1,51 @@ + + + + + + + 公益咨询 + ¥{{price.welfare_inquiry_price}} + + + + 去咨询 + + + + + + + 快速问诊 + ¥{{price.quick_inquiry_price}} + + + + 去咨询 + + + + + + + 专家问诊 + ¥{{price.expert_inquiry_price}} + + + + 去咨询 + + + + + + + 问诊购药 + ¥{{price.medicine_inquiry_price}} + + + + 去咨询 + + + diff --git a/components/consultList/consultList.wxss b/components/consultList/consultList.wxss new file mode 100644 index 0000000..8bcd0b9 --- /dev/null +++ b/components/consultList/consultList.wxss @@ -0,0 +1,67 @@ +/* components/consultList/consultList.wxss */ +.consultbox{ + margin:0 32rpx; + background-color: #fff; + border-radius: 10rpx; +} +.consultbtn .btn{ + width: 160rpx; +height: 60rpx; +background: #3CC7C0; +color:#fff; +display: flex; +justify-content: center; +align-items: center; +font-size: 30rpx; +border-radius: 30rpx; +} +.viewwrap{ + border-bottom:1rpx solid #E7E7E7; + display: flex; + justify-content: space-between; + padding:30rpx 0rpx 30rpx; + margin:0 52rpx; + display: flex; + align-items: center; +} +.viewwrap:last-child{ + border-bottom:none; +} +.viewwrap .right{ + margin-left: 20rpx; +} +.viewwrap .price{ + margin-top: 10rpx; + font-weight: 600; + font-size: 34rpx; + color: #EF4F20; +} +.viewwrap .name{ + font-size: 28rpx; + font-weight: 600; + color: #333333 +} +.top{ + width:100%; + display: flex; + justify-content: center; + padding:20rpx 0; +} +.top .up{ + width:40rpx; + height:22rpx; +} +.leftimg{ + display: flex; + align-items: center; + +} + .price .unit{ + color:#333; + font-weight: normal; + font-size: 28rpx; + } +.zxicon{ + width:80rpx; + height:80rpx; +} \ No newline at end of file diff --git a/components/dialog/dialog.js b/components/dialog/dialog.js new file mode 100644 index 0000000..05caf4b --- /dev/null +++ b/components/dialog/dialog.js @@ -0,0 +1,100 @@ +// components/dialog/dialog.js +Component({ + /** + * 组件的属性列表 + */ + properties: { + showDialog: { + type: Boolean, + value: false, + observer(newval) { + this.setData({ + showDialog: newval, + }); + }, + }, + message:{ + type: String, + value: '', + observer(newval) { + this.setData({ + message: newval, + }); + }, + }, + cancelBtn:{ + type: Boolean, + value: true, + observer(newval) { + this.setData({ + cancelBtn: newval, + }); + }, + }, + dialogTitle:{ + type: String, + value: '温馨提示', + observer(newval) { + this.setData({ + dialogTitle: newval, + }); + }, + }, + confirmColor:{ + type: String, + value: '#3CC7C0', + observer(newval) { + this.setData({ + confirmColor: newval, + }); + }, + }, + canceltext:{ + type: String, + value: '取消', + observer(newval) { + this.setData({ + canceltext: newval, + }); + }, + }, + confirmtext:{ + type: String, + value: '确定', + observer(newval) { + this.setData({ + confirmtext: newval, + }); + }, + }, + + }, + + /** + * 组件的初始数据 + */ + data: { + showDialog: false, + message:'', + confirmColor:'#3CC7C0', + dialogTitle:"温馨提示", + cancelBtn:true, + canceltext:'取消', + confirmtext:'确定' + }, + + /** + * 组件的方法列表 + */ + methods: { + onConfirm() { + this.setData({ showDialog: false }); + this.triggerEvent("confirm",true) + }, + + onClose() { + this.setData({ showDialog: false }); + this.triggerEvent("close",true) + } + } +}) diff --git a/components/dialog/dialog.json b/components/dialog/dialog.json new file mode 100644 index 0000000..75c1bee --- /dev/null +++ b/components/dialog/dialog.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-dialog": "@vant/weapp/dialog/index" + } +} \ No newline at end of file diff --git a/components/dialog/dialog.wxml b/components/dialog/dialog.wxml new file mode 100644 index 0000000..c45cbd7 --- /dev/null +++ b/components/dialog/dialog.wxml @@ -0,0 +1,5 @@ + + + 333 + diff --git a/components/dialog/dialog.wxss b/components/dialog/dialog.wxss new file mode 100644 index 0000000..29b47b7 --- /dev/null +++ b/components/dialog/dialog.wxss @@ -0,0 +1,4 @@ +/* components/dialog/dialog.wxss */ +.van-dialog__cancel{ + border: 1px solid rgba(0,0,0,0.1)!important; +} \ No newline at end of file diff --git a/components/image-cropper/image-cropper.js b/components/image-cropper/image-cropper.js new file mode 100644 index 0000000..06a6383 --- /dev/null +++ b/components/image-cropper/image-cropper.js @@ -0,0 +1,1122 @@ +Component({ + properties: { + /** + * 图片路径 + */ + 'imgSrc': { + type: String, + value:'' + }, + + /** + * 裁剪框高度 + */ + 'height': { + type: Number, + value: 200 + }, + /** + * 裁剪框宽度 + */ + 'width': { + type: Number, + value: 200 + }, + /** + * 裁剪框最小尺寸 + */ + 'min_width': { + type: Number, + value: 100 + }, + 'min_height': { + type: Number, + value: 100 + }, + /** + * 裁剪框最大尺寸 + */ + 'max_width': { + type: Number, + value: 300 + }, + 'max_height': { + type: Number, + value: 300 + }, + /** + * 裁剪框禁止拖动 + */ + 'disable_width': { + type: Boolean, + value: false + }, + 'disable_height': { + type: Boolean, + value: false + }, + /** + * 锁定裁剪框比例 + */ + 'disable_ratio': { + type: Boolean, + value: false + }, + /** + * 生成的图片尺寸相对剪裁框的比例 + */ + 'export_scale': { + type: Number, + value: 3 + }, + /** + * 生成的图片质量0-1 + */ + 'quality': { + type: Number, + value: 1 + }, + 'cut_top': { + type: Number, + value: null + }, + 'cut_left': { + type: Number, + value: null + }, + /** + * canvas上边距(不设置默认不显示) + */ + 'canvas_top': { + type: Number, + value: null + }, + /** + * canvas左边距(不设置默认不显示) + */ + 'canvas_left': { + type: Number, + value: null + }, + /** + * 图片宽度 + */ + 'img_width': { + type: null, + value: null + }, + /** + * 图片高度 + */ + 'img_height': { + type: null, + value: null + }, + /** + * 图片缩放比 + */ + 'scale': { + type: Number, + value: 1 + }, + /** + * 图片旋转角度 + */ + 'angle': { + type: Number, + value: 0 + }, + /** + * 最小缩放比 + */ + 'min_scale': { + type: Number, + value: 0.5 + }, + /** + * 最大缩放比 + */ + 'max_scale': { + type: Number, + value: 2 + }, + /** + * 是否禁用旋转 + */ + 'disable_rotate': { + type: Boolean, + value: false + }, + /** + * 是否限制移动范围(剪裁框只能在图片内) + */ + 'limit_move': { + type: Boolean, + value: false + } + }, + data: { + el: 'image-cropper', //暂时无用 + info: wx.getSystemInfoSync(), + MOVE_THROTTLE: null, //触摸移动节流settimeout + MOVE_THROTTLE_FLAG: true, //节流标识 + INIT_IMGWIDTH: 0, //图片设置尺寸,此值不变(记录最初设定的尺寸) + INIT_IMGHEIGHT: 0, //图片设置尺寸,此值不变(记录最初设定的尺寸) + TIME_BG: null, //背景变暗延时函数 + TIME_CUT_CENTER: null, + _touch_img_relative: [{ + x: 0, + y: 0 + }], //鼠标和图片中心的相对位置 + _flag_cut_touch: false, //是否是拖动裁剪框 + _hypotenuse_length: 0, //双指触摸时斜边长度 + _flag_img_endtouch: false, //是否结束触摸 + _flag_bright: true, //背景是否亮 + _canvas_overflow: true, //canvas缩略图是否在屏幕外面 + _canvas_width: 200, + _canvas_height: 200, + origin_x: 0.5, //图片旋转中心 + origin_y: 0.5, //图片旋转中心 + _cut_animation: false, //是否开启图片和裁剪框过渡 + _img_top: wx.getSystemInfoSync().windowHeight / 2, //图片上边距 + _img_left: wx.getSystemInfoSync().windowWidth / 2, //图片左边距 + watch: { + //监听截取框宽高变化 + width(value, that) { + if (value < that.data.min_width) { + that.setData({ + width: that.data.min_width + }); + } + that._computeCutSize(); + }, + height(value, that) { + if (value < that.data.min_height) { + that.setData({ + height: that.data.min_height + }); + } + that._computeCutSize(); + }, + angle(value, that) { + //停止居中裁剪框,继续修改图片位置 + that._moveStop(); + if (that.data.limit_move) { + if (that.data.angle % 90) { + that.setData({ + angle: Math.round(that.data.angle / 90) * 90 + }); + return; + } + } + }, + _cut_animation(value, that) { + //开启过渡300毫秒之后自动关闭 + clearTimeout(that.data._cut_animation_time); + if (value) { + that.data._cut_animation_time = setTimeout(() => { + that.setData({ + _cut_animation: false + }); + }, 300) + } + }, + limit_move(value, that) { + if (value) { + if (that.data.angle % 90) { + that.setData({ + angle: Math.round(that.data.angle / 90) * 90 + }); + } + that._imgMarginDetectionScale(); + !that.data._canvas_overflow && that._draw(); + } + }, + canvas_top(value, that) { + that._canvasDetectionPosition(); + }, + canvas_left(value, that) { + that._canvasDetectionPosition(); + }, + imgSrc(value, that) { + + // that.pushImg(value); + }, + cut_top(value, that) { + that._cutDetectionPosition(); + if (that.data.limit_move) { + !that.data._canvas_overflow && that._draw(); + } + }, + cut_left(value, that) { + that._cutDetectionPosition(); + if (that.data.limit_move) { + !that.data._canvas_overflow && that._draw(); + } + } + } + }, + attached() { + this.data.info = wx.getSystemInfoSync(); + //启用数据监听 + this._watcher(); + this.data.INIT_IMGWIDTH = this.data.img_width; + this.data.INIT_IMGHEIGHT = this.data.img_height; + this.setData({ + _canvas_height: this.data.height, + _canvas_width: this.data.width, + }); + this._initCanvas(); + this.data.imgSrc && (this.data.imgSrc = this.data.imgSrc); + //根据开发者设置的图片目标尺寸计算实际尺寸 + this._initImageSize(); + //设置裁剪框大小>设置图片尺寸>绘制canvas + this._computeCutSize(); + //检查裁剪框是否在范围内 + this._cutDetectionPosition(); + //检查canvas是否在范围内 + this._canvasDetectionPosition(); + //初始化完成 + this.triggerEvent('load', { + cropper: this + }); + }, + methods: { + /** + * 上传图片 + */ + upload() { + let that = this; + wx.chooseImage({ + count: 1, + sizeType: ['original', 'compressed'], + sourceType: ['album', 'camera'], + success(res) { + const tempFilePaths = res.tempFilePaths[0]; + that.pushImg(tempFilePaths); + // wx.showLoading({ + // title: '加载中...' + // }) + } + }) + }, + /** + * 返回图片信息 + */ + getImg(getCallback) { + this._draw(() => { + wx.canvasToTempFilePath({ + width: this.data.width * this.data.export_scale, + height: Math.round(this.data.height * this.data.export_scale), + destWidth: this.data.width * this.data.export_scale, + destHeight: Math.round(this.data.height) * this.data.export_scale, + fileType: 'png', + quality: this.data.quality, + canvasId: this.data.el, + success: (res) => { + getCallback({ + url: res.tempFilePath, + width: this.data.width * this.data.export_scale, + height: this.data.height * this.data.export_scale + }); + } + }, this) + }); + }, + /** + * 设置图片动画 + * { + * x:10,//图片在原有基础上向下移动10px + * y:10,//图片在原有基础上向右移动10px + * angle:10,//图片在原有基础上旋转10deg + * scale:0.5,//图片在原有基础上增加0.5倍 + * } + */ + setTransform(transform) { + if (!transform) return; + if (!this.data.disable_rotate) { + this.setData({ + angle: transform.angle ? this.data.angle + transform.angle : this.data.angle + }); + } + var scale = this.data.scale; + if (transform.scale) { + scale = this.data.scale + transform.scale; + scale = scale <= this.data.min_scale ? this.data.min_scale : scale; + scale = scale >= this.data.max_scale ? this.data.max_scale : scale; + } + this.data.scale = scale; + let cutX = this.data.cut_left; + let cutY = this.data.cut_top; + if (transform.cutX) { + this.setData({ + cut_left: cutX + transform.cutX + }); + this.data.watch.cut_left(null, this); + } + if (transform.cutY) { + this.setData({ + cut_top: cutY + transform.cutY + }); + this.data.watch.cut_top(null, this); + } + this.data._img_top = transform.y ? this.data._img_top + transform.y : this.data._img_top; + this.data._img_left = transform.x ? this.data._img_left + transform.x : this.data._img_left; + //图像边缘检测,防止截取到空白 + this._imgMarginDetectionScale(); + //停止居中裁剪框,继续修改图片位置 + this._moveDuring(); + this.setData({ + scale: this.data.scale, + _img_top: this.data._img_top, + _img_left: this.data._img_left + }); + !this.data._canvas_overflow && this._draw(); + //可以居中裁剪框了 + this._moveStop(); //结束操作 + }, + /** + * 设置剪裁框位置 + */ + setCutXY(x, y) { + this.setData({ + cut_top: y, + cut_left: x + }); + }, + /** + * 设置剪裁框尺寸 + */ + setCutSize(w, h) { + this.setData({ + width: w, + height: h + }); + this._computeCutSize(); + }, + /** + * 设置剪裁框和图片居中 + */ + setCutCenter() { + let cut_top = (this.data.info.windowHeight - this.data.height) * 0.5; + let cut_left = (this.data.info.windowWidth - this.data.width) * 0.5; + //顺序不能变 + this.setData({ + _img_top: this.data._img_top - this.data.cut_top + cut_top, + cut_top: cut_top, //截取的框上边距 + _img_left: this.data._img_left - this.data.cut_left + cut_left, + cut_left: cut_left, //截取的框左边距 + }); + }, + _setCutCenter() { + let cut_top = (this.data.info.windowHeight - this.data.height) * 0.5; + let cut_left = (this.data.info.windowWidth - this.data.width) * 0.5; + this.setData({ + cut_top: cut_top, //截取的框上边距 + cut_left: cut_left, //截取的框左边距 + }); + }, + /** + * 设置剪裁框宽度-即将废弃 + */ + setWidth(width) { + this.setData({ + width: width + }); + this._computeCutSize(); + }, + /** + * 设置剪裁框高度-即将废弃 + */ + setHeight(height) { + this.setData({ + height: height + }); + this._computeCutSize(); + }, + /** + * 是否锁定旋转 + */ + setDisableRotate(value) { + this.data.disable_rotate = value; + }, + /** + * 是否限制移动 + */ + setLimitMove(value) { + this.setData({ + _cut_animation: true, + limit_move: !!value + }); + }, + /** + * 初始化图片,包括位置、大小、旋转角度 + */ + imgReset() { + this.setData({ + scale: 1, + angle: 0, + _img_top: wx.getSystemInfoSync().windowHeight / 2, + _img_left: wx.getSystemInfoSync().windowWidth / 2, + }); + this.pushImg(); + }, + /** + * 加载(更换)图片 + */ + pushImg(src) { + + if (src) { + this.setData({ + imgSrc: src + }); + //发现是手动赋值直接返回,交给watch处理 + return; + } + + // getImageInfo接口传入 src: '' 会导致内存泄漏 + + if (!this.data.imgSrc) return; + wx.getImageInfo({ + src: this.data.imgSrc, + success: (res) => { + this.data.imageObject = res; + //图片非本地路径需要换成本地路径 + if (this.data.imgSrc.search(/tmp/) == -1) { + this.setData({ + imgSrc: res.path + }); + } + //计算最后图片尺寸 + this._imgComputeSize(); + if (this.data.limit_move) { + //限制移动,不留空白处理 + this._imgMarginDetectionScale(); + } + this._draw(); + }, + fail: (err) => { + this.setData({ + imgSrc: '' + }); + } + }); + }, + imageLoad(e) { + setTimeout(() => { + this.triggerEvent('imageload', this.data.imageObject); + + }, 1000) + }, + /** + * 设置图片放大缩小 + */ + setScale(scale) { + if (!scale) return; + this.setData({ + scale: scale + }); + !this.data._canvas_overflow && this._draw(); + }, + /** + * 设置图片旋转角度 + */ + setAngle(angle) { + if (!angle) return; + this.setData({ + _cut_animation: true, + angle: angle + }); + this._imgMarginDetectionScale(); + !this.data._canvas_overflow && this._draw(); + }, + _initCanvas() { + //初始化canvas + if (!this.data.ctx) { + this.data.ctx = wx.createCanvasContext("image-cropper", this); + } + }, + /** + * 根据开发者设置的图片目标尺寸计算实际尺寸 + */ + _initImageSize() { + //处理宽高特殊单位 %>px + if (this.data.INIT_IMGWIDTH && typeof this.data.INIT_IMGWIDTH == "string" && this.data.INIT_IMGWIDTH.indexOf("%") != -1) { + let width = this.data.INIT_IMGWIDTH.replace("%", ""); + this.data.INIT_IMGWIDTH = this.data.img_width = this.data.info.windowWidth / 100 * width; + } + if (this.data.INIT_IMGHEIGHT && typeof this.data.INIT_IMGHEIGHT == "string" && this.data.INIT_IMGHEIGHT.indexOf("%") != -1) { + let height = this.data.img_height.replace("%", ""); + this.data.INIT_IMGHEIGHT = this.data.img_height = this.data.info.windowHeight / 100 * height; + } + }, + /** + * 检测剪裁框位置是否在允许的范围内(屏幕内) + */ + _cutDetectionPosition() { + let _cutDetectionPositionTop = () => { + //检测上边距是否在范围内 + if (this.data.cut_top < 0) { + this.setData({ + cut_top: 0 + }); + } + if (this.data.cut_top > this.data.info.windowHeight - this.data.height) { + this.setData({ + cut_top: this.data.info.windowHeight - this.data.height + }); + } + }, + _cutDetectionPositionLeft = () => { + //检测左边距是否在范围内 + if (this.data.cut_left < 0) { + this.setData({ + cut_left: 0 + }); + } + if (this.data.cut_left > this.data.info.windowWidth - this.data.width) { + this.setData({ + cut_left: this.data.info.windowWidth - this.data.width + }); + } + }; + //裁剪框坐标处理(如果只写一个参数则另一个默认为0,都不写默认居中) + if (this.data.cut_top == null && this.data.cut_left == null) { + this._setCutCenter(); + } else if (this.data.cut_top != null && this.data.cut_left != null) { + _cutDetectionPositionTop(); + _cutDetectionPositionLeft(); + } else if (this.data.cut_top != null && this.data.cut_left == null) { + _cutDetectionPositionTop(); + this.setData({ + cut_left: (this.data.info.windowWidth - this.data.width) / 2 + }); + } else if (this.data.cut_top == null && this.data.cut_left != null) { + _cutDetectionPositionLeft(); + this.setData({ + cut_top: (this.data.info.windowHeight - this.data.height) / 2 + }); + } + }, + /** + * 检测canvas位置是否在允许的范围内(屏幕内)如果在屏幕外则不开启实时渲染 + * 如果只写一个参数则另一个默认为0,都不写默认超出屏幕外 + */ + _canvasDetectionPosition() { + if (this.data.canvas_top == null && this.data.canvas_left == null) { + this.data._canvas_overflow = false; + this.setData({ + canvas_top: -5000, + canvas_left: -5000 + }); + } else if (this.data.canvas_top != null && this.data.canvas_left != null) { + if (this.data.canvas_top < -this.data.height || this.data.canvas_top > this.data.info.windowHeight) { + this.data._canvas_overflow = true; + } else { + this.data._canvas_overflow = false; + } + } else if (this.data.canvas_top != null && this.data.canvas_left == null) { + this.setData({ + canvas_left: 0 + }); + } else if (this.data.canvas_top == null && this.data.canvas_left != null) { + this.setData({ + canvas_top: 0 + }); + if (this.data.canvas_left < -this.data.width || this.data.canvas_left > this.data.info.windowWidth) { + this.data._canvas_overflow = true; + } else { + this.data._canvas_overflow = false; + } + } + }, + /** + * 图片边缘检测-位置 + */ + _imgMarginDetectionPosition(scale) { + if (!this.data.limit_move) return; + let left = this.data._img_left; + let top = this.data._img_top; + var scale = scale || this.data.scale; + let img_width = this.data.img_width; + let img_height = this.data.img_height; + if (this.data.angle / 90 % 2) { + img_width = this.data.img_height; + img_height = this.data.img_width; + } + left = this.data.cut_left + img_width * scale / 2 >= left ? left : this.data.cut_left + img_width * scale / 2; + left = this.data.cut_left + this.data.width - img_width * scale / 2 <= left ? left : this.data.cut_left + this.data.width - img_width * scale / 2; + top = this.data.cut_top + img_height * scale / 2 >= top ? top : this.data.cut_top + img_height * scale / 2; + top = this.data.cut_top + this.data.height - img_height * scale / 2 <= top ? top : this.data.cut_top + this.data.height - img_height * scale / 2; + this.setData({ + _img_left: left, + _img_top: top, + scale: scale + }) + }, + /** + * 图片边缘检测-缩放 + */ + _imgMarginDetectionScale() { + if (!this.data.limit_move) return; + let scale = this.data.scale; + let img_width = this.data.img_width; + let img_height = this.data.img_height; + if (this.data.angle / 90 % 2) { + img_width = this.data.img_height; + img_height = this.data.img_width; + } + if (img_width * scale < this.data.width) { + scale = this.data.width / img_width; + } + if (img_height * scale < this.data.height) { + scale = Math.max(scale, this.data.height / img_height); + } + this._imgMarginDetectionPosition(scale); + }, + _setData(obj) { + let data = {}; + for (var key in obj) { + if (this.data[key] != obj[key]) { + data[key] = obj[key]; + } + } + this.setData(data); + return data; + }, + /** + * 计算图片尺寸 + */ + _imgComputeSize() { + let img_width = this.data.img_width, + img_height = this.data.img_height; + if (!this.data.INIT_IMGHEIGHT && !this.data.INIT_IMGWIDTH) { + //默认按图片最小边 = 对应裁剪框尺寸 + img_width = this.data.imageObject.width; + img_height = this.data.imageObject.height; + if (img_width / img_height > this.data.width / this.data.height) { + img_height = this.data.height; + img_width = this.data.imageObject.width / this.data.imageObject.height * img_height; + } else { + img_width = this.data.width; + img_height = this.data.imageObject.height / this.data.imageObject.width * img_width; + } + } else if (this.data.INIT_IMGHEIGHT && !this.data.INIT_IMGWIDTH) { + img_width = this.data.imageObject.width / this.data.imageObject.height * this.data.INIT_IMGHEIGHT; + } else if (!this.data.INIT_IMGHEIGHT && this.data.INIT_IMGWIDTH) { + img_height = this.data.imageObject.height / this.data.imageObject.width * this.data.INIT_IMGWIDTH; + } + this.setData({ + img_width: img_width, + img_height: img_height + }); + }, + //改变截取框大小 + _computeCutSize() { + if (this.data.width > this.data.info.windowWidth) { + this.setData({ + width: this.data.info.windowWidth, + }); + } else if (this.data.width + this.data.cut_left > this.data.info.windowWidth) { + this.setData({ + cut_left: this.data.info.windowWidth - this.data.cut_left, + }); + }; + if (this.data.height > this.data.info.windowHeight) { + this.setData({ + height: this.data.info.windowHeight, + }); + } else if (this.data.height + this.data.cut_top > this.data.info.windowHeight) { + this.setData({ + cut_top: this.data.info.windowHeight - this.data.cut_top, + }); + }!this.data._canvas_overflow && this._draw(); + }, + //开始触摸 + _start(event) { + this.data._flag_img_endtouch = false; + if (event.touches.length == 1) { + //单指拖动 + this.data._touch_img_relative[0] = { + x: (event.touches[0].clientX - this.data._img_left), + y: (event.touches[0].clientY - this.data._img_top) + } + } else { + //双指放大 + let width = Math.abs(event.touches[0].clientX - event.touches[1].clientX); + let height = Math.abs(event.touches[0].clientY - event.touches[1].clientY); + this.data._touch_img_relative = [{ + x: (event.touches[0].clientX - this.data._img_left), + y: (event.touches[0].clientY - this.data._img_top) + }, { + x: (event.touches[1].clientX - this.data._img_left), + y: (event.touches[1].clientY - this.data._img_top) + }]; + this.data._hypotenuse_length = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2)); + }!this.data._canvas_overflow && this._draw(); + }, + _move_throttle() { + //安卓需要节流 + if (this.data.info.platform == 'android') { + clearTimeout(this.data.MOVE_THROTTLE); + this.data.MOVE_THROTTLE = setTimeout(() => { + this.data.MOVE_THROTTLE_FLAG = true; + }, 1000 / 40) + return this.data.MOVE_THROTTLE_FLAG; + } else { + this.data.MOVE_THROTTLE_FLAG = true; + } + }, + _move(event) { + if (this.data._flag_img_endtouch || !this.data.MOVE_THROTTLE_FLAG) return; + this.data.MOVE_THROTTLE_FLAG = false; + this._move_throttle(); + this._moveDuring(); + if (event.touches.length == 1) { + //单指拖动 + let left = (event.touches[0].clientX - this.data._touch_img_relative[0].x), + top = (event.touches[0].clientY - this.data._touch_img_relative[0].y); + //图像边缘检测,防止截取到空白 + this.data._img_left = left; + this.data._img_top = top; + this._imgMarginDetectionPosition(); + this.setData({ + _img_left: this.data._img_left, + _img_top: this.data._img_top + }); + } else { + //双指放大 + let width = (Math.abs(event.touches[0].clientX - event.touches[1].clientX)), + height = (Math.abs(event.touches[0].clientY - event.touches[1].clientY)), + hypotenuse = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2)), + scale = this.data.scale * (hypotenuse / this.data._hypotenuse_length), + current_deg = 0; + scale = scale <= this.data.min_scale ? this.data.min_scale : scale; + scale = scale >= this.data.max_scale ? this.data.max_scale : scale; + //图像边缘检测,防止截取到空白 + this.data.scale = scale; + this._imgMarginDetectionScale(); + //双指旋转(如果没禁用旋转) + let _touch_img_relative = [{ + x: (event.touches[0].clientX - this.data._img_left), + y: (event.touches[0].clientY - this.data._img_top) + }, { + x: (event.touches[1].clientX - this.data._img_left), + y: (event.touches[1].clientY - this.data._img_top) + }]; + if (!this.data.disable_rotate) { + let first_atan = 180 / Math.PI * Math.atan2(_touch_img_relative[0].y, _touch_img_relative[0].x); + let first_atan_old = 180 / Math.PI * Math.atan2(this.data._touch_img_relative[0].y, this.data._touch_img_relative[0].x); + let second_atan = 180 / Math.PI * Math.atan2(_touch_img_relative[1].y, _touch_img_relative[1].x); + let second_atan_old = 180 / Math.PI * Math.atan2(this.data._touch_img_relative[1].y, this.data._touch_img_relative[1].x); + //当前旋转的角度 + let first_deg = first_atan - first_atan_old, + second_deg = second_atan - second_atan_old; + if (first_deg != 0) { + current_deg = first_deg; + } else if (second_deg != 0) { + current_deg = second_deg; + } + } + this.data._touch_img_relative = _touch_img_relative; + this.data._hypotenuse_length = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2)); + //更新视图 + this.setData({ + angle: this.data.angle + current_deg, + scale: this.data.scale + }); + }!this.data._canvas_overflow && this._draw(); + }, + //结束操作 + _end(event) { + this.data._flag_img_endtouch = true; + this._moveStop(); + }, + //点击中间剪裁框处理 + _click(event) { + // if (!this.data.imgSrc) { + // //调起上传 + // this.upload(); + // return; + // } + this._draw(() => { + let x = event.detail ? event.detail.x : event.touches[0].clientX; + let y = event.detail ? event.detail.y : event.touches[0].clientY; + if ((x >= this.data.cut_left && x <= (this.data.cut_left + this.data.width)) && (y >= this.data.cut_top && y <= (this.data.cut_top + this.data.height))) { + //生成图片并回调 + wx.canvasToTempFilePath({ + width: this.data.width * this.data.export_scale, + height: Math.round(this.data.height * this.data.export_scale), + destWidth: this.data.width * this.data.export_scale, + destHeight: Math.round(this.data.height) * this.data.export_scale, + fileType: 'png', + quality: this.data.quality, + canvasId: this.data.el, + success: (res) => { + this.triggerEvent('tapcut', { + url: res.tempFilePath, + width: this.data.width * this.data.export_scale, + height: this.data.height * this.data.export_scale + }); + } + }, this) + } + }); + }, + //渲染 + _draw(callback) { + if (!this.data.imgSrc) return; + let draw = () => { + //图片实际大小 + let img_width = this.data.img_width * this.data.scale * this.data.export_scale; + let img_height = this.data.img_height * this.data.scale * this.data.export_scale; + //canvas和图片的相对距离 + var xpos = this.data._img_left - this.data.cut_left; + var ypos = this.data._img_top - this.data.cut_top; + //旋转画布 + this.data.ctx.translate(xpos * this.data.export_scale, ypos * this.data.export_scale); + this.data.ctx.rotate(this.data.angle * Math.PI / 180); + this.data.ctx.drawImage(this.data.imgSrc, -img_width / 2, -img_height / 2, img_width, img_height); + this.data.ctx.draw(false, () => { + callback && callback(); + }); + } + if (this.data.ctx.width != this.data.width || this.data.ctx.height != this.data.height) { + //优化拖动裁剪框,所以必须把宽高设置放在离用户触发渲染最近的地方 + this.setData({ + _canvas_height: this.data.height, + _canvas_width: this.data.width, + }, () => { + //延迟40毫秒防止点击过快出现拉伸或裁剪过多 + setTimeout(() => { + draw(); + }, 40); + }); + } else { + draw(); + } + }, + //裁剪框处理 + _cutTouchMove(e) { + if (this.data._flag_cut_touch && this.data.MOVE_THROTTLE_FLAG) { + if (this.data.disable_ratio && (this.data.disable_width || this.data.disable_height)) return; + //节流 + this.data.MOVE_THROTTLE_FLAG = false; + this._move_throttle(); + let width = this.data.width, + height = this.data.height, + cut_top = this.data.cut_top, + cut_left = this.data.cut_left, + size_correct = () => { + width = width <= this.data.max_width ? width >= this.data.min_width ? width : this.data.min_width : this.data.max_width; + height = height <= this.data.max_height ? height >= this.data.min_height ? height : this.data.min_height : this.data.max_height; + }, + size_inspect = () => { + if ((width > this.data.max_width || width < this.data.min_width || height > this.data.max_height || height < this.data.min_height) && this.data.disable_ratio) { + size_correct(); + return false; + } else { + size_correct(); + return true; + } + }; + height = this.data.CUT_START.height + ((this.data.CUT_START.corner > 1 && this.data.CUT_START.corner < 4 ? 1 : -1) * (this.data.CUT_START.y - e.touches[0].clientY)); + switch (this.data.CUT_START.corner) { + case 1: + width = this.data.CUT_START.width + this.data.CUT_START.x - e.touches[0].clientX; + if (this.data.disable_ratio) { + height = width / (this.data.width / this.data.height) + } + if (!size_inspect()) return; + cut_left = this.data.CUT_START.cut_left - (width - this.data.CUT_START.width); + break + case 2: + width = this.data.CUT_START.width + this.data.CUT_START.x - e.touches[0].clientX; + if (this.data.disable_ratio) { + height = width / (this.data.width / this.data.height) + } + if (!size_inspect()) return; + cut_top = this.data.CUT_START.cut_top - (height - this.data.CUT_START.height) + cut_left = this.data.CUT_START.cut_left - (width - this.data.CUT_START.width) + break + case 3: + width = this.data.CUT_START.width - this.data.CUT_START.x + e.touches[0].clientX; + if (this.data.disable_ratio) { + height = width / (this.data.width / this.data.height) + } + if (!size_inspect()) return; + cut_top = this.data.CUT_START.cut_top - (height - this.data.CUT_START.height); + break + case 4: + width = this.data.CUT_START.width - this.data.CUT_START.x + e.touches[0].clientX; + if (this.data.disable_ratio) { + height = width / (this.data.width / this.data.height) + } + if (!size_inspect()) return; + break + } + if (!this.data.disable_width && !this.data.disable_height) { + this.setData({ + width: width, + cut_left: cut_left, + height: height, + cut_top: cut_top, + }) + } else if (!this.data.disable_width) { + this.setData({ + width: width, + cut_left: cut_left + }) + } else if (!this.data.disable_height) { + this.setData({ + height: height, + cut_top: cut_top + }) + } + this._imgMarginDetectionScale(); + } + }, + _cutTouchStart(e) { + let currentX = e.touches[0].clientX; + let currentY = e.touches[0].clientY; + let cutbox_top4 = this.data.cut_top + this.data.height - 30; + let cutbox_bottom4 = this.data.cut_top + this.data.height + 20; + let cutbox_left4 = this.data.cut_left + this.data.width - 30; + let cutbox_right4 = this.data.cut_left + this.data.width + 30; + + let cutbox_top3 = this.data.cut_top - 30; + let cutbox_bottom3 = this.data.cut_top + 30; + let cutbox_left3 = this.data.cut_left + this.data.width - 30; + let cutbox_right3 = this.data.cut_left + this.data.width + 30; + + let cutbox_top2 = this.data.cut_top - 30; + let cutbox_bottom2 = this.data.cut_top + 30; + let cutbox_left2 = this.data.cut_left - 30; + let cutbox_right2 = this.data.cut_left + 30; + + let cutbox_top1 = this.data.cut_top + this.data.height - 30; + let cutbox_bottom1 = this.data.cut_top + this.data.height + 30; + let cutbox_left1 = this.data.cut_left - 30; + let cutbox_right1 = this.data.cut_left + 30; + if (currentX > cutbox_left4 && currentX < cutbox_right4 && currentY > cutbox_top4 && currentY < cutbox_bottom4) { + this._moveDuring(); + this.data._flag_cut_touch = true; + this.data._flag_img_endtouch = true; + this.data.CUT_START = { + width: this.data.width, + height: this.data.height, + x: currentX, + y: currentY, + corner: 4 + } + } else if (currentX > cutbox_left3 && currentX < cutbox_right3 && currentY > cutbox_top3 && currentY < cutbox_bottom3) { + this._moveDuring(); + this.data._flag_cut_touch = true; + this.data._flag_img_endtouch = true; + this.data.CUT_START = { + width: this.data.width, + height: this.data.height, + x: currentX, + y: currentY, + cut_top: this.data.cut_top, + cut_left: this.data.cut_left, + corner: 3 + } + } else if (currentX > cutbox_left2 && currentX < cutbox_right2 && currentY > cutbox_top2 && currentY < cutbox_bottom2) { + this._moveDuring(); + this.data._flag_cut_touch = true; + this.data._flag_img_endtouch = true; + this.data.CUT_START = { + width: this.data.width, + height: this.data.height, + cut_top: this.data.cut_top, + cut_left: this.data.cut_left, + x: currentX, + y: currentY, + corner: 2 + } + } else if (currentX > cutbox_left1 && currentX < cutbox_right1 && currentY > cutbox_top1 && currentY < cutbox_bottom1) { + this._moveDuring(); + this.data._flag_cut_touch = true; + this.data._flag_img_endtouch = true; + this.data.CUT_START = { + width: this.data.width, + height: this.data.height, + cut_top: this.data.cut_top, + cut_left: this.data.cut_left, + x: currentX, + y: currentY, + corner: 1 + } + } + }, + _cutTouchEnd(e) { + this._moveStop(); + this.data._flag_cut_touch = false; + }, + //停止移动时需要做的操作 + _moveStop() { + //清空之前的自动居中延迟函数并添加最新的 + clearTimeout(this.data.TIME_CUT_CENTER); + this.data.TIME_CUT_CENTER = setTimeout(() => { + //动画启动 + if (!this.data._cut_animation) { + this.setData({ + _cut_animation: true + }); + } + this.setCutCenter(); + }, 1000) + //清空之前的背景变化延迟函数并添加最新的 + clearTimeout(this.data.TIME_BG); + this.data.TIME_BG = setTimeout(() => { + if (this.data._flag_bright) { + this.setData({ + _flag_bright: false + }); + } + }, 2000) + }, + //移动中 + _moveDuring() { + //清空之前的自动居中延迟函数 + clearTimeout(this.data.TIME_CUT_CENTER); + //清空之前的背景变化延迟函数 + clearTimeout(this.data.TIME_BG); + //高亮背景 + if (!this.data._flag_bright) { + this.setData({ + _flag_bright: true + }); + } + }, + //监听器 + _watcher() { + Object.keys(this.data).forEach(v => { + this._observe(this.data, v, this.data.watch[v]); + }) + }, + _observe(obj, key, watchFun) { + var val = obj[key]; + Object.defineProperty(obj, key, { + configurable: true, + enumerable: true, + set: (value) => { + val = value; + watchFun && watchFun(val, this); + }, + get() { + if (val && '_img_top|img_left||width|height|min_width|max_width|min_height|max_height|export_scale|cut_top|cut_left|canvas_top|canvas_left|img_width|img_height|scale|angle|min_scale|max_scale'.indexOf(key) != -1) { + let ret = parseFloat(parseFloat(val).toFixed(3)); + if (typeof val == "string" && val.indexOf("%") != -1) { + ret += '%'; + } + return ret; + } + return val; + } + }) + }, + _preventTouchMove() {} + } +}) \ No newline at end of file diff --git a/components/image-cropper/image-cropper.json b/components/image-cropper/image-cropper.json new file mode 100644 index 0000000..d577ade --- /dev/null +++ b/components/image-cropper/image-cropper.json @@ -0,0 +1,3 @@ +{ + "component": true +} \ No newline at end of file diff --git a/components/image-cropper/image-cropper.wxml b/components/image-cropper/image-cropper.wxml new file mode 100644 index 0000000..a4a7526 --- /dev/null +++ b/components/image-cropper/image-cropper.wxml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/components/image-cropper/image-cropper.wxss b/components/image-cropper/image-cropper.wxss new file mode 100644 index 0000000..80eb895 --- /dev/null +++ b/components/image-cropper/image-cropper.wxss @@ -0,0 +1,143 @@ +.image-cropper { + background: rgba(14, 13, 13, .8); + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + z-index: 1; +} + +.image-cropper .main { + position: absolute; + width: 100vw; + height: 100vh; + overflow: hidden; +} + +.image-cropper .content { + z-index: 9; + position: absolute; + width: 100vw; + height: 100vh; + display: flex; + flex-direction: column; + pointer-events: none; +} + +.image-cropper .bg_black { + background: rgba(0, 0, 0, 0.8) !important; +} + +.image-cropper .bg_gray { + background: rgba(0, 0, 0, 0.45); + transition-duration: .35s; +} + +.image-cropper .content>.content_top { + pointer-events: none; +} + +.image-cropper .content>.content_middle { + display: flex; + height: 200px; + width: 100%; +} + +.image-cropper .content_middle_middle { + width: 200px; + box-sizing: border-box; + position: relative; + transition-duration: .3s; +} + +.image-cropper .content_middle_right { + flex: auto; +} + +.image-cropper .content>.content_bottom { + flex: auto; +} + +.image-cropper .img { + z-index: 2; + top: 0; + left: 0; + position: absolute; + border: none; + width: 100%; + backface-visibility: hidden; + transform-origin: center; +} + +.image-cropper .image-cropper-canvas { + position: fixed; + background: white; + width: 150px; + height: 150px; + z-index: 10; + top: -200%; + pointer-events: none; +} + +.image-cropper .border { + background: white; + pointer-events: auto; + position: absolute; +} + +.image-cropper .border-top-left { + left: -2.5px; + top: -2.5px; + height: 2.5px; + width: 33rpx; +} + +.image-cropper .border-top-right { + right: -2.5px; + top: -2.5px; + height: 2.5px; + width: 33rpx; +} + +.image-cropper .border-right-top { + top: -1px; + width: 2.5px; + height: 30rpx; + right: -2.5px; +} + +.image-cropper .border-right-bottom { + width: 2.5px; + height: 30rpx; + right: -2.5px; + bottom: -1px; +} + +.image-cropper .border-bottom-left { + height: 2.5px; + width: 33rpx; + bottom: -2.5px; + left: -2.5px; +} + +.image-cropper .border-bottom-right { + height: 2.5px; + width: 33rpx; + bottom: -2.5px; + right: -2.5px; +} + +.image-cropper .border-left-top { + top: -1px; + width: 2.5px; + height: 30rpx; + left: -2.5px; +} + +.image-cropper .border-left-bottom { + width: 2.5px; + height: 30rpx; + left: -2.5px; + bottom: -1px; +} \ No newline at end of file diff --git a/components/inputmodal/inputmodal.js b/components/inputmodal/inputmodal.js new file mode 100644 index 0000000..a0813b8 --- /dev/null +++ b/components/inputmodal/inputmodal.js @@ -0,0 +1,34 @@ +// components/inputmodal/inputmodal.js +Component({ + /** + * 组件的属性列表 + */ + properties: { + title: { + type: String, + value: '默认标题' + } + }, + /** + * 组件的初始数据 + */ + data: { + + }, + attached: function () { + // let systemInfo = wx.getSystemInfoSync() + + // console.log(systemInfo) + }, + /** + * 组件的方法列表 + */ + methods: { + cancel() { + this.triggerEvent('inputModalClick', {data: 'cancel'}, {}) + }, + confirm() { + this.triggerEvent('inputModalClick', { data: 'confirm' }, {}) + } + } +}) diff --git a/components/inputmodal/inputmodal.json b/components/inputmodal/inputmodal.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/components/inputmodal/inputmodal.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/components/inputmodal/inputmodal.wxml b/components/inputmodal/inputmodal.wxml new file mode 100644 index 0000000..466223f --- /dev/null +++ b/components/inputmodal/inputmodal.wxml @@ -0,0 +1,12 @@ + + + {{title}} + + + + + 取消 + 确定 + + + \ No newline at end of file diff --git a/components/inputmodal/inputmodal.wxss b/components/inputmodal/inputmodal.wxss new file mode 100644 index 0000000..d14da9b --- /dev/null +++ b/components/inputmodal/inputmodal.wxss @@ -0,0 +1,64 @@ +.inputmodal-wrapper { + position: fixed; + top: 0; + bottom: 0; + right: 0; + left: 0; + background-color: rgba(0, 0, 0, .5); + z-index: 9998; +} +.inputmodal-wrapper .content { + width: 540rpx; + height: 300rpx; + background-color: #F3F4F6; + position: absolute; + top: 50%; + left: 50%; + margin-left: -270rpx; + margin-top: -150rpx; + border-radius: 24rpx; + z-index: 9999; +} +.inputmodal-wrapper .content .title { + width:100%; + text-align:center; + line-height:114rpx; + font-size:34rpx; + color: #030303; +} +.inputmodal-wrapper .content .slot { + height: 110rpx; + display: flex; + flex-direction: column; + /* justify-content: center; */ +} +.inputmodal-wrapper .content input{ + margin: 0 auto; + width: 90%; + height: 64rpx; + padding: 0 8rpx; + line-height: 64rpx; + background-color: #fff; + border: 0 solid #4D4D4D; + font-size: 30rpx; +} +.button-group { + position: absolute; + bottom: 0; + width: 100%; + height: 84rpx; + display: flex; + flex-direction: row; + border-top: 2rpx solid #ccc; + font-size: 34rpx; + color: #007AFF; +} +.button-group .btn { + flex: 1; + display: flex; + justify-content: center; + align-items: center; +} +.button-group .btn-hover { + background-color: rgba(0, 0, 0, .1); +} diff --git a/components/nav/nav.js b/components/nav/nav.js new file mode 100644 index 0000000..2730d2c --- /dev/null +++ b/components/nav/nav.js @@ -0,0 +1,53 @@ +// components/nav.js +const app = getApp() +Component({ + /** + * 组件的属性列表 + */ + properties: { + navName: { + type: String, + value: "", + observer(newval) { + this.setData({ + name: newval, + }); + }, + }, + }, + + /** + * 组件的初始数据 + */ + data: { + name:'' + }, + + /** + * 组件的方法列表 + */ + methods: { + goBack(){ + console.log("origion:"+app.globalData.origion) + if(app.globalData.origion==1){ + wx.reLaunch({ + url: '/pages/index/index', + }) + }else if(app.globalData.origion==2){ + wx.reLaunch({ + url: '/pages/index/index', + }) + }else{ + wx.navigateBack({ + delta: 1, + fail:function(){ + wx.reLaunch({ + url: '/pages/index/index', + }) + } + }) + } + + }, + } +}) diff --git a/components/nav/nav.json b/components/nav/nav.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/components/nav/nav.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/components/nav/nav.wxml b/components/nav/nav.wxml new file mode 100644 index 0000000..cee46b6 --- /dev/null +++ b/components/nav/nav.wxml @@ -0,0 +1,5 @@ + + + + {{name}} + diff --git a/components/nav/nav.wxss b/components/nav/nav.wxss new file mode 100644 index 0000000..b8097cb --- /dev/null +++ b/components/nav/nav.wxss @@ -0,0 +1,35 @@ +/* components/nav.wxss */ +.ui-navigatorbar { + position: fixed; + z-index:99; + top: 0; + width: 750rpx; + height: 172rpx; + background: #F2F2F2; + backdrop-filter: blur(20px); +} + +.ui-navigatorbar-back { + position: absolute; + padding-left:40rpx; + padding-right:40rpx; + width:30rpx; + height:60rpx; + left: 0rpx; + bottom: 20rpx; +} + +.ui-title { + position: absolute; + width: 350rpx; + height: 88rpx; + line-height: 56rpx; + font-size: 36rpx; + white-space: nowrap; + color: #000000; + bottom: 0; + left: 200rpx; + display: flex; + justify-content: center; + align-items: center; +} \ No newline at end of file diff --git a/components/navbar/navbar.js b/components/navbar/navbar.js new file mode 100644 index 0000000..ba9c0a9 --- /dev/null +++ b/components/navbar/navbar.js @@ -0,0 +1,29 @@ +// components/navbar/navbar.js +const app=getApp(); +Component({ + + /** + * 页面的初始数据 + */ + data: { + keyWord:'', + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static' + }, + pageLifetimes: { + // 组件所在页面的生命周期函数 + show() { + this.setData({ + img_host:app.hostConfig().imghost + }); + }, + hide: function () { }, + resize: function () { }, + }, + + methods: { + handleFocus(){ + this.triggerEvent('handleFocus',true) + }, + }, + +}) \ No newline at end of file diff --git a/components/navbar/navbar.json b/components/navbar/navbar.json new file mode 100644 index 0000000..79be446 --- /dev/null +++ b/components/navbar/navbar.json @@ -0,0 +1,5 @@ +{ + "usingComponents": { + + } +} \ No newline at end of file diff --git a/components/navbar/navbar.wxml b/components/navbar/navbar.wxml new file mode 100644 index 0000000..b813ec8 --- /dev/null +++ b/components/navbar/navbar.wxml @@ -0,0 +1,10 @@ + + + + 肝胆相照互联网医院 + + + + + + diff --git a/components/navbar/navbar.wxss b/components/navbar/navbar.wxss new file mode 100644 index 0000000..c70f9df --- /dev/null +++ b/components/navbar/navbar.wxss @@ -0,0 +1,43 @@ +/* components/navbar/navbar.wxss */ +.barcontain { + position: fixed; + top: 0; + z-index: 9; + width: 100%; + background: #F2F2F2 url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABdwAAAIwCAYAAACcFKkTAAAgAElEQVR4Xuzdb7NedXXw8bX2lYQAihTlTyAIISVAIBXMaRGKSK1tpw96P+Mt9HX4OnwLPLv7oNPWWooUpD0hsSEBQkOICYY/ShEFQpJrr3v2dai31ihgVpLz58OMc8bxnHXt/dlrnOE7e35XPvLskxX+IUCAAAECBAgQIECAAAECBAgQIECAAAECBC5IIAX3C/LzxwQIECBAgAABAgQIECBAgAABAgQIECBAYCEguFsEAgQIECBAgAABAgQIECBAgAABAgQIECDQICC4NyAaQYAAAQIECBAgQIAAAQIECBAgQIAAAQIEBHc7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGgQE9wZEIwgQIECAAAECBAgQIECAAAECBAgQIECAgOBuBwgQIECAAAECBAgQIECAAAECBAgQIECAQIOA4N6AaAQBAgQIECBAgAABAgQIECBAgAABAgQIEBDc7QABAgQIECBAgAABAgQIECBAgAABAgQIEGgQENwbEI0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQKCux0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQINAoJ7A6IRBAgQIECAAAECBAgQIECAAAECBAgQIEBAcLcDBAgQIECAAAECBAgQIECAAAECBAgQIECgQUBwb0A0ggABAgQIECBAgAABAgQIECBAgAABAgQICO52gAABAgQIECBAgAABAgQIECBAgAABAgQINAgI7g2IRhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcHdDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQYBwb0B0QgCBAgQIECAAAECBAgQIECAAAECBAgQICC42wECBAgQIECAAAECBAgQIECAAAECBAgQINAgILg3IBpBgAABAgQIECBAgAABAgQIECBAgAABAgQEdztAgAABAgQIECBAgAABAgQIECBAgAABAgQaBAT3BkQjCBAgQIAAAQIECBAgQIAAAQIECBAgQICA4G4HCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAg4Dg3oBoBAECBAgQIECAAAECBAgQIECAAAECBAgQENztAAECBAgQIECAAAECBAgQIECAAAECBAgQaBAQ3BsQjSBAgAABAgQIECBAgAABAgQIECBAgAABAoK7HSBAgAABAgQIECBAgAABAgQIECBAgAABAg0CgnsDohEECBAgQIAAAQIECBAgQIAAAQIECBAgQEBwtwMECBAgQIAAAQIECBAgQIAAAQIECBAgQKBBQHBvQDSCAAECBAgQIECAAAECBAgQIECAAAECBAgI7naAAAECBAgQIECAAAECBAgQIECAAAECBAg0CAjuDYhGECBAgAABAgQIECBAgAABAgQIECBAgAABwd0OECBAgAABAgQIECBAgAABAgQIECBAgACBBgHBvQHRCAIECBAgQIAAAQIECBAgQIAAAQIECBAgILjbAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0CAguDcgGkGAAAECBAgQIECAAAECBAgQIECAAAECBAR3O0CAAAECBAgQIECAAAECBAgQIECAAAECBBoEBPcGRCMIECBAgAABAgQIECBAgAABAgQIECBAgIDgbgcIECBAgAABAgQIECBAgAABAgQIECBAgECDgODegGgEAQIECBAgQIAAAQIECBAgQIAAAQIECBAQ3O0AAQIECBAgQIAAAQIECBAgQIAAAQIECBBoEBDcGxCNIECAAAECBAgQIECAAAECBAgQIECAAAECgrsdIECAAAECBAgQIECAAAECBAgQIECAAAECDQKCewOiEQQIECBAgAABAgQIECBAgAABAgQIECBAQHC3AwQIECBAgAABAgQIECBAgAABAgQIECBAoEFAcG9ANIIAAQIECBAgQIAAAQIECBAgQIAAAQIECAjudoAAAQIECBAgQIAAAQIECBAgQIAAAQIECDQICO4NiEYQIECAAAECBAgQIECAAAECBAgQIECAAAHB3Q4QIECAAAECBAgQIECAAAECBAgQIECAAIEGAcG9AdEIAgQIECBAgAABAgQIECBAgAABAgQIECAguNsBAgQIECBAgAABAgQIECBAgAABAgQIECDQICC4NyAaQYAAAQIECBAgQIAAAQIECBAgQIAAAQIEBHc7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGgQE9wZEIwgQIECAAAECBAgQIECAAAECBAgQIECAgOBuBwgQIECAAAECBAgQIECAAAECBAgQIECAQIOA4N6AaAQBAgQIECBAgAABAgQIECBAgAABAgQIEBDc7QABAgQIECBAgAABAgQIECBAgAABAgQIEGgQENwbEI0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQKCux0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQINAoJ7A6IRBAgQIECAAAECBAgQIECAAAECBAgQIEBAcLcDBAgQIECAAAECBAgQIECAAAECBAgQIECgQUBwb0A0ggABAgQIECBAgAABAgQIECBAgAABAgQICO52gAABAgQIECBAgAABAgQIECBAgAABAgQINAgI7g2IRhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcHdDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQYBwb0B0QgCBAgQIECAAAECBAgQIECAAAECBAgQICC42wECBAgQIECAAAECBAgQIECAAAECBAgQINAgILg3IBpBgAABAgQIECBAgAABAgQIECBAgAABAgQEdztAgAABAgQIECBAgAABAgQIECBAgAABAgQaBAT3BkQjCBAgQIAAAQIECBAgQIAAAQIECBAgQICA4G4HCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAg4Dg3oBoBAECBAgQIECAAAECBAgQIECAAAECBAgQENztAAECBAgQIECAAAECBAgQIECAAAECBAgQaBAQ3BsQjSBAgAABAgQIECBAgAABAgQIECBAgAABAoK7HSBAgAABAgQIECBAgAABAgQIECBAgAABAg0CgnsDohEECBAgQIAAAQIECBAgQIAAAQIECBAgQEBwtwMECBAgQIAAAQIECBAgQIAAAQIECBAgQKBBQHBvQDSCAAECBAgQIECAAAECBAgQIECAAAECBAgI7naAAAECBAgQIECAAAECBAgQIECAAAECBAg0CAjuDYhGECBAgAABAgQIECBAgAABAgQIECBAgAABwd0OECBAgAABAgQIECBAgAABAgQIECBAgACBBgHBvQHRCAIECBAgQIAAAQIECBAgQIAAAQIECBAgILjbAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0CAguDcgGkGAAAECBAgQIECAAAECBAgQIECAAAECBAR3O0CAAAECBAgQIECAAAECBAgQIECAAAECBBoEBPcGRCMIECBAgAABAgQIECBAgAABAgQIECBAgIDgbgcIECBAgAABAgQIECBAgAABAgQIECBAgECDgODegGgEAQIECBAgQIAAAQIECBAgQIAAAQIECBAQ3O0AAQIECBAgQIAAAQIECBAgQIAAAQIECBBoEBDcGxCNIECAAAECBAgQIECAAAECBAgQIECAAAECgrsdIECAAAECBAgQIECAAAECBAgQIECAAAECDQKCewOiEQQIECBAgAABAgQIECBAgAABAgQIECBAQHC3AwQIECBAgAABAgQIECBAgAABAgQIECBAoEFAcG9ANIIAAQIECBAgQIAAAQIECBAgQIAAAQIECAjudoAAAQIECBAgQIAAAQIECBAgQIAAAQIECDQICO4NiEYQIECAAAECBAgQIECAAAECBAgQIECAAAHB3Q4QIECAAAECBAgQIECAAAECBAgQIECAAIEGAcG9AdEIAgQIECBAgAABAgQIECBAgAABAgQIECAguNsBAgQIECBAgAABAgQIECBAgAABAgQIECDQICC4NyAaQYAAAQIECBAgQIAAAQIECBAgQIAAAQIEBHc7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGgQE9wZEIwgQIECAAAECBAgQIECAAAECBAgQIECAgOBuBwgQIECAAAECBAgQIECAAAECBAgQIECAQIOA4N6AaAQBAgQIECBAgAABAgQIECBAgAABAgQIEBDc7QABAgQIECBAgAABAgQIECBAgAABAgQIEGgQENwbEI0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQKCux0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQINAoJ7A6IRBAgQIECAAAECBAgQIECAAAECBAgQIEBAcLcDBAgQIECAAAECBAgQIECAAAECBAgQIECgQUBwb0A0ggABAgQIECBAgAABAgQIECBAgAABAgQICO52gAABAgQIECBAgAABAgQIECBAgAABAgQINAgI7g2IRhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcHdDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQYBwb0B0QgCBAgQIECAAAECBAgQIECAAAECBAgQICC42wECBAgQIECAAAECBAgQIECAAAECBAgQINAgILg3IBpBgAABAgQIECBAgAABAgQIECBAgAABAgQEdztAgAABAgQIECBAgAABAgQIECBAgAABAgQaBAT3BkQjCBAgQIAAAQIECBAgQIAAAQIECBAgQICA4G4HCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAg4Dg3oBoBAECBAgQIECAAAECBAgQIECAAAECBAgQENztAAECBAgQIECAAAECBAgQIECAAAECBAgQaBAQ3BsQjSBAgAABAgQIECBAgAABAgQIECBAgAABAoK7HSBAgAABAgQIECBAgAABAgQIECBAgAABAg0CgnsDohEECBAgQIAAAQIECBAgQIAAAQIECBAgQEBwtwMECBAgQIAAAQIECBAgQIAAAQIECBAgQKBBQHBvQDSCAAECBAgQIECAAAECBAgQIECAAAECBAgI7naAAAECBAgQIECAAAECBAgQIECAAAECBAg0CAjuDYhGECBAgAABAgQIECBAgAABAgQIECBAgAABwd0OECBAgAABAgQIECBAgAABAgQIECBAgACBBgHBvQHRCAIECBAgQIAAAQIECBAgQIAAAQIECBAgILjbAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0CAguDcgGkGAAAECBAgQIECAAAECBAgQIECAAAECBAR3O0CAAAECBAgQIECAAAECBAgQIECAAAECBBoEBPcGRCMIECBAgAABAgQIECBAgAABAgQIECBAgIDgbgcIECBAgAABAgQIECBAgAABAgQIECBAgECDgODegGgEAQIECBAgQIAAAQIECBAgQIAAAQIECBAQ3O0AAQIECBAgQIAAAQIECBAgQIAAAQIECBBoEBDcGxCNIECAAAECBAgQIECAAAECBAgQIECAAAECgrsdIECAAAECBAgQIECAAAECBAgQIECAAAECDQKCewOiEQQIECBAgAABAgQIECBAgAABAgQIECBAQHC3AwQIECBAgAABAgQIECBAgAABAgQIECBAoEFAcG9ANIIAAQIECBAgQIAAAQIECBAgQIAAAQIECAjudoAAAQIECBAgQIAAAQIECBAgQIAAAQIECDQICO4NiEYQIECAAAECBAgQIECAAAECBAgQIECAAAHB3Q4QIECAAAECBAgQIECAAAECBAgQIECAAIEGAcG9AdEIAgQIECBAgAABAgQIECBAgAABAgQIECAguNsBAgQIECBAgAABAgQIECBAgAABAgQIECDQICC4NyAaQYAAAQIECBAgQIAAAQIECBAgQIAAAQIEBHc7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGgQE9wZEIwgQIECAAAECBAgQIECAAAECBAgQIECAgOBuBwgQIECAAAECBAgQIECAAAECBAgQIECAQIOA4N6AaAQBAgQIECBAgAABAgQIECBAgAABAgQIEBDc7QABAgQIECBAgAABAgQIECBAgAABAgQIEGgQENwbEI0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQKCux0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQINAoJ7A6IRBAgQIECAAAECBAgQIECAAAECBAgQIEBAcLcDBAgQIECAAAECBAgQIECAAAECBAgQIECgQUBwb0A0ggABAgQIECBAgAABAgQIECBAgAABAgQICO52gAABAgQIECBAgAABAgQIECBAgAABAgQINAgI7g2IRhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcHdDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQYBwb0B0QgCBAgQIECAAAECBAgQIECAAAECBAgQICC42wECBAgQIECAAAECBAgQIECAAAECBAgQINAgILg3IBpBgAABAgQIECBAgAABAgQIECBAgAABAgQEdztAgAABAgQIECBAgAABAgQIECBAgAABAgQaBAT3BkQjCBAgQIAAAQIECBAgQIAAAQIECBAgQICA4G4HCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAg4Dg3oBoBAECBAgQIECAAAECBAgQIECAAAECBAgQENztAAECBAgQIECAAAECBAgQIECAAAECBAgQaBAQ3BsQjSBAgAABAgQIECBAgAABAgQIECBAgAABAoK7HSBAgAABAgQIECBAgAABAgQIECBAgAABAg0CgnsDohEECBAgQIAAAQIECBAgQIAAAQIECBAgQEBwtwMECBAgQIAAAQIECBAgQIAAAQIECBAgQKBBQHBvQDSCAAECBAgQIECAAAECBAgQIECAAAECBAgI7naAAAECBAgQIECAAAECBAgQIECAAAECBAg0CAjuDYhGECBAgAABAgQIECBAgAABAgQIECBAgAABwd0OECBAgAABAgQIECBAgAABAgQIECBAgACBBgHBvQHRCAIECBAgQIAAAQIECBAgQIAAAQIECBAgILjbAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0CAguDcgGkGAAAECBAgQIECAAAECBAgQIECAAAECBAR3O0CAAAECBAgQIECAAAECBAgQIECAAAECBBoEBPcGRCMIECBAgAABAgQIECBAgAABAgQIECBAgIDgbgcIECBAgAABAgQIECBAgAABAgQIECBAgECDgODegGgEAQIECBAgQIAAAQIECBAgQIAAAQIECBAQ3O0AAQIECBAgQIAAAQIECBAgQIAAAQIECBBoEBDcGxCNIECAAAECBAgQIECAAAECBAgQIECAAAECgrsdIECAAAECBAgQIECAAAECBAgQIECAAAECDQKCewOiEQQIECBAgAABAgQIECBAgAABAgQIECBAQHC3AwQIECBAgAABAgQIECBAgAABAgQIECBAoEFAcG9ANIIAAQIECBAgQIAAAQIECBAgQIAAAQIECAjudoAAAQIECBAgQIAAAQIECBAgQIAAAQIECDQICO4NiEYQIECAAAECBAgQIECAAAECBAgQIECAAAHB3Q4QIECAAAECBAgQIECAAAECBAgQIECAAIEGAcG9AdEIAgQIECBAgAABAgQIECBAgAABAgQIECAguNsBAgQIECBAgAABAgQIECBAgAABAgQIECDQICC4NyAaQYAAAQIECBAgQIAAAQIECBAgQIAAAQIEBHc7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGgQE9wZEIwgQIECAAAECBAgQIECAAAECBAgQIECAgOBuBwgQIECAAAECBAgQIECAAAECBAgQIECAQIOA4N6AaAQBAgQIECBAgAABAgQIECBAgAABAgQIEBDc7QABAgQIECBAgAABAgQIECBAgAABAgQIEGgQENwbEI0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQKCux0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQINAoJ7A6IRBAgQIECAAAECBAgQIECAAAECBAgQIEBAcLcDBAgQIECAAAECBAgQIECAAAECBAgQIECgQUBwb0A0ggABAgQIECBAgAABAgQIECBAgAABAgQICO52gAABAgQIECBAgAABAgQIECBAgAABAgQINAgI7g2IRhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcHdDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQYBwb0B0QgCBAgQIECAAAECBAgQIECAAAECBAgQICC42wECBAgQIECAAAECBAgQIECAAAECBAgQINAgILg3IBpBgAABAgQIECBAgAABAgQIECBAgAABAgQEdztAgAABAgQIECBAgAABAgQIECBAgAABAgQaBAT3BkQjCBAgQIAAAQIECBAgQIAAAQIECBAgQICA4G4HCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAg4Dg3oBoBAECBAgQIECAAAECBAgQIECAAAECBAgQENztAAECBAgQIECAAAECBAgQIECAAAECBAgQaBAQ3BsQjSBAgAABAgQIECBAgAABAgQIECBAgAABAoK7HSBAgAABAgQIECBAgAABAgQIECBAgAABAg0CgnsDohEECBAgQIAAAQIECBAgQIAAAQIECBAgQEBwtwMECBAgQIAAAQIECBAgQIAAAQIECBAgQKBBQHBvQDSCAAECBAgQIECAAAECBAgQIECAAAECBAgI7naAAAECBAgQIECAAAECBAgQIECAAAECBAg0CAjuDYhGECBAgAABAgQIECBAgAABAgQIECBAgAABwd0OECBAgAABAgQIECBAgAABAgQIECBAgACBBgHBvQHRCAIECBAgQIAAAQIECBAgQIAAAQIECBAgILjbAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0CAguDcgGkGAAAECBAgQIECAAAECBAgQIECAAAECBAR3O0CAAAECBAgQIECAAAECBAgQIECAAAECBBoEBPcGRCMIECBAgAABAgQIECBAgAABAgQIECBAgIDgbgcIECBAgAABAgQIECBAgAABAgQIECBAgECDgODegGgEAQIECBAgQIAAAQIECBAgQIAAAQIECBAQ3O0AAQIECBAgQIAAAQIECBAgQIAAAQIECBBoEBDcGxCNIECAAAECBAgQIECAAAECBAgQIECAAAECgrsdIECAAAECBAgQIECAAAECBAgQIECAAAECDQKCewOiEQQIECBAgAABAgQIECBAgAABAgQIECBAQHC3AwQIECBAgAABAgQIECBAgAABAgQIECBAoEFAcG9ANIIAAQIECBAgQIAAAQIECBAgQIAAAQIECAjudoAAAQIECBAgQIAAAQIECBAgQIAAAQIECDQICO4NiEYQIECAAAECBAgQIECAAAECBAgQIECAAAHB3Q4QIECAAAECBAgQIECAAAECBAgQIECAAIEGAcG9AdEIAgQIECBAgAABAgQIECBAgAABAgQIECAguNsBAgQIECBAgAABAgQIECBAgAABAgQIECDQICC4NyAaQYAAAQIECBAgQIAAAQIECBAgQIAAAQIEBHc7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGgQE9wZEIwgQIECAAAECBAgQIECAAAECBAgQIECAgOBuBwgQIECAAAECBAgQIECAAAECBAgQIECAQIOA4N6AaAQBAgQIECBAgAABAgQIECBAgAABAgQIEBDc7QABAgQIECBAgAABAgQIECBAgAABAgQIEGgQENwbEI0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQKCux0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQINAoJ7A6IRBAgQIECAAAECBAgQIECAAAECBAgQIEBAcLcDBAgQIECAAAECBAgQIECAAAECBAgQIECgQUBwb0A0ggABAgQIECBAgAABAgQIECBAgAABAgQICO52gAABAgQIECBAgAABAgQIECBAgAABAgQINAgI7g2IRhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcHdDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQYBwb0B0QgCBAgQIECAAAECBAgQIECAAAECBAgQICC42wECBAgQIECAAAECBAgQIECAAAECBAgQINAgILg3IBpBgAABAgQIECBAgAABAgQIECBAgAABAgQEdztAgAABAgQIECBAgAABAgQIECBAgAABAgQaBAT3BkQjCBAgQIAAAQIECBAgQIAAAQIECBAgQICA4G4HCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAg4Dg3oBoBAECBAgQIECAAAECBAgQIECAAAECBAgQENztAAECBAgQIECAAAECBAgQIECAAAECBAgQaBAQ3BsQjSBAgAABAgQIECBAgAABAgQIECBAgAABAoK7HSBAgAABAgQIECBAgAABAgQIECBAgAABAg0CgnsDohEECBAgQIAAAQIECBAgQIAAAQIECBAgQEBwtwMECBAgQIAAAQIECBAgQIAAAQIECBAgQKBBQHBvQDSCAAECBAgQIECAAAECBAgQIECAAAECBAgI7naAAAECBAgQIECAAAECBAgQIECAAAECBAg0CAjuDYhGECBAgAABAgQIECBAgAABAgQIECBAgAABwd0OECBAgAABAgQIECBAgAABAgQIECBAgACBBgHBvQHRCAIECBAgQIAAAQIECBAgQIAAAQIECBAgILjbAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0CAguDcgGkGAAAECBAgQIECAAAECBAgQIECAAAECBAR3O0CAAAECBAgQIECAAAECBAgQIECAAAECBBoEBPcGRCMIECBAgAABAgQIECBAgAABAgQIECBAgIDgbgcIECBAgAABAgQIECBAgAABAgQIECBAgECDgODegGgEAQIECBAgQIAAAQIECBAgQIAAAQIECBAQ3O0AAQIECBAgQIAAAbRq6NUAACAASURBVAIECBAgQIAAAQIECBBoEBDcGxCNIECAAAECBAgQIECAAAECBAgQIECAAAECgrsdIECAAAECBAgQIECAAAECBAgQIECAAAECDQKCewOiEQQIECBAgAABAgQIECBAgAABAgQIECBAQHC3AwQIECBAgAABAgQIECBAgAABAgQIECBAoEFAcG9ANIIAAQIECBAgQIAAAQIECBAgQIAAAQIECAjudoAAAQIECBAgQIAAAQIECBAgQIAAAQIECDQICO4NiEYQIECAAAECBAgQIECAAAECBAgQIECAAAHB3Q4QIECAAAECBAgQIECAAAECBAgQIECAAIEGAcG9AdEIAgQIECBAgAABAgQIECBAgAABAgQIECAguNsBAgQIECBAgAABAgQIECBAgAABAgQIECDQICC4NyAaQYAAAQIECBAgQIAAAQIECBAgQIAAAQIEBHc7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGgQE9wZEIwgQIECAAAECBAgQIECAAAECBAgQIECAgOBuBwgQIECAAAECBAgQIECAAAECBAgQIECAQIOA4N6AaAQBAgQIECBAgAABAgQIECBAgAABAgQIEBDc7QABAgQIECBAgAABAgQIECBAgAABAgQIEGgQENwbEI0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQKCux0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQINAoJ7A6IRBAgQIECAAAECBAgQIECAAAECBAgQIEBAcLcDBAgQIECAAAECBAgQIECAAAECBAgQIECgQUBwb0A0ggABAgQIECBAgAABAgQIECBAgAABAgQICO52gAABAgQIECBAgAABAgQIECBAgAABAgQINAgI7g2IRhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcHdDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQYBwb0B0QgCBAgQIECAAAECBAgQIECAAAECBAgQICC42wECBAgQIECAAAECBAgQIECAAAECBAgQINAgILg3IBpBgAABAgQIECBAgAABAgQIECBAgAABAgQEdztAgAABAgQIECBAgAABAgQIECBAgAABAgQaBAT3BkQjCBAgQIAAAQIECBAgQIAAAQIECBAgQICA4G4HCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAg4Dg3oBoBAECBAgQIECAAAECBAgQIECAAAECBAgQENztAAECBAgQIECAAAECBAgQIECAAAECBAgQaBAQ3BsQjSBAgAABAgQIECBAgAABAgQIECBAgAABAoK7HSBAgAABAgQIECBAgAABAgQIECBAgAABAg0CgnsDohEECBAgQIAAAQIECBAgQIAAAQIECBAgQEBwtwMECBAgQIAAAQIECBAgQIAAAQIECBAgQKBBQHBvQDSCAAECBAgQIECAAAECBAgQIECAAAECBAgI7naAAAECBAgQIECAAAECBAgQIECAAAECBAg0CAjuDYhGECBAgAABAgQIECBAgAABAgQIECBAgAABwd0OECBAgAABAgQIECBAgAABAgQIECBAgACBBgHBvQHRCAIECBAgQIAAAQIECBAgQIAAAQIECBAgILjbAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0CAguDcgGkGAAAECBAgQIECAAAECBAgQIECAAAECBAR3O0CAAAECBAgQIECAAAECBAgQIECAAAECBBoEBPcGRCMIECBAgAABAgQIECBAgAABAgQIECBAgIDgbgcIECBAgAABAgQIECBAgAABAgQIECBAgECDgODegGgEAQIECBAgQIAAAQIECBAgQIAAAQIECBAQ3O0AAQIECBAgQIAAAQIECBAgQIAAAQIECBBoEBDcGxCNIECAAAECBAgQIECAAAECBAgQIECAAAECgrsdIECAAAECBAgQIECAAAECBAgQIECAAAECDQKCewOiEQQIECBAgAABAgQIECBAgAABAgQIECBAQHC3AwQIECBAgAABAgQIECBAgAABAgQIECBAoEFAcG9ANIIAAQIECBAgQIAAAQIECBAgQIAAAQIECAjudoAAAQIECBAgQIAAAQIECBAgQIAAAQIECDQICO4NiEYQIECAAAECBAgQIECAAAECBAgQIECAAAHB3Q4QIECAAAECBAgQIECAAAECBAgQIECAAIEGAcG9AdEIAgQIECBAgAABAgQIECBAgAABAgQIECAguNsBAgQIECBAgAABAgQIECBAgAABAgQIECDQICC4NyAaQYAAAQIECBAgQIAAAQIECBAgQIAAAQIEBHc7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGgQE9wZEIwgQIECAAAECBAgQIECAAAECBAgQIECAgOBuBwgQIECAAAECBAgQIECAAAECBAgQIECAQIOA4N6AaAQBAgQIECBAgAABAgQIECBAgAABAgQIEBDc7QABAgQIECBAgAABAgQIECBAgAABAgQIEGgQENwbEI0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQKCux0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQINAoJ7A6IRBAgQIECAAAECBAgQIECAAAECBAgQIEBAcLcDBAgQIECAAAECBAgQIECAAAECBAgQIECgQUBwb0A0ggABAgQIECBAgAABAgQIECBAgAABAgQICO52gAABAgQIECBAgAABAgQIECBAgAABAgQINAgI7g2IRhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcHdDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQYBwb0B0QgCBAgQIECAAAECBAgQIECAAAECBAgQICC42wECBAgQIECAAAECBAgQIECAAAECBAgQINAgILg3IBpBgAABAgQIECBAgAABAgQIECBAgAABAgQEdztAgAABAgQIECBAgAABAgQIECBAgAABAgQaBAT3BkQjCBAgQIAAAQIECBAgQIAAAQIECBAgQICA4G4HCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAg4Dg3oBoBAECBAgQIECAAAECBAgQIECAAAECBAgQENztAAECBAgQIECAAAECBAgQIECAAAECBAgQaBAQ3BsQjSBAgAABAgQIECBAgAABAgQIECBAgAABAoK7HSBAgAABAgQIECBAgAABAgQIECBAgAABAg0CgnsDohEECBAgQIAAAQIECBAgQIAAAQIECBAgQEBwtwMECBAgQIAAAQIECBAgQIAAAQIECBAgQKBBQHBvQDSCAAECBAgQIECAAAECBAgQIECAAAECBAgI7naAAAECBAgQIECAAAECBAgQIECAAAECBAg0CAjuDYhGECBAgAABAgQIECBAgAABAgQIECBAgAABwd0OECBAgAABAgQIECBAgAABAgQIECBAgACBBgHBvQHRCAIECBAgQIAAAQIECBAgQIAAAQIECBAgILjbAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0CAguDcgGkGAAAECBAgQIECAAAECBAgQIECAAAECBAR3O0CAAAECBAgQIECAAAECBAgQIECAAAECBBoEBPcGRCMIECBAgAABAgQIECBAgAABAgQIECBAgIDgbgcIECBAgAABAgQIECBAgAABAgQIECBAgECDgODegGgEAQIECBAgQIAAAQIECBAgQIAAAQIECBAQ3O0AAQIECBAgQIAAAQIECBAgQIAAAQIECBBoEBDcGxCNIECAAAECBAgQIECAAAECBAgQIECAAAECgrsdIECAAAECBAgQIECAAAECBAgQIECAAAECDQKCewOiEQQIECBAgAABAgQIECBAgAABAgQIECBAQHC3AwQIECBAgAABAgQIECBAgAABAgQIECBAoEFAcG9ANIIAAQIECBAgQIAAAQIECBAgQIAAAQIECAjudoAAAQIECBAgQIAAAQIECBAgQIAAAQIECDQICO4NiEYQIECAAAECBAgQIECAAAECBAgQIECAAAHB3Q4QIECAAAECBAgQIECAAAECBAgQIECAAIEGAcG9AdEIAgQIECBAgAABAgQIECBAgAABAgQIECAguNsBAgQIECBAgAABAgQIECBAgAABAgQIECDQICC4NyAaQYAAAQIECBAgQIAAAQIECBAgQIAAAQIEBHc7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGgQE9wZEIwgQIECAAAECBAgQIECAAAECBAgQIECAgOBuBwgQIECAAAECBAgQIECAAAECBAgQIECAQIOA4N6AaAQBAgQIECBAgAABAgQIECBAgAABAgQIEBDc7QABAgQIECBAgAABAgQIECBAgAABAgQIEGgQENwbEI0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQKCux0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQINAoJ7A6IRBAgQIECAAAECBAgQIECAAAECBAgQIEBAcLcDBAgQIECAAAECBAgQIECAAAECBAgQIECgQUBwb0A0ggABAgQIECBAgAABAgQIECBAgAABAgQICO52gAABAgQIECBAgAABAgQIECBAgAABAgQINAgI7g2IRhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcHdDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQYBwb0B0QgCBAgQIECAAAECBAgQIECAAAECBAgQICC42wECBAgQIECAAAECBAgQIECAAAECBAgQINAgILg3IBpBgAABAgQIECBAgAABAgQIECBAgAABAgQEdztAgAABAgQIECBAgAABAgQIECBAgAABAgQaBAT3BkQjCBAgQIAAAQIECBAgQIAAAQIECBAgQICA4G4HCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAg4Dg3oBoBAECBAgQIECAAAECBAgQIECAAAECBAgQENztAAECBAgQIECAAAECBAgQIECAAAECBAgQaBAQ3BsQjSBAgAABAgQIECBAgAABAgQIECBAgAABAoK7HSBAgAABAgQIECBAgAABAgQIECBAgAABAg0CgnsDohEECBAgQIAAAQIECBAgQIAAAQIECBAgQEBwtwMECBAgQIAAAQIECBAgQIAAAQIECBAgQKBBQHBvQDSCAAECBAgQIECAAAECBAgQIECAAAECBAgI7naAAAECBAgQIECAAAECBAgQIECAAAECBAg0CAjuDYhGECBAgAABAgQIECBAgAABAgQIECBAgAABwd0OECBAgAABAgQIECBAgAABAgQIECBAgACBBgHBvQHRCAIECBAgQIAAAQIECBAgQIAAAQIECBAgILjbAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0CAguDcgGkGAAAECBAgQIECAAAECBAgQIECAAAECBAR3O0CAAAECBAgQIECAAAECBAgQIECAAAECBBoEBPcGRCMIECBAgAABAgQIECBAgAABAgQIECBAgIDgbgcIECBAgAABAgQIECBAgAABAgQIECBAgECDgODegGgEAQIECBAgQIAAAQIECBAgQIAAAQIECBAQ3O0AAQIECBAgQIAAAQIECBAgQIAAAQIECBBoEBDcGxCNIECAAAECBAgQIECAAAECBAgQIECAAAECgrsdIECAAAECBAgQIECAAAECBAgQIECAAAECDQKCewOiEQQIECBAgAABAgQIECBAgAABAgQIECBAQHC3AwQIECBAgAABAgQIECBAgAABAgQIECBAoEFAcG9ANIIAAQIECBAgQIAAAQIECBAgQIAAAQIECAjudoAAAQIECBAgQIAAAQIECBAgQIAAAQIECDQICO4NiEYQIECAAAECBAgQIECAAAECBAgQIECAAAHB3Q4QIECAAAECBAgQIECAAAECBAgQIECAAIEGAcG9AdEIAgQIECBAgAABAgQIECBAgAABAgQIECAguNsBAgQIECBAgAABAgQIECBAgAABAgQIECDQICC4NyAaQYAAAQIECBAgQIAAAQIECBAgQIAAAQIEBHc7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGgQE9wZEIwgQIECAAAECBAgQIECAAAECBAgQIECAgOBuBwgQIECAAAECBAgQIECAAAECBAgQIECAQIOA4N6AaAQBAgQIECBAgAABAgQIECBAgAABAgQIEBDc7QABAgQIECBAgAABAgQIECBAgAABAgQIEGgQENwbEI0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQKCux0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQINAoJ7A6IRBAgQIECAAAECBAgQIECAAAECBAgQIEBAcLcDBAgQIECAAAECBAgQIECAAAECBAgQIECgQUBwb0A0ggABAgQIECBAgAABAgQIECBAgAABAgQICO52gAABAgQIECBAgAABAgQIECBAgAABAgQINAgI7g2IRhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcHdDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQYBwb0B0QgCBAgQIECAAAECBAgQIECAAAECBAgQICC42wECBAgQIECAAAECBAgQIECAAAECBAgQINAgILg3IBpBgAABAgQIECBAgAABAgQIECBAgAABAgQEdztAgAABAgQIECBAgAABAgQIECBAgAABAgQaBAT3BkQjCBAgQIAAAQIECBAgQIAAAQIECBAgQICA4G4HCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAg4Dg3oBoBAECBAgQIECAAAECBAgQIECAAAECBAgQENztAAECBAgQIECAAAECBAgQIECAAAECBAgQaBAQ3BsQjSBAgAABAgQIECBAgAABAgQIECBAgAABAoK7HSBAgAABAgQIECBAgAABAgQIECBAgAABAg0CgnsDohEECBAgQIAAAQIECBAgQIAAAQIECBAgQEBwtwMECBAgQIAAAQIECBAgQIAAAQIECBAgQKBBQHBvQDSCAAECBAgQIECAAAECBAgQIECAAAECBAgI7naAAAECBAgQIECAAAECBAgQIECAAAECBAg0CAjuDYhGECBAgAABAgQIECBAgAABAgQIECBAgAABwd0OECBAgAABAgQIECBAgAABAgQIECBAgACBBgHBvQHRCAIECBAgQIAAAQIECBAgQIAAAQIECBAgILjbAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0CAguDcgGkGAAAECBAgQIECAAAECBAgQIECAAAECBAR3O0CAAAECBAgQIECAAAECBAgQIECAAAECBBoEBPcGRCMIECBAgAABAgQIECBAgAABAgQIECBAgIDgbgcIECBAgAABAgQIECBAgAABAgQIECBAgECDgODegGgEAQIECBAgQIAAAQIECBAgQIAAAQIECBAQ3O0AAQIECBAgQIAAAQIECBAgQIAAAQIECBBoEBDcGxCNIECAAAECBAgQIECAAAECBAgQIECAAAECgrsdIECAAAECBAgQIECAAAECBAgQIECAAAECDQKCewOiEQQIECBAgAABAgQIECBAgAABAgQIECBAQHC3AwQIECBAgAABAgQIECBAgAABAgQIECBAoEFAcG9ANIIAAQIECBAgQIAAAQIECBAgQIAAAQIECAjudoAAAQIECBAgQIAAAQIECBAgQIAAAQIECDQICO4NiEYQIECAAAECBAgQIECAAAECBAgQIECAAAHB3Q4QIECAAAECBAgQIECAAAECBAgQIECAAIEGAcG9AdEIAgQIECBAgAABAgQIECBAgAABAgQIECCQf/H80zd/9NF8qbKWInJvRe2NihvRECBAgAABAgQIECBAgAABAgQIECBAgAABAr9FIOPNjNwXUfuycvmKK2bLeb5fffTf//XWqtybUUs11t6PQ/z1YAkQIECAAAECBAgQIECAAAECBAgQIECAwEYTyMi3F2F9yH0VuZxZ+576k2+c+N8O5w3u58P61vL3v3zm7LhUkXtj8TZ87a2KL240WPdLgAABAgQIECBAgAABAgQIECBAgAABAutXIDN+GtOb65XLGbVvy+Zh+btLX//Rp7njTx3czzfssWefvX2eZ5dWjqFZHEnz1Yi67tN8sN8hQIAAAQIECBAgQIAAAQIECBAgQIAAAQKXVyDfiajnI6e4nvtmtXn5yYceeu33vaYLCu7n+9BH/uP7dww1LtX8l2/Cf7Uqrv19L9DfESBAgAABAgQIECBAgAABAgQIECBAgACBCxXIjHcj8vnFm+uz2jfmsPz0H3/91Qud+6t/3x7c//fFVVX+2fPP7hzPnN1bGUsVMZ0NP0X4L3TeiFkECBAgQIAAAQIECBAgQIAAAQIECBAgQGASyIyfVeTzGbEvK5aHLZv3/ctXHzqamXUxhS56cD/fxU8R/uv//vSdsRLfl2KsvRUxHUfz+Yt5s2YTIECAAAECBAgQIECAAAECBAgQIECAwHoTyJ9nxPPx8ReaRsS+7//JI69c7Lh+PsXLEtx/W4T/5vK/7ZrXfKnGj9+Er3qgIj633h6/+yFAgAABAgQIECBAgAABAgQIECBAgACBzy6QEb+ozP2LN9eHWJ7lbPl7S3965HLE9VUd3M93cd+uGr73g6fuGnNYihj3ZsVSZN1fFVd/9kfhLwgQIECAAAECBAgQIECAAAECBAgQIEBgrQhkxvtReaAyliOGfUONy9/82qMvfztzXK33sGrecP+0QI9XzX7yH/929/Qm/FjxQEY8EFFfcSb8pxX0ewQIECBAgAABAgQIECBAgAABAgQIEFhdAtOZ6xH5w4rYP2Tsn95c/9If/+lLT2TOV9eV/u6rWXPB/bfdzqPP/euOjLp/ivBVeX9m3F9Vt66lh+FaCRAgQIAAAQIECBAgQIAAAQIECBAgsN4FMvNEVRzIrANTXK/IA089+I1j6+G+101wP9/D+KtDz1z3wfvnHsix7q9YHEVzf0bcXRGb1sPDcw8ECBAgQIAAAQIECBAgQIAAAQIECBBYrQIZca4iXsqMAxl5oIY8cNXVm/b/w70Pv7Nar/lCr2tdB/fz4Tx27NjWeOv1++YxTm/A35+1OJLmj3w564Wukr8nQIAAAQIECBAgQIAAAQIECBAgQGCjCkxfZhqR/1kZ+zPzwCyGA3HDLS88uWPH6Y1ksuGC+/keblXlN5576g/HXAnwFTm9CT8F+W0baRncKwECBAgQIECAAAECBAgQIECAAAECBD5JIDNPVUxvrdf0hab7h8oD//rgo/+VmfVJf7ve/3fB/Xc84b/84b/d8OHp+QM11v2ZK0fSROauqBrW+2K4PwIECBAgQIAAAQIECBAgQIAAAQIENrhA5hhVR6YjYaryQA554Mqts/3/+JU/fWuDy/zW2xfcP+Nm/M3y8lU/P3f6j+b5/4+kqYg9EXXlZxzl1wkQIECAAAECBAgQIECAAAECBAgQILBKBPLDjDj4yyNhajjw+U1b//PvlpY+WCUXuCYuQ3BveEyPV83e/MFTu8ZhuD9rvnIkTcX0Ra3XN4w3ggABAgQIECBAgAABAgQIECBAgAABAm0CGfl2Lb7IdDoSZrZ/GMcDN37t0SNPZM7bPmSDDhLcL+KD/4vnn7759Nnxl0fSxBThM3dGFfeL6G40AQIECBAgQIAAAQIECBAgQIAAAQIRkVlZdTR+5UiYrZuH/f/01Ud+zOfiCAi/F8f1t079Py89/fn33q2vzBdnwteejNhTEfdG1TWX+FJ8HAECBAgQIECAAAECBAgQIECAAAEC60Ug872MOFQRBzPz4KzywDXX5g//792P/Hy93OJauA/BfZU8pceeffb2c8O5+7JqT8S4pyr2ROZdUbV5lVyiyyBAgAABAgQIECBAgAABAgQIECBA4HILZJ6Nqpcz42DEcLAyD24aN73w5EMPvXa5L83nRwjuq3gL/nZ5efNL8f7dMY89Y8WerLpv8QWtmV92LM0qfnAujQABAgQIECBAgAABAgQIECBAgMCFCmRWVP1o5YtM84VhCuyzOHh3XP3Sd5aWzl7oeH9/cQQE94vjelGnTsfSvPvefE/UxyF+Opam4r6Iuu6ifrDhBAgQIECAAAECBAgQIECAAAECBAhcBIF8JzNemI6DWYT1jIPXXjM76DiYi0B9kUcK7hcZ+FKO//hLWqc34feMMb0RH3si6p6K2Hopr8NnESBAgAABAgQIECBAgAABAgQIECDwmwIZcToiX6yMg8PKm+sHt24eDvoS0/WzLYL7+nmW572Tx6tmb+979s5z8zN7sob7Vr6otfZU5h1RNazz23d7BAgQIECAAAECBAgQIECAAAECBC69QOaYVa9W5OILTCvHFzbNthy8fu9DrzyROb/0F+QTL5WA4H6ppFfZ5/zN8vJV742/uLfG3LM4F75iT2XdFxU3rrJLdTkECBAgQIAAAQIECBAgQIAAAQIEVq9AxptZ+cJ0DMx03noOdfCa4XOH/m5p6YPVe9Gu7GIJCO4XS3aNzv36809dn2fr186Hj6x7q+LqNXpLLpsAAQIECBAgQIAAAQIECBAgQIDABQtkxvtReehXz1mvzXnw+1999O0LHm7AuhEQ3NfNo7x4N1JV+ef7nrnj7Ln5fdP58JXTF7TGPVG1y/nwF8/dZAIECBAgQIAAAQIECBAgQIAAgUsvsDhnPfNIRLyYFS9M56xv3jR74Z/3PvxqZtalvyKfuJYEBPe19LRW2bV+u2r43nNP7YyKeyJj9zhF+KjdWXF3RXxulV2uyyFAgAABAgQIECBAgAABAgQIECDwS4GM+EVlvBSRh4eIF6PicGS8+M0HHz367cwRFYHfR0Bw/33U/M0nCnxr+ftfPj3G7qy6J8Zxd0TeUytB/rpP/GO/QIAAAQIECBAgQIAAAQIECBAgQKBNIN/JKahHvRjDcLgyX9w6xOHvLn39R20fYRCBjwUEd6twSQX+/Ac/uPFcnN49X8T33B0RuzPqnqq46ZJeiA8jWnDa6AAAFRZJREFUQIAAAQIECBAgQIAAAQIECBBYVwKZ8UZFvhgRhyPq8CzixU2x9fA/f+1rb66rG3Uzq1pAcF/Vj2fjXNxj+/dfO559b3fVIsIv3oqvKchn3BpV9nTjrII7JUCAAAECBAgQIECAAAECBAj8doHpDPWKExl1eHpbfXHOetbhYfM1h5984IF30RG43AJC5uV+Aj7/dwr85Q9/ePWZ0z+/59x0NE2Mu3PxZnzsjqo7KmKGjwABAgQIECBAgAABAgQIECBAYP0JZMQ8Ml+d3lavxXEww+FNmS9u2fr5F//xK195f/3dsTtaLwKC+3p5khvsPv76lVeueP9nP94VZ2PxRvyYtXvly1tzV1Rt2WAcbpcAAQIECBAgQIAAAQIECBAgsDYFMs9E1ZHpy0qHysUb67E5Dl/9hZuP/P2dd360Nm/KVW9kAcF9Iz/9dXjvj1fNTv370zszavf0Rvwiwlfuroy7o+qqdXjLbokAAQIECBAgQIAAAQIECBAgsPoFMj/Iipci6/AU16c31ivy8LY/eeToE5nz1X8DrpDApxMQ3D+dk99a4wJVlX/2gx/cNh/O3hURu6pq8TOqdkXmdE78sMZv0eUTIECAAAECBAgQIECAAAECBC6vQOYYVSci80hEHMnMl6efs3Hzy//yta8dz+n8df8QWOcCgvs6f8Bu75MFHjt2bOv40x/dWedy1yLCx7grIu+KqF1V8cVPnuA3CBAgQIAAAQIECBAgQIAAAQIbRyAzfhoxRfV6OWJYieub6sjwxS+/8uSOHac3joQ7JfCbAoK7rSDwOwT+6tAz133083HXmPO7asxdkYsYP4X4OyPqSngECBAgQIAAAQIECBAgQIAAgfUpkB9mxisRdSRqOJJDHRlq9vIVnx+O/MO9D7+zPu/ZXRG4cAHB/cINTdiAAtMRNX+x7+lbT1fsivl81xB5V1XtqsxdWXVbRcw2IItbJkCAAAECBAgQIECAAAECBNaQQEbMK/N4Vk3HvxwZpzfWZ7MjWzOO/NPeR044AmYNPUyXumoEBPdV8yhcyHoRePzQoS1v/Pynfxi5cjzNypvxdVfUdGRN3bBe7tN9ECBAgAABAgQIECBAgAABAmtFIN+KnN5Uz5enN9UXx8BUHLnp81/8ryfuvffMWrkL10lgLQgI7mvhKbnGdSPwreXlL5wdf7FrHIe7Pj4rfldMb8nn4rz4q9fNjboRAgQIECBAgAABAgQIECBA4JIKZMb7UXkkMqaz1RdRfRjGlzcPnzvy3aWln13Si/FhBDawgOC+gR++W19dAt888Mwt89NnFsfS1Fh3RX78Ja5VOypi0+q6WldDgAABAgQIECBAgAABAgQIXGqBjDgXmcemLymN6RiYIV+ejoOZbd1y5Hv3P/z6pb4en0eAwG8KCO62gsAqF/jb5eXNh+cf7piN853jMOyMqp1VsTMzpp87fHnrKn+ALo8AAQIECBAgQIAAAQIECHwmgcWXlR6riqOZcTQyjw7jeHQ+zI7unl157DtLS2c/0zi/TIDAJRUQ3C8ptw8j0CswfXnrn//w2ZvPnTm7cxyHnUOOO6tqZ1TurIidEXVd7yeaRoAAAQIECBAgQIAAAQIECFy4QL6TMcX0OpqZR8cajg7DeHTTls1H//krD/3Yl5VeuLAJBC6XgOB+ueR9LoFLIDCdGf9RfLCz5uPOYYrw09vxmTujYmdkbI+q4RJcho8gQIAAAQIECBAgQIAAAQIbSyBzjIqTkXE06+OoPsX12XD0irjqqDPVN9Y6uNuNJSC4b6zn7W4J/FLg8UOHtvzkg//eMZ/PFxF+ivE5vR2/CPKLc+O34iJAgAABAgQIECBAgAABAgTOL5ARpxfnqVcdrczFm+pTXJ/NZke/dNUfHHvi3nvPsCNAYOMJCO4b75m7YwKfKDAdVfNnzz13y3w4s7PGvMNRNZ9I5hcIECBAgAABAgQIECBAYF0K/ObRLznUq7Nxy9F/efDB1x39si4fupsicEECgvsF8fljAhtT4LH9+68999Evdg7DOAX5lXPjs3ZmLM6Ov8VRNRtzL9w1AQIECBAgQIAAAQIE1pxA5pgRr1fU0aiP31If6ug4Dkc3XfG5o08+8MC7a+6eXDABApdVQHC/rPw+nMD6E/jrV1654sOfvb1jPj+3s8ZxOqLmjqi4IzNuq4jbo+qa9XfX7ogAAQIECBAgQIAAAQIEVq1A5nsZ8VpVHI+MV6Pq1RyGo7PZpqNXfuH6Y39/550frdprd2EECKw5AcF9zT0yF0xgbQtMX+R6bvxox3yc35ZRt08Rvipuy+lnxG0Rdd3avkNXT4AAAQIECBAgQIAAAQKXVmBx7MvxingtM44v4nrka7NhdnzTcMUxX1B6aZ+GTyOw0QUE942+Ae6fwCoTeOzQoc/FB+/efm4cbx9qXHkrPur2qLwtFlG+rl9ll+xyCBAgQIAAAQIECBAgQOAiCmTk2xHxWmQdj8jXpqA+5nB80zC8Fldd+9qT9977i4v48UYTIEDgMwkI7p+Jyy8TIHC5BR4/8cyVb548e/s4G27Lmt6Qr9uzahHmM3L6eVNU+f+2y/2gfD4BAgQIECBAgAABAgQ+jUDm9C9wb1TUypvpmcczcvr52jAfj9+4ffNrT9z68IefZpTfIUCAwGoQEKVWw1NwDQQItAlMZ8i//9Mff3k6rmbMYeXYmjFur6yPj63Jm32paxu3QQQIECBAgAABAgQIEPjdAosvJa0fL457qTyew8pxL0ONx6efV3/x5h85Q90SESCwngQE9/X0NN0LAQKfKPC3y8ubD9eHt87m89vmMbt9CvJRtTiuJrJui4rtFbHpEwf5BQIECBAgQIAAAQIECBCIjDgXGSej8vjKsS+5COmzmL82n82O784rT3xnaeksKgIECGwUAcF9ozxp90mAwKcSeLxq9t/7nr7lzDjePo7DbZnzW2PMWyNqe2Vsz4jtVfGlTzXMLxEgQIAAAQIECBAgQGCNC2TGTyriZFacjMiTMdSJqtmJYRiPbxmG1/5g7yOvP5E5X+O36fIJECDQJiC4t1EaRIDARhF47NixrfHOqe1xZr59nrU9Im7NKchHbJ/ekJ/+e2V8yVnyG2Uj3CcBAgQIECBAgACBNSgwnZ1e8ZOIODG9oZ4RJ2sK6hEnZpUnY8vsZFy37eSTO3acXoN355IJECBw2QQE98tG74MJEFjPAo8fOrTl1AfvbB9qXAT4cb7ydnzkFOZX3piPyBtE+fW8Be6NAAECBAgQIECAwGUSyKyIemt6Iz2jTkTlyekt9WE2vaUeJ8YcTm676rqTT9x775nLdIU+lgABAutWQHBft4/WjREgsNoFpvPkj5w9e0sNH906j9n26S35rNo+1vTG/BTnF+fJ3+hLXlf7k3R9BAgQIECAAAECBC6hwOJLSOPNqOmN9Dg5ZJyonIJ6npzF/GSOV5zYtXnz685Nv4TPxEcRIEDgVwQEd+tAgACBVSzwWNWmYf8zt5ydz7fnuVpE+HFxhM3i6JrtVTW9OX9TRcxW8W24NAIECBAgQIAAAQIEPoVARswr4o3MxdEuK0F9OvJliuub8uTm2ezk+MDDrz+Zee5TjPMrBAgQIHAZBAT3y4DuIwkQINApMEX58T+e2ja9HT+fQvwYt+Yw3BI1bquIbbH4T26Lqms6P9csAgQIECBAgAABAgQ+g0DmexF1KiJOZcSpyOFUjePrMcSJ2RTXM08Of/zoKTH9M5j6VQIECKxCAcF9FT4Ul0SAAIGLIfD4iWeu/OmbdfN4btx2LufbYoxtmXHTL4P8FOYrtvnC14uhbyYBAgQIECBAgMC6FPifLx7NWIT0/wnqVfFGDHFqU81ODZuGU1+8MX/8xK0Pf7guDdwUAQIECPyagOBuIQgQIEDg1wSmN+bjueduquH0tprnthhiEefHXAnykbX4mRE3VsQmfAQIECBAgAABAgTWm0BGnKvpnPQppFeemn4OFaemiB5jnMpZncpx66l48ME3vJG+3p6++yFAgMCFCQjuF+bnrwkQILBhBaoqH93//S/FmSnCr0T5xc8aP/6Z09vyK5E+6soNC+XGCRAgQIAAAQIEVpFAfjjF85ziedapWPwcVn5OMX36uSVOPfXA13+SmbWKLtylECBAgMAaERDc18iDcpkECBBYywLfWl7+wrk4s63OndlWOZ0nH9vGiG1ZcdMi0i/Oma9tVXHtWr5P106AAAECBAgQIHB5BDLj3YhcOdal4lRlvDEszkmf4nqdyk1bTm2KLae+u7T0s8tzhT6VAAECBDaKgOC+UZ60+yRAgMAaEFicM/923TA/d/aGsYYbYozrYxhvqMobIuL6rLqhMq/PiBui6vqK2LoGbsslEiBAgAABAgQIfEaBjDgdmW9XxFtZ9XZlvhURb2fWWzEOb8Xw/9q7g942jjsK4O/NLmXSos2aioi2QIEGzaE9tBcnORQukHMPveUr9HP4c/Qr5JZDzwZq9JDEl/bQHFKgQA9tqYgubdKktdx5xX+WUpwgQGMFlkTpCSB2dnZmd+a3BAQ8DnZxlJinVd2b5ns//s+jt99ev+Yl3NwCFrCABSzwRgQcuL8RVp/UAhawgAUuQuB3nz++s1hw0rbNRJmHSpxAOAQ0kTABuzLBiYC3IPUuYly+hgUsYAELWMACFrDANwTIhsCXgqYAp1CE5+jKxBGzpkw6qqredDjU9OOfP3huQwtYwAIWsMAuCjhw38W75jFbwAIWsMC5BB785U/3sMJhLUyy8gQJh2X1vFTCeW1XzgOcEDoQUJ3rQu5kAQtYwAIWsIAFrrkAgVbgMSJAJ48IlBAd5LRbhR4r0NN0E6H6AEePf/Wbp9ecxNOzgAUsYAELFAEH7v4iWMACFrCABb5F4KGUHj15Mm43LyaVONmk9jCVcB6HSppg+5gbRVgPRmB/D5L/r/rbZAELWMACFrDAbgrEC0KFpxGgc/v4FlBT5m4Feqamda6OWmpa1benH9y/P3tI5t2crEdtAQtYwAIWeHMCDgbenK3PbAELWMACN0jgA6nGp5++1eb1uALHbVkhz3FCHkscizoANKY4BjAWcEAotsMbxOSpWsACFrCABSxwAQIEFgJnBI4BzETNEPviMalZRpoRmlXgcRvb1J/hvfe+fERuLmB4voQFLGABC1jgWgs4cL/Wt9eTs4AFLGCBqy7w+88+6/19sxmf4OQggvqsPI6gntRBBPUR0gsYEzjognqNgVJ/56rPzeOzgAUsYAELWOD7CvA5oBnBWQnOgWMCXXhOzRQBOjRLTLMIzvewd/yzup794d13m+97Zfe3gAUsYAELWOB8Ag7cz+fmXhawgAUsYIFLFTgN6hu9HKvmmJtuRb2QxylxrIx4Bn0J7FnqY4W9g/pLvWm+uAUsYAEL3GCBs+D8WNiuNgdmTDjOOQL1bsW5ah5zo1mPt2YOzm/w18VTt4AFLGCBnRZw4L7Tt8+Dt4AFLGABC7yeQAT1/+i9vLd+sTmIoD7Fivp45I14T9SIWSORIwIjSSOCIxAjQSMqtui/3hXd2gIWsIAFLLD7AgTWIuYE5xDmguYk5wLmlOZKnFOck3paHtnCNIvgvH+7Pv5pc+upV5zv/nfAM7CABSxgAQt8VwEH7t9Vyu0sYAELWMACFkAE9n9LL35QqR5tmnaUmEcC7xIa5awRmbbhfAT36AL70/CejMB+BOm2KS1gAQtYwAIXJkC+IDCXupAcUY7APIJzsoToUp6nFAF67OtZVprXvWrecjP/Rb79XwfmF3a3fCELWMACFrDAzgs4cN/5W+gJWMACFrCABXZLIF4wW33yyehlOhkl5JHEu2w1ykwjUiOV4F4R5JeV9pBG4CvBfQT4ftnsbt10j9YCFrDAOQW6l3/iLCiHNMfpynJorlhVHkG5OE/Kc1VllfmzjDS/lffm7fvvz/0i0HPiu5sFLGABC1jAAucScOB+LjZ3soAFLGABC1jgMgU+lKp//fXx3b1Nuptb3EGr4abSkK32mTTMGfuQhiSGUNonNczAkMA+gKGgsqUwBLmvsi190mXOy9e2gAUssLMCZIawJLGAtFRsgQXBZWwFLFNsxQWYlxIWIBcpYanMhSou65YLVFykCs9P6vzsR7988Owjst1ZEw/cAhawgAUsYIEbKeDA/Ubedk/aAhawgAUsYIFvE/jwn38e/PtoM6xe9vZR52EE+W3K+8gYfj3IT/sQhhHkS9hHBPuvBvlgF+w7yPcXzQIWuGoCrwbjJQhXCcRPg3EICxLLLhiPgDwvXw3GkbCoclpGMI5NWrS3muUPD+vFRz/59eqqTdXjsYAFLGABC1jAApch4MD9MtR9TQtYwAIWsIAFbpTAN4P8zSbvp5T3BQ4gDBAvo2V5IW18oq5fPsgDpNPytl2p5yDaC+oTHKjUnZ1jAKl3o4A9WQvssgDZAFhBWANYk1gLWhFcd3Vagd2x0i7KOcqpK3fHIuzeti91K0KrnNOyrtPSwfguf0E8dgtYwAIWsIAFdk3Agfuu3TGP1wIWsIAFLGABC/wfgYdSevLkSf9F2w50q+1jo36OYD+rD6kvtCXIb4V+Age5BPzqM0WIX34E6BNRxoBxrPsxoPthID7CQNQewQj2e4B6Umy7faIE/j2RPT+mx1/XKylAZkoRdDdCCbwbQA0Z225fsS+eRHi9Dbu7YFtYi1gTWClC7lLWShGCk+tErDO0qrbBOFGtoh6pHFuh5povq/Xtqlrdv39//TBWnPvPAhawgAUsYAELWODaCDhwvza30hOxgAUsYAELWMACV09AEn/7xRd7q5OTHk5O6lbPe32kXgv2stjLJ00J5gX2arAnbkr59FOh7YL7CPaFOuqR0RNyL23rSx1y6RPtUgn7VdrFjwCKvrEv1vFjgMiKEkEmAaSQRCRAJKJOiaWIKJNiEuP5/ty2VYrOimf+R+G0TxSlJDIR6I5HHypJTNFwe+4EKoYQ7wz46jgUl03s3iVwWi7bsx8uuqA4l1FJEdRKp3Wli7JUAtxSjlOKygSzuslsj0c3ZkW7OE8pF5TYxrO4t8ejO7OIXC5VyuV8ghDlr/qUSUUdMhFnOBtnW0JtagOx4TbcRkIE2k0u+2iICMDTdosmSw2RmtIujhGb0k5qWlSl7uyjutmc7ktN2us1iWoqqFkjNxXvNNjb2wz29po/vvPOSbmT/rOABSxgAQtYwAIWsMAbEPgf1f1/R+CkmJkAAAAASUVORK5CYII=') no-repeat center center; + background-size: cover; + height: 280rpx; +} + +.barcontain .barcon { + margin: 102rpx 32rpx 0; +} +.barcon .scon { + width: 100%; + height: 80rpx; + background: #FBFBFB; + display: flex; + border-radius: 40rpx; + box-shadow: 0px 4px 10px 0px rgba(153, 153, 153, 0.5); + align-items: center; + margin-top: 55rpx; +} + +.barcontain .text { + font-size: 40rpx; + color: #fff; +} + +.barcon .ss { + width: 30rpx; + height: 30rpx; + margin-right: 25rpx; +} + +.barcontain .ipt { + margin-left: 30rpx; + flex: 1; + font-size: 32rpx; + height: 80rpx; + +} \ No newline at end of file diff --git a/debug/GenerateTestUserSig.js b/debug/GenerateTestUserSig.js new file mode 100644 index 0000000..352024a --- /dev/null +++ b/debug/GenerateTestUserSig.js @@ -0,0 +1,63 @@ +import LibGenerateTestUserSig from './lib-generate-test-usersig-es.min.js'; + +/** + * 腾讯云 SDKAppId,需要替换为您自己账号下的 SDKAppId。 + * + * 进入腾讯云实时音视频[控制台](https://console.cloud.tencent.com/rav ) 创建应用,即可看到 SDKAppId, + * 它是腾讯云用于区分客户的唯一标识。 + */ +// const SDKAPPID = 0; + + +/** + * 签名过期时间,建议不要设置的过短 + *

+ * 时间单位:秒 + * 默认时间:7 x 24 x 60 x 60 = 604800 = 7 天 + */ +// const EXPIRETIME = 604800; + + +/** + * 计算签名用的加密密钥,获取步骤如下: + * + * step1. 进入腾讯云实时音视频[控制台](https://console.cloud.tencent.com/rav ),如果还没有应用就创建一个, + * step2. 单击“应用配置”进入基础配置页面,并进一步找到“帐号体系集成”部分。 + * step3. 点击“查看密钥”按钮,就可以看到计算 UserSig 使用的加密的密钥了,请将其拷贝并复制到如下的变量中 + * + * 注意:该方案仅适用于调试Demo,正式上线前请将 UserSig 计算代码和密钥迁移到您的后台服务器上,以避免加密密钥泄露导致的流量盗用。 + * 文档:https://cloud.tencent.com/document/product/647/17275#Server + */ +// const SECRETKEY = ''; + +/* + * Module: GenerateTestUserSig + * + * Function: 用于生成测试用的 UserSig,UserSig 是腾讯云为其云服务设计的一种安全保护签名。 + * 其计算方法是对 SDKAppID、UserID 和 EXPIRETIME 进行加密,加密算法为 HMAC-SHA256。 + * + * Attention: 请不要将如下代码发布到您的线上正式版本的 App 中,原因如下: + * + * 本文件中的代码虽然能够正确计算出 UserSig,但仅适合快速调通 SDK 的基本功能,不适合线上产品, + * 这是因为客户端代码中的 SECRETKEY 很容易被反编译逆向破解,尤其是 Web 端的代码被破解的难度几乎为零。 + * 一旦您的密钥泄露,攻击者就可以计算出正确的 UserSig 来盗用您的腾讯云流量。 + * + * 正确的做法是将 UserSig 的计算代码和加密密钥放在您的业务服务器上,然后由 App 按需向您的服务器获取实时算出的 UserSig。 + * 由于破解服务器的成本要高于破解客户端 App,所以服务器计算的方案能够更好地保护您的加密密钥。 + * + * Reference:https://cloud.tencent.com/document/product/647/17275#Server + */ +function genTestUserSig(config) { + const { SDKAPPID, SECRETKEY, EXPIRETIME,userID } = config; + const generator = new LibGenerateTestUserSig(SDKAPPID, SECRETKEY, EXPIRETIME); + const userSig = generator.genTestUserSig(userID); + + return { + sdkAppID: SDKAPPID, + userSig, + }; +} + +module.exports = { + genTestUserSig, +}; diff --git a/debug/lib-generate-test-usersig-es.min.js b/debug/lib-generate-test-usersig-es.min.js new file mode 100644 index 0000000..b01b70b --- /dev/null +++ b/debug/lib-generate-test-usersig-es.min.js @@ -0,0 +1,2 @@ +/*eslint-disable*/ +var e="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t=[],r=[],n="undefined"!=typeof Uint8Array?Uint8Array:Array,i=!1;function o(){i=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=0,o=e.length;n>18&63]+t[o>>12&63]+t[o>>6&63]+t[63&o]);return a.join("")}function s(e){var r;i||o();for(var n=e.length,s=n%3,h="",l=[],f=0,c=n-s;fc?c:f+16383));return 1===s?(r=e[n-1],h+=t[r>>2],h+=t[r<<4&63],h+="=="):2===s&&(r=(e[n-2]<<8)+e[n-1],h+=t[r>>10],h+=t[r>>4&63],h+=t[r<<2&63],h+="="),l.push(h),l.join("")}function h(e,t,r,n,i){var o,a,s=8*i-n-1,h=(1<>1,f=-7,c=r?i-1:0,u=r?-1:1,d=e[t+c];for(c+=u,o=d&(1<<-f)-1,d>>=-f,f+=s;f>0;o=256*o+e[t+c],c+=u,f-=8);for(a=o&(1<<-f)-1,o>>=-f,f+=n;f>0;a=256*a+e[t+c],c+=u,f-=8);if(0===o)o=1-l;else{if(o===h)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,n),o-=l}return(d?-1:1)*a*Math.pow(2,o-n)}function l(e,t,r,n,i,o){var a,s,h,l=8*o-i-1,f=(1<>1,u=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,p=n?1:-1,_=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=f):(a=Math.floor(Math.log(t)/Math.LN2),t*(h=Math.pow(2,-a))<1&&(a--,h*=2),(t+=a+c>=1?u/h:u*Math.pow(2,1-c))*h>=2&&(a++,h/=2),a+c>=f?(s=0,a=f):a+c>=1?(s=(t*h-1)*Math.pow(2,i),a+=c):(s=t*Math.pow(2,c-1)*Math.pow(2,i),a=0));i>=8;e[r+d]=255&s,d+=p,s/=256,i-=8);for(a=a<0;e[r+d]=255&a,d+=p,a/=256,l-=8);e[r+d-p]|=128*_}var f={}.toString,c=Array.isArray||function(e){return"[object Array]"==f.call(e)};function u(){return p.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function d(e,t){if(u()=u())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+u().toString(16)+" bytes");return 0|e}function y(e){return!(null==e||!e._isBuffer)}function m(e,t){if(y(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return V(e).length;default:if(n)return q(e).length;t=(""+t).toLowerCase(),n=!0}}function k(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,r);case"utf8":case"utf-8":return C(this,t,r);case"ascii":return I(this,t,r);case"latin1":case"binary":return P(this,t,r);case"base64":return M(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function E(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function S(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=p.from(t,n)),y(t))return 0===t.length?-1:x(e,t,r,n,i);if("number"==typeof t)return t&=255,p.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):x(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function x(e,t,r,n,i){var o,a=1,s=e.length,h=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,h/=2,r/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){var f=-1;for(o=r;os&&(r=s-h),o=r;o>=0;o--){for(var c=!0,u=0;ui&&(n=i):n=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var a=0;a>8,i=r%256,o.push(i),o.push(n);return o}(t,e.length-r),e,r,n)}function M(e,t,r){return 0===t&&r===e.length?s(e):s(e.slice(t,r))}function C(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i239?4:l>223?3:l>191?2:1;if(i+c<=r)switch(c){case 1:l<128&&(f=l);break;case 2:128==(192&(o=e[i+1]))&&(h=(31&l)<<6|63&o)>127&&(f=h);break;case 3:o=e[i+1],a=e[i+2],128==(192&o)&&128==(192&a)&&(h=(15&l)<<12|(63&o)<<6|63&a)>2047&&(h<55296||h>57343)&&(f=h);break;case 4:o=e[i+1],a=e[i+2],s=e[i+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(h=(15&l)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&h<1114112&&(f=h)}null===f?(f=65533,c=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),i+=c}return function(e){var t=e.length;if(t<=D)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),""},p.prototype.compare=function(e,t,r,n,i){if(!y(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0),s=Math.min(o,a),h=this.slice(n,i),l=e.slice(t,r),f=0;fi)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return R(this,e,t,r);case"utf8":case"utf-8":return A(this,e,t,r);case"ascii":return B(this,e,t,r);case"latin1":case"binary":return z(this,e,t,r);case"base64":return L(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},p.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var D=4096;function I(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;in)&&(r=n);for(var i="",o=t;or)throw new RangeError("Trying to access beyond buffer length")}function F(e,t,r,n,i,o){if(!y(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function N(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function Z(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function j(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function W(e,t,r,n,i){return i||j(e,0,r,4),l(e,t,r,n,23,4),r+4}function Y(e,t,r,n,i){return i||j(e,0,r,8),l(e,t,r,n,52,8),r+8}p.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(i*=256);)n+=this[e+--t]*i;return n},p.prototype.readUInt8=function(e,t){return t||H(e,1,this.length),this[e]},p.prototype.readUInt16LE=function(e,t){return t||H(e,2,this.length),this[e]|this[e+1]<<8},p.prototype.readUInt16BE=function(e,t){return t||H(e,2,this.length),this[e]<<8|this[e+1]},p.prototype.readUInt32LE=function(e,t){return t||H(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},p.prototype.readUInt32BE=function(e,t){return t||H(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},p.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||H(e,t,this.length);for(var n=this[e],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*t)),n},p.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||H(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},p.prototype.readInt8=function(e,t){return t||H(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},p.prototype.readInt16LE=function(e,t){t||H(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},p.prototype.readInt16BE=function(e,t){t||H(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},p.prototype.readInt32LE=function(e,t){return t||H(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},p.prototype.readInt32BE=function(e,t){return t||H(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},p.prototype.readFloatLE=function(e,t){return t||H(e,4,this.length),h(this,e,!0,23,4)},p.prototype.readFloatBE=function(e,t){return t||H(e,4,this.length),h(this,e,!1,23,4)},p.prototype.readDoubleLE=function(e,t){return t||H(e,8,this.length),h(this,e,!0,52,8)},p.prototype.readDoubleBE=function(e,t){return t||H(e,8,this.length),h(this,e,!1,52,8)},p.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||F(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+r},p.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,1,255,0),p.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},p.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,65535,0),p.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},p.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,65535,0),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},p.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,4294967295,0),p.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):Z(this,e,t,!0),t+4},p.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,4294967295,0),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Z(this,e,t,!1),t+4},p.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);F(this,e,t,r,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o>0)-s&255;return t+r},p.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);F(this,e,t,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+r},p.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,1,127,-128),p.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},p.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,32767,-32768),p.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},p.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,32767,-32768),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},p.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,2147483647,-2147483648),p.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):Z(this,e,t,!0),t+4},p.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Z(this,e,t,!1),t+4},p.prototype.writeFloatLE=function(e,t,r){return W(this,e,t,!0,r)},p.prototype.writeFloatBE=function(e,t,r){return W(this,e,t,!1,r)},p.prototype.writeDoubleLE=function(e,t,r){return Y(this,e,t,!0,r)},p.prototype.writeDoubleBE=function(e,t,r){return Y(this,e,t,!1,r)},p.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(o<1e3||!p.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function V(e){return function(e){var t,a,s,h,l,f;i||o();var c=e.length;if(c%4>0)throw new Error("Invalid string. Length must be a multiple of 4");l="="===e[c-2]?2:"="===e[c-1]?1:0,f=new n(3*c/4-l),s=l>0?c-4:c;var u=0;for(t=0,a=0;t>16&255,f[u++]=h>>8&255,f[u++]=255&h;return 2===l?(h=r[e.charCodeAt(t)]<<2|r[e.charCodeAt(t+1)]>>4,f[u++]=255&h):1===l&&(h=r[e.charCodeAt(t)]<<10|r[e.charCodeAt(t+1)]<<4|r[e.charCodeAt(t+2)]>>2,f[u++]=h>>8&255,f[u++]=255&h),f}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(K,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function G(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function $(e){return null!=e&&(!!e._isBuffer||J(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&J(e.slice(0,0))}(e))}function J(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function Q(e,t){return e(t={exports:{}},t.exports),t.exports}var ee=Q(function(e,t){var r;e.exports=(r=r||function(e,t){var r=Object.create||function(){function e(){}return function(t){var r;return e.prototype=t,r=new e,e.prototype=null,r}}(),n={},i=n.lib={},o=i.Base={extend:function(e){var t=r(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},a=i.WordArray=o.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||h).stringify(this)},concat:function(e){var t=this.words,r=e.words,n=this.sigBytes,i=e.sigBytes;if(this.clamp(),n%4)for(var o=0;o>>2]>>>24-o%4*8&255;t[n+o>>>2]|=a<<24-(n+o)%4*8}else for(var o=0;o>>2]=r[o>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,r=this.sigBytes;t[r>>>2]&=4294967295<<32-r%4*8,t.length=e.ceil(r/4)},clone:function(){var e=o.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var r,n=[],i=function(t){var t=t,r=987654321,n=4294967295;return function(){var i=((r=36969*(65535&r)+(r>>16)&n)<<16)+(t=18e3*(65535&t)+(t>>16)&n)&n;return i/=4294967296,(i+=.5)*(e.random()>.5?1:-1)}},o=0;o>>2]>>>24-i%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,r=[],n=0;n>>3]|=parseInt(e.substr(n,2),16)<<24-n%8*4;return new a.init(r,t/2)}},l=s.Latin1={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(o))}return n.join("")},parse:function(e){for(var t=e.length,r=[],n=0;n>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new a.init(r,t)}},f=s.Utf8={stringify:function(e){try{return decodeURIComponent(escape(l.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return l.parse(unescape(encodeURIComponent(e)))}},c=i.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new a.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=f.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var r=this._data,n=r.words,i=r.sigBytes,o=this.blockSize,s=4*o,h=i/s,l=(h=t?e.ceil(h):e.max((0|h)-this._minBufferSize,0))*o,f=e.min(4*l,i);if(l){for(var c=0;c>>2]|=e[i]<<24-i%4*8;t.call(this,n,r)}else t.apply(this,arguments)}).prototype=e}}(),r.lib.WordArray)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib.WordArray,n=e.enc;function i(e){return e<<8&4278255360|e>>>8&16711935}n.Utf16=n.Utf16BE={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i>>2]>>>16-i%4*8&65535;n.push(String.fromCharCode(o))}return n.join("")},parse:function(e){for(var r=e.length,n=[],i=0;i>>1]|=e.charCodeAt(i)<<16-i%2*16;return t.create(n,2*r)}},n.Utf16LE={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(a))}return n.join("")},parse:function(e){for(var r=e.length,n=[],o=0;o>>1]|=i(e.charCodeAt(o)<<16-o%2*16);return t.create(n,2*r)}}}(),r.enc.Utf16)}),Q(function(e,t){var r,n,i;e.exports=(i=(n=r=ee).lib.WordArray,n.enc.Base64={stringify:function(e){var t=e.words,r=e.sigBytes,n=this._map;e.clamp();for(var i=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(t[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|t[o+2>>>2]>>>24-(o+2)%4*8&255,s=0;s<4&&o+.75*s>>6*(3-s)&63));var h=n.charAt(64);if(h)for(;i.length%4;)i.push(h);return i.join("")},parse:function(e){var t=e.length,r=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o>>6-a%4*2;n[o>>>2]|=(s|h)<<24-o%4*8,o++}return i.create(n,o)}(e,t,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},r.enc.Base64)}),Q(function(e,t){var r;e.exports=(r=ee,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.algo,s=[];!function(){for(var t=0;t<64;t++)s[t]=4294967296*e.abs(e.sin(t+1))|0}();var h=a.MD5=o.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var n=t+r,i=e[n];e[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o=this._hash.words,a=e[t+0],h=e[t+1],d=e[t+2],p=e[t+3],_=e[t+4],g=e[t+5],v=e[t+6],w=e[t+7],b=e[t+8],y=e[t+9],m=e[t+10],k=e[t+11],E=e[t+12],S=e[t+13],x=e[t+14],R=e[t+15],A=o[0],B=o[1],z=o[2],L=o[3];A=l(A,B,z,L,a,7,s[0]),L=l(L,A,B,z,h,12,s[1]),z=l(z,L,A,B,d,17,s[2]),B=l(B,z,L,A,p,22,s[3]),A=l(A,B,z,L,_,7,s[4]),L=l(L,A,B,z,g,12,s[5]),z=l(z,L,A,B,v,17,s[6]),B=l(B,z,L,A,w,22,s[7]),A=l(A,B,z,L,b,7,s[8]),L=l(L,A,B,z,y,12,s[9]),z=l(z,L,A,B,m,17,s[10]),B=l(B,z,L,A,k,22,s[11]),A=l(A,B,z,L,E,7,s[12]),L=l(L,A,B,z,S,12,s[13]),z=l(z,L,A,B,x,17,s[14]),A=f(A,B=l(B,z,L,A,R,22,s[15]),z,L,h,5,s[16]),L=f(L,A,B,z,v,9,s[17]),z=f(z,L,A,B,k,14,s[18]),B=f(B,z,L,A,a,20,s[19]),A=f(A,B,z,L,g,5,s[20]),L=f(L,A,B,z,m,9,s[21]),z=f(z,L,A,B,R,14,s[22]),B=f(B,z,L,A,_,20,s[23]),A=f(A,B,z,L,y,5,s[24]),L=f(L,A,B,z,x,9,s[25]),z=f(z,L,A,B,p,14,s[26]),B=f(B,z,L,A,b,20,s[27]),A=f(A,B,z,L,S,5,s[28]),L=f(L,A,B,z,d,9,s[29]),z=f(z,L,A,B,w,14,s[30]),A=c(A,B=f(B,z,L,A,E,20,s[31]),z,L,g,4,s[32]),L=c(L,A,B,z,b,11,s[33]),z=c(z,L,A,B,k,16,s[34]),B=c(B,z,L,A,x,23,s[35]),A=c(A,B,z,L,h,4,s[36]),L=c(L,A,B,z,_,11,s[37]),z=c(z,L,A,B,w,16,s[38]),B=c(B,z,L,A,m,23,s[39]),A=c(A,B,z,L,S,4,s[40]),L=c(L,A,B,z,a,11,s[41]),z=c(z,L,A,B,p,16,s[42]),B=c(B,z,L,A,v,23,s[43]),A=c(A,B,z,L,y,4,s[44]),L=c(L,A,B,z,E,11,s[45]),z=c(z,L,A,B,R,16,s[46]),A=u(A,B=c(B,z,L,A,d,23,s[47]),z,L,a,6,s[48]),L=u(L,A,B,z,w,10,s[49]),z=u(z,L,A,B,x,15,s[50]),B=u(B,z,L,A,g,21,s[51]),A=u(A,B,z,L,E,6,s[52]),L=u(L,A,B,z,p,10,s[53]),z=u(z,L,A,B,m,15,s[54]),B=u(B,z,L,A,h,21,s[55]),A=u(A,B,z,L,b,6,s[56]),L=u(L,A,B,z,R,10,s[57]),z=u(z,L,A,B,v,15,s[58]),B=u(B,z,L,A,S,21,s[59]),A=u(A,B,z,L,_,6,s[60]),L=u(L,A,B,z,k,10,s[61]),z=u(z,L,A,B,d,15,s[62]),B=u(B,z,L,A,y,21,s[63]),o[0]=o[0]+A|0,o[1]=o[1]+B|0,o[2]=o[2]+z|0,o[3]=o[3]+L|0},_doFinalize:function(){var t=this._data,r=t.words,n=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32;var o=e.floor(n/4294967296),a=n;r[15+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(i+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),t.sigBytes=4*(r.length+1),this._process();for(var s=this._hash,h=s.words,l=0;l<4;l++){var f=h[l];h[l]=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8)}return s},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});function l(e,t,r,n,i,o,a){var s=e+(t&r|~t&n)+i+a;return(s<>>32-o)+t}function f(e,t,r,n,i,o,a){var s=e+(t&n|r&~n)+i+a;return(s<>>32-o)+t}function c(e,t,r,n,i,o,a){var s=e+(t^r^n)+i+a;return(s<>>32-o)+t}function u(e,t,r,n,i,o,a){var s=e+(r^(t|~n))+i+a;return(s<>>32-o)+t}t.MD5=o._createHelper(h),t.HmacMD5=o._createHmacHelper(h)}(Math),r.MD5)}),Q(function(e,t){var r,n,i,o,a,s,h,l;e.exports=(i=(n=r=ee).lib,o=i.WordArray,a=i.Hasher,s=n.algo,h=[],l=s.SHA1=a.extend({_doReset:function(){this._hash=new o.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],s=r[4],l=0;l<80;l++){if(l<16)h[l]=0|e[t+l];else{var f=h[l-3]^h[l-8]^h[l-14]^h[l-16];h[l]=f<<1|f>>>31}var c=(n<<5|n>>>27)+s+h[l];c+=l<20?1518500249+(i&o|~i&a):l<40?1859775393+(i^o^a):l<60?(i&o|i&a|o&a)-1894007588:(i^o^a)-899497514,s=a,a=o,o=i<<30|i>>>2,i=n,n=c}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+a|0,r[4]=r[4]+s|0},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=Math.floor(r/4294967296),t[15+(n+64>>>9<<4)]=r,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}}),n.SHA1=a._createHelper(l),n.HmacSHA1=a._createHmacHelper(l),r.SHA1)}),Q(function(e,t){var r;e.exports=(r=ee,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.algo,s=[],h=[];!function(){function t(t){for(var r=e.sqrt(t),n=2;n<=r;n++)if(!(t%n))return!1;return!0}function r(e){return 4294967296*(e-(0|e))|0}for(var n=2,i=0;i<64;)t(n)&&(i<8&&(s[i]=r(e.pow(n,.5))),h[i]=r(e.pow(n,1/3)),i++),n++}();var l=[],f=a.SHA256=o.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],s=r[4],f=r[5],c=r[6],u=r[7],d=0;d<64;d++){if(d<16)l[d]=0|e[t+d];else{var p=l[d-15],_=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,g=l[d-2],v=(g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10;l[d]=_+l[d-7]+v+l[d-16]}var w=n&i^n&o^i&o,b=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),y=u+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&f^~s&c)+h[d]+l[d];u=c,c=f,f=s,s=a+y|0,a=o,o=i,i=n,n=y+(b+w)|0}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+a|0,r[4]=r[4]+s|0,r[5]=r[5]+f|0,r[6]=r[6]+c|0,r[7]=r[7]+u|0},_doFinalize:function(){var t=this._data,r=t.words,n=8*this._nDataBytes,i=8*t.sigBytes;return r[i>>>5]|=128<<24-i%32,r[14+(i+64>>>9<<4)]=e.floor(n/4294967296),r[15+(i+64>>>9<<4)]=n,t.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=o._createHelper(f),t.HmacSHA256=o._createHmacHelper(f)}(Math),r.SHA256)}),Q(function(e,t){var r,n,i,o,a,s;e.exports=(i=(n=r=ee).lib.WordArray,o=n.algo,a=o.SHA256,s=o.SHA224=a.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=a._doFinalize.call(this);return e.sigBytes-=4,e}}),n.SHA224=a._createHelper(s),n.HmacSHA224=a._createHmacHelper(s),r.SHA224)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib.Hasher,n=e.x64,i=n.Word,o=n.WordArray,a=e.algo;function s(){return i.create.apply(i,arguments)}var h=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],l=[];!function(){for(var e=0;e<80;e++)l[e]=s()}();var f=a.SHA512=t.extend({_doReset:function(){this._hash=new o.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],s=r[4],f=r[5],c=r[6],u=r[7],d=n.high,p=n.low,_=i.high,g=i.low,v=o.high,w=o.low,b=a.high,y=a.low,m=s.high,k=s.low,E=f.high,S=f.low,x=c.high,R=c.low,A=u.high,B=u.low,z=d,L=p,T=_,M=g,C=v,D=w,I=b,P=y,O=m,U=k,H=E,F=S,N=x,Z=R,j=A,W=B,Y=0;Y<80;Y++){var K=l[Y];if(Y<16)var X=K.high=0|e[t+2*Y],q=K.low=0|e[t+2*Y+1];else{var V=l[Y-15],G=V.high,$=V.low,J=(G>>>1|$<<31)^(G>>>8|$<<24)^G>>>7,Q=($>>>1|G<<31)^($>>>8|G<<24)^($>>>7|G<<25),ee=l[Y-2],te=ee.high,re=ee.low,ne=(te>>>19|re<<13)^(te<<3|re>>>29)^te>>>6,ie=(re>>>19|te<<13)^(re<<3|te>>>29)^(re>>>6|te<<26),oe=l[Y-7],ae=oe.high,se=oe.low,he=l[Y-16],le=he.high,fe=he.low;X=(X=(X=J+ae+((q=Q+se)>>>0>>0?1:0))+ne+((q+=ie)>>>0>>0?1:0))+le+((q+=fe)>>>0>>0?1:0),K.high=X,K.low=q}var ce,ue=O&H^~O&N,de=U&F^~U&Z,pe=z&T^z&C^T&C,_e=L&M^L&D^M&D,ge=(z>>>28|L<<4)^(z<<30|L>>>2)^(z<<25|L>>>7),ve=(L>>>28|z<<4)^(L<<30|z>>>2)^(L<<25|z>>>7),we=(O>>>14|U<<18)^(O>>>18|U<<14)^(O<<23|U>>>9),be=(U>>>14|O<<18)^(U>>>18|O<<14)^(U<<23|O>>>9),ye=h[Y],me=ye.high,ke=ye.low,Ee=j+we+((ce=W+be)>>>0>>0?1:0),Se=ve+_e;j=N,W=Z,N=H,Z=F,H=O,F=U,O=I+(Ee=(Ee=(Ee=Ee+ue+((ce+=de)>>>0>>0?1:0))+me+((ce+=ke)>>>0>>0?1:0))+X+((ce+=q)>>>0>>0?1:0))+((U=P+ce|0)>>>0

>>0?1:0)|0,I=C,P=D,C=T,D=M,T=z,M=L,z=Ee+(ge+pe+(Se>>>0>>0?1:0))+((L=ce+Se|0)>>>0>>0?1:0)|0}p=n.low=p+L,n.high=d+z+(p>>>0>>0?1:0),g=i.low=g+M,i.high=_+T+(g>>>0>>0?1:0),w=o.low=w+D,o.high=v+C+(w>>>0>>0?1:0),y=a.low=y+P,a.high=b+I+(y>>>0

>>0?1:0),k=s.low=k+U,s.high=m+O+(k>>>0>>0?1:0),S=f.low=S+F,f.high=E+H+(S>>>0>>0?1:0),R=c.low=R+Z,c.high=x+N+(R>>>0>>0?1:0),B=u.low=B+W,u.high=A+j+(B>>>0>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[30+(n+128>>>10<<5)]=Math.floor(r/4294967296),t[31+(n+128>>>10<<5)]=r,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=t.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32});e.SHA512=t._createHelper(f),e.HmacSHA512=t._createHmacHelper(f)}(),r.SHA512)}),Q(function(e,t){var r,n,i,o,a,s,h,l;e.exports=(i=(n=r=ee).x64,o=i.Word,a=i.WordArray,s=n.algo,h=s.SHA512,l=s.SHA384=h.extend({_doReset:function(){this._hash=new a.init([new o.init(3418070365,3238371032),new o.init(1654270250,914150663),new o.init(2438529370,812702999),new o.init(355462360,4144912697),new o.init(1731405415,4290775857),new o.init(2394180231,1750603025),new o.init(3675008525,1694076839),new o.init(1203062813,3204075428)])},_doFinalize:function(){var e=h._doFinalize.call(this);return e.sigBytes-=16,e}}),n.SHA384=h._createHelper(l),n.HmacSHA384=h._createHmacHelper(l),r.SHA384)}),Q(function(e,t){var r;e.exports=(r=ee,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.x64.Word,s=t.algo,h=[],l=[],f=[];!function(){for(var e=1,t=0,r=0;r<24;r++){h[e+5*t]=(r+1)*(r+2)/2%64;var n=(2*e+3*t)%5;e=t%5,t=n}for(e=0;e<5;e++)for(t=0;t<5;t++)l[e+5*t]=t+(2*e+3*t)%5*5;for(var i=1,o=0;o<24;o++){for(var s=0,c=0,u=0;u<7;u++){if(1&i){var d=(1<>>24)|4278255360&(o<<24|o>>>8),a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),(B=r[i]).high^=a,B.low^=o}for(var s=0;s<24;s++){for(var u=0;u<5;u++){for(var d=0,p=0,_=0;_<5;_++)d^=(B=r[u+5*_]).high,p^=B.low;var g=c[u];g.high=d,g.low=p}for(u=0;u<5;u++){var v=c[(u+4)%5],w=c[(u+1)%5],b=w.high,y=w.low;for(d=v.high^(b<<1|y>>>31),p=v.low^(y<<1|b>>>31),_=0;_<5;_++)(B=r[u+5*_]).high^=d,B.low^=p}for(var m=1;m<25;m++){var k=(B=r[m]).high,E=B.low,S=h[m];S<32?(d=k<>>32-S,p=E<>>32-S):(d=E<>>64-S,p=k<>>64-S);var x=c[l[m]];x.high=d,x.low=p}var R=c[0],A=r[0];for(R.high=A.high,R.low=A.low,u=0;u<5;u++)for(_=0;_<5;_++){var B=r[m=u+5*_],z=c[m],L=c[(u+1)%5+5*_],T=c[(u+2)%5+5*_];B.high=z.high^~L.high&T.high,B.low=z.low^~L.low&T.low}B=r[0];var M=f[s];B.high^=M.high,B.low^=M.low}},_doFinalize:function(){var t=this._data,r=t.words,n=(this._nDataBytes,8*t.sigBytes),o=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(e.ceil((n+1)/o)*o>>>5)-1]|=128,t.sigBytes=4*r.length,this._process();for(var a=this._state,s=this.cfg.outputLength/8,h=s/8,l=[],f=0;f>>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),l.push(d),l.push(u)}return new i.init(l,s)},clone:function(){for(var e=o.clone.call(this),t=e._state=this._state.slice(0),r=0;r<25;r++)t[r]=t[r].clone();return e}});t.SHA3=o._createHelper(u),t.HmacSHA3=o._createHmacHelper(u)}(Math),r.SHA3)}),Q(function(e,t){var r;e.exports=(r=ee,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.algo,s=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),h=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),l=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),f=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),c=i.create([0,1518500249,1859775393,2400959708,2840853838]),u=i.create([1352829926,1548603684,1836072691,2053994217,0]),d=a.RIPEMD160=o.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var n=t+r,i=e[n];e[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o,a,d,y,m,k,E,S,x,R,A,B=this._hash.words,z=c.words,L=u.words,T=s.words,M=h.words,C=l.words,D=f.words;for(k=o=B[0],E=a=B[1],S=d=B[2],x=y=B[3],R=m=B[4],r=0;r<80;r+=1)A=o+e[t+T[r]]|0,A+=r<16?p(a,d,y)+z[0]:r<32?_(a,d,y)+z[1]:r<48?g(a,d,y)+z[2]:r<64?v(a,d,y)+z[3]:w(a,d,y)+z[4],A=(A=b(A|=0,C[r]))+m|0,o=m,m=y,y=b(d,10),d=a,a=A,A=k+e[t+M[r]]|0,A+=r<16?w(E,S,x)+L[0]:r<32?v(E,S,x)+L[1]:r<48?g(E,S,x)+L[2]:r<64?_(E,S,x)+L[3]:p(E,S,x)+L[4],A=(A=b(A|=0,D[r]))+R|0,k=R,R=x,x=b(S,10),S=E,E=A;A=B[1]+d+x|0,B[1]=B[2]+y+R|0,B[2]=B[3]+m+k|0,B[3]=B[4]+o+E|0,B[4]=B[0]+a+S|0,B[0]=A},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),e.sigBytes=4*(t.length+1),this._process();for(var i=this._hash,o=i.words,a=0;a<5;a++){var s=o[a];o[a]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return i},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});function p(e,t,r){return e^t^r}function _(e,t,r){return e&t|~e&r}function g(e,t,r){return(e|~t)^r}function v(e,t,r){return e&r|t&~r}function w(e,t,r){return e^(t|~r)}function b(e,t){return e<>>32-t}t.RIPEMD160=o._createHelper(d),t.HmacRIPEMD160=o._createHmacHelper(d)}(),r.RIPEMD160)}),Q(function(e,t){var r,n,i,o,a,s;e.exports=(n=(r=ee).lib,i=n.Base,o=r.enc,a=o.Utf8,s=r.algo,void(s.HMAC=i.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=a.parse(t));var r=e.blockSize,n=4*r;t.sigBytes>n&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),o=this._iKey=t.clone(),s=i.words,h=o.words,l=0;l>>2];e.sigBytes-=t}},o.BlockCipher=d.extend({cfg:d.cfg.extend({mode:g,padding:w}),reset:function(){d.reset.call(this);var e=this.cfg,t=e.iv,r=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=r.createEncryptor;else{var n=r.createDecryptor;this._minBufferSize=1}this._mode&&this._mode.__creator==n?this._mode.init(this,t&&t.words):(this._mode=n.call(r,this,t&&t.words),this._mode.__creator=n)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else{var t=this._process(!0);e.unpad(t)}return t},blockSize:4}),b=o.CipherParams=a.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),y=i.format={},m=y.OpenSSL={stringify:function(e){var t=e.ciphertext,r=e.salt;if(r)var n=s.create([1398893684,1701076831]).concat(r).concat(t);else var n=t;return n.toString(f)},parse:function(e){var t=f.parse(e),r=t.words;if(1398893684==r[0]&&1701076831==r[1]){var n=s.create(r.slice(2,4));r.splice(0,4),t.sigBytes-=16}return b.create({ciphertext:t,salt:n})}},k=o.SerializableCipher=a.extend({cfg:a.extend({format:m}),encrypt:function(e,t,r,n){n=this.cfg.extend(n);var i=e.createEncryptor(r,n),o=i.finalize(t),a=i.cfg;return b.create({ciphertext:o,key:r,iv:a.iv,algorithm:e,mode:a.mode,padding:a.padding,blockSize:e.blockSize,formatter:n.format})},decrypt:function(e,t,r,n){n=this.cfg.extend(n),t=this._parse(t,n.format);var i=e.createDecryptor(r,n).finalize(t.ciphertext);return i},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),E=i.kdf={},S=E.OpenSSL={execute:function(e,t,r,n){n||(n=s.random(8));var i=u.create({keySize:t+r}).compute(e,n),o=s.create(i.words.slice(t),4*r);return i.sigBytes=4*t,b.create({key:i,iv:o,salt:n})}},x=o.PasswordBasedCipher=k.extend({cfg:k.cfg.extend({kdf:S}),encrypt:function(e,t,r,n){var i=(n=this.cfg.extend(n)).kdf.execute(r,e.keySize,e.ivSize);n.iv=i.iv;var o=k.encrypt.call(this,e,t,i.key,n);return o.mixIn(i),o},decrypt:function(e,t,r,n){n=this.cfg.extend(n),t=this._parse(t,n.format);var i=n.kdf.execute(r,e.keySize,e.ivSize,t.salt);n.iv=i.iv;var o=k.decrypt.call(this,e,t,i.key,n);return o}})))}),Q(function(e,t){var r;e.exports=((r=ee).mode.CFB=function(){var e=r.lib.BlockCipherMode.extend();function t(e,t,r,n){var i=this._iv;if(i){var o=i.slice(0);this._iv=void 0}else o=this._prevBlock;n.encryptBlock(o,0);for(var a=0;a>24&255)){var t=e>>16&255,r=e>>8&255,n=255&e;255===t?(t=0,255===r?(r=0,255===n?n=0:++n):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=n}else e+=1<<24;return e}var n=e.Encryptor=e.extend({processBlock:function(e,r){var n=this._cipher,i=n.blockSize,o=this._iv,a=this._counter;o&&(a=this._counter=o.slice(0),this._iv=void 0),function(e){0===(e[0]=t(e[0]))&&(e[1]=t(e[1]))}(a);var s=a.slice(0);n.encryptBlock(s,0);for(var h=0;h>>2]|=i<<24-o%4*8,e.sigBytes+=i},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},r.pad.Ansix923)}),Q(function(e,t){var r;e.exports=((r=ee).pad.Iso10126={pad:function(e,t){var n=4*t,i=n-e.sigBytes%n;e.concat(r.lib.WordArray.random(i-1)).concat(r.lib.WordArray.create([i<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},r.pad.Iso10126)}),Q(function(e,t){var r;e.exports=((r=ee).pad.Iso97971={pad:function(e,t){e.concat(r.lib.WordArray.create([2147483648],1)),r.pad.ZeroPadding.pad(e,t)},unpad:function(e){r.pad.ZeroPadding.unpad(e),e.sigBytes--}},r.pad.Iso97971)}),Q(function(e,t){var r;e.exports=((r=ee).pad.ZeroPadding={pad:function(e,t){var r=4*t;e.clamp(),e.sigBytes+=r-(e.sigBytes%r||r)},unpad:function(e){for(var t=e.words,r=e.sigBytes-1;!(t[r>>>2]>>>24-r%4*8&255);)r--;e.sigBytes=r+1}},r.pad.ZeroPadding)}),Q(function(e,t){var r;e.exports=((r=ee).pad.NoPadding={pad:function(){},unpad:function(){}},r.pad.NoPadding)}),Q(function(e,t){var r,n,i,o;e.exports=(i=(n=r=ee).lib.CipherParams,o=n.enc.Hex,n.format.Hex={stringify:function(e){return e.ciphertext.toString(o)},parse:function(e){var t=o.parse(e);return i.create({ciphertext:t})}},r.format.Hex)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib.BlockCipher,n=e.algo,i=[],o=[],a=[],s=[],h=[],l=[],f=[],c=[],u=[],d=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var r=0,n=0;for(t=0;t<256;t++){var p=n^n<<1^n<<2^n<<3^n<<4;p=p>>>8^255&p^99,i[r]=p,o[p]=r;var _=e[r],g=e[_],v=e[g],w=257*e[p]^16843008*p;a[r]=w<<24|w>>>8,s[r]=w<<16|w>>>16,h[r]=w<<8|w>>>24,l[r]=w,w=16843009*v^65537*g^257*_^16843008*r,f[p]=w<<24|w>>>8,c[p]=w<<16|w>>>16,u[p]=w<<8|w>>>24,d[p]=w,r?(r=_^e[e[e[v^_]]],n^=e[e[n]]):r=n=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],_=n.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,r=e.sigBytes/4,n=4*((this._nRounds=r+6)+1),o=this._keySchedule=[],a=0;a6&&a%r==4&&(s=i[s>>>24]<<24|i[s>>>16&255]<<16|i[s>>>8&255]<<8|i[255&s]):(s=i[(s=s<<8|s>>>24)>>>24]<<24|i[s>>>16&255]<<16|i[s>>>8&255]<<8|i[255&s],s^=p[a/r|0]<<24),o[a]=o[a-r]^s}for(var h=this._invKeySchedule=[],l=0;l>>24]]^c[i[s>>>16&255]]^u[i[s>>>8&255]]^d[i[255&s]]}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,a,s,h,l,i)},decryptBlock:function(e,t){var r=e[t+1];e[t+1]=e[t+3],e[t+3]=r,this._doCryptBlock(e,t,this._invKeySchedule,f,c,u,d,o),r=e[t+1],e[t+1]=e[t+3],e[t+3]=r},_doCryptBlock:function(e,t,r,n,i,o,a,s){for(var h=this._nRounds,l=e[t]^r[0],f=e[t+1]^r[1],c=e[t+2]^r[2],u=e[t+3]^r[3],d=4,p=1;p>>24]^i[f>>>16&255]^o[c>>>8&255]^a[255&u]^r[d++],g=n[f>>>24]^i[c>>>16&255]^o[u>>>8&255]^a[255&l]^r[d++],v=n[c>>>24]^i[u>>>16&255]^o[l>>>8&255]^a[255&f]^r[d++],w=n[u>>>24]^i[l>>>16&255]^o[f>>>8&255]^a[255&c]^r[d++];l=_,f=g,c=v,u=w}_=(s[l>>>24]<<24|s[f>>>16&255]<<16|s[c>>>8&255]<<8|s[255&u])^r[d++],g=(s[f>>>24]<<24|s[c>>>16&255]<<16|s[u>>>8&255]<<8|s[255&l])^r[d++],v=(s[c>>>24]<<24|s[u>>>16&255]<<16|s[l>>>8&255]<<8|s[255&f])^r[d++],w=(s[u>>>24]<<24|s[l>>>16&255]<<16|s[f>>>8&255]<<8|s[255&c])^r[d++],e[t]=_,e[t+1]=g,e[t+2]=v,e[t+3]=w},keySize:8});e.AES=t._createHelper(_)}(),r.AES)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib,n=t.WordArray,i=t.BlockCipher,o=e.algo,a=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],h=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],l=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],f=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],c=o.DES=i.extend({_doReset:function(){for(var e=this._key.words,t=[],r=0;r<56;r++){var n=a[r]-1;t[r]=e[n>>>5]>>>31-n%32&1}for(var i=this._subKeys=[],o=0;o<16;o++){var l=i[o]=[],f=h[o];for(r=0;r<24;r++)l[r/6|0]|=t[(s[r]-1+f)%28]<<31-r%6,l[4+(r/6|0)]|=t[28+(s[r+24]-1+f)%28]<<31-r%6;for(l[0]=l[0]<<1|l[0]>>>31,r=1;r<7;r++)l[r]=l[r]>>>4*(r-1)+3;l[7]=l[7]<<5|l[7]>>>27}var c=this._invSubKeys=[];for(r=0;r<16;r++)c[r]=i[15-r]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._subKeys)},decryptBlock:function(e,t){this._doCryptBlock(e,t,this._invSubKeys)},_doCryptBlock:function(e,t,r){this._lBlock=e[t],this._rBlock=e[t+1],u.call(this,4,252645135),u.call(this,16,65535),d.call(this,2,858993459),d.call(this,8,16711935),u.call(this,1,1431655765);for(var n=0;n<16;n++){for(var i=r[n],o=this._lBlock,a=this._rBlock,s=0,h=0;h<8;h++)s|=l[h][((a^i[h])&f[h])>>>0];this._lBlock=a,this._rBlock=o^s}var c=this._lBlock;this._lBlock=this._rBlock,this._rBlock=c,u.call(this,1,1431655765),d.call(this,8,16711935),d.call(this,2,858993459),u.call(this,16,65535),u.call(this,4,252645135),e[t]=this._lBlock,e[t+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function u(e,t){var r=(this._lBlock>>>e^this._rBlock)&t;this._rBlock^=r,this._lBlock^=r<>>e^this._lBlock)&t;this._lBlock^=r,this._rBlock^=r<>>2]>>>24-a%4*8&255;o=(o+n[i]+s)%256;var h=n[i];n[i]=n[o],n[o]=h}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=o.call(this)},keySize:8,ivSize:0});function o(){for(var e=this._S,t=this._i,r=this._j,n=0,i=0;i<4;i++){r=(r+e[t=(t+1)%256])%256;var o=e[t];e[t]=e[r],e[r]=o,n|=e[(e[t]+e[r])%256]<<24-8*i}return this._i=t,this._j=r,n}e.RC4=t._createHelper(i);var a=n.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)o.call(this)}});e.RC4Drop=t._createHelper(a)}(),r.RC4)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib.StreamCipher,n=e.algo,i=[],o=[],a=[],s=n.Rabbit=t.extend({_doReset:function(){for(var e=this._key.words,t=this.cfg.iv,r=0;r<4;r++)e[r]=16711935&(e[r]<<8|e[r]>>>24)|4278255360&(e[r]<<24|e[r]>>>8);var n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],i=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,r=0;r<4;r++)h.call(this);for(r=0;r<8;r++)i[r]^=n[r+4&7];if(t){var o=t.words,a=o[0],s=o[1],l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),f=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),c=l>>>16|4294901760&f,u=f<<16|65535&l;for(i[0]^=l,i[1]^=c,i[2]^=f,i[3]^=u,i[4]^=l,i[5]^=c,i[6]^=f,i[7]^=u,r=0;r<4;r++)h.call(this)}},_doProcessBlock:function(e,t){var r=this._X;h.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),e[t+n]^=i[n]},blockSize:4,ivSize:2});function h(){for(var e=this._X,t=this._C,r=0;r<8;r++)o[r]=t[r];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0>>0?1:0)|0,this._b=t[7]>>>0>>0?1:0,r=0;r<8;r++){var n=e[r]+t[r],i=65535&n,s=n>>>16,h=((i*i>>>17)+i*s>>>15)+s*s,l=((4294901760&n)*n|0)+((65535&n)*n|0);a[r]=h^l}e[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,e[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,e[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,e[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,e[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,e[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,e[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,e[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.Rabbit=t._createHelper(s)}(),r.Rabbit)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib.StreamCipher,n=e.algo,i=[],o=[],a=[],s=n.RabbitLegacy=t.extend({_doReset:function(){var e=this._key.words,t=this.cfg.iv,r=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],n=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var i=0;i<4;i++)h.call(this);for(i=0;i<8;i++)n[i]^=r[i+4&7];if(t){var o=t.words,a=o[0],s=o[1],l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),f=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),c=l>>>16|4294901760&f,u=f<<16|65535&l;for(n[0]^=l,n[1]^=c,n[2]^=f,n[3]^=u,n[4]^=l,n[5]^=c,n[6]^=f,n[7]^=u,i=0;i<4;i++)h.call(this)}},_doProcessBlock:function(e,t){var r=this._X;h.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),e[t+n]^=i[n]},blockSize:4,ivSize:2});function h(){for(var e=this._X,t=this._C,r=0;r<8;r++)o[r]=t[r];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0>>0?1:0)|0,this._b=t[7]>>>0>>0?1:0,r=0;r<8;r++){var n=e[r]+t[r],i=65535&n,s=n>>>16,h=((i*i>>>17)+i*s>>>15)+s*s,l=((4294901760&n)*n|0)+((65535&n)*n|0);a[r]=h^l}e[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,e[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,e[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,e[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,e[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,e[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,e[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,e[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.RabbitLegacy=t._createHelper(s)}(),r.RabbitLegacy)}),Q(function(e,t){e.exports=ee}));function re(){throw new Error("setTimeout has not been defined")}function ne(){throw new Error("clearTimeout has not been defined")}var ie=re,oe=ne;function ae(e){if(ie===setTimeout)return setTimeout(e,0);if((ie===re||!ie)&&setTimeout)return ie=setTimeout,setTimeout(e,0);try{return ie(e,0)}catch(t){try{return ie.call(null,e,0)}catch(t){return ie.call(this,e,0)}}}"function"==typeof e.setTimeout&&(ie=setTimeout),"function"==typeof e.clearTimeout&&(oe=clearTimeout);var se,he=[],le=!1,fe=-1;function ce(){le&&se&&(le=!1,se.length?he=se.concat(he):fe=-1,he.length&&ue())}function ue(){if(!le){var e=ae(ce);le=!0;for(var t=he.length;t;){for(se=he,he=[];++fe1)for(var r=1;r0&&a.length>i){a.warned=!0;var h=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");h.name="MaxListenersExceededWarning",h.emitter=e,h.type=t,h.count=a.length,s=h,"function"==typeof console.warn?console.warn(s):console.log(s)}}else a=o[t]=r,++e._eventsCount;return e}function xe(e,t,r){var n=!1;function i(){e.removeListener(t,i),n||(n=!0,r.apply(e,arguments))}return i.listener=r,i}function Re(e){var t=this._events;if(t){var r=t[e];if("function"==typeof r)return 1;if(r)return r.length}return 0}function Ae(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}ge.prototype=Object.create(null),ve.EventEmitter=ve,ve.usingDomains=!1,ve.prototype.domain=void 0,ve.prototype._events=void 0,ve.prototype._maxListeners=void 0,ve.defaultMaxListeners=10,ve.init=function(){this.domain=null,ve.usingDomains&&(void 0).active&&(void 0).Domain,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new ge,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},ve.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},ve.prototype.getMaxListeners=function(){return we(this)},ve.prototype.emit=function(e){var t,r,n,i,o,a,s,h="error"===e;if(a=this._events)h=h&&null==a.error;else if(!h)return!1;if(s=this.domain,h){if(t=arguments[1],!s){if(t instanceof Error)throw t;var l=new Error('Uncaught, unspecified "error" event. ('+t+")");throw l.context=t,l}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=s,t.domainThrown=!1,s.emit("error",t),!1}if(!(r=a[e]))return!1;var f="function"==typeof r;switch(n=arguments.length){case 1:be(r,f,this);break;case 2:ye(r,f,this,arguments[1]);break;case 3:me(r,f,this,arguments[1],arguments[2]);break;case 4:ke(r,f,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(n-1),o=1;o0;)if(r[o]===t||r[o].listener&&r[o].listener===t){a=r[o].listener,i=o;break}if(i<0)return this;if(1===r.length){if(r[0]=void 0,0==--this._eventsCount)return this._events=new ge,this;delete n[e]}else!function(e,t){for(var r=t,n=r+1,i=e.length;n0?Reflect.ownKeys(this._events):[]};var Be="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e},ze=/%[sdj%]/g;function Le(e){if(!Ze(e)){for(var t=[],r=0;r=i)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}}),a=n[r];r=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),Fe(t)?r.showHidden=t:t&&function(e,t){if(!t||!Ye(t))return e;var r=Object.keys(t),n=r.length;for(;n--;)e[r[n]]=t[r[n]]}(r,t),je(r.showHidden)&&(r.showHidden=!1),je(r.depth)&&(r.depth=2),je(r.colors)&&(r.colors=!1),je(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=Ie),Oe(r,e,r.depth)}function Ie(e,t){var r=De.styles[t];return r?"["+De.colors[r][0]+"m"+e+"["+De.colors[r][1]+"m":e}function Pe(e,t){return e}function Oe(e,t,r){if(e.customInspect&&t&&qe(t.inspect)&&t.inspect!==De&&(!t.constructor||t.constructor.prototype!==t)){var n=t.inspect(r,e);return Ze(n)||(n=Oe(e,n,r)),n}var i=function(e,t){if(je(t))return e.stylize("undefined","undefined");if(Ze(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(n=t,"number"==typeof n)return e.stylize(""+t,"number");var n;if(Fe(t))return e.stylize(""+t,"boolean");if(Ne(t))return e.stylize("null","null")}(e,t);if(i)return i;var o=Object.keys(t),a=function(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),Xe(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return Ue(t);if(0===o.length){if(qe(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if(We(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(Ke(t))return e.stylize(Date.prototype.toString.call(t),"date");if(Xe(t))return Ue(t)}var h,l,f="",c=!1,u=["{","}"];(h=t,Array.isArray(h)&&(c=!0,u=["[","]"]),qe(t))&&(f=" [Function"+(t.name?": "+t.name:"")+"]");return We(t)&&(f=" "+RegExp.prototype.toString.call(t)),Ke(t)&&(f=" "+Date.prototype.toUTCString.call(t)),Xe(t)&&(f=" "+Ue(t)),0!==o.length||c&&0!=t.length?r<0?We(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),l=c?function(e,t,r,n,i){for(var o=[],a=0,s=t.length;a60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(l,f,u)):u[0]+f+u[1]}function Ue(e){return"["+Error.prototype.toString.call(e)+"]"}function He(e,t,r,n,i,o){var a,s,h;if((h=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?s=h.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):h.set&&(s=e.stylize("[Setter]","special")),Ge(n,i)||(a="["+i+"]"),s||(e.seen.indexOf(h.value)<0?(s=Ne(r)?Oe(e,h.value,null):Oe(e,h.value,r-1)).indexOf("\n")>-1&&(s=o?s.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+s.split("\n").map(function(e){return" "+e}).join("\n")):s=e.stylize("[Circular]","special")),je(a)){if(o&&i.match(/^\d+$/))return s;(a=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function Fe(e){return"boolean"==typeof e}function Ne(e){return null===e}function Ze(e){return"string"==typeof e}function je(e){return void 0===e}function We(e){return Ye(e)&&"[object RegExp]"===Ve(e)}function Ye(e){return"object"==typeof e&&null!==e}function Ke(e){return Ye(e)&&"[object Date]"===Ve(e)}function Xe(e){return Ye(e)&&("[object Error]"===Ve(e)||e instanceof Error)}function qe(e){return"function"==typeof e}function Ve(e){return Object.prototype.toString.call(e)}function Ge(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function $e(){this.head=null,this.tail=null,this.length=0}De.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},De.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},$e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},$e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},$e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},$e.prototype.clear=function(){this.head=this.tail=null,this.length=0},$e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},$e.prototype.concat=function(e){if(0===this.length)return p.alloc(0);if(1===this.length)return this.head.data;for(var t=p.allocUnsafe(e>>>0),r=this.head,n=0;r;)r.data.copy(t,n),n+=r.data.length,r=r.next;return t};var Je=p.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function Qe(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),function(e){if(e&&!Je(e))throw new Error("Unknown encoding: "+e)}(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=tt;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=rt;break;default:return void(this.write=et)}this.charBuffer=new p(6),this.charReceived=0,this.charLength=0}function et(e){return e.toString(this.encoding)}function tt(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function rt(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}Qe.prototype.write=function(e){for(var t="";this.charLength;){var r=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,r),this.charReceived+=r,this.charReceived=55296&&i<=56319)){if(this.charReceived=this.charLength=0,0===e.length)return t;break}this.charLength+=this.surrogateSize,t=""}this.detectIncompleteChar(e);var n=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,n),n-=this.charReceived);var i;n=(t+=e.toString(this.encoding,0,n)).length-1;if((i=t.charCodeAt(n))>=55296&&i<=56319){var o=this.surrogateSize;return this.charLength+=o,this.charReceived+=o,this.charBuffer.copy(this.charBuffer,o,0,o),e.copy(this.charBuffer,0,0,o),t.substring(0,n)}return t},Qe.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var r=e[e.length-t];if(1==t&&r>>5==6){this.charLength=2;break}if(t<=2&&r>>4==14){this.charLength=3;break}if(t<=3&&r>>3==30){this.charLength=4;break}}this.charReceived=t},Qe.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var r=this.charReceived,n=this.charBuffer,i=this.encoding;t+=n.slice(0,r).toString(i)}return t},ot.ReadableState=it;var nt=function(e){je(Me)&&(Me=""),e=e.toUpperCase(),Ce[e]||(new RegExp("\\b"+e+"\\b","i").test(Me)?Ce[e]=function(){var t=Le.apply(null,arguments);console.error("%s %d: %s",e,0,t)}:Ce[e]=function(){});return Ce[e]}("stream");function it(e,t){e=e||{},this.objectMode=!!e.objectMode,t instanceof Ct&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var r=e.highWaterMark,n=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:n,this.highWaterMark=~~this.highWaterMark,this.buffer=new $e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(this.decoder=new Qe(e.encoding),this.encoding=e.encoding)}function ot(e){if(!(this instanceof ot))return new ot(e);this._readableState=new it(e,this),this.readable=!0,e&&"function"==typeof e.read&&(this._read=e.read),ve.call(this)}function at(e,t,r,n,i){var o=function(e,t){var r=null;$(t)||"string"==typeof t||null==t||e.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));return r}(t,r);if(o)e.emit("error",o);else if(null===r)t.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,lt(e)}(e,t);else if(t.objectMode||r&&r.length>0)if(t.ended&&!i){var a=new Error("stream.push() after EOF");e.emit("error",a)}else if(t.endEmitted&&i){var s=new Error("stream.unshift() after end event");e.emit("error",s)}else{var h;!t.decoder||i||n||(r=t.decoder.write(r),h=!t.objectMode&&0===r.length),i||(t.reading=!1),h||(t.flowing&&0===t.length&&!t.sync?(e.emit("data",r),e.read(0)):(t.length+=t.objectMode?1:r.length,i?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&<(e))),function(e,t){t.readingMore||(t.readingMore=!0,de(ct,e,t))}(e,t)}else i||(t.reading=!1);return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=st?e=st:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function lt(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(nt("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?de(ft,e):ft(e))}function ft(e){nt("emit readable"),e.emit("readable"),pt(e)}function ct(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=function(e,t,r){var n;eo.length?o.length:e;if(a===o.length?i+=o:i+=o.slice(0,e),0===(e-=a)){a===o.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=o.slice(a));break}++n}return t.length-=n,i}(e,t):function(e,t){var r=p.allocUnsafe(e),n=t.head,i=1;n.data.copy(r),e-=n.data.length;for(;n=n.next;){var o=n.data,a=e>o.length?o.length:e;if(o.copy(r,r.length-e,0,a),0===(e-=a)){a===o.length?(++i,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=o.slice(a));break}++i}return t.length-=i,r}(e,t);return n}(e,t.buffer,t.decoder),r);var r}function gt(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,de(vt,t,e))}function vt(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function wt(e,t){for(var r=0,n=e.length;r=t.highWaterMark||t.ended))return nt("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?gt(this):lt(this),null;if(0===(e=ht(e,t))&&t.ended)return 0===t.length&>(this),null;var n,i=t.needReadable;return nt("need readable",i),(0===t.length||t.length-e0?_t(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&>(this)),null!==n&&this.emit("data",n),n},ot.prototype._read=function(e){this.emit("error",new Error("not implemented"))},ot.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e)}n.pipesCount+=1,nt("pipe count=%d opts=%j",n.pipesCount,t);var i=!t||!1!==t.end?a:l;function o(e){nt("onunpipe"),e===r&&l()}function a(){nt("onend"),e.end()}n.endEmitted?de(i):r.once("end",i),e.on("unpipe",o);var s=function(e){return function(){var t=e._readableState;nt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&e.listeners("data").length&&(t.flowing=!0,pt(e))}}(r);e.on("drain",s);var h=!1;function l(){nt("cleanup"),e.removeListener("close",d),e.removeListener("finish",p),e.removeListener("drain",s),e.removeListener("error",u),e.removeListener("unpipe",o),r.removeListener("end",a),r.removeListener("end",l),r.removeListener("data",c),h=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||s()}var f=!1;function c(t){nt("ondata"),f=!1,!1!==e.write(t)||f||((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==wt(n.pipes,e))&&!h&&(nt("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,f=!0),r.pause())}function u(t){var r;nt("onerror",t),_(),e.removeListener("error",u),0===(r="error",e.listeners(r).length)&&e.emit("error",t)}function d(){e.removeListener("finish",p),_()}function p(){nt("onfinish"),e.removeListener("close",d),_()}function _(){nt("unpipe"),r.unpipe(e)}return r.on("data",c),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",u),e.once("close",d),e.once("finish",p),e.emit("pipe",r),n.flowing||(nt("pipe resume"),r.resume()),e},ot.prototype.unpipe=function(e){var t=this._readableState;if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this),this);if(!e){var r=t.pipes,n=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},kt.prototype._write=function(e,t,r){r(new Error("not implemented"))},kt.prototype._writev=null,kt.prototype.end=function(e,t,r){var n=this._writableState;"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(e,t,r){t.ending=!0,Bt(e,t),r&&(t.finished?de(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r)},Be(Ct,ot);for(var Lt=Object.keys(kt.prototype),Tt=0;Tt=0;)e[t]=0}var Jt=0,Qt=1,er=2,tr=29,rr=256,nr=rr+1+tr,ir=30,or=19,ar=2*nr+1,sr=15,hr=16,lr=7,fr=256,cr=16,ur=17,dr=18,pr=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],_r=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],gr=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],vr=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],wr=new Array(2*(nr+2));$t(wr);var br=new Array(2*ir);$t(br);var yr=new Array(512);$t(yr);var mr=new Array(256);$t(mr);var kr=new Array(tr);$t(kr);var Er,Sr,xr,Rr=new Array(ir);function Ar(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}function Br(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function zr(e){return e<256?yr[e]:yr[256+(e>>>7)]}function Lr(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function Tr(e,t,r){e.bi_valid>hr-r?(e.bi_buf|=t<>hr-e.bi_valid,e.bi_valid+=r-hr):(e.bi_buf|=t<>>=1,r<<=1}while(--t>0);return r>>>1}function Dr(e,t,r){var n,i,o=new Array(sr+1),a=0;for(n=1;n<=sr;n++)o[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var s=e[2*i+1];0!==s&&(e[2*i]=Cr(o[s]++,s))}}function Ir(e){var t;for(t=0;t8?Lr(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function Or(e,t,r,n){var i=2*t,o=2*r;return e[i]>1;r>=1;r--)Ur(e,o,r);i=h;do{r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Ur(e,o,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,o[2*i]=o[2*r]+o[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,o[2*r+1]=o[2*n+1]=i,e.heap[1]=i++,Ur(e,o,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,o,a,s,h=t.dyn_tree,l=t.max_code,f=t.stat_desc.static_tree,c=t.stat_desc.has_stree,u=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,_=0;for(o=0;o<=sr;o++)e.bl_count[o]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;rp&&(o=p,_++),h[2*n+1]=o,n>l||(e.bl_count[o]++,a=0,n>=d&&(a=u[n-d]),s=h[2*n],e.opt_len+=s*(o+a),c&&(e.static_len+=s*(f[2*n+1]+a)));if(0!==_){do{for(o=p-1;0===e.bl_count[o];)o--;e.bl_count[o]--,e.bl_count[o+1]+=2,e.bl_count[p]--,_-=2}while(_>0);for(o=p;0!==o;o--)for(n=e.bl_count[o];0!==n;)(i=e.heap[--r])>l||(h[2*i+1]!==o&&(e.opt_len+=(o-h[2*i+1])*h[2*i],h[2*i+1]=o),n--)}}(e,t),Dr(o,l,e.bl_count)}function Nr(e,t,r){var n,i,o=-1,a=t[1],s=0,h=7,l=4;for(0===a&&(h=138,l=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=t[2*(n+1)+1],++s>=7;n=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}function Xr(e,t,r,n){var i,o,a=0;e.level>0?(e.strm.data_type===Gt&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return qt;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return Vt;for(t=32;t=3&&0===e.bl_tree[2*vr[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(o=e.static_len+3+7>>>3)<=i&&(i=o)):i=o=r+5,r+4<=i&&-1!==t?Yr(e,t,r,n):e.strategy===Xt||o===i?(Tr(e,(Qt<<1)+(n?1:0),3),Hr(e,wr,br)):(Tr(e,(er<<1)+(n?1:0),3),function(e,t,r,n){var i;for(Tr(e,t-257,5),Tr(e,r-1,5),Tr(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(mr[r]+rr+1)]++,e.dyn_dtree[2*zr(t)]++),e.last_lit===e.lit_bufsize-1}function Vr(e,t,r,n){for(var i=65535&e|0,o=e>>>16&65535|0,a=0;0!==r;){r-=a=r>2e3?2e3:r;do{o=o+(i=i+t[n++]|0)|0}while(--a);i%=65521,o%=65521}return i|o<<16|0}var Gr=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();function $r(e,t,r,n){var i=Gr,o=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}var Jr,Qr=0,en=1,tn=3,rn=4,nn=5,on=0,an=1,sn=-2,hn=-3,ln=-5,fn=-1,cn=1,un=2,dn=3,pn=4,_n=2,gn=8,vn=9,wn=286,bn=30,yn=19,mn=2*wn+1,kn=15,En=3,Sn=258,xn=Sn+En+1,Rn=32,An=42,Bn=69,zn=73,Ln=91,Tn=103,Mn=113,Cn=666,Dn=1,In=2,Pn=3,On=4,Un=3;function Hn(e,t){return e.msg=Nt[t],t}function Fn(e){return(e<<1)-(e>4?9:0)}function Nn(e){for(var t=e.length;--t>=0;)e[t]=0}function Zn(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(jt(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function jn(e,t){Xr(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Zn(e.strm)}function Wn(e,t){e.pending_buf[e.pending++]=t}function Yn(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function Kn(e,t){var r,n,i=e.max_chain_length,o=e.strstart,a=e.prev_length,s=e.nice_match,h=e.strstart>e.w_size-xn?e.strstart-(e.w_size-xn):0,l=e.window,f=e.w_mask,c=e.prev,u=e.strstart+Sn,d=l[o+a-1],p=l[o+a];e.prev_length>=e.good_match&&(i>>=2),s>e.lookahead&&(s=e.lookahead);do{if(l[(r=t)+a]===p&&l[r+a-1]===d&&l[r]===l[o]&&l[++r]===l[o+1]){o+=2,r++;do{}while(l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&oa){if(e.match_start=t,a=n,n>=s)break;d=l[o+a-1],p=l[o+a]}}}while((t=c[t&f])>h&&0!=--i);return a<=e.lookahead?a:e.lookahead}function Xn(e){var t,r,n,i,o,a,s,h,l,f,c=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=c+(c-xn)){jt(e.window,e.window,c,c,0),e.match_start-=c,e.strstart-=c,e.block_start-=c,t=r=e.hash_size;do{n=e.head[--t],e.head[t]=n>=c?n-c:0}while(--r);t=r=c;do{n=e.prev[--t],e.prev[t]=n>=c?n-c:0}while(--r);i+=c}if(0===e.strm.avail_in)break;if(a=e.strm,s=e.window,h=e.strstart+e.lookahead,l=i,f=void 0,(f=a.avail_in)>l&&(f=l),r=0===f?0:(a.avail_in-=f,jt(s,a.input,a.next_in,f,h),1===a.state.wrap?a.adler=Vr(a.adler,s,f,h):2===a.state.wrap&&(a.adler=$r(a.adler,s,f,h)),a.next_in+=f,a.total_in+=f,f),e.lookahead+=r,e.lookahead+e.insert>=En)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=(e.ins_h<=En&&(e.ins_h=(e.ins_h<=En)if(n=qr(e,e.strstart-e.match_start,e.match_length-En),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=En){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<=En&&(e.ins_h=(e.ins_h<4096)&&(e.match_length=En-1)),e.prev_length>=En&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-En,n=qr(e,e.strstart-1-e.prev_match,e.prev_length-En),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=i&&(e.ins_h=(e.ins_h<nn||t<0)return e?Hn(e,sn):sn;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||n.status===Cn&&t!==rn)return Hn(e,0===e.avail_out?ln:sn);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===An)if(2===n.wrap)e.adler=0,Wn(n,31),Wn(n,139),Wn(n,8),n.gzhead?(Wn(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Wn(n,255&n.gzhead.time),Wn(n,n.gzhead.time>>8&255),Wn(n,n.gzhead.time>>16&255),Wn(n,n.gzhead.time>>24&255),Wn(n,9===n.level?2:n.strategy>=un||n.level<2?4:0),Wn(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(Wn(n,255&n.gzhead.extra.length),Wn(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=$r(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Bn):(Wn(n,0),Wn(n,0),Wn(n,0),Wn(n,0),Wn(n,0),Wn(n,9===n.level?2:n.strategy>=un||n.level<2?4:0),Wn(n,Un),n.status=Mn);else{var a=gn+(n.w_bits-8<<4)<<8;a|=(n.strategy>=un||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=Rn),a+=31-a%31,n.status=Mn,Yn(n,a),0!==n.strstart&&(Yn(n,e.adler>>>16),Yn(n,65535&e.adler)),e.adler=1}if(n.status===Bn)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=$r(e.adler,n.pending_buf,n.pending-i,i)),Zn(e),i=n.pending,n.pending!==n.pending_buf_size));)Wn(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=$r(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=zn)}else n.status=zn;if(n.status===zn)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=$r(e.adler,n.pending_buf,n.pending-i,i)),Zn(e),i=n.pending,n.pending===n.pending_buf_size)){o=1;break}o=n.gzindexi&&(e.adler=$r(e.adler,n.pending_buf,n.pending-i,i)),0===o&&(n.gzindex=0,n.status=Ln)}else n.status=Ln;if(n.status===Ln)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=$r(e.adler,n.pending_buf,n.pending-i,i)),Zn(e),i=n.pending,n.pending===n.pending_buf_size)){o=1;break}o=n.gzindexi&&(e.adler=$r(e.adler,n.pending_buf,n.pending-i,i)),0===o&&(n.status=Tn)}else n.status=Tn;if(n.status===Tn&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&Zn(e),n.pending+2<=n.pending_buf_size&&(Wn(n,255&e.adler),Wn(n,e.adler>>8&255),e.adler=0,n.status=Mn)):n.status=Mn),0!==n.pending){if(Zn(e),0===e.avail_out)return n.last_flush=-1,on}else if(0===e.avail_in&&Fn(t)<=Fn(r)&&t!==rn)return Hn(e,ln);if(n.status===Cn&&0!==e.avail_in)return Hn(e,ln);if(0!==e.avail_in||0!==n.lookahead||t!==Qr&&n.status!==Cn){var s=n.strategy===un?function(e,t){for(var r;;){if(0===e.lookahead&&(Xn(e),0===e.lookahead)){if(t===Qr)return Dn;break}if(e.match_length=0,r=qr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(jn(e,!1),0===e.strm.avail_out))return Dn}return e.insert=0,t===rn?(jn(e,!0),0===e.strm.avail_out?Pn:On):e.last_lit&&(jn(e,!1),0===e.strm.avail_out)?Dn:In}(n,t):n.strategy===dn?function(e,t){for(var r,n,i,o,a=e.window;;){if(e.lookahead<=Sn){if(Xn(e),e.lookahead<=Sn&&t===Qr)return Dn;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=En&&e.strstart>0&&(n=a[i=e.strstart-1])===a[++i]&&n===a[++i]&&n===a[++i]){o=e.strstart+Sn;do{}while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&ie.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=En?(r=qr(e,1,e.match_length-En),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=qr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(jn(e,!1),0===e.strm.avail_out))return Dn}return e.insert=0,t===rn?(jn(e,!0),0===e.strm.avail_out?Pn:On):e.last_lit&&(jn(e,!1),0===e.strm.avail_out)?Dn:In}(n,t):Jr[n.level].func(n,t);if(s!==Pn&&s!==On||(n.status=Cn),s===Dn||s===Pn)return 0===e.avail_out&&(n.last_flush=-1),on;if(s===In&&(t===en?Kr(n):t!==nn&&(Yr(n,0,0,!1),t===tn&&(Nn(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),Zn(e),0===e.avail_out))return n.last_flush=-1,on}return t!==rn?on:n.wrap<=0?an:(2===n.wrap?(Wn(n,255&e.adler),Wn(n,e.adler>>8&255),Wn(n,e.adler>>16&255),Wn(n,e.adler>>24&255),Wn(n,255&e.total_in),Wn(n,e.total_in>>8&255),Wn(n,e.total_in>>16&255),Wn(n,e.total_in>>24&255)):(Yn(n,e.adler>>>16),Yn(n,65535&e.adler)),Zn(e),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?on:an)}Jr=[new Gn(0,0,0,0,function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Xn(e),0===e.lookahead&&t===Qr)return Dn;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,jn(e,!1),0===e.strm.avail_out))return Dn;if(e.strstart-e.block_start>=e.w_size-xn&&(jn(e,!1),0===e.strm.avail_out))return Dn}return e.insert=0,t===rn?(jn(e,!0),0===e.strm.avail_out?Pn:On):(e.strstart>e.block_start&&(jn(e,!1),e.strm.avail_out),Dn)}),new Gn(4,4,8,4,qn),new Gn(4,5,16,8,qn),new Gn(4,6,32,32,qn),new Gn(4,4,16,16,Vn),new Gn(8,16,32,32,Vn),new Gn(8,16,128,128,Vn),new Gn(8,32,128,256,Vn),new Gn(32,128,258,1024,Vn),new Gn(32,258,258,4096,Vn)];var ei=30,ti=12;function ri(e,t){var r,n,i,o,a,s,h,l,f,c,u,d,p,_,g,v,w,b,y,m,k,E,S,x,R;r=e.state,n=e.next_in,x=e.input,i=n+(e.avail_in-5),o=e.next_out,R=e.output,a=o-(t-e.avail_out),s=o+(e.avail_out-257),h=r.dmax,l=r.wsize,f=r.whave,c=r.wnext,u=r.window,d=r.hold,p=r.bits,_=r.lencode,g=r.distcode,v=(1<>>=y=b>>>24,p-=y,0===(y=b>>>16&255))R[o++]=65535&b;else{if(!(16&y)){if(0==(64&y)){b=_[(65535&b)+(d&(1<>>=y,p-=y),p<15&&(d+=x[n++]<>>=y=b>>>24,p-=y,!(16&(y=b>>>16&255))){if(0==(64&y)){b=g[(65535&b)+(d&(1<h){e.msg="invalid distance too far back",r.mode=ei;break e}if(d>>>=y,p-=y,k>(y=o-a)){if((y=k-y)>f&&r.sane){e.msg="invalid distance too far back",r.mode=ei;break e}if(E=0,S=u,0===c){if(E+=l-y,y2;)R[o++]=S[E++],R[o++]=S[E++],R[o++]=S[E++],m-=3;m&&(R[o++]=S[E++],m>1&&(R[o++]=S[E++]))}else{E=o-k;do{R[o++]=R[E++],R[o++]=R[E++],R[o++]=R[E++],m-=3}while(m>2);m&&(R[o++]=R[E++],m>1&&(R[o++]=R[E++]))}break}}break}}while(n>3,d&=(1<<(p-=m<<3))-1,e.next_in=n,e.next_out=o,e.avail_in=n=1&&0===L[m];m--);if(k>m&&(k=m),0===m)return i[o++]=20971520,i[o++]=20971520,s.bits=1,0;for(y=1;y0&&(e===ai||1!==m))return-1;for(T[1]=0,w=1;wii||e===hi&&R>oi)return 1;for(;;){p=w-S,a[b]d?(_=M[C+a[b]],g=B[z+a[b]]):(_=96,g=0),h=1<>S)+(l-=h)]=p<<24|_<<16|g|0}while(0!==l);for(h=1<>=1;if(0!==h?(A&=h-1,A+=h):A=0,b++,0==--L[w]){if(w===m)break;w=t[r+a[b]]}if(w>k&&(A&c)!==f){for(0===S&&(S=k),u+=y,x=1<<(E=w-S);E+Sii||e===hi&&R>oi)return 1;i[f=A&c]=k<<24|E<<16|u-o|0}}return 0!==A&&(i[u+A]=w-S<<24|64<<16|0),s.bits=k,0}var pi=0,_i=1,gi=2,vi=4,wi=5,bi=6,yi=0,mi=1,ki=2,Ei=-2,Si=-3,xi=-4,Ri=-5,Ai=8,Bi=1,zi=2,Li=3,Ti=4,Mi=5,Ci=6,Di=7,Ii=8,Pi=9,Oi=10,Ui=11,Hi=12,Fi=13,Ni=14,Zi=15,ji=16,Wi=17,Yi=18,Ki=19,Xi=20,qi=21,Vi=22,Gi=23,$i=24,Ji=25,Qi=26,eo=27,to=28,ro=29,no=30,io=31,oo=32,ao=852,so=592;function ho(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function lo(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Yt(320),this.work=new Yt(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function fo(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,function(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Bi,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Kt(ao),t.distcode=t.distdyn=new Kt(so),t.sane=1,t.back=-1,yi):Ei}(e)):Ei}function co(e,t){var r,n;return e?(n=new lo,e.state=n,n.window=null,(r=function(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Ei:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,fo(e))):Ei}(e,t))!==yi&&(e.state=null),r):Ei}var uo,po,_o=!0;function go(e){if(_o){var t;for(uo=new Kt(512),po=new Kt(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(di(_i,e.lens,0,288,uo,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;di(gi,e.lens,0,32,po,0,e.work,{bits:5}),_o=!1}e.lencode=uo,e.lenbits=9,e.distcode=po,e.distbits=5}function vo(e,t){var r,n,i,o,a,s,h,l,f,c,u,d,p,_,g,v,w,b,y,m,k,E,S,x,R=0,A=new Wt(4),B=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return Ei;(r=e.state).mode===Hi&&(r.mode=Fi),a=e.next_out,i=e.output,h=e.avail_out,o=e.next_in,n=e.input,s=e.avail_in,l=r.hold,f=r.bits,c=s,u=h,E=yi;e:for(;;)switch(r.mode){case Bi:if(0===r.wrap){r.mode=Fi;break}for(;f<16;){if(0===s)break e;s--,l+=n[o++]<>>8&255,r.check=$r(r.check,A,2,0),l=0,f=0,r.mode=zi;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&l)<<8)+(l>>8))%31){e.msg="incorrect header check",r.mode=no;break}if((15&l)!==Ai){e.msg="unknown compression method",r.mode=no;break}if(f-=4,k=8+(15&(l>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg="invalid window size",r.mode=no;break}r.dmax=1<>8&1),512&r.flags&&(A[0]=255&l,A[1]=l>>>8&255,r.check=$r(r.check,A,2,0)),l=0,f=0,r.mode=Li;case Li:for(;f<32;){if(0===s)break e;s--,l+=n[o++]<>>8&255,A[2]=l>>>16&255,A[3]=l>>>24&255,r.check=$r(r.check,A,4,0)),l=0,f=0,r.mode=Ti;case Ti:for(;f<16;){if(0===s)break e;s--,l+=n[o++]<>8),512&r.flags&&(A[0]=255&l,A[1]=l>>>8&255,r.check=$r(r.check,A,2,0)),l=0,f=0,r.mode=Mi;case Mi:if(1024&r.flags){for(;f<16;){if(0===s)break e;s--,l+=n[o++]<>>8&255,r.check=$r(r.check,A,2,0)),l=0,f=0}else r.head&&(r.head.extra=null);r.mode=Ci;case Ci:if(1024&r.flags&&((d=r.length)>s&&(d=s),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),jt(r.head.extra,n,o,d,k)),512&r.flags&&(r.check=$r(r.check,n,d,o)),s-=d,o+=d,r.length-=d),r.length))break e;r.length=0,r.mode=Di;case Di:if(2048&r.flags){if(0===s)break e;d=0;do{k=n[o+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k))}while(k&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=Hi;break;case Oi:for(;f<32;){if(0===s)break e;s--,l+=n[o++]<>>=7&f,f-=7&f,r.mode=eo;break}for(;f<3;){if(0===s)break e;s--,l+=n[o++]<>>=1)){case 0:r.mode=Ni;break;case 1:if(go(r),r.mode=Xi,t===bi){l>>>=2,f-=2;break e}break;case 2:r.mode=Wi;break;case 3:e.msg="invalid block type",r.mode=no}l>>>=2,f-=2;break;case Ni:for(l>>>=7&f,f-=7&f;f<32;){if(0===s)break e;s--,l+=n[o++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=no;break}if(r.length=65535&l,l=0,f=0,r.mode=Zi,t===bi)break e;case Zi:r.mode=ji;case ji:if(d=r.length){if(d>s&&(d=s),d>h&&(d=h),0===d)break e;jt(i,n,o,d,a),s-=d,o+=d,h-=d,a+=d,r.length-=d;break}r.mode=Hi;break;case Wi:for(;f<14;){if(0===s)break e;s--,l+=n[o++]<>>=5,f-=5,r.ndist=1+(31&l),l>>>=5,f-=5,r.ncode=4+(15&l),l>>>=4,f-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=no;break}r.have=0,r.mode=Yi;case Yi:for(;r.have>>=3,f-=3}for(;r.have<19;)r.lens[B[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},E=di(pi,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,E){e.msg="invalid code lengths set",r.mode=no;break}r.have=0,r.mode=Ki;case Ki:for(;r.have>>16&255,w=65535&R,!((g=R>>>24)<=f);){if(0===s)break e;s--,l+=n[o++]<>>=g,f-=g,r.lens[r.have++]=w;else{if(16===w){for(x=g+2;f>>=g,f-=g,0===r.have){e.msg="invalid bit length repeat",r.mode=no;break}k=r.lens[r.have-1],d=3+(3&l),l>>>=2,f-=2}else if(17===w){for(x=g+3;f>>=g)),l>>>=3,f-=3}else{for(x=g+7;f>>=g)),l>>>=7,f-=7}if(r.have+d>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=no;break}for(;d--;)r.lens[r.have++]=k}}if(r.mode===no)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=no;break}if(r.lenbits=9,S={bits:r.lenbits},E=di(_i,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,E){e.msg="invalid literal/lengths set",r.mode=no;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},E=di(gi,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,E){e.msg="invalid distances set",r.mode=no;break}if(r.mode=Xi,t===bi)break e;case Xi:r.mode=qi;case qi:if(s>=6&&h>=258){e.next_out=a,e.avail_out=h,e.next_in=o,e.avail_in=s,r.hold=l,r.bits=f,ri(e,u),a=e.next_out,i=e.output,h=e.avail_out,o=e.next_in,n=e.input,s=e.avail_in,l=r.hold,f=r.bits,r.mode===Hi&&(r.back=-1);break}for(r.back=0;v=(R=r.lencode[l&(1<>>16&255,w=65535&R,!((g=R>>>24)<=f);){if(0===s)break e;s--,l+=n[o++]<>b)])>>>16&255,w=65535&R,!(b+(g=R>>>24)<=f);){if(0===s)break e;s--,l+=n[o++]<>>=b,f-=b,r.back+=b}if(l>>>=g,f-=g,r.back+=g,r.length=w,0===v){r.mode=Qi;break}if(32&v){r.back=-1,r.mode=Hi;break}if(64&v){e.msg="invalid literal/length code",r.mode=no;break}r.extra=15&v,r.mode=Vi;case Vi:if(r.extra){for(x=r.extra;f>>=r.extra,f-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=Gi;case Gi:for(;v=(R=r.distcode[l&(1<>>16&255,w=65535&R,!((g=R>>>24)<=f);){if(0===s)break e;s--,l+=n[o++]<>b)])>>>16&255,w=65535&R,!(b+(g=R>>>24)<=f);){if(0===s)break e;s--,l+=n[o++]<>>=b,f-=b,r.back+=b}if(l>>>=g,f-=g,r.back+=g,64&v){e.msg="invalid distance code",r.mode=no;break}r.offset=w,r.extra=15&v,r.mode=$i;case $i:if(r.extra){for(x=r.extra;f>>=r.extra,f-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=no;break}r.mode=Ji;case Ji:if(0===h)break e;if(d=u-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=no;break}d>r.wnext?(d-=r.wnext,p=r.wsize-d):p=r.wnext-d,d>r.length&&(d=r.length),_=r.window}else _=i,p=a-r.offset,d=r.length;d>h&&(d=h),h-=d,r.length-=d;do{i[a++]=_[p++]}while(--d);0===r.length&&(r.mode=qi);break;case Qi:if(0===h)break e;i[a++]=r.length,h--,r.mode=qi;break;case eo:if(r.wrap){for(;f<32;){if(0===s)break e;s--,l|=n[o++]<=o.wsize?(jt(o.window,t,r-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):((i=o.wsize-o.wnext)>n&&(i=n),jt(o.window,t,r-n,i,o.wnext),(n-=i)?(jt(o.window,t,r-n,n,0),o.wnext=n,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whaveyo)throw new TypeError("Bad argument");this.mode=e,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}function ko(e,t){for(var r=0;r15&&(a=2,n-=16),i<1||i>vn||r!==gn||n<8||n>15||t<0||t>9||o<0||o>pn)return Hn(e,sn);8===n&&(n=9);var s=new $n;return e.state=s,s.strm=e,s.wrap=a,s.gzhead=null,s.w_bits=n,s.w_size=1<So.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+e.chunkSize);if(e.windowBits&&(e.windowBitsSo.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+e.windowBits);if(e.level&&(e.levelSo.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+e.level);if(e.memLevel&&(e.memLevelSo.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+e.memLevel);if(e.strategy&&e.strategy!=So.Z_FILTERED&&e.strategy!=So.Z_HUFFMAN_ONLY&&e.strategy!=So.Z_RLE&&e.strategy!=So.Z_FIXED&&e.strategy!=So.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+e.strategy);if(e.dictionary&&!$(e.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new So.Zlib(t);var r=this;this._hadError=!1,this._binding.onerror=function(e,t){r._binding=null,r._hadError=!0;var n=new Error(e);n.errno=t,n.code=So.codes[t],r.emit("error",n)};var n=So.Z_DEFAULT_COMPRESSION;"number"==typeof e.level&&(n=e.level);var i=So.Z_DEFAULT_STRATEGY;"number"==typeof e.strategy&&(i=e.strategy),this._binding.init(e.windowBits||So.Z_DEFAULT_WINDOWBITS,n,e.memLevel||So.Z_DEFAULT_MEMLEVEL,i,e.dictionary),this._buffer=new p(this._chunkSize),this._offset=0,this._closed=!1,this._level=n,this._strategy=i,this.once("end",this.close)}Object.keys(xo).forEach(function(e){xo[xo[e]]=e}),Be(Io,Ot),Io.prototype.params=function(e,t,r){if(eSo.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+e);if(t!=So.Z_FILTERED&&t!=So.Z_HUFFMAN_ONLY&&t!=So.Z_RLE&&t!=So.Z_FIXED&&t!=So.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+t);if(this._level!==e||this._strategy!==t){var n=this;this.flush(So.Z_SYNC_FLUSH,function(){n._binding.params(e,t),n._hadError||(n._level=e,n._strategy=t,r&&r())})}else de(r)},Io.prototype.reset=function(){return this._binding.reset()},Io.prototype._flush=function(e){this._transform(new p(0),"",e)},Io.prototype.flush=function(e,t){var r=this._writableState;if(("function"==typeof e||void 0===e&&!t)&&(t=e,e=So.Z_FULL_FLUSH),r.ended)t&&de(t);else if(r.ending)t&&this.once("end",t);else if(r.needDrain){var n=this;this.once("drain",function(){n.flush(t)})}else this._flushFlag=e,this.write(new p(0),"",t)},Io.prototype.close=function(e){if(e&&de(e),!this._closed){this._closed=!0,this._binding.close();var t=this;de(function(){t.emit("close")})}},Io.prototype._transform=function(e,t,r){var n,i=this._writableState,o=(i.ending||i.ended)&&(!e||i.length===e.length);if(null===!e&&!$(e))return r(new Error("invalid input"));o?n=So.Z_FINISH:(n=this._flushFlag,e.length>=i.length&&(this._flushFlag=this._opts.flush||So.Z_NO_FLUSH)),this._processChunk(e,n,r)},Io.prototype._processChunk=function(e,t,r){var n=e&&e.length,i=this._chunkSize-this._offset,o=0,a=this,s="function"==typeof r;if(!s){var h,l=[],f=0;this.on("error",function(e){h=e});do{var c=this._binding.writeSync(t,e,o,n,this._buffer,this._offset,i)}while(!this._hadError&&_(c[0],c[1]));if(this._hadError)throw h;var u=p.concat(l,f);return this.close(),u}var d=this._binding.write(t,e,o,n,this._buffer,this._offset,i);function _(h,c){if(!a._hadError){var u=i-c;if(function(e,t){if(!e)throw new Error(t)}(u>=0,"have should not go down"),u>0){var d=a._buffer.slice(a._offset,a._offset+u);a._offset+=u,s?a.push(d):(l.push(d),f+=d.length)}if((0===c||a._offset>=a._chunkSize)&&(i=a._chunkSize,a._offset=0,a._buffer=new p(a._chunkSize)),0===c){if(o+=n-h,n=h,!s)return!0;var g=a._binding.write(t,e,o,n,a._buffer,a._offset,a._chunkSize);return g.callback=_,void(g.buffer=e)}if(!s)return!1;r()}}d.buffer=e,d.callback=_},Be(Bo,Io),Be(zo,Io),Be(Lo,Io),Be(To,Io),Be(Mo,Io),Be(Co,Io),Be(Do,Io);var Po={codes:xo,createDeflate:function(e){return new Bo(e)},createInflate:function(e){return new zo(e)},createDeflateRaw:function(e){return new Mo(e)},createInflateRaw:function(e){return new Co(e)},createGzip:function(e){return new Lo(e)},createGunzip:function(e){return new To(e)},createUnzip:function(e){return new Do(e)},deflate:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new Bo(t),e,r)},deflateSync:function(e,t){return Ao(new Bo(t),e)},gzip:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new Lo(t),e,r)},gzipSync:function(e,t){return Ao(new Lo(t),e)},deflateRaw:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new Mo(t),e,r)},deflateRawSync:function(e,t){return Ao(new Mo(t),e)},unzip:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new Do(t),e,r)},unzipSync:function(e,t){return Ao(new Do(t),e)},inflate:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new zo(t),e,r)},inflateSync:function(e,t){return Ao(new zo(t),e)},gunzip:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new To(t),e,r)},gunzipSync:function(e,t){return Ao(new To(t),e)},inflateRaw:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new Co(t),e,r)},inflateRawSync:function(e,t){return Ao(new Co(t),e)},Deflate:Bo,Inflate:zo,Gzip:Lo,Gunzip:To,DeflateRaw:Mo,InflateRaw:Co,Unzip:Do,Zlib:Io};export default class{constructor(e,t,r){this.SDKAPPID=e,this.EXPIRETIME=r,this.PRIVATEKEY=t}genTestUserSig(e){return this._isNumber(this.SDKAPPID)?this._isString(this.PRIVATEKEY)?this._isString(e)?this._isNumber(this.EXPIRETIME)?(console.log("sdkAppID="+this.SDKAPPID+" key="+this.PRIVATEKEY+" userID="+e+" expire="+this.EXPIRETIME),this.genSigWithUserbuf(e,this.EXPIRETIME,null)):(console.error("expireTime must be a number"),""):(console.error("userID must be a string"),""):(console.error("privateKey must be a string"),""):(console.error("sdkAppID must be a number"),"")}newBuffer(e,t){return p.from?p.from(e,t):new p(e,t)}unescape(e){return e.replace(/_/g,"=").replace(/\-/g,"/").replace(/\*/g,"+")}escape(e){return e.replace(/\+/g,"*").replace(/\//g,"-").replace(/=/g,"_")}encode(e){return this.escape(this.newBuffer(e).toString("base64"))}decode(e){return this.newBuffer(this.unescape(e),"base64")}base64encode(e){return this.newBuffer(e).toString("base64")}base64decode(e){return this.newBuffer(e,"base64").toString()}_hmacsha256(e,t,r,n){let i="TLS.identifier:"+e+"\n";i+="TLS.sdkappid:"+this.SDKAPPID+"\n",i+="TLS.time:"+t+"\n",i+="TLS.expire:"+r+"\n",null!=n&&(i+="TLS.userbuf:"+n+"\n");let o=te.HmacSHA256(i,this.PRIVATEKEY);return te.enc.Base64.stringify(o)}_utc(){return Math.round(Date.now()/1e3)}_isNumber(e){return null!==e&&("number"==typeof e&&!isNaN(e-0)||"object"==typeof e&&e.constructor===Number)}_isString(e){return"string"==typeof e}genSigWithUserbuf(e,t,r){let n=this._utc(),i={"TLS.ver":"2.0","TLS.identifier":e,"TLS.sdkappid":this.SDKAPPID,"TLS.time":n,"TLS.expire":t},o="";if(null!=r){let a=this.base64encode(r);i["TLS.userbuf"]=a,o=this._hmacsha256(e,n,t,a)}else o=this._hmacsha256(e,n,t,null);i["TLS.sig"]=o;let a=JSON.stringify(i),s=Po.deflateSync(this.newBuffer(a)).toString("base64"),h=this.escape(s);return console.log("ret="+h),h}validate(e){let t=this.decode(e),r=Po.inflateSync(t);console.log("validate ret="+r)}} diff --git a/filters/filter.wxs b/filters/filter.wxs new file mode 100644 index 0000000..324cce7 --- /dev/null +++ b/filters/filter.wxs @@ -0,0 +1,176 @@ +function formatDate(value) { + if (!value) return value; + var timestring = value.toString(); + var index = timestring.lastIndexOf(":"); + return timestring.substring(0, index); +}; + +function formatDay(value) { + if (!value) return value; + var timestring = value.toString(); + console.log(timestring) + return timestring.split(" ")[0] +}; + +function formatNumber(value) { + if (!value) { + return 0 + } else if (value > 99) { + return '99+' + } else { + return value; + } +}; + +function formatMoney(value) { + if (!value) { + return 0 + } else { + return Number(value); + } +}; +function formateText(value){ + if(!value){ + return {} + }else{ + return JSON.parse(value) + } +} + +function countDown(value) { + var now = getDate().getTime(); + + var reg = getRegExp("-", "g"); + var endTime=value.replace(reg, '/'); + var end = getDate(endTime).getTime() + 30 * 60 * 1000; + var time = end - now > 0 ? end - now : 0; + + return Number(time) +}; +function formatYear(value){ + if(!value){ + return 0 + }else if(value<=365){ + return value+ "天" + }else{ + return Math.floor(value/365).toFixed(0)+"年" + } +}; +function transforDay(time, type) { + if (time == null || type == '') { + return '' + } + if (arguments.length === 0) { + return null + } + var time_cur=0 + if(typeof time=="string"){ + var reg = getRegExp("-", "g"); + var timeS=time.replace(reg, '/'); + time_cur = getDate(timeS).getTime(); + }else{ + time_cur=time*1000 + } + var date = getDate(time_cur);//在wxs中不能使用new Date()来处理日期 + console.log("date", date); + var y = date.getFullYear(); + var m = addZero(date.getMonth() + 1); + var d = addZero(date.getDate()); + var h =addZero(date.getHours()); + var i = addZero(date.getMinutes()); + var s =addZero(date.getSeconds()); + var a = addZero(date.getDay()); + var time_str = ""; + if (type == 'month') { + time_str = y + '-' + m; + }else if(type=='day'){ + time_str = m + '-' + d; + } else if(type=='HM'){ + time_str =h + ':' + s; + }else if (type == 'date') { + time_str = y + '-' + m + '-' + d; + } else if(type == 'dateminute'){ + time_str = y + '-' + m + '-' + d + ' ' + h + ':' + i + }else if (type == 'datetime') { + time_str = y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s; + } else if (type == 'onlyMonth') { + time_str = m; + } else if (type == 'onlyYear') { + time_str = y; + } + return time_str +}; +function addZero(n) { + n = n.toString() + return n[1] ? n : '0' + n +}; +function toS(value){ + return JSON.stringify(value); +}; +function numberTOstring(value){ + if(value==null) return null; + return value.toString(); +}; +function customString(arr,id){ + if(arr.length>0){ + return arr[id].value; + }else{ + return "" + } +}; +function formatReply(value){ + if(!value){ + return 0; + }else{ + if(value/60<=1){ + return 1 + }else{ + return Math.ceil(value/60) + } + + } + +}; + +function formatInquiryType(arr){ + var a='3'; + if(arr){ + for (var i = 0; i < arr.length; ++i) { + if(arr[i].is_enable==1 && arr[i].inquiry_type==1){ + a='2' + }; + if(arr[i].is_enable==1 && arr[i].inquiry_type==3){ + return '1' + }; + } + + } + return a +}; +function formatChufang(arr){ + var flag=false + if(arr){ + for (var i = 0; i < arr.length; ++i) { + if(arr[i].is_enable==1 && arr[i].inquiry_type==4){ + return true + }; + } + } + return flag +} +module.exports = { + formatChufang:formatChufang, + formatInquiryType:formatInquiryType, + formatDate: formatDate, + formatNumber: formatNumber, + formatDay: formatDay, + countDown: countDown, + formatMoney:formatMoney, + formatYear:formatYear, + transforDay:transforDay, + formateText:formateText, + toS:toS, + customString:customString, + numberTOstring:numberTOstring, + formatReply:formatReply +}; \ No newline at end of file diff --git a/lib/aegis.js b/lib/aegis.js new file mode 100644 index 0000000..996edcc --- /dev/null +++ b/lib/aegis.js @@ -0,0 +1,10 @@ +/** + * ==================================================================== + * @tencent/aegis-mp-sdk@1.34.75 (c) 2021 Tencent Application Monitor. + * Author pumpkincai. + * Last Release Time Tue Dec 07 2021 14:47:12 GMT+0800 (GMT+08:00). + * Released under the MIT License. + * Thanks for supporting TAM & Aegis! + * ==================================================================== + **/ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Aegis=t()}(this,function(){"use strict";var i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function e(e,t){function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return(a=Object.assign||function(e){for(var t,n=1,i=arguments.length;n=n)return o=A(o),t(o.splice(0,o.length)),void(i&&clearTimeout(i));i&&clearTimeout(i),i=setTimeout(function(){i=null,0<(o=A(o)).length&&t(o.splice(0,o.length))},r.delay)}}function O(e,t){return Array.isArray(e)?t(e.map(function(e){return a(a({},e),{msg:"string"==typeof e.msg?e.msg:[].concat(e.msg).map(b).join(" ")})})):t(a(a({},e),{msg:"string"==typeof e.msg?e.msg:b(e.msg)}))}function R(r,s){return function(e,t){var n=Array.isArray(e),i=n?e:[e];r.lifeCycle.emit("beforeRequest",e);var o=r.config.beforeRequest;(i="function"==typeof o?i.map(function(t){try{var e=o({logs:t,logType:s});return(null==e?void 0:e.logType)===s&&null!=e&&e.logs?e.logs:!1!==e&&t}catch(e){return t}}).filter(function(e){return!1!==e}):i).length&&(i=function(e,t){if(!Array.isArray(e)||e.length<=1)return e;var n=[],i=[];return!(i="string"==typeof t?[t]:t)||i.length<=0||(i.forEach(function(t){e.forEach(function(e){null!=e&&e[t]&&n.push(t)})}),0l){for(var t=e.split("\n"),n="",i=t.length-1;0<=i&&!(t[i]&&(n=t[i]+"\n"+n).length>l);i--);s.writeFile({filePath:a,data:n,success:r})}else s.appendFile({data:o,filePath:a,encoding:"utf8",success:r,fail:function(e){console.error(e)}})}})},re),V=new D({name:"device",onNewAegis:function(l){return e=this,u=function(){return n=this,i=function(e){return this.setSystemInfo(l),this.refreshNetwork(l),this.setNetworkChange(l),[2]},a={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},t={next:e(0),throw:e(1),return:e(2)},"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function e(t){return function(e){return function(t){if(o)throw new TypeError("Generator is already executing.");for(;a;)try{if(o=1,r&&(s=2&t[0]?r.return:t[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,t[1])).done)return s;switch(r=0,(t=s?[2&t[0],s.value]:t)[0]){case 0:case 1:s=t;break;case 4:return a.label++,{value:t[1],done:!1};case 5:a.label++,r=t[1],t=[0];continue;case 7:t=a.ops.pop(),a.trys.pop();continue;default:if(!((s=0<(s=a.trys).length&&s[s.length-1])||6!==t[0]&&2!==t[0])){a=0;continue}if(3===t[0]&&(!s||t[1]>s[0]&&t[1]n))}))}),(r=this.lifeCycle.emit,c=this.config,function(e,t){var n=c.logCreated;if("function"!=typeof n)return r("beforeWrite",e),t(e);e=e.filter(function(e){return!1!==n(e)});return r("beforeWrite",e),t(e)}),(i=this,setTimeout(function(){var e=i.config.pvUrl,n=void 0===e?"":e;n&&i.sendPipeline([function(e,t){t({url:n,type:m.PV,fail:function(e){"403 forbidden"===e&&i.destroy()}})}],m.PV)(null)},100),function(e,t){t(e)}),(o=l=a=!1,u=[],(s=this).lifeCycle.on("onConfigChange",function(){n&&clearTimeout(n),n=setTimeout(function(){var e,n;!o&&s.config&&(o=!0,e=s.config.whiteListUrl,(n=void 0===e?"":e)&&s.sendPipeline([function(e,t){t({url:n,type:m.WHITE_LIST,success:function(e){l=!0;try{var t=e.data||JSON.parse(e),n=t.retcode,i=t.result,o=void 0===i?{}:i;if(0===n){if(a=o.is_in_white_list,s.isWhiteList=a,o.shutdown)return void s.destroy();0<=o.rate&&o.rate<=1&&(s.config.random=o.rate,s.isGetSample=!1)}s.isWhiteList&&u.length?_(s)(u.splice(0),function(){}):!s.isWhiteList&&u.length&&(u.length=0);var r=s.config.onWhitelist;"function"==typeof r&&r(a)}catch(e){}},fail:function(e){"403 forbidden"===e&&s.destroy(),l=!0}})}],m.WHITE_LIST)(null),o=!1)},s.config.uin?50:500)}),s.lifeCycle.on("destroy",function(){u.length=0}),function(e,t){var n;a||null!==(n=null===(n=s.config)||void 0===n?void 0:n.api)&&void 0!==n&&n.reportRequst?t(e.concat(u.splice(0)).map(function(e){return I(e),e})):(e=e.filter(function(e){return e.level!==g.INFO&&e.level!==g.API_RESPONSE?(I(e),!0):(l||(u.push(e),200<=u.length&&(u.length=200)),!1)})).length&&t(e)}),function(e,t){var n=JSON.parse(JSON.stringify(e));d.lifeCycle.emit("beforeReport",n);var i=d.config.beforeReport;(e="function"==typeof i?e.filter(function(e){return!1!==i(e)}):e).length&&t(e)},_(this)]),this.eventPipeline=S([w(this,5),function(e){d.sendPipeline([function(e,t){var n=e.map(function(e){return{name:e.name,ext1:e.ext1||d.config.ext1||"",ext2:e.ext2||d.config.ext2||"",ext3:e.ext3||d.config.ext3||""}});t({url:d.config.eventUrl+"?payload="+encodeURIComponent(JSON.stringify(n)),type:m.EVENT,log:e,fail:function(e){"403 forbidden"===e&&d.destroy()}})}],m.EVENT)(e)}]),this.timeMap={},this.customTimePipeline=S([w(this,5),function(e){return d.sendPipeline([function(e,t){t({url:d.config.customTimeUrl+"?payload="+encodeURIComponent(JSON.stringify({custom:e})),type:m.CUSTOM,log:e,fail:function(e){"403 forbidden"===e&&d.destroy()}})}],m.CUSTOM)(e)}]),this.config=(t=this.config,void 0===(e=e.hostUrl)&&(e="https://aegis.qq.com"),t.url=t.url||e+"/collect",t.offlineUrl=t.offlineUrl||e+"/offline",t.whiteListUrl=t.whiteListUrl||e+"/collect/whitelist",t.pvUrl=t.pvUrl||e+"/collect/pv",t.eventUrl=t.eventUrl||e+"/collect/events",t.speedUrl=t.speedUrl||e+"/speed",t.customTimeUrl=t.customTimeUrl||e+"/speed/custom",t.performanceUrl=t.performanceUrl||e+"/speed/performance",t.webVitalsUrl=t.webVitalsUrl||e+"/speed/webvitals",t),ae.instances.push(this)}return W.use(ee),W.use(F),W.use(G),W.use($),W.use(D),W.use(V),W}); diff --git a/lib/tim-profanity-filter-plugin.js b/lib/tim-profanity-filter-plugin.js new file mode 100644 index 0000000..1fdad73 --- /dev/null +++ b/lib/tim-profanity-filter-plugin.js @@ -0,0 +1,15 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).TIMProfanityFilterPlugin=e()}(this,(function(){function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,i=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,a=!0,c=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){c=!0,s=t},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw s}}}}var c=function(){for(var t=" \t\r\n~!@#$%^&*()_+-=【】、{}|;':\",。、《》?αβγδεζηθικλμνξοπρστυφχψωΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ。,、;:?!…—·ˉ¨‘’“”々~‖∶"'`|〃〔〕〈〉《》「」『』.〖〗【】()[]{}ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩①②③④⑤⑥⑦⑧⑨⑩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇≈≡≠=≤≥<>≮≯∷±+-×÷/∫∮∝∞∧∨∑∏∪∩∈∵∴⊥∥∠⌒⊙≌∽√§№☆★○●◎◇◆□℃‰€■△▲※→←↑↓〓¤°#&@\︿_ ̄―♂♀┌┍┎┐┑┒┓─┄┈├┝┞┟┠┡┢┣│┆┊┬┭┮┯┰┱┲┳┼┽┾┿╀╁╂╃└┕┖┗┘┙┚┛━┅┉┤┥┦┧┨┩┪┫┃┇┋┴┵┶┷┸┹┺┻╋╊╉╈╇╆╅╄",e=new Map,r=0,i=t.length;r1&&(a+=h),f){if(o=!0,!r)break;var d=this._map.get(l)||"*";n=n.replace(new RegExp(l,"g"),d)}}return{isMatched:o,modifiedText:n}}},{key:"reset",value:function(){this._trieTree={},this._map=null}}]),e}(),l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var f={},u=function(t,e){return t(e={exports:{}},e.exports),e.exports}((function(t,e){var r,i,n,o,s,a;t.exports=(a=a||function(t,e){var r;if("undefined"!=typeof window&&window.crypto&&(r=window.crypto),!r&&"undefined"!=typeof window&&window.msCrypto&&(r=window.msCrypto),!r&&void 0!==l&&l.crypto&&(r=l.crypto),!r)try{r=f}catch(v){}var i=function(){if(r){if("function"==typeof r.getRandomValues)try{return r.getRandomValues(new Uint32Array(1))[0]}catch(v){}if("function"==typeof r.randomBytes)try{return r.randomBytes(4).readInt32LE()}catch(v){}}throw new Error("Native crypto module could not be used to get secure random number.")},n=Object.create||function(){function t(){}return function(e){var r;return t.prototype=e,r=new t,t.prototype=null,r}}(),o={},s=o.lib={},a=s.Base={extend:function(t){var e=n(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},c=s.WordArray=a.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||u).stringify(this)},concat:function(t){var e=this.words,r=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]>>>24-o%4*8&255;e[i+o>>>2]|=s<<24-(i+o)%4*8}else for(o=0;o>>2]=r[o>>>2];return this.sigBytes+=n,this},clamp:function(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=t.ceil(r/4)},clone:function(){var t=a.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],r=0;r>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new c.init(r,e/2)}},d=h.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new c.init(r,e)}},p=h.Utf8={stringify:function(t){try{return decodeURIComponent(escape(d.stringify(t)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(t){return d.parse(unescape(encodeURIComponent(t)))}},_=s.BufferedBlockAlgorithm=a.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=p.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var r,i=this._data,n=i.words,o=i.sigBytes,s=this.blockSize,a=o/(4*s),h=(a=e?t.ceil(a):t.max((0|a)-this._minBufferSize,0))*s,l=t.min(4*h,o);if(h){for(var f=0;f>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,a=0;a<4&&o+.75*a>>6*(3-a)&63));var c=i.charAt(64);if(c)for(;n.length%4;)n.push(c);return n.join("")},parse:function(t){var e=t.length,r=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var n=0;n>>6-o%4*2,h=a|c;i[n>>>2]|=h<<24-n%4*8,n++}return s.create(i,n)}(t,e,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},function(t){var e=a,r=e.lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[];!function(){for(var e=0;e<64;e++)s[e]=4294967296*t.abs(t.sin(e+1))|0}();var c=o.MD5=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o=this._hash.words,a=t[e+0],c=t[e+1],d=t[e+2],p=t[e+3],_=t[e+4],y=t[e+5],v=t[e+6],g=t[e+7],w=t[e+8],B=t[e+9],k=t[e+10],m=t[e+11],b=t[e+12],x=t[e+13],S=t[e+14],A=t[e+15],H=o[0],M=o[1],z=o[2],C=o[3];H=h(H,M,z,C,a,7,s[0]),C=h(C,H,M,z,c,12,s[1]),z=h(z,C,H,M,d,17,s[2]),M=h(M,z,C,H,p,22,s[3]),H=h(H,M,z,C,_,7,s[4]),C=h(C,H,M,z,y,12,s[5]),z=h(z,C,H,M,v,17,s[6]),M=h(M,z,C,H,g,22,s[7]),H=h(H,M,z,C,w,7,s[8]),C=h(C,H,M,z,B,12,s[9]),z=h(z,C,H,M,k,17,s[10]),M=h(M,z,C,H,m,22,s[11]),H=h(H,M,z,C,b,7,s[12]),C=h(C,H,M,z,x,12,s[13]),z=h(z,C,H,M,S,17,s[14]),H=l(H,M=h(M,z,C,H,A,22,s[15]),z,C,c,5,s[16]),C=l(C,H,M,z,v,9,s[17]),z=l(z,C,H,M,m,14,s[18]),M=l(M,z,C,H,a,20,s[19]),H=l(H,M,z,C,y,5,s[20]),C=l(C,H,M,z,k,9,s[21]),z=l(z,C,H,M,A,14,s[22]),M=l(M,z,C,H,_,20,s[23]),H=l(H,M,z,C,B,5,s[24]),C=l(C,H,M,z,S,9,s[25]),z=l(z,C,H,M,p,14,s[26]),M=l(M,z,C,H,w,20,s[27]),H=l(H,M,z,C,x,5,s[28]),C=l(C,H,M,z,d,9,s[29]),z=l(z,C,H,M,g,14,s[30]),H=f(H,M=l(M,z,C,H,b,20,s[31]),z,C,y,4,s[32]),C=f(C,H,M,z,w,11,s[33]),z=f(z,C,H,M,m,16,s[34]),M=f(M,z,C,H,S,23,s[35]),H=f(H,M,z,C,c,4,s[36]),C=f(C,H,M,z,_,11,s[37]),z=f(z,C,H,M,g,16,s[38]),M=f(M,z,C,H,k,23,s[39]),H=f(H,M,z,C,x,4,s[40]),C=f(C,H,M,z,a,11,s[41]),z=f(z,C,H,M,p,16,s[42]),M=f(M,z,C,H,v,23,s[43]),H=f(H,M,z,C,B,4,s[44]),C=f(C,H,M,z,b,11,s[45]),z=f(z,C,H,M,A,16,s[46]),H=u(H,M=f(M,z,C,H,d,23,s[47]),z,C,a,6,s[48]),C=u(C,H,M,z,g,10,s[49]),z=u(z,C,H,M,S,15,s[50]),M=u(M,z,C,H,y,21,s[51]),H=u(H,M,z,C,b,6,s[52]),C=u(C,H,M,z,p,10,s[53]),z=u(z,C,H,M,k,15,s[54]),M=u(M,z,C,H,c,21,s[55]),H=u(H,M,z,C,w,6,s[56]),C=u(C,H,M,z,A,10,s[57]),z=u(z,C,H,M,v,15,s[58]),M=u(M,z,C,H,x,21,s[59]),H=u(H,M,z,C,_,6,s[60]),C=u(C,H,M,z,m,10,s[61]),z=u(z,C,H,M,d,15,s[62]),M=u(M,z,C,H,B,21,s[63]),o[0]=o[0]+H|0,o[1]=o[1]+M|0,o[2]=o[2]+z|0,o[3]=o[3]+C|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;r[n>>>5]|=128<<24-n%32;var o=t.floor(i/4294967296),s=i;r[15+(n+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(n+64>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),e.sigBytes=4*(r.length+1),this._process();for(var a=this._hash,c=a.words,h=0;h<4;h++){var l=c[h];c[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return a},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});function h(t,e,r,i,n,o,s){var a=t+(e&r|~e&i)+n+s;return(a<>>32-o)+e}function l(t,e,r,i,n,o,s){var a=t+(e&i|r&~i)+n+s;return(a<>>32-o)+e}function f(t,e,r,i,n,o,s){var a=t+(e^r^i)+n+s;return(a<>>32-o)+e}function u(t,e,r,i,n,o,s){var a=t+(r^(e|~i))+n+s;return(a<>>32-o)+e}e.MD5=n._createHelper(c),e.HmacMD5=n._createHmacHelper(c)}(Math),function(){var t=a,e=t.lib,r=e.WordArray,i=e.Hasher,n=t.algo,o=[],s=n.SHA1=i.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],s=r[2],a=r[3],c=r[4],h=0;h<80;h++){if(h<16)o[h]=0|t[e+h];else{var l=o[h-3]^o[h-8]^o[h-14]^o[h-16];o[h]=l<<1|l>>>31}var f=(i<<5|i>>>27)+c+o[h];f+=h<20?1518500249+(n&s|~n&a):h<40?1859775393+(n^s^a):h<60?(n&s|n&a|s&a)-1894007588:(n^s^a)-899497514,c=a,a=s,s=n<<30|n>>>2,n=i,i=f}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+s|0,r[3]=r[3]+a|0,r[4]=r[4]+c|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(i+64>>>9<<4)]=Math.floor(r/4294967296),e[15+(i+64>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=i.clone.call(this);return t._hash=this._hash.clone(),t}});t.SHA1=i._createHelper(s),t.HmacSHA1=i._createHmacHelper(s)}(),function(t){var e=a,r=e.lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[],c=[];!function(){function e(e){for(var r=t.sqrt(e),i=2;i<=r;i++)if(!(e%i))return!1;return!0}function r(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)e(i)&&(n<8&&(s[n]=r(t.pow(i,.5))),c[n]=r(t.pow(i,1/3)),n++),i++}();var h=[],l=o.SHA256=n.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],a=r[4],l=r[5],f=r[6],u=r[7],d=0;d<64;d++){if(d<16)h[d]=0|t[e+d];else{var p=h[d-15],_=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,y=h[d-2],v=(y<<15|y>>>17)^(y<<13|y>>>19)^y>>>10;h[d]=_+h[d-7]+v+h[d-16]}var g=i&n^i&o^n&o,w=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),B=u+((a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25))+(a&l^~a&f)+c[d]+h[d];u=f,f=l,l=a,a=s+B|0,s=o,o=n,n=i,i=B+(w+g)|0}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+a|0,r[5]=r[5]+l|0,r[6]=r[6]+f|0,r[7]=r[7]+u|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;return r[n>>>5]|=128<<24-n%32,r[14+(n+64>>>9<<4)]=t.floor(i/4294967296),r[15+(n+64>>>9<<4)]=i,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=n._createHelper(l),e.HmacSHA256=n._createHmacHelper(l)}(Math),function(){var t=a,e=t.lib.WordArray,r=t.enc;function i(t){return t<<8&4278255360|t>>>8&16711935}r.Utf16=r.Utf16BE={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var r=t.length,i=[],n=0;n>>1]|=t.charCodeAt(n)<<16-n%2*16;return e.create(i,2*r)}},r.Utf16LE={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join("")},parse:function(t){for(var r=t.length,n=[],o=0;o>>1]|=i(t.charCodeAt(o)<<16-o%2*16);return e.create(n,2*r)}}}(),function(){if("function"==typeof ArrayBuffer){var t=a.lib.WordArray,e=t.init;(t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,i=[],n=0;n>>2]|=t[n]<<24-n%4*8;e.call(this,i,r)}else e.apply(this,arguments)}).prototype=t}}(), +/** @preserve + (c) 2012 by C��dric Mesnil. All rights reserved. + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +function(t){var e=a,r=e.lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),c=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),h=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),l=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),f=i.create([0,1518500249,1859775393,2400959708,2840853838]),u=i.create([1352829926,1548603684,1836072691,2053994217,0]),d=o.RIPEMD160=n.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o,a,d,B,k,m,b,x,S,A,H,M=this._hash.words,z=f.words,C=u.words,E=s.words,R=c.words,P=h.words,D=l.words;for(m=o=M[0],b=a=M[1],x=d=M[2],S=B=M[3],A=k=M[4],r=0;r<80;r+=1)H=o+t[e+E[r]]|0,H+=r<16?p(a,d,B)+z[0]:r<32?_(a,d,B)+z[1]:r<48?y(a,d,B)+z[2]:r<64?v(a,d,B)+z[3]:g(a,d,B)+z[4],H=(H=w(H|=0,P[r]))+k|0,o=k,k=B,B=w(d,10),d=a,a=H,H=m+t[e+R[r]]|0,H+=r<16?g(b,x,S)+C[0]:r<32?v(b,x,S)+C[1]:r<48?y(b,x,S)+C[2]:r<64?_(b,x,S)+C[3]:p(b,x,S)+C[4],H=(H=w(H|=0,D[r]))+A|0,m=A,A=S,S=w(x,10),x=b,b=H;H=M[1]+d+S|0,M[1]=M[2]+B+A|0,M[2]=M[3]+k+m|0,M[3]=M[4]+o+b|0,M[4]=M[0]+a+x|0,M[0]=H},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;e[i>>>5]|=128<<24-i%32,e[14+(i+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process();for(var n=this._hash,o=n.words,s=0;s<5;s++){var a=o[s];o[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return n},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});function p(t,e,r){return t^e^r}function _(t,e,r){return t&e|~t&r}function y(t,e,r){return(t|~e)^r}function v(t,e,r){return t&r|e&~r}function g(t,e,r){return t^(e|~r)}function w(t,e){return t<>>32-e}e.RIPEMD160=n._createHelper(d),e.HmacRIPEMD160=n._createHmacHelper(d)}(),function(){var t=a,e=t.lib.Base,r=t.enc.Utf8;t.algo.HMAC=e.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=r.parse(e));var i=t.blockSize,n=4*i;e.sigBytes>n&&(e=t.finalize(e)),e.clamp();for(var o=this._oKey=e.clone(),s=this._iKey=e.clone(),a=o.words,c=s.words,h=0;h>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),(M=r[n]).high^=s,M.low^=o}for(var a=0;a<24;a++){for(var u=0;u<5;u++){for(var d=0,p=0,_=0;_<5;_++)d^=(M=r[u+5*_]).high,p^=M.low;var y=f[u];y.high=d,y.low=p}for(u=0;u<5;u++){var v=f[(u+4)%5],g=f[(u+1)%5],w=g.high,B=g.low;for(d=v.high^(w<<1|B>>>31),p=v.low^(B<<1|w>>>31),_=0;_<5;_++)(M=r[u+5*_]).high^=d,M.low^=p}for(var k=1;k<25;k++){var m=(M=r[k]).high,b=M.low,x=c[k];x<32?(d=m<>>32-x,p=b<>>32-x):(d=b<>>64-x,p=m<>>64-x);var S=f[h[k]];S.high=d,S.low=p}var A=f[0],H=r[0];for(A.high=H.high,A.low=H.low,u=0;u<5;u++)for(_=0;_<5;_++){var M=r[k=u+5*_],z=f[k],C=f[(u+1)%5+5*_],E=f[(u+2)%5+5*_];M.high=z.high^~C.high&E.high,M.low=z.low^~C.low&E.low}M=r[0];var R=l[a];M.high^=R.high,M.low^=R.low}},_doFinalize:function(){var e=this._data,r=e.words,n=(this._nDataBytes,8*e.sigBytes),o=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(t.ceil((n+1)/o)*o>>>5)-1]|=128,e.sigBytes=4*r.length,this._process();for(var s=this._state,a=this.cfg.outputLength/8,c=a/8,h=[],l=0;l>>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),h.push(d),h.push(u)}return new i.init(h,a)},clone:function(){for(var t=n.clone.call(this),e=t._state=this._state.slice(0),r=0;r<25;r++)e[r]=e[r].clone();return t}});e.SHA3=n._createHelper(u),e.HmacSHA3=n._createHmacHelper(u)}(Math),function(){var t=a,e=t.lib.Hasher,r=t.x64,i=r.Word,n=r.WordArray,o=t.algo;function s(){return i.create.apply(i,arguments)}var c=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],h=[];!function(){for(var t=0;t<80;t++)h[t]=s()}();var l=o.SHA512=e.extend({_doReset:function(){this._hash=new n.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],a=r[4],l=r[5],f=r[6],u=r[7],d=i.high,p=i.low,_=n.high,y=n.low,v=o.high,g=o.low,w=s.high,B=s.low,k=a.high,m=a.low,b=l.high,x=l.low,S=f.high,A=f.low,H=u.high,M=u.low,z=d,C=p,E=_,R=y,P=v,D=g,F=w,T=B,I=k,O=m,L=b,W=x,U=S,j=A,K=H,X=M,N=0;N<80;N++){var V,Z,$=h[N];if(N<16)Z=$.high=0|t[e+2*N],V=$.low=0|t[e+2*N+1];else{var q=h[N-15],G=q.high,J=q.low,Q=(G>>>1|J<<31)^(G>>>8|J<<24)^G>>>7,Y=(J>>>1|G<<31)^(J>>>8|G<<24)^(J>>>7|G<<25),tt=h[N-2],et=tt.high,rt=tt.low,it=(et>>>19|rt<<13)^(et<<3|rt>>>29)^et>>>6,nt=(rt>>>19|et<<13)^(rt<<3|et>>>29)^(rt>>>6|et<<26),ot=h[N-7],st=ot.high,at=ot.low,ct=h[N-16],ht=ct.high,lt=ct.low;Z=(Z=(Z=Q+st+((V=Y+at)>>>0>>0?1:0))+it+((V+=nt)>>>0>>0?1:0))+ht+((V+=lt)>>>0>>0?1:0),$.high=Z,$.low=V}var ft,ut=I&L^~I&U,dt=O&W^~O&j,pt=z&E^z&P^E&P,_t=C&R^C&D^R&D,yt=(z>>>28|C<<4)^(z<<30|C>>>2)^(z<<25|C>>>7),vt=(C>>>28|z<<4)^(C<<30|z>>>2)^(C<<25|z>>>7),gt=(I>>>14|O<<18)^(I>>>18|O<<14)^(I<<23|O>>>9),wt=(O>>>14|I<<18)^(O>>>18|I<<14)^(O<<23|I>>>9),Bt=c[N],kt=Bt.high,mt=Bt.low,bt=K+gt+((ft=X+wt)>>>0>>0?1:0),xt=vt+_t;K=U,X=j,U=L,j=W,L=I,W=O,I=F+(bt=(bt=(bt=bt+ut+((ft+=dt)>>>0

>>0?1:0))+kt+((ft+=mt)>>>0>>0?1:0))+Z+((ft+=V)>>>0>>0?1:0))+((O=T+ft|0)>>>0>>0?1:0)|0,F=P,T=D,P=E,D=R,E=z,R=C,z=bt+(yt+pt+(xt>>>0>>0?1:0))+((C=ft+xt|0)>>>0>>0?1:0)|0}p=i.low=p+C,i.high=d+z+(p>>>0>>0?1:0),y=n.low=y+R,n.high=_+E+(y>>>0>>0?1:0),g=o.low=g+D,o.high=v+P+(g>>>0>>0?1:0),B=s.low=B+T,s.high=w+F+(B>>>0>>0?1:0),m=a.low=m+O,a.high=k+I+(m>>>0>>0?1:0),x=l.low=x+W,l.high=b+L+(x>>>0>>0?1:0),A=f.low=A+j,f.high=S+U+(A>>>0>>0?1:0),M=u.low=M+X,u.high=H+K+(M>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[30+(i+128>>>10<<5)]=Math.floor(r/4294967296),e[31+(i+128>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});t.SHA512=e._createHelper(l),t.HmacSHA512=e._createHmacHelper(l)}(),function(){var t=a,e=t.x64,r=e.Word,i=e.WordArray,n=t.algo,o=n.SHA512,s=n.SHA384=o.extend({_doReset:function(){this._hash=new i.init([new r.init(3418070365,3238371032),new r.init(1654270250,914150663),new r.init(2438529370,812702999),new r.init(355462360,4144912697),new r.init(1731405415,4290775857),new r.init(2394180231,1750603025),new r.init(3675008525,1694076839),new r.init(1203062813,3204075428)])},_doFinalize:function(){var t=o._doFinalize.call(this);return t.sigBytes-=16,t}});t.SHA384=o._createHelper(s),t.HmacSHA384=o._createHmacHelper(s)}(),a.lib.Cipher||function(t){var e=a,r=e.lib,i=r.Base,n=r.WordArray,o=r.BufferedBlockAlgorithm,s=e.enc,c=(s.Utf8,s.Base64),h=e.algo.EvpKDF,l=r.Cipher=o.extend({cfg:i.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,r){this.cfg=this.cfg.extend(r),this._xformMode=t,this._key=e,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return"string"==typeof t?w:v}return function(e){return{encrypt:function(r,i,n){return t(i).encrypt(e,r,i,n)},decrypt:function(r,i,n){return t(i).decrypt(e,r,i,n)}}}}()}),f=(r.StreamCipher=l.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),e.mode={}),u=r.BlockCipherMode=i.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),d=f.CBC=function(){var t=u.extend();function e(t,e,r){var i,n=this._iv;n?(i=n,this._iv=void 0):i=this._prevBlock;for(var o=0;o>>2];t.sigBytes-=e}},_=(r.BlockCipher=l.extend({cfg:l.cfg.extend({mode:d,padding:p}),reset:function(){var t;l.reset.call(this);var e=this.cfg,r=e.iv,i=e.mode;this._xformMode==this._ENC_XFORM_MODE?t=i.createEncryptor:(t=i.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==t?this._mode.init(this,r&&r.words):(this._mode=t.call(i,this,r&&r.words),this._mode.__creator=t)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t,e=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t},blockSize:4}),r.CipherParams=i.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),y=(e.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,r=t.salt;return(r?n.create([1398893684,1701076831]).concat(r).concat(e):e).toString(c)},parse:function(t){var e,r=c.parse(t),i=r.words;return 1398893684==i[0]&&1701076831==i[1]&&(e=n.create(i.slice(2,4)),i.splice(0,4),r.sigBytes-=16),_.create({ciphertext:r,salt:e})}},v=r.SerializableCipher=i.extend({cfg:i.extend({format:y}),encrypt:function(t,e,r,i){i=this.cfg.extend(i);var n=t.createEncryptor(r,i),o=n.finalize(e),s=n.cfg;return _.create({ciphertext:o,key:r,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,e,r,i){return i=this.cfg.extend(i),e=this._parse(e,i.format),t.createDecryptor(r,i).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),g=(e.kdf={}).OpenSSL={execute:function(t,e,r,i){i||(i=n.random(8));var o=h.create({keySize:e+r}).compute(t,i),s=n.create(o.words.slice(e),4*r);return o.sigBytes=4*e,_.create({key:o,iv:s,salt:i})}},w=r.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:g}),encrypt:function(t,e,r,i){var n=(i=this.cfg.extend(i)).kdf.execute(r,t.keySize,t.ivSize);i.iv=n.iv;var o=v.encrypt.call(this,t,e,n.key,i);return o.mixIn(n),o},decrypt:function(t,e,r,i){i=this.cfg.extend(i),e=this._parse(e,i.format);var n=i.kdf.execute(r,t.keySize,t.ivSize,e.salt);return i.iv=n.iv,v.decrypt.call(this,t,e,n.key,i)}})}(),a.mode.CFB=function(){var t=a.lib.BlockCipherMode.extend();function e(t,e,r,i){var n,o=this._iv;o?(n=o.slice(0),this._iv=void 0):n=this._prevBlock,i.encryptBlock(n,0);for(var s=0;s>>2]|=n<<24-o%4*8,t.sigBytes+=n},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},a.pad.Iso10126={pad:function(t,e){var r=4*e,i=r-t.sigBytes%r;t.concat(a.lib.WordArray.random(i-1)).concat(a.lib.WordArray.create([i<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},a.pad.Iso97971={pad:function(t,e){t.concat(a.lib.WordArray.create([2147483648],1)),a.pad.ZeroPadding.pad(t,e)},unpad:function(t){a.pad.ZeroPadding.unpad(t),t.sigBytes--}},a.mode.OFB=(r=a.lib.BlockCipherMode.extend(),i=r.Encryptor=r.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),r.encryptBlock(o,0);for(var s=0;s>>8^255&p^99,i[r]=p,n[p]=r;var _=t[r],y=t[_],v=t[y],g=257*t[p]^16843008*p;o[r]=g<<24|g>>>8,s[r]=g<<16|g>>>16,c[r]=g<<8|g>>>24,h[r]=g,g=16843009*v^65537*y^257*_^16843008*r,l[p]=g<<24|g>>>8,f[p]=g<<16|g>>>16,u[p]=g<<8|g>>>24,d[p]=g,r?(r=_^t[t[t[v^_]]],a^=t[t[a]]):r=a=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],_=r.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4,n=4*((this._nRounds=r+6)+1),o=this._keySchedule=[],s=0;s6&&s%r==4&&(h=i[h>>>24]<<24|i[h>>>16&255]<<16|i[h>>>8&255]<<8|i[255&h]):(h=i[(h=h<<8|h>>>24)>>>24]<<24|i[h>>>16&255]<<16|i[h>>>8&255]<<8|i[255&h],h^=p[s/r|0]<<24),o[s]=o[s-r]^h);for(var a=this._invKeySchedule=[],c=0;c>>24]]^f[i[h>>>16&255]]^u[i[h>>>8&255]]^d[i[255&h]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,o,s,c,h,i)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,l,f,u,d,n),r=t[e+1],t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,i,n,o,s,a){for(var c=this._nRounds,h=t[e]^r[0],l=t[e+1]^r[1],f=t[e+2]^r[2],u=t[e+3]^r[3],d=4,p=1;p>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&u]^r[d++],y=i[l>>>24]^n[f>>>16&255]^o[u>>>8&255]^s[255&h]^r[d++],v=i[f>>>24]^n[u>>>16&255]^o[h>>>8&255]^s[255&l]^r[d++],g=i[u>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^r[d++];h=_,l=y,f=v,u=g}_=(a[h>>>24]<<24|a[l>>>16&255]<<16|a[f>>>8&255]<<8|a[255&u])^r[d++],y=(a[l>>>24]<<24|a[f>>>16&255]<<16|a[u>>>8&255]<<8|a[255&h])^r[d++],v=(a[f>>>24]<<24|a[u>>>16&255]<<16|a[h>>>8&255]<<8|a[255&l])^r[d++],g=(a[u>>>24]<<24|a[h>>>16&255]<<16|a[l>>>8&255]<<8|a[255&f])^r[d++],t[e]=_,t[e+1]=y,t[e+2]=v,t[e+3]=g},keySize:8});t.AES=e._createHelper(_)}(),function(){var t=a,e=t.lib,r=e.WordArray,i=e.BlockCipher,n=t.algo,o=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],c=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],h=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],l=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],f=n.DES=i.extend({_doReset:function(){for(var t=this._key.words,e=[],r=0;r<56;r++){var i=o[r]-1;e[r]=t[i>>>5]>>>31-i%32&1}for(var n=this._subKeys=[],a=0;a<16;a++){var h=n[a]=[],l=c[a];for(r=0;r<24;r++)h[r/6|0]|=e[(s[r]-1+l)%28]<<31-r%6,h[4+(r/6|0)]|=e[28+(s[r+24]-1+l)%28]<<31-r%6;for(h[0]=h[0]<<1|h[0]>>>31,r=1;r<7;r++)h[r]=h[r]>>>4*(r-1)+3;h[7]=h[7]<<5|h[7]>>>27}var f=this._invSubKeys=[];for(r=0;r<16;r++)f[r]=n[15-r]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,r){this._lBlock=t[e],this._rBlock=t[e+1],u.call(this,4,252645135),u.call(this,16,65535),d.call(this,2,858993459),d.call(this,8,16711935),u.call(this,1,1431655765);for(var i=0;i<16;i++){for(var n=r[i],o=this._lBlock,s=this._rBlock,a=0,c=0;c<8;c++)a|=h[c][((s^n[c])&l[c])>>>0];this._lBlock=s,this._rBlock=o^a}var f=this._lBlock;this._lBlock=this._rBlock,this._rBlock=f,u.call(this,1,1431655765),d.call(this,8,16711935),d.call(this,2,858993459),u.call(this,16,65535),u.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function u(t,e){var r=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=r,this._lBlock^=r<>>t^this._lBlock)&e;this._lBlock^=r,this._rBlock^=r<192.");var e=t.slice(0,2),i=t.length<4?t.slice(0,2):t.slice(2,4),n=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=f.createEncryptor(r.create(e)),this._des2=f.createEncryptor(r.create(i)),this._des3=f.createEncryptor(r.create(n))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});t.TripleDES=i._createHelper(p)}(),function(){var t=a,e=t.lib.StreamCipher,r=t.algo,i=r.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,r=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;n=0;for(var o=0;n<256;n++){var s=n%r,a=e[s>>>2]>>>24-s%4*8&255;o=(o+i[n]+a)%256;var c=i[n];i[n]=i[o],i[o]=c}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=n.call(this)},keySize:8,ivSize:0});function n(){for(var t=this._S,e=this._i,r=this._j,i=0,n=0;n<4;n++){r=(r+t[e=(e+1)%256])%256;var o=t[e];t[e]=t[r],t[r]=o,i|=t[(t[e]+t[r])%256]<<24-8*n}return this._i=e,this._j=r,i}t.RC4=e._createHelper(i);var o=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)n.call(this)}});t.RC4Drop=e._createHelper(o)}(), +/** @preserve + * Counter block mode compatible with Dr Brian Gladman fileenc.c + * derived from CryptoJS.mode.CTR + * Jan Hruby jhruby.web@gmail.com + */ +a.mode.CTRGladman=function(){var t=a.lib.BlockCipherMode.extend();function e(t){if(255==(t>>24&255)){var e=t>>16&255,r=t>>8&255,i=255&t;255===e?(e=0,255===r?(r=0,255===i?i=0:++i):++r):++e,t=0,t+=e<<16,t+=r<<8,t+=i}else t+=1<<24;return t}var r=t.Encryptor=t.extend({processBlock:function(t,r){var i=this._cipher,n=i.blockSize,o=this._iv,s=this._counter;o&&(s=this._counter=o.slice(0),this._iv=void 0),function(t){0===(t[0]=e(t[0]))&&(t[1]=e(t[1]))}(s);var a=s.slice(0);i.encryptBlock(a,0);for(var c=0;c>>24)|4278255360&(t[r]<<24|t[r]>>>8);var i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(this._b=0,r=0;r<4;r++)c.call(this);for(r=0;r<8;r++)n[r]^=i[r+4&7];if(e){var o=e.words,s=o[0],a=o[1],h=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;for(n[0]^=h,n[1]^=f,n[2]^=l,n[3]^=u,n[4]^=h,n[5]^=f,n[6]^=l,n[7]^=u,r=0;r<4;r++)c.call(this)}},_doProcessBlock:function(t,e){var r=this._X;c.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),t[e+n]^=i[n]},blockSize:4,ivSize:2});function c(){for(var t=this._X,e=this._C,r=0;r<8;r++)n[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],s=65535&i,a=i>>>16,c=((s*s>>>17)+s*a>>>15)+a*a,h=((4294901760&i)*i|0)+((65535&i)*i|0);o[r]=c^h}t[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,t[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,t[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,t[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,t[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,t[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,t[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,t[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}t.Rabbit=e._createHelper(s)}(),a.mode.CTR=function(){var t=a.lib.BlockCipherMode.extend(),e=t.Encryptor=t.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);r.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var a=0;a>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var n=0;n<4;n++)c.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(e){var o=e.words,s=o[0],a=o[1],h=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;for(i[0]^=h,i[1]^=f,i[2]^=l,i[3]^=u,i[4]^=h,i[5]^=f,i[6]^=l,i[7]^=u,n=0;n<4;n++)c.call(this)}},_doProcessBlock:function(t,e){var r=this._X;c.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),t[e+n]^=i[n]},blockSize:4,ivSize:2});function c(){for(var t=this._X,e=this._C,r=0;r<8;r++)n[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],s=65535&i,a=i>>>16,c=((s*s>>>17)+s*a>>>15)+a*a,h=((4294901760&i)*i|0)+((65535&i)*i|0);o[r]=c^h}t[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,t[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,t[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,t[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,t[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,t[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,t[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,t[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}t.RabbitLegacy=e._createHelper(s)}(),a.pad.ZeroPadding={pad:function(t,e){var r=4*e;t.clamp(),t.sigBytes+=r-(t.sigBytes%r||r)},unpad:function(t){var e=t.words,r=t.sigBytes-1;for(r=t.sigBytes-1;r>=0;r--)if(e[r>>>2]>>>24-r%4*8&255){t.sigBytes=r+1;break}}},a)}));return function(){function e(r){t(this,e);var i=r.logger,n=r.isArray,o=r.isMap,s=r.isDevMode;this._isArray=n,this._isMap=o,this._isDevMode=s,i.log("TIMProfanityFilterPlugin.VERSION:".concat("0.9.0")),this._interceptProfanityList=[],this._interceptFilter=null,this._interceptRegExpList=[],this._replacingProfanityMap=new Map,this._replacingFilter=null,this._replacingRegExpMap=new Map,this._key="",this._iv="",this._decryptOptions=void 0}return r(e,[{key:"onToken",value:function(t){this._key=u.enc.Utf8.parse(t.slice(0,32)),this._iv=this._key,this._decryptOptions={iv:this._iv,mode:u.mode.CBC,padding:u.pad.Pkcs7}}},{key:"onLexiconSliced",value:function(t){if(this._isArray(t)&&0!==t.length){var e,r,i,n=a(t);try{for(n.s();!(i=n.n()).done;){var o=i.value,s=o.filterType,c=o.profanityType,h=o.profanity,l=o.replacement;e=this._getDecryptedString(h),r=this._getDecryptedString(l),1===s?1===c?this._interceptProfanityList.push(e):2===c&&this._interceptRegExpList.push(e):2===s&&(1===c?this._replacingProfanityMap.set(e,r):2===c&&this._replacingRegExpMap.set(e,r))}}catch(f){n.e(f)}finally{n.f()}}}},{key:"_getDecryptedString",value:function(t){var e=u.AES.decrypt(t,this._key,this._decryptOptions);return u.enc.Utf8.stringify(e).toLowerCase()}},{key:"onLexiconCompleted",value:function(t){this.onLexiconSliced(t),this._interceptFilter=new h({input:this._interceptProfanityList,isArray:this._isArray,isMap:this._isMap}),this._replacingFilter=new h({input:this._replacingProfanityMap,isArray:this._isArray,isMap:this._isMap}),!0===this._isDevMode&&(console.log("TIMProfanityFilterPlugin _interceptProfanityList ->",this._interceptProfanityList),console.log("TIMProfanityFilterPlugin _interceptRegExpList ->",this._interceptRegExpList),console.log("TIMProfanityFilterPlugin _replacingProfanityMap ->",this._replacingProfanityMap),console.log("TIMProfanityFilterPlugin _replacingRegExpMap ->",this._replacingRegExpMap))}},{key:"filter",value:function(t){var e={type:0,modifiedText:t};if(!0===this._interceptFilter.filter({text:t,replacingEnabled:!1}).isMatched)return e.type=1,e;for(var r=!1,n=0,o=this._interceptRegExpList.length;n=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var f="undefined"!=typeof wx&&"function"==typeof wx.getSystemInfoSync&&Boolean(wx.getSystemInfoSync().fontSizeSetting),u="undefined"!=typeof qq&&"function"==typeof qq.getSystemInfoSync&&Boolean(qq.getSystemInfoSync().fontSizeSetting),l="undefined"!=typeof tt&&"function"==typeof tt.getSystemInfoSync&&Boolean(tt.getSystemInfoSync().fontSizeSetting),c="undefined"!=typeof swan&&"function"==typeof swan.getSystemInfoSync&&Boolean(swan.getSystemInfoSync().fontSizeSetting),y="undefined"!=typeof my&&"function"==typeof my.getSystemInfoSync&&Boolean(my.getSystemInfoSync().fontSizeSetting),d="undefined"!=typeof uni&&"undefined"==typeof window,p=f||u||l||c||y||d,g=u?qq:l?tt:c?swan:y?my:f?wx:d?uni:{},h=function(e){if("object"!==n(e)||null===e)return!1;var t=Object.getPrototypeOf(e);if(null===t)return!0;for(var o=t;null!==Object.getPrototypeOf(o);)o=Object.getPrototypeOf(o);return t===o};function m(e){if(null==e)return!0;if("boolean"==typeof e)return!1;if("number"==typeof e)return 0===e;if("string"==typeof e)return 0===e.length;if("function"==typeof e)return 0===e.length;if(Array.isArray(e))return 0===e.length;if(e instanceof Error)return""===e.message;if(h(e)){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}return!1}var b=function(){function e(){o(this,e)}return a(e,[{key:"request",value:function(e,t){var n=this,o=e.downloadUrl||"",r=(e.method||"PUT").toUpperCase(),a=e.url;if(e.qs){var s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"&",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"=";return m(e)?"":h(e)?Object.keys(e).map((function(o){var r=encodeURIComponent(o)+n;return Array.isArray(e[o])?e[o].map((function(e){return r+encodeURIComponent(e)})).join(t):r+encodeURIComponent(e[o])})).filter(Boolean).join(t):void 0}(e.qs);s&&(a+="".concat(-1===a.indexOf("?")?"?":"&").concat(s))}var i=new XMLHttpRequest;i.open(r,a,!0),i.responseType=e.dataType||"text";var f=e.headers||{};if(!m(f))for(var u in f)f.hasOwnProperty(u)&&"content-length"!==u.toLowerCase()&&"user-agent"!==u.toLowerCase()&&"origin"!==u.toLowerCase()&&"host"!==u.toLowerCase()&&i.setRequestHeader(u,f[u]);return i.onload=function(){if(200===i.status)t(null,n._xhrRes(i,n._xhrBody(i,o)));else{var e={code:i.status,message:JSON.stringify(i.responseText)};t(e,n._xhrRes(i,n._xhrBody(i)))}},i.onerror=function(e){var o=n._xhrBody(i),r={code:i.status,message:JSON.stringify(i.responseText)};o||i.statusText||0!==i.status||(e.message="CORS blocked or network error"),t(r,n._xhrRes(i,o)),r=null},e.onProgress&&i.upload&&(i.upload.onprogress=function(t){var n=t.total,o=t.loaded,r=Math.floor(100*o/n);e.onProgress({total:n,loaded:o,percent:(r>=100?100:r)/100})}),i.send(e.resources),i}},{key:"_xhrRes",value:function(e,t){var n={};return e.getAllResponseHeaders().trim().split("\n").forEach((function(e){if(e){var t=e.indexOf(":"),o=e.substr(0,t).trim().toLowerCase(),r=e.substr(t+1).trim();n[o]=r}})),{statusCode:e.status,statusMessage:e.statusText,headers:n,data:t}}},{key:"_xhrBody",value:function(e,t){return 200===e.status&&t?{location:t}:{response:e.responseText}}}]),e}(),v=["unknown","image","video","audio","log"],O=["name"],S=function(){function e(){o(this,e)}return a(e,[{key:"request",value:function(e,n){var o=this,r=e.resources,a=void 0===r?"":r,s=e.headers,f=void 0===s?{}:s,u=e.url,l=e.downloadUrl,c=void 0===l?"":l,d=null,p="",h=c.match(/^(https?:\/\/[^/]+\/)([^/]*\/?)(.*)$/),m={url:u,header:f,name:"file",filePath:a,formData:{key:p=(p=decodeURIComponent(h[3])).indexOf("?")>-1?p.split("?")[0]:p,success_action_status:200,"Content-Type":""},timeout:e.timeout||3e5};if(y){var b=m;b.name,m=t(t({},i(b,O)),{},{fileName:"file",fileType:v[e.fileType]})}return(d=g.uploadFile(t(t({},m),{},{success:function(e){o._handleResponse({response:e,downloadUrl:c,callback:n})},fail:function(e){o._handleResponse({response:e,downloadUrl:c,callback:n})}}))).onProgressUpdate((function(t){e.onProgress&&e.onProgress({total:t.totalBytesExpectedToSend,loaded:t.totalBytesSent,percent:Math.floor(t.progress)/100})})),d}},{key:"_handleResponse",value:function(e){var n=e.downloadUrl,o=e.response,r=e.callback,a=o.header,s={};if(a)for(var i in a)a.hasOwnProperty(i)&&(s[i.toLowerCase()]=a[i]);var f=+o.statusCode;200===f?r(null,{statusCode:f,headers:s,data:t(t({},o.data),{},{location:n})}):r({code:f,message:JSON.stringify(o.data)},{statusCode:f,headers:s,data:void 0})}}]),e}();return function(){function e(){o(this,e),console.log("TIMUploadPlugin.VERSION: ".concat("1.0.6")),this.retry=1,this.tryCount=0,this.systemClockOffset=0,this.httpRequest=p?new S:new b}return a(e,[{key:"uploadFile",value:function(e,t){var n=this;return this.httpRequest.request(e,(function(o,r){o&&n.tryCount=3e4&&(this.systemClockOffset=i-s,t=!0)}else 5===Math.floor(e.statusCode/100)&&(t=!0)}return t}}]),e}()},"object"==typeof exports&&"undefined"!=typeof module?module.exports=factory():"function"==typeof define&&define.amd?define(factory):(global=global||self).TIMUploadPlugin=factory(); diff --git a/lib/tim-wx-sdk.js b/lib/tim-wx-sdk.js new file mode 100644 index 0000000..8639a34 --- /dev/null +++ b/lib/tim-wx-sdk.js @@ -0,0 +1 @@ +'use strict';!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).TIM=t()}(this,(function(){function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function t(t){for(var n=1;n=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function h(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return h(e)}function f(e){var t=l();return function(){var n,o=u(e);if(t){var s=u(this).constructor;n=Reflect.construct(o,arguments,s)}else n=o.apply(this,arguments);return _(this,n)}}function v(e,t){return M(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var o,s,a=[],r=!0,i=!1;try{for(n=n.call(e);!(r=(o=n.next()).done)&&(a.push(o.value),!t||a.length!==t);r=!0);}catch(u){i=!0,s=u}finally{try{r||null==n.return||n.return()}finally{if(i)throw s}}return a}(e,t)||I(e,t)||T()}function m(e){return function(e){if(Array.isArray(e))return C(e)}(e)||y(e)||I(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function M(e){if(Array.isArray(e))return e}function y(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function I(e,t){if(e){if("string"==typeof e)return C(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?C(e,t):void 0}}function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:s}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,r=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return r=e.done,e},e:function(e){i=!0,a=e},f:function(){try{r||null==n.return||n.return()}finally{if(i)throw a}}}}var k={SDK_READY:"sdkStateReady",SDK_NOT_READY:"sdkStateNotReady",SDK_DESTROY:"sdkDestroy",MESSAGE_RECEIVED:"onMessageReceived",MESSAGE_MODIFIED:"onMessageModified",MESSAGE_REVOKED:"onMessageRevoked",MESSAGE_READ_BY_PEER:"onMessageReadByPeer",MESSAGE_READ_RECEIPT_RECEIVED:"onMessageReadReceiptReceived",MESSAGE_EXTENSIONS_UPDATED:"onMessageExtensionsUpdated",MESSAGE_EXTENSIONS_DELETED:"onMessageExtensionsDeleted",CONVERSATION_LIST_UPDATED:"onConversationListUpdated",TOTAL_UNREAD_MESSAGE_COUNT_UPDATED:"onTotalUnreadMessageCountUpdated",CONVERSATION_GROUP_LIST_UPDATED:"onConversationGroupListUpdated",CONVERSATION_IN_GROUP_UPDATED:"onConversationInGroupUpdated",GROUP_LIST_UPDATED:"onGroupListUpdated",GROUP_SYSTEM_NOTICE_RECEIVED:"receiveGroupSystemNotice",GROUP_ATTRIBUTES_UPDATED:"groupAttributesUpdated",GROUP_COUNTER_UPDATED:"onGroupCounterUpdated",TOPIC_CREATED:"onTopicCreated",TOPIC_DELETED:"onTopicDeleted",TOPIC_UPDATED:"onTopicUpdated",PROFILE_UPDATED:"onProfileUpdated",USER_STATUS_UPDATED:"onUserStatusUpdated",BLACKLIST_UPDATED:"blacklistUpdated",FRIEND_LIST_UPDATED:"onFriendListUpdated",FRIEND_GROUP_LIST_UPDATED:"onFriendGroupListUpdated",FRIEND_APPLICATION_LIST_UPDATED:"onFriendApplicationListUpdated",KICKED_OUT:"kickedOut",ERROR:"error",NET_STATE_CHANGE:"netStateChange",SDK_RELOAD:"sdkReload"},S={MSG_TEXT:"TIMTextElem",MSG_IMAGE:"TIMImageElem",MSG_SOUND:"TIMSoundElem",MSG_AUDIO:"TIMSoundElem",MSG_FILE:"TIMFileElem",MSG_FACE:"TIMFaceElem",MSG_VIDEO:"TIMVideoFileElem",MSG_GEO:"TIMLocationElem",MSG_LOCATION:"TIMLocationElem",MSG_GRP_TIP:"TIMGroupTipElem",MSG_GRP_SYS_NOTICE:"TIMGroupSystemNoticeElem",MSG_CUSTOM:"TIMCustomElem",MSG_MERGER:"TIMRelayElem",MSG_PRIORITY_HIGH:"High",MSG_PRIORITY_NORMAL:"Normal",MSG_PRIORITY_LOW:"Low",MSG_PRIORITY_LOWEST:"Lowest",CONV_C2C:"C2C",CONV_GROUP:"GROUP",CONV_TOPIC:"TOPIC",CONV_SYSTEM:"@TIM#SYSTEM",CONV_AT_ME:1,CONV_AT_ALL:2,CONV_AT_ALL_AT_ME:3,CONV_MARK_TYPE_STAR:1,CONV_MARK_TYPE_UNREAD:2,CONV_MARK_TYPE_FOLD:4,CONV_MARK_TYPE_HIDE:8,GRP_PRIVATE:"Private",GRP_WORK:"Private",GRP_PUBLIC:"Public",GRP_CHATROOM:"ChatRoom",GRP_MEETING:"ChatRoom",GRP_AVCHATROOM:"AVChatRoom",GRP_COMMUNITY:"Community",GRP_MBR_ROLE_OWNER:"Owner",GRP_MBR_ROLE_ADMIN:"Admin",GRP_MBR_ROLE_MEMBER:"Member",GRP_MBR_ROLE_CUSTOM:"Custom",GRP_TIP_MBR_JOIN:1,GRP_TIP_MBR_QUIT:2,GRP_TIP_MBR_KICKED_OUT:3,GRP_TIP_MBR_SET_ADMIN:4,GRP_TIP_MBR_CANCELED_ADMIN:5,GRP_TIP_GRP_PROFILE_UPDATED:6,GRP_TIP_MBR_PROFILE_UPDATED:7,GRP_TIP_BAN_AVCHATROOM_MEMBER:10,GRP_TIP_UNBAN_AVCHATROOM_MEMBER:11,MSG_REMIND_ACPT_AND_NOTE:"AcceptAndNotify",MSG_REMIND_ACPT_NOT_NOTE:"AcceptNotNotify",MSG_REMIND_DISCARD:"Discard",GENDER_UNKNOWN:"Gender_Type_Unknown",GENDER_FEMALE:"Gender_Type_Female",GENDER_MALE:"Gender_Type_Male",KICKED_OUT_MULT_ACCOUNT:"multipleAccount",KICKED_OUT_MULT_DEVICE:"multipleDevice",KICKED_OUT_USERSIG_EXPIRED:"userSigExpired",KICKED_OUT_REST_API:"REST_API_Kick",ALLOW_TYPE_ALLOW_ANY:"AllowType_Type_AllowAny",ALLOW_TYPE_NEED_CONFIRM:"AllowType_Type_NeedConfirm",ALLOW_TYPE_DENY_ANY:"AllowType_Type_DenyAny",FORBID_TYPE_NONE:"AdminForbid_Type_None",FORBID_TYPE_SEND_OUT:"AdminForbid_Type_SendOut",JOIN_OPTIONS_FREE_ACCESS:"FreeAccess",JOIN_OPTIONS_NEED_PERMISSION:"NeedPermission",JOIN_OPTIONS_DISABLE_APPLY:"DisableApply",JOIN_STATUS_SUCCESS:"JoinedSuccess",JOIN_STATUS_ALREADY_IN_GROUP:"AlreadyInGroup",JOIN_STATUS_WAIT_APPROVAL:"WaitAdminApproval",INVITE_OPTIONS_DISABLE_INVITE:"DisableInvite",INVITE_OPTIONS_NEED_PERMISSION:"NeedPermission",INVITE_OPTIONS_FREE_ACCESS:"FreeAccess",GRP_PROFILE_OWNER_ID:"ownerID",GRP_PROFILE_CREATE_TIME:"createTime",GRP_PROFILE_LAST_INFO_TIME:"lastInfoTime",GRP_PROFILE_MEMBER_NUM:"memberNum",GRP_PROFILE_MAX_MEMBER_NUM:"maxMemberNum",GRP_PROFILE_JOIN_OPTION:"joinOption",GRP_PROFILE_INVITE_OPTION:"inviteOption",GRP_PROFILE_INTRODUCTION:"introduction",GRP_PROFILE_NOTIFICATION:"notification",GRP_PROFILE_MUTE_ALL_MBRS:"muteAllMembers",SNS_ADD_TYPE_SINGLE:"Add_Type_Single",SNS_ADD_TYPE_BOTH:"Add_Type_Both",SNS_DELETE_TYPE_SINGLE:"Delete_Type_Single",SNS_DELETE_TYPE_BOTH:"Delete_Type_Both",SNS_APPLICATION_TYPE_BOTH:"Pendency_Type_Both",SNS_APPLICATION_SENT_TO_ME:"Pendency_Type_ComeIn",SNS_APPLICATION_SENT_BY_ME:"Pendency_Type_SendOut",SNS_APPLICATION_AGREE:"Response_Action_Agree",SNS_APPLICATION_AGREE_AND_ADD:"Response_Action_AgreeAndAdd",SNS_CHECK_TYPE_BOTH:"CheckResult_Type_Both",SNS_CHECK_TYPE_SINGLE:"CheckResult_Type_Single",SNS_TYPE_NO_RELATION:"CheckResult_Type_NoRelation",SNS_TYPE_A_WITH_B:"CheckResult_Type_AWithB",SNS_TYPE_B_WITH_A:"CheckResult_Type_BWithA",SNS_TYPE_BOTH_WAY:"CheckResult_Type_BothWay",NET_STATE_CONNECTED:"connected",NET_STATE_CONNECTING:"connecting",NET_STATE_DISCONNECTED:"disconnected",MSG_AT_ALL:"__kImSDK_MesssageAtALL__",READ_ALL_C2C_MSG:"readAllC2CMessage",READ_ALL_GROUP_MSG:"readAllGroupMessage",READ_ALL_MSG:"readAllMessage",USER_STATUS_UNKNOWN:0,USER_STATUS_ONLINE:1,USER_STATUS_OFFLINE:2,USER_STATUS_UNLOGINED:3},L=function(){function e(){o(this,e),this.cache=[],this.options=null}return a(e,[{key:"use",value:function(e){if("function"!=typeof e)throw"middleware must be a function";return this.cache.push(e),this}},{key:"next",value:function(e){if(this.middlewares&&this.middlewares.length>0)return this.middlewares.shift().call(this,this.options,this.next.bind(this))}},{key:"run",value:function(e){return this.middlewares=this.cache.map((function(e){return e})),this.options=e,this.next()}}]),e}(),E=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;o(this,e),this.high=t,this.low=n}return a(e,[{key:"equal",value:function(e){return null!==e&&(this.low===e.low&&this.high===e.high)}},{key:"toString",value:function(){var e=Number(this.high).toString(16),t=Number(this.low).toString(16);if(t.length<8)for(var n=8-t.length;n;)t="0"+t,n--;return e+t}}]),e}(),A={TEST:{CHINA:{DEFAULT:"wss://wss-dev.tim.qq.com"},OVERSEA:{DEFAULT:"wss://wss-dev.tim.qq.com"},SINGAPORE:{DEFAULT:"wss://wsssgp-dev.im.qcloud.com"},KOREA:{DEFAULT:"wss://wsskr-dev.im.qcloud.com"},GERMANY:{DEFAULT:"wss://wssger-dev.im.qcloud.com"},IND:{DEFAULT:"wss://wssind-dev.im.qcloud.com"},JPN:{DEFAULT:"wss://wssjpn-dev.im.qcloud.com"},USA:{DEFAULT:"wss://wssusa-dev.im.qcloud.com"}},PRODUCTION:{CHINA:{DEFAULT:"wss://wss.im.qcloud.com",BACKUP:"wss://wss.tim.qq.com",STAT:"https://events.im.qcloud.com",ANYCAST:"wss://162.14.13.203"},OVERSEA:{DEFAULT:"wss://wss.im.qcloud.com",BACKUP:"wss://wss.my-imcloud.com",STAT:"https://api.my-imcloud.com"},SINGAPORE:{DEFAULT:"wss://wsssgp.im.qcloud.com",BACKUP:"wss://wsssgp.my-imcloud.com",STAT:"https://apisgp.my-imcloud.com"},KOREA:{DEFAULT:"wss://wsskr.im.qcloud.com",BACKUP:"wss://wsskr.my-imcloud.com",STAT:"https://apikr.my-imcloud.com"},GERMANY:{DEFAULT:"wss://wssger.im.qcloud.com",BACKUP:"wss://wssger.my-imcloud.com",STAT:"https://apiger.my-imcloud.com"},IND:{DEFAULT:"wss://wssind.my-imcloud.com",BACKUP:"wss://wssind.im.qcloud.com",STAT:"https://apiind.my-imcloud.com"},JPN:{DEFAULT:"wss://wssjpn.im.qcloud.com",BACKUP:"wss://wssjpn.my-imcloud.com",STAT:"https://apijpn.my-imcloud.com"},USA:{DEFAULT:"wss://wssusa.im.qcloud.com",BACKUP:"wss://wssusa.my-imcloud.com",STAT:"https://apiusa.my-imcloud.com"}}},R={ANDROID:2,IOS:3,MAC:4,WEB:7,WX_MP:8,QQ_MP:9,TT_MP:10,BAIDU_MP:11,ALI_MP:12,IPAD:13,UNI_NATIVE_APP:15},N="1.7.3",O=537048168,G="CHINA",P="OVERSEA",U="SINGAPORE",b="KOREA",w="GERMANY",q="IND",F="JPN",x="USA",V={HOST:{CURRENT:{DEFAULT:"wss://wss.im.qcloud.com",STAT:"https://events.im.qcloud.com"},setCurrent:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:G;this.CURRENT=A.PRODUCTION[e]}},NAME:{OPEN_IM:"openim",OPEN_IM_MSG_EXT:"openim_msg_ext_http_svc",GROUP:"group_open_http_svc",GROUP_AVCHATROOM:"group_open_avchatroom_http_svc",GROUP_COMMUNITY:"million_group_open_http_svc",GROUP_ATTR:"group_open_attr_http_svc",FRIEND:"sns",PROFILE:"profile",RECENT_CONTACT:"recentcontact",PIC:"openpic",BIG_GROUP_NO_AUTH:"group_open_http_noauth_svc",BIG_GROUP_LONG_POLLING:"group_open_long_polling_http_svc",BIG_GROUP_LONG_POLLING_NO_AUTH:"group_open_long_polling_http_noauth_svc",IM_OPEN_STAT:"imopenstat",WEB_IM:"webim",IM_COS_SIGN:"im_cos_sign_svr",CUSTOM_UPLOAD:"im_cos_msg",HEARTBEAT:"heartbeat",IM_OPEN_PUSH:"im_open_push",IM_OPEN_STATUS:"im_open_status",IM_LONG_MESSAGE:"im_long_msg",IM_CONFIG_MANAGER:"im_sdk_config_mgr",STAT_SERVICE:"StatSvc",OVERLOAD_PUSH:"OverLoadPush",IM_MSG_AUDIT_MGR:"im_msg_audit_mgr",TUIROOM_SVR:"tui_room_svr",IM_OPEN_TRANSLATE:"im_open_translate"},CMD:{LOGIN:"wslogin",LOGOUT_LONG_POLL:"longpollinglogout",LOGOUT:"wslogout",HELLO:"wshello",STAT_BACKGROUND:"ws_stat_background",STAT_FOREGROUND:"ws_stat_foreground",SET_TOKEN:"ws_stat_settoken",PORTRAIT_GET:"portrait_get_all",PORTRAIT_SET:"portrait_set",GET_LONG_POLL_ID:"getlongpollingid",LONG_POLL:"longpolling",AVCHATROOM_LONG_POLL:"get_msg",ADD_FRIEND:"friend_add",UPDATE_FRIEND:"friend_update",GET_FRIEND_LIST:"friend_get",GET_FRIEND_PROFILE:"friend_get_specified",DELETE_FRIEND:"friend_delete",CHECK_FRIEND:"friend_check",GET_FRIEND_GROUP_LIST:"group_get",RESPOND_FRIEND_APPLICATION:"friend_response",GET_FRIEND_APPLICATION_LIST:"pendency_get",DELETE_FRIEND_APPLICATION:"pendency_delete",REPORT_FRIEND_APPLICATION:"pendency_report",GET_GROUP_APPLICATION:"get_pendency",CREATE_FRIEND_GROUP:"group_add",DELETE_FRIEND_GROUP:"group_delete",UPDATE_FRIEND_GROUP:"group_update",GET_BLACKLIST:"black_list_get",ADD_BLACKLIST:"black_list_add",DELETE_BLACKLIST:"black_list_delete",CREATE_GROUP:"create_group",GET_JOINED_GROUPS:"get_joined_group_list",SET_GROUP_ATTRIBUTES:"set_group_attr",MODIFY_GROUP_ATTRIBUTES:"modify_group_attr",DELETE_GROUP_ATTRIBUTES:"delete_group_attr",CLEAR_GROUP_ATTRIBUTES:"clear_group_attr",GET_GROUP_ATTRIBUTES:"get_group_attr",SEND_MESSAGE:"sendmsg",REVOKE_C2C_MESSAGE:"msgwithdraw",DELETE_C2C_MESSAGE:"delete_c2c_msg_ramble",MODIFY_C2C_MESSAGE:"modify_c2c_msg",MODIFY_C2C_MESSAGE_EXTENSIONS:"set_key_values",GET_C2C_MESSAGE_EXTENSIONS:"get_key_values",SEND_GROUP_MESSAGE:"send_group_msg",REVOKE_GROUP_MESSAGE:"group_msg_recall",DELETE_GROUP_MESSAGE:"delete_group_ramble_msg_by_seq",MODIFY_GROUP_MESSAGE:"modify_group_msg",MODIFY_GROUP_MESSAGE_EXTENSIONS:"group_set_key_values",GET_GROUP_MESSAGE_EXTENSIONS:"group_get_key_values",GET_GROUP_INFO:"get_group_self_member_info",GET_GROUP_MEMBER_INFO:"get_specified_group_member_info",GET_GROUP_MEMBER_LIST:"get_group_member_info",GET_AVCHATROOM_MEMBER_LIST:"get_members",MARK_AVCHATROOM_MEMBER_INFO:"modify_user_info",QUIT_GROUP:"quit_group",CHANGE_GROUP_OWNER:"change_group_owner",DESTROY_GROUP:"destroy_group",ADD_GROUP_MEMBER:"add_group_member",DELETE_GROUP_MEMBER:"delete_group_member",BAN_AVCHATROOM_MEMBER:"ban_group_member",SEARCH_GROUP_BY_ID:"get_group_public_info",APPLY_JOIN_GROUP:"apply_join_group",HANDLE_APPLY_JOIN_GROUP:"handle_apply_join_group",HANDLE_INVITE_JOIN_GROUP:"handle_invite_join_permission_group",HANDLE_GROUP_INVITATION:"handle_invite_join_group",MODIFY_GROUP_INFO:"modify_group_base_info",MODIFY_GROUP_MEMBER_INFO:"modify_group_member_info",DELETE_GROUP_SYSTEM_MESSAGE:"deletemsg",DELETE_GROUP_AT_TIPS:"deletemsg",GET_GROUP_NOTIFY:"get_group_notify",GET_CONVERSATION_LIST:"get",PAGING_GET_CONVERSATION_LIST:"page_get",DELETE_CONVERSATION:"batch_delete",CLEAR_HISTORY_MESSAGE:"clear_msg",PIN_CONVERSATION:"top",SET_CONVERSATION_CUSTOM_DATA:"mark_contact",MARK_CONVERSATION:"mark_contact",CREATE_CONVERSATION_GROUP:"create_contact_group",DELETE_CONVERSATION_GROUP:"del_contact_group",UPDATE_CONVERSATION_GROUP:"update_contact_group",GET_CONVERSATION_GROUP_LIST:"get_contact_group",GET_MESSAGES:"getmsg",GET_C2C_ROAM_MESSAGES:"getroammsg",SET_C2C_PEER_MUTE_NOTIFICATIONS:"set_c2c_peer_mute_notifications",GET_C2C_PEER_MUTE_NOTIFICATIONS:"get_c2c_peer_mute_notifications",GET_GROUP_ROAM_MESSAGES:"group_msg_get",GET_READ_RECEIPT:"get_group_msg_receipt",GET_READ_RECEIPT_DETAIL:"get_group_msg_receipt_detail",SEND_READ_RECEIPT:"group_msg_receipt",SEND_C2C_READ_RECEIPT:"c2c_msg_read_receipt",SET_C2C_MESSAGE_READ:"msgreaded",GET_PEER_READ_TIME:"get_peer_read_time",SET_GROUP_MESSAGE_READ:"msg_read_report",FILE_READ_AND_WRITE_AUTHKEY:"authkey",FILE_UPLOAD:"pic_up",COS_SIGN:"cos",COS_PRE_SIG:"pre_sig",VIDEO_COVER:"video_cover",TIM_WEB_REPORT_V2:"tim_web_report_v2",BIG_DATA_HALLWAY_AUTH_KEY:"authkey",GET_ONLINE_MEMBER_NUM:"get_online_member_num",ALIVE:"alive",MESSAGE_PUSH:"msg_push",MULTI_MESSAGE_PUSH:"multi_msg_push_ws",MESSAGE_PUSH_ACK:"ws_msg_push_ack",STATUS_FORCE_OFFLINE:"stat_forceoffline",DOWNLOAD_MERGER_MESSAGE:"get_relay_json_msg",UPLOAD_MERGER_MESSAGE:"save_relay_json_msg",FETCH_CLOUD_CONTROL_CONFIG:"fetch_config",PUSHED_CLOUD_CONTROL_CONFIG:"push_configv2",FETCH_COMMERCIAL_CONFIG:"fetch_imsdk_purchase_bitsv2",PUSHED_COMMERCIAL_CONFIG:"push_imsdk_purchase_bitsv2",KICK_OTHER:"KickOther",OVERLOAD_NOTIFY:"notify2",SET_ALL_MESSAGE_READ:"read_all_unread_msg",CREATE_TOPIC:"create_topic",DELETE_TOPIC:"destroy_topic",UPDATE_TOPIC_PROFILE:"modify_topic",GET_TOPIC_LIST:"get_topic",SET_SELF_STATUS:"ws_set_custom_status",GET_USER_STATUS:"ws_get_user_status",SUBSCRIBE_USER_STATUS:"ws_status_subscribe",UNSUBSCRIBE_USER_STATUS:"ws_status_unsubscribe",GET_RPOFANITY_LIST:"get_local_words",TRANSLATE_TEXT:"ws_batch_trans_text",UPDATE_GROUP_COUNTER:"update_group_counter",GET_GROUP_COUNTER:"get_group_counter"},CHANNEL:{SOCKET:1,XHR:2,AUTO:0},NAME_VERSION:{openim:"v4",group_open_http_svc:"v4",sns:"v4",profile:"v4",recentcontact:"v4",openpic:"v4",group_open_http_noauth_svc:"v4",group_open_long_polling_http_svc:"v4",group_open_long_polling_http_noauth_svc:"v4",imopenstat:"v4",im_cos_sign_svr:"v4",im_cos_msg:"v4",webim:"v4",im_open_push:"v4",im_open_status:"v4"}},B={SEARCH_MSG:new E(0,Math.pow(2,0)).toString(),SEARCH_GRP_SNS:new E(0,Math.pow(2,1)).toString(),AVCHATROOM_HISTORY_MSG:new E(0,Math.pow(2,2)).toString(),GRP_COMMUNITY:new E(0,Math.pow(2,3)).toString(),MSG_TO_SPECIFIED_GRP_MBR:new E(0,Math.pow(2,4)).toString(),AVCHATROOM_MBR_LIST:new E(0,Math.pow(2,6)).toString(),USER_STATUS:new E(0,Math.pow(2,7)).toString(),CONV_MARK:new E(0,Math.pow(2,9)).toString(),CONV_GROUP:new E(0,Math.pow(2,10)).toString(),AVCHATROOM_BAN_MBR:new E(0,Math.pow(2,11)).toString(),MSG_EXT:new E(0,Math.pow(2,13)).toString(),GRP_COUNTER:new E(0,Math.pow(2,15)).toString()},H="c2c_text_message",K="c2c_custom_message",W="group_text_message",j="group_custom_message",Y="user_profile",z="group_profile",J="group_member_profile";V.HOST.setCurrent(G);var X,Q,Z,$,ee="undefined"!=typeof wx&&"function"==typeof wx.getSystemInfoSync&&Boolean(wx.getSystemInfoSync().fontSizeSetting),te="undefined"!=typeof qq&&"function"==typeof qq.getSystemInfoSync&&Boolean(qq.getSystemInfoSync().fontSizeSetting),ne="undefined"!=typeof tt&&"function"==typeof tt.getSystemInfoSync&&Boolean(tt.getSystemInfoSync().fontSizeSetting),oe="undefined"!=typeof swan&&"function"==typeof swan.getSystemInfoSync&&Boolean(swan.getSystemInfoSync().fontSizeSetting),se="undefined"!=typeof my&&"function"==typeof my.getSystemInfoSync&&Boolean(my.getSystemInfoSync().fontSizeSetting),ae="undefined"!=typeof jd&&"function"==typeof jd.getSystemInfoSync,re="undefined"!=typeof uni&&"undefined"==typeof window,ie="undefined"!=typeof uni,ue=ee||te||ne||oe||se||re||ae,ce=("undefined"!=typeof uni||"undefined"!=typeof window)&&!ue,le=te?qq:ne?tt:oe?swan:se?my:ee?wx:re?uni:ae?jd:{},pe=ce&&window&&window.navigator&&window.navigator.userAgent||"",de=/(micromessenger|webbrowser)/i.test(pe),ge=/AppleWebKit\/([\d.]+)/i.exec(pe),he=(ge&&parseFloat(ge.pop()),X="WEB",de?X="WEB":te?X="QQ_MP":ne?X="TT_MP":oe?X="BAIDU_MP":se?X="ALI_MP":ee?X="WX_MP":re&&(X="UNI_NATIVE_APP"),R[X]),_e=/iPad/i.test(pe),fe=/iPhone/i.test(pe)&&!_e,ve=/iPod/i.test(pe),me=fe||_e||ve,Me=(Q=pe.match(/OS (\d+)_/i))&&Q[1]?Q[1]:null,ye=/Android/i.test(pe),Ie=function(){var e=pe.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!e)return null;var t=e[1]&&parseFloat(e[1]),n=e[2]&&parseFloat(e[2]);return t&&n?parseFloat(e[1]+"."+e[2]):t||null}(),Ce=(ye&&/webkit/i.test(pe),/Firefox/i.test(pe),/Edge/i.test(pe)),Te=!Ce&&/Chrome/i.test(pe),De=(function(){var e=pe.match(/Chrome\/(\d+)/);e&&e[1]&&parseFloat(e[1])}(),/MSIE/.test(pe)||pe.indexOf("Trident")>-1&&pe.indexOf("rv:11.0")>-1),ke=(/MSIE\s8\.0/.test(pe),function(){var e=/MSIE\s(\d+)\.\d/.exec(pe),t=e&&parseFloat(e[1]);return!t&&/Trident\/7.0/i.test(pe)&&/rv:11.0/.test(pe)&&(t=11),t}()),Se=(/Safari/i.test(pe),/TBS\/\d+/i.test(pe)),Le=(function(){var e=pe.match(/TBS\/(\d+)/i);if(e&&e[1])e[1]}(),!Se&&/MQQBrowser\/\d+/i.test(pe),!Se&&/ QQBrowser\/\d+/i.test(pe),/Windows/i.test(pe)),Ee=/MAC OS X/i.test(pe),Ae=(/MicroMessenger/i.test(pe),ce&&"undefined"!=typeof Worker&&!De),Re=ye||me,Ne=ce&&void 0!==window.tencent_cloud_im_csig_flutter_for_web_25F_cy;Z="undefined"!=typeof console?console:"undefined"!=typeof global&&global.console?global.console:"undefined"!=typeof window&&window.console?window.console:{};for(var Oe=function(){},Ge=["assert","clear","count","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],Pe=Ge.length;Pe--;)$=Ge[Pe],console[$]||(Z[$]=Oe);var Ue=Z,be=0,we=function(){return(new Date).getTime()+be},qe=function(){be=0},Fe=function(){return Math.floor(we()/1e3)},xe=0;function Ve(){return zt()?"%c TIM %c":"TIM"}function Be(){var e,t=((e=new Date).setTime(we()),e);return t.toLocaleTimeString("en-US",{hour12:!1})+"."+function(e){var t;switch(e.toString().length){case 1:t="00"+e;break;case 2:t="0"+e;break;default:t=e}return t}(t.getMilliseconds())}var He={arguments2String:function(e){var t="";if(1===e.length)t=e[0];else for(var n=0,o=e.length;n4294967295?(ht+=4294967295,Date.now()-ht):e},ft=function e(t,n,o,s){if(!ct(t)||!ct(n))return 0;for(var a,r=0,i=Object.keys(n),u=0,c=i.length;u=0?o[a]=t[a]:o[a]=e(t[a])):o[a]=void 0:o[a]=null;return o};function St(e,t){it(e)&&it(t)&&t.forEach((function(t){var n=t.key,o=t.value,s=e.find((function(e){return e.key===n}));s?s.value=o:e.push({key:n,value:o})}))}var Lt=function(e){return e===S.GRP_AVCHATROOM},Et=function(e){var t=e.type,n=e.groupID;return t===S.GRP_COMMUNITY||"".concat(n).startsWith(Qe)&&!"".concat(n).includes(Ze)},At=function(e){return"".concat(e).startsWith(Qe)&&"".concat(e).includes(Ze)},Rt=function(e){return st(e)&&e.slice(0,3)===S.CONV_C2C},Nt=function(e){return st(e)&&e.slice(0,5)===S.CONV_GROUP},Ot=function(e){return st(e)&&e===S.CONV_SYSTEM};function Gt(e,t){var n={};return Object.keys(e).forEach((function(o){n[o]=t(e[o],o)})),n}function Pt(e){return ue?new Promise((function(t,n){le.getImageInfo({src:e,success:function(e){t({width:e.width,height:e.height})},fail:function(){t({width:0,height:0})}})})):De&&9===ke?Promise.resolve({width:0,height:0}):new Promise((function(t,n){var o=new Image;o.onload=function(){t({width:this.width,height:this.height}),o=null},o.onerror=function(){t({width:0,height:0}),o=null},o.src=e}))}function Ut(){function e(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return"".concat(e()+e()).concat(e()).concat(e()).concat(e()).concat(e()).concat(e()).concat(e())}function bt(){var e="unknown";if(Ee&&(e="mac"),Le&&(e="windows"),me&&(e="ios"),ye&&(e="android"),ue)try{var t=le.getSystemInfoSync().platform;void 0!==t&&(e=t)}catch(n){}return e}function wt(e,t){e=e.split("."),t=t.split(".");for(var n=Math.max(e.length,t.length);e.lengtha)return 1;if(s-1?"".concat(n,"&"):"".concat(n,"?");c.url="".concat(l,198===r?"imageView2/3/w/198/h/198":"imageView2/3/w/720/h/720")}return ut(n)?g(c,$e):c}function Ft(e){var t=e[2];e[2]=e[1],e[1]=t;for(var n=0;n=0;o--)"1"===e[o]&&t.push(Math.pow(2,n-o-1));return t}function zt(){return!De&&!ue}function Jt(e){return"the length of userIDList cannot exceed ".concat(e)}function Xt(e,t){if(e){var n=e;return t&&(e.startsWith("http://")?n=e.replace(/^http:\/\/[^/]+/,t):e.startsWith("https://")&&(n=e.replace(/^https:\/\/[^/]+/,t))),n}}var Qt=Object.prototype.hasOwnProperty;function Zt(e){if(null==e)return!0;if("boolean"==typeof e)return!1;if("number"==typeof e)return 0===e;if("string"==typeof e)return 0===e.length;if("function"==typeof e)return 0===e.length;if(Array.isArray(e))return 0===e.length;if(e instanceof Error)return""===e.message;if(rt(e)){for(var t in e)if(Qt.call(e,t))return!1;return!0}return!(!et(e)&&(n=e,"set"!==dt(n))&&!nt(e))&&0===e.size;var n}function $t(e,t,n){if(void 0===t)return!0;var o=!0;if(rt(t))Object.keys(t).forEach((function(s){var a=1===e.length?e[0][s]:void 0;o=!!en(a,t[s],n,s)&&o}));else if(it(t))for(var s=0;s256)||(an({api:"setConversationCustomData",param:"customData",desc:vn("customData",256)}),!1):(an({api:"setConversationCustomData",param:"customData",desc:rn()}),!1)}}},markConversation:{conversationIDList:t({},Ln),markType:{type:"number",validator:function(e){return ot(e)?e<=0?(an({api:"markConversation",param:"markType",desc:(t="markType",n=0,Nn("NumberGreaterThanLog",t,n))}),!1):!(e>=Math.pow(2,64))||(an({api:"markConversation",param:"markType",desc:mn("markType","Math.pow(2,64)")}),!1):(an({api:"markConversation",param:"markType",desc:cn()}),!1);var t,n}},enableMark:t({},An)},createConversationGroup:{conversationIDList:t({},Ln),groupName:t(t({},Sn),{},{validator:function(e){return!!e&&(!(e.length>32)||(an({api:"createConversationGroup",param:"groupName",desc:vn("groupName",32)}),!1))}})},deleteConversationGroup:[t({name:"groupName"},Sn)],renameConversationGroup:{oldName:t({},Sn),newName:t(t({},Sn),{},{validator:function(e){return!!e&&(!(e.length>32)||(an({api:"renameConversationGroup",param:"newName",desc:vn("newName",32)}),!1))}})},addConversationsToGroup:{conversationIDList:t({},Ln),groupName:t({},Sn)},deleteConversationsFromGroup:{conversationIDList:t({},Ln),groupName:t({},Sn)},getGroupList:{groupProfileFilter:{type:"Array"}},getGroupProfile:{groupID:Sn,groupCustomFieldFilter:{type:"Array"},memberCustomFieldFilter:{type:"Array"}},getGroupProfileAdvance:{groupIDList:Ln},createGroup:{name:Sn},joinGroup:{groupID:Sn,type:{type:"String"},applyMessage:{type:"String"}},quitGroup:[t({name:"groupID"},Sn)],handleApplication:{message:En,handleAction:Sn,handleMessage:{type:"String"}},changeGroupOwner:{groupID:Sn,newOwnerID:Sn},updateGroupProfile:{groupID:Sn,muteAllMembers:{type:"Boolean"}},dismissGroup:[t({name:"groupID"},Sn)],searchGroupByID:[t({name:"groupID"},Sn)],initGroupAttributes:{groupID:Sn,groupAttributes:t(t({},En),{},{validator:function(e){var t=!0;return Object.keys(e).forEach((function(n){if(!st(e[n]))return an({api:"initGroupAttributes",param:"groupAttributes",desc:Mn("value")}),t=!1})),t}})},setGroupAttributes:{groupID:Sn,groupAttributes:t(t({},En),{},{validator:function(e){var t=!0;return Object.keys(e).forEach((function(n){if(!st(e[n]))return an({api:"setGroupAttributes",param:"groupAttributes",desc:Mn("value")}),t=!1})),t}})},deleteGroupAttributes:{groupID:Sn,keyList:{type:"Array",validator:function(e){if(ut(e)||!it(e))return an({api:"deleteGroupAttributes",param:"keyList",desc:gn()}),!1;if(!Zt(e)){var t=!0;return e.forEach((function(e){if(!st(e))return an({api:"deleteGroupAttributes",param:"keyList",desc:Nn("StringArrayRequiredLog")}),t=!1})),t}return!0}}},getGroupAttributes:{groupID:Sn,keyList:{type:"Array",validator:function(e){if(ut(e)||!it(e))return an({api:"getGroupAttributes",param:"keyList",desc:gn()}),!1;if(!Zt(e)){var t=!0;return e.forEach((function(e){if(!st(e))return an({api:"getGroupAttributes",param:"keyList",desc:Mn("key")}),t=!1})),t}return!0}}},setGroupCounters:{groupID:Sn,counters:En},increaseGroupCounter:{groupID:Sn,key:Sn,value:Rn},decreaseGroupCounter:{groupID:Sn,key:Sn,value:Rn},getGroupCounters:{groupID:Sn},getGroupMemberList:{groupID:Sn,count:{type:"Number"}},getGroupMemberProfile:{groupID:Sn,userIDList:Ln,memberCustomFieldFilter:{type:"Array"}},addGroupMember:{groupID:Sn,userIDList:Ln},setGroupMemberRole:{groupID:Sn,userID:Sn,role:Sn},setGroupMemberMuteTime:{groupID:Sn,userID:Sn,muteTime:{type:"Number",validator:function(e){return e>=0}}},setGroupMemberNameCard:{groupID:Sn,userID:{type:"String"},nameCard:{type:"String",validator:function(e){return st(e)?(e.length,!0):(an({api:"setGroupMemberNameCard",param:"nameCard",desc:rn()}),!1)}}},setGroupMemberCustomField:{groupID:Sn,userID:{type:"String"},memberCustomField:Ln},deleteGroupMember:{groupID:Sn},markGroupMemberList:{groupID:Sn,markType:{type:"number",validator:function(e){return ot(e)?!(e<1e3)||(an({api:"markGroupMemberList",param:"markType",desc:(t="markType",n=1e3,Nn("NumberGreaterOrEqualLog",t,n))}),!1):(an({api:"markGroupMemberList",param:"markType",desc:cn()}),!1);var t,n}},userIDList:t({},Ln),enableMark:t({},An)},createTextMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){return rt(e)?st(e.text)?0!==e.text.length||(an({api:"createTextMessage",param:"payload.text",desc:In()}),!1):(an({api:"createTextMessage",param:"payload.text",desc:rn()}),!1):(an({api:"createTextMessage",param:"payload",desc:yn()}),!1)}})},createTextAtMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){return rt(e)?st(e.text)?0===e.text.length?(an({api:"createTextAtMessage",param:"payload.text",desc:In()}),!1):!(e.atUserList&&!it(e.atUserList))||(an({api:"createTextAtMessage",param:"payload.atUserList",desc:gn()}),!1):(an({api:"createTextAtMessage",param:"payload.text",desc:rn()}),!1):(an({api:"createTextAtMessage",param:"payload",desc:yn()}),!1)}})},createCustomMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){return rt(e)?e.data&&!st(e.data)?(an({api:"createCustomMessage",param:"payload.data",desc:rn()}),!1):e.description&&!st(e.description)?(an({api:"createCustomMessage",param:"payload.description",desc:rn()}),!1):!(e.extension&&!st(e.extension))||(an({api:"createCustomMessage",param:"payload.extension",desc:rn()}),!1):(an({api:"createCustomMessage",param:"payload",desc:yn()}),!1)}})},createImageMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){if(!rt(e))return an({api:"createImageMessage",param:"payload",desc:yn()}),!1;if(ut(e.file))return an({api:"createImageMessage",param:"payload.file",desc:ln()}),!1;if(ce){if(!(e.file instanceof HTMLInputElement||nt(e.file)))return rt(e.file)&&"undefined"!=typeof uni?0!==e.file.tempFilePaths.length&&0!==e.file.tempFiles.length||(an({api:"createImageMessage",param:"payload.file",desc:Cn()}),!1):(an({api:"createImageMessage",param:"payload.file",desc:pn()}),!1);if(e.file instanceof HTMLInputElement&&0===e.file.files.length)return an({api:"createImageMessage",param:"payload.file",desc:Cn()}),!1}return!0},onProgress:{type:"Function",required:!1,validator:function(e){return ut(e)&&an({api:"createImageMessage",param:"onProgress",desc:_n()}),!0}}})},createAudioMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){return!!rt(e)||(an({api:"createAudioMessage",param:"payload",desc:yn()}),!1)}}),onProgress:{type:"Function",required:!1,validator:function(e){return ut(e)&&an({api:"createAudioMessage",param:"onProgress",desc:_n()}),!0}}},createVideoMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){if(!rt(e))return an({api:"createVideoMessage",param:"payload",desc:yn()}),!1;if(ut(e.file))return an({api:"createVideoMessage",param:"payload.file",desc:ln()}),!1;if(ce){if(!(e.file instanceof HTMLInputElement||nt(e.file)))return rt(e.file)&&"undefined"!=typeof uni?!!nt(e.file.tempFile)||(an({api:"createVideoMessage",param:"payload.file",desc:Cn()}),!1):(an({api:"createVideoMessage",param:"payload.file",desc:pn()}),!1);if(e.file instanceof HTMLInputElement&&0===e.file.files.length)return an({api:"createVideoMessage",param:"payload.file",desc:Cn()}),!1}return!0}}),onProgress:{type:"Function",required:!1,validator:function(e){return ut(e)&&an({api:"createVideoMessage",param:"onProgress",desc:_n()}),!0}}},createFaceMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){return rt(e)?ot(e.index)?!!st(e.data)||(an({api:"createFaceMessage",param:"payload.data",desc:rn()}),!1):(an({api:"createFaceMessage",param:"payload.index",desc:cn()}),!1):(an({api:"createFaceMessage",param:"payload",desc:yn()}),!1)}})},createFileMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){if(!rt(e))return an({api:"createFileMessage",param:"payload",desc:yn()}),!1;if(ut(e.file))return an({api:"createFileMessage",param:"payload.file",desc:ln()}),!1;if(ce){if(!(e.file instanceof HTMLInputElement||nt(e.file)))return rt(e.file)&&"undefined"!=typeof uni?0!==e.file.tempFilePaths.length&&0!==e.file.tempFiles.length||(an({api:"createFileMessage",param:"payload.file",desc:Cn()}),!1):(an({api:"createFileMessage",param:"payload.file",desc:pn()}),!1);if(e.file instanceof HTMLInputElement&&0===e.file.files.length)return an({api:"createFileMessage",param:"payload.file",desc:Cn()}),!1}return!0}}),onProgress:{type:"Function",required:!1,validator:function(e){return ut(e)&&an({api:"createFileMessage",param:"onProgress",desc:_n()}),!0}}},createLocationMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){return rt(e)?st(e.description)?ot(e.longitude)?!!ot(e.latitude)||(an({api:"createLocationMessage",param:"payload.latitude",desc:cn()}),!1):(an({api:"createLocationMessage",param:"payload.longitude",desc:cn()}),!1):(an({api:"createLocationMessage",param:"payload.description",desc:rn()}),!1):(an({api:"createLocationMessage",param:"payload",desc:yn()}),!1)}})},createMergerMessage:{to:Sn,conversationType:Sn,payload:t(t({},En),{},{validator:function(e){if(Zt(e.messageList))return an({api:"createMergerMessage",param:"payload.messageList",desc:hn()}),!1;if(Zt(e.compatibleText))return an({api:"createMergerMessage",param:"payload.compatibleText",desc:un("compatibleText")}),!1;var t=!1;return e.messageList.forEach((function(e){e.status===nn.FAIL&&(t=!0)})),!t||(an({api:"createMergerMessage",param:"payload.messageList",desc:Nn("MergeFailedMessageLog")}),!1)}})},revokeMessage:[t(t({name:"message"},En),{},{validator:function(e){return Zt(e)?(an({api:"revokeMessage",param:"message",desc:Tn()}),!1):e.conversationType===S.CONV_SYSTEM?(an({api:"revokeMessage",param:"message",desc:Nn("MessageCanBeRevokedDesc")}),!1):!0!==e.isRevoked||(an({api:"revokeMessage",param:"message",desc:Nn("MessageRevokedLog")}),!1)}})],deleteMessage:[t(t({name:"messageList"},Ln),{},{validator:function(e){return!Zt(e)||(an({api:"deleteMessage",param:"messageList",desc:hn()}),!1)}})],translateText:{sourceTextList:Ln,sourceLanguage:Sn,targetLanguage:Sn},modifyMessage:[t(t({name:"message"},En),{},{validator:function(e){return Zt(e)?(an({api:"modifyMessage",param:"message",desc:Tn()}),!1):e.conversationType===S.CONV_SYSTEM?(an({api:"modifyMessage",param:"message",desc:Nn("MessageCanBeModifiedLog")}),!1):!0!==e._onlineOnlyFlag||(an({api:"modifyMessage",param:"message",desc:Nn("OnlineMessageNotSupportLog")}),!1)}})],getUserProfile:{userIDList:{type:"Array",validator:function(e){return it(e)?(0===e.length&&an({api:"getUserProfile",param:"userIDList",desc:hn()}),!0):(an({api:"getUserProfile",param:"userIDList",desc:gn()}),!1)}}},updateMyProfile:{profileCustomField:{type:"Array",validator:function(e){return!!ut(e)||(!!it(e)||(an({api:"updateMyProfile",param:"profileCustomField",desc:gn()}),!1))}}},setSelfStatus:{customStatus:{type:"String",validator:function(e){return!!st(e)||(an({api:"setSelfStatus",param:"customStatus",desc:rn()}),!1)}}},getUserStatus:{userIDList:{type:"Array",validator:function(e){return it(e)?0!==e.length||(an({api:"getUserStatus",param:"userIDList",desc:hn()}),!1):(an({api:"getUserStatus",param:"userIDList",desc:gn()}),!1)}}},subscribeUserStatus:{userIDList:{type:"Array",validator:function(e){return it(e)?0!==e.length||(an({api:"subscribeUserStatus",param:"userIDList",desc:hn()}),!1):(an({api:"subscribeUserStatus",param:"userIDList",desc:gn()}),!1)}}},unsubscribeUserStatus:{userIDList:{type:"Array",validator:function(e){return!e||(!!it(e)||(an({api:"subscribeUserStatus",param:"userIDList",desc:gn()}),!1))}}},addFriend:{to:Sn,source:{type:"String",required:!0,validator:function(e){return!!e&&(e.startsWith("AddSource_Type_")?!(e.replace("AddSource_Type_","").length>8)||(an({api:"addFriend",param:"source",desc:vn("keyword",8)}),!1):(an({api:"addFriend",param:"source",desc:Nn("SourcePrefixLog")}),!1))}},remark:{type:"String",required:!1,validator:function(e){return!(st(e)&&e.length>96)||(an({api:"addFriend",param:"remark",desc:vn("remark",96)}),!1)}}},deleteFriend:{userIDList:Ln},checkFriend:{userIDList:Ln},getFriendProfile:{userIDList:Ln},updateFriend:{userID:Sn,remark:{type:"String",required:!1,validator:function(e){return!(st(e)&&e.length>96)||(an({api:"updateFriend",param:"remark",desc:vn("remark",96)}),!1)}},friendCustomField:{type:"Array",required:!1,validator:function(e){if(e){if(!it(e))return an({api:"updateFriend",param:"friendCustomField",desc:gn()}),!1;var t=!0;return e.forEach((function(e){return st(e.key)&&-1!==e.key.indexOf("Tag_SNS_Custom")?st(e.value)?e.key.replace("Tag_SNS_Custom_","").length>8?(an({api:"updateFriend",param:"friendCustomField",desc:vn("keyword",8)}),t=!1):void 0:(an({api:"updateFriend",param:"friendCustomField",desc:Mn("value")}),t=!1):(an({api:"updateFriend",param:"friendCustomField",desc:Nn("FriendCustomFieldPrefixLog")}),t=!1)})),t}return!0}}},acceptFriendApplication:{userID:Sn},refuseFriendApplication:{userID:Sn},deleteFriendApplication:{userID:Sn},createFriendGroup:{name:Sn},deleteFriendGroup:{name:Sn},addToFriendGroup:{name:Sn,userIDList:Ln},removeFromFriendGroup:{name:Sn,userIDList:Ln},renameFriendGroup:{oldName:Sn,newName:Sn},sendMessageReadReceipt:[{name:"messageList",type:"Array",validator:function(e){return it(e)?0!==e.length||(an({api:"sendMessageReadReceipt",param:"messageList",desc:hn()}),!1):(an({api:"sendMessageReadReceipt",param:"messageList",desc:gn()}),!1)}}],getMessageReadReceiptList:[{name:"messageList",type:"Array",validator:function(e){return it(e)?0!==e.length||(an({api:"getMessageReadReceiptList",param:"messageList",desc:hn()}),!1):(an({api:"getMessageReadReceiptList",param:"messageList",desc:gn()}),!1)}}],createTopicInCommunity:{groupID:Sn,topicName:Sn},deleteTopicFromCommunity:{groupID:Sn,topicIDList:{type:"Array",validator:function(e){return!e||(!!it(e)||(an({api:"deleteTopicFromCommunity",param:"topicIDList",desc:gn()}),!1))}}},updateTopicProfile:{groupID:Sn,topicID:Sn},getTopicList:{groupID:Sn,topicIDList:{type:"Array",validator:function(e){return!e||(!!it(e)||(an({api:"getTopicList",param:"topicIDList",desc:gn()}),!1))}}}},Gn={login:1,logout:1,on:1,once:1,off:1,setLogLevel:1,registerPlugin:1,destroy:1,createTextMessage:1,createTextAtMessage:1,createImageMessage:1,createAudioMessage:1,createVideoMessage:1,createCustomMessage:1,createFaceMessage:1,createFileMessage:1,createLocationMessage:1,createMergerMessage:1,downloadMergerMessage:1,createForwardMessage:1,sendMessage:1,resendMessage:1,revokeMessage:1,deleteMessage:1,translateText:1,modifyMessage:1,sendMessageReadReceipt:1,getGroupMessageReadMemberList:1,getMessageReadReceiptList:1,setMessageExtensions:1,getMessageExtensions:1,deleteMessageExtensions:1,getMessageList:1,findMessage:1,getMessageListHopping:1,setMessageRead:1,setAllMessageRead:1,getConversationList:1,getConversationProfile:1,deleteConversation:1,pinConversation:1,getTotalUnreadMessageCount:1,setConversationCustomData:1,markConversation:1,createConversationGroup:1,getConversationGroupList:1,deleteConversationGroup:1,renameConversationGroup:1,addConversationsToGroup:1,deleteConversationsFromGroup:1,clearHistoryMessage:1,getGroupList:1,getGroupProfile:1,createGroup:1,joinGroup:1,updateGroupProfile:1,quitGroup:1,dismissGroup:1,changeGroupOwner:1,searchGroupByID:1,setMessageRemindType:1,getGroupApplicationList:1,handleGroupApplication:1,initGroupAttributes:1,setGroupAttributes:1,deleteGroupAttributes:1,getGroupAttributes:1,setGroupCounters:1,increaseGroupCounter:1,decreaseGroupCounter:1,getGroupCounters:1,getJoinedCommunityList:1,createTopicInCommunity:1,deleteTopicFromCommunity:1,updateTopicProfile:1,getTopicList:1,getGroupMemberProfile:1,getGroupMemberList:1,addGroupMember:1,deleteGroupMember:1,setGroupMemberNameCard:1,setGroupMemberMuteTime:1,setGroupMemberRole:1,setGroupMemberCustomField:1,getGroupOnlineMemberCount:1,markGroupMemberList:1,getMyProfile:1,getUserProfile:1,updateMyProfile:1,setSelfStatus:1,getUserStatus:1,subscribeUserStatus:1,unsubscribeUserStatus:1,getBlacklist:1,addToBlacklist:1,removeFromBlacklist:1,getFriendList:1,addFriend:1,deleteFriend:1,checkFriend:1,updateFriend:1,getFriendProfile:1,getFriendApplicationList:1,refuseFriendApplication:1,deleteFriendApplication:1,acceptFriendApplication:1,setFriendApplicationRead:1,getFriendGroupList:1,createFriendGroup:1,renameFriendGroup:1,deleteFriendGroup:1,addToFriendGroup:1,removeFromFriendGroup:1,callExperimentalAPI:1},Pn=1,Un=2,bn=3,wn=4,qn=6,Fn=7,xn=8,Vn=9,Bn=10,Hn=11,Kn=12,Wn=13,jn=14,Yn=15,zn=16,Jn=17,Xn=18,Qn=19,Zn=20,$n=21,eo=22,to=23,no=24,oo=25,so=26,ao=27,ro=28,io=29,uo=30,co=31,lo=32,po=function(){function e(t){o(this,e),this._m=t,this._n=""}return a(e,[{key:"isLoggedIn",value:function(){return this._m.getModule(Kn).isLoggedIn()}},{key:"isOversea",value:function(){return this._m.getModule(Kn).isOversea()}},{key:"isPrivateNetWork",value:function(){return this._m.getModule(Kn).isPrivateNetWork()}},{key:"getFileDownloadProxy",value:function(){return this._m.getModule(Kn).getFileDownloadProxy()}},{key:"getMyUserID",value:function(){return this._m.getModule(Kn).getUserID()}},{key:"getMyTinyID",value:function(){return this._m.getModule(Kn).getTinyID()}},{key:"getSDKAppID",value:function(){return this._m.getModule(Kn).getSDKAppID()}},{key:"isIntl",value:function(){return this._m.getModule(Kn).isIntl()}},{key:"isDevMode",value:function(){return this._m.getModule(Kn).isDevMode()}},{key:"getModule",value:function(e){return this._m.getModule(e)}},{key:"getPlatform",value:function(){return he}},{key:"getNetworkType",value:function(){return this._m.getModule(Yn).getNetworkType()}},{key:"probeNetwork",value:function(e){return this._m.getModule(Yn).probe(e)}},{key:"getCloudConfig",value:function(e){return this._m.getModule(to).getCloudConfig(e)}},{key:"emitOuterEvent",value:function(e,t){this._m.getOuterEmitterInstance().emit(e,t)}},{key:"emitInnerEvent",value:function(e,t){this._m.getInnerEmitterInstance().emit(e,t)}},{key:"getInnerEmitterInstance",value:function(){return this._m.getInnerEmitterInstance()}},{key:"generateTjgID",value:function(e){return this._m.getModule(Kn).getTinyID()+"-"+e.random}},{key:"filterModifiedMessage",value:function(e){if(!Zt(e)){var t=e.filter((function(e){return!0===e.isModified}));t.length>0&&this.emitOuterEvent(k.MESSAGE_MODIFIED,t)}}},{key:"filterUnmodifiedMessage",value:function(e){return Zt(e)?[]:e.filter((function(e){return!1===e.isModified}))}},{key:"request",value:function(e){return this._m.getModule(Zn).request(e)}},{key:"canIUse",value:function(e){return this._m.getModule(ao).canIUse(e)}},{key:"getErrorMessage",value:function(e,t,n){return this._m.getErrorMessage(e,t,n)}},{key:"outputWarning",value:function(e,t,n){var o=this.getErrorMessage(e,t,n);o&&He.w(o)}}]),e}(),go="wslogin",ho="wslogout",_o="wshello",fo="KickOther",vo="getmsg",mo="authkey",Mo="sendmsg",yo="send_group_msg",Io="portrait_get_all",Co="portrait_set",To="black_list_get",Do="black_list_add",ko="black_list_delete",So="msgwithdraw",Lo="msgreaded",Eo="set_c2c_peer_mute_notifications",Ao="get_c2c_peer_mute_notifications",Ro="getroammsg",No="get_peer_read_time",Oo="delete_c2c_msg_ramble",Go="modify_c2c_msg",Po="set_key_values",Uo="get_key_values",bo="page_get",wo="get",qo="batch_delete",Fo="clear_msg",xo="top",Vo="deletemsg",Bo="set_conv_custom_data",Ho="mark_contact",Ko="create_contact_group",Wo="del_contact_group",jo="update_contact_group",Yo="add_conv_to_group",zo="del_conv_from_group",Jo="get_contact_group",Xo="get_joined_group_list",Qo="get_group_self_member_info",Zo="create_group",$o="destroy_group",es="modify_group_base_info",ts="apply_join_group",ns="apply_join_group_noauth",os="quit_group",ss="get_group_public_info",as="change_group_owner",rs="handle_apply_join_group",is="handle_invite_join_permission_group",us="handle_invite_join_group",cs="group_msg_recall",ls="msg_read_report",ps="read_all_unread_msg",ds="group_msg_get",gs="get_group_msg_receipt",hs="group_msg_receipt",_s="c2c_msg_read_receipt",fs="get_group_msg_receipt_detail",vs="get_pendency",ms="deletemsg",Ms="get_msg",ys="get_msg_noauth",Is="get_online_member_num",Cs="delete_group_ramble_msg_by_seq",Ts="modify_group_msg",Ds="set_group_attr",ks="modify_group_attr",Ss="delete_group_attr",Ls="clear_group_attr",Es="get_group_attr",As="group_set_key_values",Rs="group_get_key_values",Ns="get_group_notify",Os="update_group_counter",Gs="get_group_counter",Ps="get_group_member_info",Us="get_members",bs="get_specified_group_member_info",ws="add_group_member",qs="delete_group_member",Fs="ban_group_member",xs="modify_group_member_info",Vs="modify_user_info",Bs="cos",Hs="pre_sig",Ks="video_cover",Ws="tim_web_report_v2",js="alive",Ys="msg_push",zs="multi_msg_push_ws",Js="ws_msg_push_ack",Xs="stat_forceoffline",Qs="save_relay_json_msg",Zs="get_relay_json_msg",$s="fetch_config",ea="push_configv2",ta="fetch_imsdk_purchase_bitsv2",na="push_imsdk_purchase_bitsv2",oa="notify2",sa="create_topic",aa="destroy_topic",ra="modify_topic",ia="get_topic",ua="ws_set_custom_status",ca="ws_get_user_status",la="ws_status_subscribe",pa="ws_status_unsubscribe",da="ws_stat_background",ga="ws_stat_foreground",ha="ws_stat_settoken",_a="get_local_words",fa="ws_batch_trans_text",va=2e3,ma=2002,Ma=2003,ya=2022,Ia=2023,Ca=2024,Ta=2025,Da=2040,ka=2041,Sa=2100,La=2101,Ea=2105,Aa=2106,Ra=2108,Na=2109,Oa=2110,Ga=2111,Pa=2112,Ua=2114,ba=2115,wa=2116,qa=2117,Fa=2251,xa=2252,Va=2253,Ba=2300,Ha=2301,Ka=2350,Wa=2351,ja=2352,Ya=2400,za=2401,Ja=2402,Xa=2403,Qa=2450,Za=2451,$a=2452,er=2453,tr=2480,nr=2481,or=2500,sr=2501,ar=2502,rr=2503,ir=2600,ur=2601,cr=2602,lr=2603,pr=2620,dr=2621,gr=2622,hr=2623,_r=2660,fr=2661,vr=2662,mr=2681,Mr=2682,yr=2683,Ir=2684,Cr=2685,Tr=2686,Dr=2721,kr=2722,Sr=2742,Lr=2800,Er=2801,Ar=2805,Rr=2903,Nr=2905,Or=2996,Gr=2997,Pr=2998,Ur=2999,br=3e3,wr=3001,qr=3002,Fr=3003,xr=3004,Vr=3005,Br=3006,Hr=3021,Kr=3122,Wr=3123,jr=20002,Yr=70001,zr=1002,Jr=60022,Xr="networkRTT",Qr="messageE2EDelay",Zr="sendMessageC2C",$r="sendMessageGroup",ei="sendMessageGroupAV",ti="sendMessageRichMedia",ni="cosUpload",oi="messageReceivedGroup",si="messageReceivedGroupAVPush",ai="messageReceivedGroupAVPull",ri=(r(tn={},Xr,2),r(tn,Qr,3),r(tn,Zr,4),r(tn,$r,5),r(tn,ei,6),r(tn,ti,7),r(tn,oi,8),r(tn,si,9),r(tn,ai,10),r(tn,ni,11),tn),ii={info:4,warning:5,error:6},ui={wifi:1,"2g":2,"3g":3,"4g":4,"5g":5,unknown:6,none:7,online:8},ci={login:4},li=function(){function e(t){o(this,e),this._n="SSOLogData",this.eventType=ci[t]||0,this.timestamp=0,this.networkType=8,this.code=0,this.message="",this.moreMessage="",this.extension=t,this.costTime=0,this.duplicate=!1,this.level=4,this.uiPlatform=void 0,this._sentFlag=!1,this._startts=we()}return a(e,[{key:"updateTimeStamp",value:function(){this.timestamp=we()}},{key:"start",value:function(e){return this._startts=e,this}},{key:"end",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!this._sentFlag){var n=we();0===this.costTime&&(this.costTime=n-this._startts),this.setMoreMessage("startts:".concat(this._startts," endts:").concat(n)),t?(this._sentFlag=!0,this._eventStatModule&&this._eventStatModule.pushIn(this)):setTimeout((function(){e._sentFlag=!0,e._eventStatModule&&e._eventStatModule.pushIn(e)}),0)}}},{key:"setError",value:function(e,t,n){if(!(e instanceof Error))return He.w("".concat(this._n,".setError value not instanceof Error, please check!")),this;if(this._sentFlag)return this;if(this.setNetworkType(n),t)e.code&&this.setCode(e.code),e.message&&this.setMoreMessage(e.message);else{var o=Ar;this.setCode(o)}return this.setLevel("error"),this}},{key:"setCode",value:function(e){return ut(e)||this._sentFlag||("ECONNABORTED"===e&&(this.code=103),ot(e)?this.code=e:He.w("".concat(this._n,".setCode value not a number, please check!"),e,n(e))),this}},{key:"setMessage",value:function(e){return ut(e)||this._sentFlag||(ot(e)&&(this.message=e.toString()),st(e)&&(this.message=e)),this}},{key:"setCostTime",value:function(e){return this.costTime=e,this}},{key:"setLevel",value:function(e){return ut(e)||this._sentFlag||(this.level=ii[e]),this}},{key:"setMoreMessage",value:function(e){return Zt(this.moreMessage)?this.moreMessage="".concat(e):this.moreMessage+=" ".concat(e),this}},{key:"setNetworkType",value:function(e){if(ut(e))He.w("".concat(this._n,".setNetworkType value is undefined, please check!"));else{var t=ui[e.toLowerCase()];ut(t)||(this.networkType=t)}return this}},{key:"getStartTs",value:function(){return this._startts}},{key:"setUIPlatform",value:function(e){this.uiPlatform=e}}],[{key:"bindEventStatModule",value:function(t){e.prototype._eventStatModule=t}}]),e}(),pi=function(){function e(t){o(this,e),this.type=S.MSG_TEXT,this.content={text:t.text||""}}return a(e,[{key:"setText",value:function(e){this.content.text=e}},{key:"sendable",value:function(){return 0!==this.content.text.length}}]),e}(),di=function(){function e(t,n){o(this,e),this._imageMemoryURL="",this._fileDownloadProxy=n,ue?this.createImageDataASURLInWXMiniApp(t.file):this.createImageDataASURLInWeb(t.file),this._initImageInfoModel(),this.type=S.MSG_IMAGE,this._percent=0,this.content={imageFormat:t.imageFormat||Ke.UNKNOWN,uuid:t.uuid,imageInfoArray:[]},this.initImageInfoArray(t.imageInfoArray),this._autoFixUrl()}return a(e,[{key:"_initImageInfoModel",value:function(){var e=this;this._ImageInfoModel=function(t){this.instanceID=Mt(9999999),this.sizeType=t.type||0,this.type=0,this.size=t.size||0,this.width=t.width||0,this.height=t.height||0,this.imageUrl=t.url||"",this.url=Xt(t.url||e._imageMemoryURL,e._fileDownloadProxy)},this._ImageInfoModel.prototype={setSizeType:function(e){this.sizeType=e},setType:function(e){this.type=e},setImageUrl:function(e){e&&(this.imageUrl=e)},getImageUrl:function(){return this.imageUrl}}}},{key:"initImageInfoArray",value:function(e){for(var t=0,n=null,o=null;t<=2;)o=ut(e)||ut(e[t])?{type:0,size:0,width:0,height:0,url:""}:e[t],(n=new this._ImageInfoModel(o)).setSizeType(t+1),n.setType(t),this.addImageInfo(n),t++;this.updateAccessSideImageInfoArray()}},{key:"updateImageInfoArray",value:function(e){for(var t,n=this.content.imageInfoArray.length,o=0;o1&&(this._percent=1)}},{key:"updateImageFormat",value:function(e){this.content.imageFormat=Ke[e.toUpperCase()]||Ke.UNKNOWN}},{key:"createImageDataASURLInWeb",value:function(e){void 0!==e&&e.files.length>0&&(this._imageMemoryURL=window.URL.createObjectURL(e.files[0]))}},{key:"createImageDataASURLInWXMiniApp",value:function(e){e&&e.url&&(this._imageMemoryURL=e.url)}},{key:"replaceImageInfo",value:function(e,t){this.content.imageInfoArray[t]instanceof this._ImageInfoModel||(this.content.imageInfoArray[t]=e)}},{key:"addImageInfo",value:function(e){this.content.imageInfoArray.length>=3||this.content.imageInfoArray.push(e)}},{key:"updateAccessSideImageInfoArray",value:function(){var e=this.content.imageInfoArray,t=e[0],n=t.width,o=void 0===n?0:n,s=t.height,a=void 0===s?0:s;0!==o&&0!==a&&(Ft(e),Object.assign(e[2],qt({originWidth:o,originHeight:a,min:720})))}},{key:"sendable",value:function(){return 0!==this.content.imageInfoArray.length&&(""!==this.content.imageInfoArray[0].imageUrl&&0!==this.content.imageInfoArray[0].size)}}]),e}(),gi=function(){function e(t){o(this,e),this.type=S.MSG_FACE,this.content=t||null}return a(e,[{key:"sendable",value:function(){return null!==this.content}}]),e}(),hi=function(){function e(t,n){o(this,e),this.type=S.MSG_AUDIO,this._percent=0,this.content={downloadFlag:2,second:t.second,size:t.size,url:Xt(t.url,n),remoteAudioUrl:t.url||"",uuid:t.uuid}}return a(e,[{key:"updatePercent",value:function(e){this._percent=e,this._percent>1&&(this._percent=1)}},{key:"updateAudioUrl",value:function(e){this.content.remoteAudioUrl=e}},{key:"sendable",value:function(){return""!==this.content.remoteAudioUrl}}]),e}(),_i={from:!0,groupID:!0,groupName:!0,to:!0},fi=function(){function e(t){o(this,e),this.type=S.MSG_GRP_TIP,this.content={},this._initContent(t)}return a(e,[{key:"_initContent",value:function(e){var t=this;Object.keys(e).forEach((function(n){switch(n){case"remarkInfo":break;case"groupProfile":t.content.groupProfile={},t._initGroupProfile(e[n]);break;case"operatorInfo":break;case"memberInfoList":case"msgMemberInfo":t._updateMemberList(e[n]);break;case"memberExtraInfo":case"onlineMemberInfo":break;case"memberNum":t.content[n]=e[n],t.content.memberCount=e[n];break;case"newGroupProfile":t.content.newGroupProfile={},t._initNewGroupProfile(e[n]);break;default:t.content[n]=e[n]}})),this.content.userIDList||(this.content.userIDList=[this.content.operatorID])}},{key:"_initGroupProfile",value:function(e){for(var t=Object.keys(e),n=0;n1&&(this._percent=1)}},{key:"updateFileUrl",value:function(e){this.content.fileUrl=e}},{key:"sendable",value:function(){return""!==this.content.fileUrl&&(""!==this.content.fileName&&0!==this.content.fileSize)}}]),e}(),yi=function(){function e(t){o(this,e),this.type=S.MSG_CUSTOM,this.content={data:t.data||"",description:t.description||"",extension:t.extension||""}}return a(e,[{key:"setData",value:function(e){return this.content.data=e,this}},{key:"setDescription",value:function(e){return this.content.description=e,this}},{key:"setExtension",value:function(e){return this.content.extension=e,this}},{key:"sendable",value:function(){return 0!==this.content.data.length||0!==this.content.description.length||0!==this.content.extension.length}}]),e}(),Ii=function(){function e(t,n){o(this,e),this.type=S.MSG_VIDEO,this._percent=0,this.content={remoteVideoUrl:t.remoteVideoUrl||t.videoUrl||"",videoFormat:t.videoFormat,videoSecond:parseInt(t.videoSecond,10),videoSize:t.videoSize,videoUrl:Xt(t.videoUrl,n),videoDownloadFlag:2,videoUUID:t.videoUUID,thumbUUID:t.thumbUUID,thumbFormat:t.thumbFormat,thumbWidth:t.thumbWidth,snapshotWidth:t.thumbWidth,thumbHeight:t.thumbHeight,snapshotHeight:t.thumbHeight,thumbSize:t.thumbSize,snapshotSize:t.thumbSize,thumbDownloadFlag:2,thumbUrl:Xt(t.thumbUrl,n),snapshotUrl:Xt(t.thumbUrl,n)}}return a(e,[{key:"updatePercent",value:function(e){this._percent=e,this._percent>1&&(this._percent=1)}},{key:"updateVideoUrl",value:function(e){e&&(this.content.remoteVideoUrl=e)}},{key:"updateSnapshotInfo",value:function(e){var t=e.snapshotUrl,n=e.snapshotWidth,o=e.snapshotHeight;Zt(t)||(this.content.thumbUrl=this.content.snapshotUrl=t),Zt(n)||(this.content.thumbWidth=this.content.snapshotWidth=Number(n)),Zt(o)||(this.content.thumbHeight=this.content.snapshotHeight=Number(o))}},{key:"sendable",value:function(){return""!==this.content.remoteVideoUrl}}]),e}(),Ci=function(){function e(t){o(this,e),this.type=S.MSG_LOCATION;var n=t.description,s=t.longitude,a=t.latitude;this.content={description:n,longitude:s,latitude:a}}return a(e,[{key:"sendable",value:function(){return!0}}]),e}(),Ti=function(){function e(t,n){if(o(this,e),this.from=t.from,this.messageSender=t.from,this.time=t.time,this.messageSequence=t.sequence,this.clientSequence=t.clientSequence||t.sequence,this.messageRandom=t.random,this.cloudCustomData=t.cloudCustomData||"",this.clientTime=t.clientTime||void 0,t.ID)this.ID=t.ID||"",this.nick=t.nick||"",this.avatar=t.avatar||"",this.messageBody=[{type:t.type,payload:t.payload}],t.conversationType.startsWith(S.CONV_C2C)?this.receiverUserID=t.to:t.conversationType.startsWith(S.CONV_GROUP)&&(this.receiverGroupID=t.to),this.messageReceiver=t.to;else{this.nick=t.nick||"",this.avatar=t.avatar||"",this.messageBody=[];var s=t.elements[0].type,a=t.elements[0].content;this._patchRichMediaPayload(s,a),this._updateRichMediaDownloadUrl(s,a,n),s===S.MSG_MERGER?this.messageBody.push({type:s,payload:new Di(a).content}):this.messageBody.push({type:s,payload:a}),t.groupID&&(this.receiverGroupID=t.groupID,this.messageReceiver=t.groupID),t.to&&(this.receiverUserID=t.to,this.messageReceiver=t.to),this.ID="".concat(t.tinyID,"-").concat(t.clientTime,"-").concat(t.random)}}return a(e,[{key:"_patchRichMediaPayload",value:function(e,t){e===S.MSG_IMAGE?t.imageInfoArray.forEach((function(e){!e.imageUrl&&e.url&&(e.imageUrl=e.url,e.sizeType=e.type,1===e.type?e.type=0:3===e.type&&(e.type=1))})):e===S.MSG_VIDEO?!t.remoteVideoUrl&&t.videoUrl&&(t.remoteVideoUrl=t.videoUrl):e===S.MSG_AUDIO?!t.remoteAudioUrl&&t.url&&(t.remoteAudioUrl=t.url):e===S.MSG_FILE&&!t.fileUrl&&t.url&&(t.fileUrl=t.url,t.url=void 0)}},{key:"_updateRichMediaDownloadUrl",value:function(e,t,n){n&&(e===S.MSG_IMAGE?t.imageInfoArray.forEach((function(e){e.url=Xt(e.url,n)})):e===S.MSG_VIDEO?(t.videoUrl=Xt(t.videoUrl,n),t.snapshotUrl=Xt(t.thumbUrl,n),t.snapshotHeight=t.thumbHeight,t.snapshotWidth=t.thumbWidth):e===S.MSG_AUDIO?t.url=Xt(t.url,n):e===S.MSG_FILE&&(t.fileUrl=Xt(t.fileUrl,n)))}}]),e}(),Di=function(){function e(t,n){if(o(this,e),this.type=S.MSG_MERGER,this.content={downloadKey:"",pbDownloadKey:"",messageList:[],title:"",abstractList:[],compatibleText:"",version:0,layersOverLimit:!1},t.downloadKey){var s=t.downloadKey,a=t.pbDownloadKey,r=t.title,i=t.abstractList,u=t.compatibleText,c=t.version;this.content.downloadKey=s,this.content.pbDownloadKey=a,this.content.title=r,this.content.abstractList=i,this.content.compatibleText=u,this.content.version=c||0}else if(Zt(t.messageList))1===t.layersOverLimit&&(this.content.layersOverLimit=!0);else{var l=t.messageList,p=t.title,d=t.abstractList,g=t.compatibleText,h=t.version,_=[];l.forEach((function(e){if(!Zt(e)){var t=new Ti(e,n);_.push(t)}})),this.content.messageList=_,this.content.title=p,this.content.abstractList=d,this.content.compatibleText=g,this.content.version=h||0}}return a(e,[{key:"sendable",value:function(){return!Zt(this.content.messageList)||!Zt(this.content.downloadKey)}}]),e}(),ki={1:S.MSG_PRIORITY_HIGH,2:S.MSG_PRIORITY_NORMAL,3:S.MSG_PRIORITY_LOW,4:S.MSG_PRIORITY_LOWEST},Si=function(){function e(t){o(this,e),this.ID="",this.conversationID=t.conversationID||null,this.conversationType=t.conversationType||S.CONV_C2C,this.conversationSubType=t.conversationSubType,this.time=t.time||Math.ceil(Date.now()/1e3),this.sequence=t.sequence||0,this.clientSequence=t.clientSequence||t.sequence||0,this.random=t.random||0===t.random?t.random:Mt(),this.priority=this._computePriority(t.priority),this.nick=t.nick||"",this.avatar=t.avatar||"",this.isPeerRead=!1,this.nameCard="",this._elements=[],this.isPlaceMessage=t.isPlaceMessage||0,this.isRevoked=2===t.isPlaceMessage||8===t.msgFlagBits,this.from=t.from||null,this.to=t.to||null,this.flow="",this.isSystemMessage=t.isSystemMessage||!1,this.protocol=t.protocol||"JSON",this.isResend=!1,this.isRead=!1,this.status=t.status||nn.SUCCESS,this._onlineOnlyFlag=!1,this._groupAtInfoList=[],this._relayFlag=!1,this.atUserList=[],this.cloudCustomData=t.cloudCustomData||"",this.isDeleted=!1,this.isModified=!1,this._isExcludedFromUnreadCount=!(!t.messageControlInfo||1!==t.messageControlInfo.excludedFromUnreadCount),this._isExcludedFromLastMessage=!(!t.messageControlInfo||1!==t.messageControlInfo.excludedFromLastMessage),this.clientTime=t.clientTime||Fe()||0,this.senderTinyID=t.senderTinyID||t.tinyID||"",this.readReceiptInfo=t.readReceiptInfo||{readCount:void 0,unreadCount:void 0,isPeerRead:void 0},this.needReadReceipt=!0===t.needReadReceipt||1===t.needReadReceipt,this.version=t.messageVersion||0,this.isBroadcastMessage=t.isBroadcastMessage||!1,this._receiverList=t.receiverList||void 0,this.isSupportExtension=!0===t.isSupportExtension||1===t.isSupportExtension,this.revoker=t.revokerInfo&&t.revokerInfo.revoker||null,this.reInitialize(t.currentUser),this.extractGroupInfo(t.groupProfile||null),this.handleGroupAtInfo(t),this.initC2CReadReceiptInfo(t.readReceiptSentByPeer)}return a(e,[{key:"elements",get:function(){return this._elements}},{key:"getElements",value:function(){return this._elements}},{key:"extractGroupInfo",value:function(e){if(null!==e){st(e.nick)&&(this.nick=e.nick),st(e.avatar)&&(this.avatar=e.avatar);var t=e.messageFromAccountExtraInformation;rt(t)&&st(t.nameCard)&&(this.nameCard=t.nameCard)}}},{key:"handleGroupAtInfo",value:function(e){var t=this;e.payload&&e.payload.atUserList&&e.payload.atUserList.forEach((function(e){e!==S.MSG_AT_ALL?(t._groupAtInfoList.push({groupAtAllFlag:0,groupAtUserID:e}),t.atUserList.push(e)):(t._groupAtInfoList.push({groupAtAllFlag:1}),t.atUserList.push(S.MSG_AT_ALL))})),it(e.groupAtInfo)&&e.groupAtInfo.forEach((function(e){0===e.groupAtAllFlag?t.atUserList.push(e.groupAtUserID):1===e.groupAtAllFlag&&t.atUserList.push(S.MSG_AT_ALL)}))}},{key:"getGroupAtInfoList",value:function(){return this._groupAtInfoList}},{key:"_initProxy",value:function(){this._elements[0]&&(this.payload=this._elements[0].content,this.type=this._elements[0].type)}},{key:"reInitialize",value:function(e){e&&(this.status=this.from?nn.SUCCESS:nn.UNSEND,!this.from&&(this.from=e)),this._initFlow(e),this._initSequence(e),this._concatConversationID(e),this.generateMessageID()}},{key:"isSendable",value:function(){return 0!==this._elements.length&&("function"==typeof this._elements[0].sendable&&this._elements[0].sendable())}},{key:"_initTo",value:function(e){this.conversationType===S.CONV_GROUP&&(this.to=e.groupID)}},{key:"_initSequence",value:function(e){0===this.clientSequence&&e&&(this.clientSequence=function(e){if(!e)return!1;if(void 0===Tt[e]){var t=new Date,n="3".concat(t.getHours()).slice(-2),o="0".concat(t.getMinutes()).slice(-2),s="0".concat(t.getSeconds()).slice(-2);Tt[e]=parseInt([n,o,s,"0001"].join("")),n=null,o=null,s=null,He.l("autoIncrementIndex start index:".concat(Tt[e]))}return Tt[e]++}(e)),0===this.sequence&&this.conversationType===S.CONV_C2C&&(this.sequence=this.clientSequence)}},{key:"generateMessageID",value:function(){this.from===S.CONV_SYSTEM&&(this.senderTinyID="144115198244471703"),this.ID="".concat(this.senderTinyID,"-").concat(this.clientTime,"-").concat(this.random)}},{key:"_initFlow",value:function(e){""!==e&&(e===this.from?(this.flow="out",this.isRead=!0):this.flow="in")}},{key:"_concatConversationID",value:function(e){var t=this.to,n="",o=this.conversationType;o!==S.CONV_SYSTEM?(n=o===S.CONV_C2C?e===this.from?t:this.from:this.to,this.conversationID=n?"".concat(o).concat(n):null):this.conversationID=S.CONV_SYSTEM}},{key:"isElement",value:function(e){return e instanceof pi||e instanceof di||e instanceof gi||e instanceof hi||e instanceof Mi||e instanceof Ii||e instanceof fi||e instanceof mi||e instanceof yi||e instanceof Ci||e instanceof Di}},{key:"setElement",value:function(e,t){var n=this;if(this.isElement(e))return this._elements=[e],void this._initProxy();var o=function(e){if(e.type&&e.content)switch(e.type){case S.MSG_TEXT:n.setTextElement(e.content);break;case S.MSG_IMAGE:n.setImageElement(e.content,t);break;case S.MSG_AUDIO:n.setAudioElement(e.content,t);break;case S.MSG_FILE:n.setFileElement(e.content,t);break;case S.MSG_VIDEO:n.setVideoElement(e.content,t);break;case S.MSG_CUSTOM:n.setCustomElement(e.content);break;case S.MSG_LOCATION:n.setLocationElement(e.content);break;case S.MSG_GRP_TIP:n.setGroupTipElement(e.content);break;case S.MSG_GRP_SYS_NOTICE:n.setGroupSystemNoticeElement(e.content);break;case S.MSG_FACE:n.setFaceElement(e.content);break;case S.MSG_MERGER:n.setMergerElement(e.content,t)}};if(it(e))for(var s=0;s1&&void 0!==arguments[1]&&arguments[1];if(e instanceof Ei)return t&&null!==Ai&&Ai.emit(k.ERROR,e),Promise.reject(e);if(e instanceof Error){var n=new Ei({code:Rr});return t&&null!==Ai&&Ai.emit(k.ERROR,n),Promise.reject(n)}if(!ut(e)&&!ut(e.code)){var o=new Ei(e);return t&&null!==Ai&&Ai.emit(k.ERROR,o),Promise.reject(o)}},Gi=function(e){i(s,e);var n=f(s);function s(e){var t;return o(this,s),(t=n.call(this,e))._n="C2CModule",t._messageFromUnreadDBMap=new Map,t._signalingFromUnreadDBList=[],t}return a(s,[{key:"onNewC2CMessage",value:function(e){var t=e.dataList,n=e.isInstantMessage,o=e.C2CRemainingUnreadList,s=e.C2CPairUnreadList;He.d("".concat(this._n,".onNewC2CMessage count:").concat(t.length," isInstantMessage:").concat(n));var a=this._newC2CMessageStoredAndSummary({dataList:t,C2CRemainingUnreadList:o,C2CPairUnreadList:s,isInstantMessage:n}),r=a.conversationOptionsList,i=a.messageList,u=a.isUnreadC2CMessage;(this.filterModifiedMessage(i),r.length>0)&&this.getModule(Hn).onNewMessage({conversationOptionsList:r,isInstantMessage:n,isUnreadC2CMessage:u});var c=this.filterUnmodifiedMessage(i);n&&c.length>0&&this.emitOuterEvent(k.MESSAGE_RECEIVED,c),i.length=0}},{key:"_newC2CMessageStoredAndSummary",value:function(e){for(var t=e.dataList,n=e.C2CRemainingUnreadList,o=e.C2CPairUnreadList,s=e.isInstantMessage,a=null,r=[],i=[],u={},c=this.getModule(zn),l=this.getModule(so),p=!1,d=this.getModule(Hn),g=this.getFileDownloadProxy(),h=0,_=t.length;h<_;h++)if(this._isSignaling(t[h]))this._signalingFromUnreadDBList.push(t[h].eventArray[0].c2CNotifyMsgArray[0]);else{var f=t[h];f.currentUser=this.getMyUserID(),f.conversationType=S.CONV_C2C,f.isSystemMessage=!!f.isSystemMessage,(ut(f.nick)||ut(f.avatar))&&(p=!0,He.d("".concat(this._n,"._newC2CMessageStoredAndSummary nick or avatar missing!"))),a=new Si(f),f.elements=c.parseElements(f.elements,f.from),a.setElement(f.elements,g),a.setNickAndAvatar({nick:f.nick,avatar:f.avatar});var v=a.conversationID;if(s){if(1===this._messageFromUnreadDBMap.get(a.ID))continue;var m=!1;if(a.from!==this.getMyUserID()){var M=d.getLatestMessageSentByPeer(v);if(M){var y=M.nick,I=M.avatar;p?a.setNickAndAvatar({nick:y,avatar:I}):y===a.nick&&I===a.avatar||(m=!0)}}else{var C=d.getLatestMessageSentByMe(v);if(C){var T=C.nick,D=C.avatar;T===a.nick&&D===a.avatar||d.modifyMessageSentByMe({conversationID:v,latestNick:a.nick,latestAvatar:a.avatar})}}var k=1===t[h].isModified;if(d.isMessageSentByCurrentInstance(a)?a.isModified=k:k=!1,0===f.msgLifeTime)a._onlineOnlyFlag=!0,d.isMessageSentByCurrentInstance(a)||i.push(a);else{if(!d.pushIntoMessageList(i,a,k))continue;m&&(d.modifyMessageSentByPeer({conversationID:v,latestNick:a.nick,latestAvatar:a.avatar}),d.updateUserProfileSpecifiedKey({conversationID:v,nick:a.nick,avatar:a.avatar}))}s&&a.clientTime>0&&l.addMessageDelay(a.clientTime)}else this._messageFromUnreadDBMap.set(a.ID,1);if(0!==f.msgLifeTime){if(!1===a._onlineOnlyFlag){var L=d.getLastMessageTime(v);if(ot(L)&&a.time0){R=!0;var n=r.find((function(t){return t.conversationID==="C2C".concat(o[e].from)}));n?n.unreadCount=o[e].unreadCount:r.push({conversationID:"C2C".concat(o[e].from),unreadCount:o[e].unreadCount,type:S.CONV_C2C})}},O=0,G=o.length;O0&&(o=e.cloudCustomData);var s=[];if(rt(t)&&rt(t.messageControlInfo)){var a=t.messageControlInfo,r=a.excludedFromUnreadCount,i=a.excludedFromLastMessage,u=a.excludedFromContentModeration;!0===r&&s.push("NoUnread"),!0===i&&s.push("NoLastMsg"),!0===u&&s.push("NoMsgCheck")}var c=this.isOnlineMessage(e,t)?0:void 0;return{protocolName:Mo,tjgID:this.generateTjgID(e),requestData:{fromAccount:this.getMyUserID(),toAccount:e.to,msgBody:e.getElements(),cloudCustomData:o,msgSeq:e.sequence,msgRandom:e.random,msgLifeTime:c,nick:e.nick,avatar:e.avatar,offlinePushInfo:n?{pushFlag:!0===n.disablePush?1:0,title:n.title||"",desc:n.description||"",ext:n.extension||"",apnsInfo:{badgeMode:!0===n.ignoreIOSBadge?1:0,isVoipPush:this._isVoipPush(n)},androidInfo:{OPPOChannelID:n.androidOPPOChannelID||""}}:void 0,messageControlInfo:0!==c?s:void 0,clientTime:e.clientTime,needReadReceipt:!0===e.needReadReceipt?1:0,isSupportExtension:!0===e.isSupportExtension?1:0}}}},{key:"_isVoipPush",value:function(e){var t=void 0;return ut(e.disableVoipPush)||(t=!1===e.disableVoipPush?1:0),t}},{key:"isOnlineMessage",value:function(e,t){return!(!t||!0!==t.onlineUserOnly)}},{key:"revokeMessage",value:function(e){return this.request({protocolName:So,requestData:{msgInfo:{fromAccount:e.from,toAccount:e.to,msgSeq:e.sequence,msgRandom:e.random,msgTimeStamp:e.time}}})}},{key:"deleteMessage",value:function(e){var t=e.to,n=e.keyList;return He.l("".concat(this._n,".deleteMessage toAccount:").concat(t," count:").concat(n.length)),this.request({protocolName:Oo,requestData:{fromAccount:this.getMyUserID(),to:t,keyList:n}})}},{key:"modifyRemoteMessage",value:function(e){var t=e.from,n=e.to,o=e.version,s=void 0===o?0:o,a=e.sequence,r=e.random,i=e.time,u=e.payload,c=e.type,l=e.cloudCustomData,p=void 0;return jt(c)&&(p=[]).push({type:c,content:u}),this.request({protocolName:Go,requestData:{from:t,to:n,version:s,sequence:a,random:r,time:i,elements:p,cloudCustomData:l}})}},{key:"setMessageRead",value:function(e){var t=this,n=e.conversationID,o=e.lastMessageTime,s="".concat(this._n,".setMessageRead");He.l("".concat(s," conversationID:").concat(n," lastMessageTime:").concat(o)),ot(o)||this.outputWarning("DoNotModifyLastTime");var a=new li("setC2CMessageRead");return a.setMessage("conversationID:".concat(n," lastMessageTime:").concat(o)),this.request({protocolName:Lo,requestData:{C2CMsgReaded:{cookie:"",C2CMsgReadedItem:[{toAccount:n.replace("C2C",""),lastMessageTime:o,receipt:1}]}}}).then((function(){a.setNetworkType(t.getNetworkType()).end(),He.l("".concat(s," ok"));var e=t.getModule(Hn);return e.updateIsReadAfterReadReport({conversationID:n,lastMessageTime:o}),e.updateUnreadCount(n),Li()})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];a.setError(e,o,s).end()})),He.l("".concat(s," failed. error:"),e),Oi(e)}))}},{key:"getRoamingMessage",value:function(e){var t=this,n="".concat(this._n,".getRoamingMessage"),o=e.peerAccount,s=e.conversationID,a=e.count,r=e.lastMessageTime,i=e.messageKey,u="peerAccount:".concat(o," count:").concat(a||15," lastMessageTime:").concat(r||0," messageKey:").concat(i);He.l("".concat(n," ").concat(u));var c=new li("getC2CRoamingMessages");return this.request({protocolName:Ro,requestData:{peerAccount:o,count:a||15,lastMessageTime:r||0,messageKey:i}}).then((function(e){var o=e.data,a=o.complete,r=o.messageList,i=o.messageKey,l=o.lastMessageTime;ut(r)?He.l("".concat(n," ok. complete:").concat(a," but messageList is undefined!")):He.l("".concat(n," ok. complete:").concat(a," count:").concat(r.length)),c.setNetworkType(t.getNetworkType()).setMessage("".concat(u," complete:").concat(a," length:").concat(r.length)).end();var p=t.getModule(Hn);1===a&&p.setCompleted(s);var d=p.onRoamingMessage(r,s);p.modifyMessageList(s),p.updateIsRead(s),p.updateRoamingMessageKeyAndTime(s,i,l);var g=p.getPeerReadTime(s);if(He.l("".concat(n," update isPeerRead property. conversationID:").concat(s," peerReadTime:").concat(g)),g)p.updateMessageIsPeerReadProperty(s,g);else{var h=s.replace(S.CONV_C2C,"");t.getRemotePeerReadTime([h]).then((function(){p.updateMessageIsPeerReadProperty(s,p.getPeerReadTime(s))}))}var _="";if(d.length>0)_=d[0].ID;else{var f=p.getLocalOldestMessage(s);f&&(_=f.ID)}return He.l("".concat(n," nextReqID:").concat(_," stored message count:").concat(d.length)),{nextReqID:_,storedMessageList:d}})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];c.setMessage(u).setError(e,o,s).end()})),He.w("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"getRoamingMessagesHopping",value:function(e){var t=this,n="".concat(this._n,".getRoamingMessagesHopping"),o=e.peerAccount,s=e.time,a=void 0===s?0:s,r=e.count,i=e.direction,u="".concat(S.CONV_C2C).concat(o),c="peerAccount:".concat(o," count:").concat(r," time:").concat(a," direction:").concat(i);He.l("".concat(n," ").concat(c));var l=new li("getC2CRoamingMessagesHopping");return this.request({protocolName:Ro,requestData:{peerAccount:o,count:r+1,lastMessageTime:a,direction:i}}).then((function(e){var o=e.data,s=o.complete,a=o.messageList,r=void 0===a?[]:a,p=o.lastMessageTime;He.l("".concat(n," ok. complete:").concat(s," count:").concat(r.length)),l.setNetworkType(t.getNetworkType()).setMessage("".concat(c," complete:").concat(s," length:").concat(r.length)).end(),1!==s&&(1===i?r.pop():r.shift());var d=t.getModule(Hn).onRoamingMessage(r,u,!1);t._modifyMessageList(u,d);var g=t._computeResult({complete:s,lastMessageTime:p,resultList:d});return Li(g)})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];l.setMessage(c).setError(e,o,s).end()})),He.w("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_computeResult",value:function(e){var t=e.complete,n=void 0===t?0:t,o=e.lastMessageTime,s=e.resultList,a={messageList:m(void 0===s?[]:s),isCompleted:!1,nextMessageTime:""};return 1===n?(a.isCompleted=!0,a):(a.nextMessageTime=o,a)}},{key:"_modifyMessageList",value:function(e,t){var n=this.getModule(Hn).getLocalConversation(e);if(n)for(var o=n.userProfile.nick,s=n.userProfile.avatar,a=this.getModule(wn).getNickAndAvatarByUserID(this.getMyUserID()),r=a.nick,i=a.avatar,u=t.length-1;u>=0;u--){var c=t[u];"in"===c.flow&&(c.nick!==o&&c.setNickAndAvatar({nick:o}),c.avatar!==s&&c.setNickAndAvatar({avatar:s})),"out"===c.flow&&(c.nick!==r&&c.setNickAndAvatar({nick:r}),c.avatar!==i&&c.setNickAndAvatar({avatar:i}))}}},{key:"getRemotePeerReadTime",value:function(e){var t=this,n="".concat(this._n,".getRemotePeerReadTime");if(Zt(e))return He.w("".concat(n," userIDList is empty!")),Promise.resolve();var o=new li("getPeerReadTime");return He.l("".concat(n," userIDList:").concat(e)),this.request({protocolName:No,requestData:{userIDList:e}}).then((function(s){var a=s.data.peerReadTimeList;He.l("".concat(n," ok. peerReadTimeList:").concat(a));for(var r="",i=t.getModule(Hn),u=0;u0&&i.recordPeerReadTime("C2C".concat(e[u]),a[u]);o.setNetworkType(t.getNetworkType()).setMessage(r).end()})).catch((function(e){t.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.w("".concat(n," failed. error:"),e)}))}},{key:"sendReadReceipt",value:function(e){var t=this,n=e[0].conversationID.replace(S.CONV_C2C,""),o=new li("sendC2CReadReceipt");o.setMessage("peerAccount:".concat(n));var s=this.getMyUserID(),a=e.filter((function(e){return e.from!==s&&!0===e.needReadReceipt})).map((function(e){return{fromAccount:e.from,toAccount:e.to,sequence:e.sequence,random:e.random,time:e.time,clientTime:e.clientTime}}));if(0===a.length)return Oi({code:Ua});var r="".concat(this._n,".sendReadReceipt");return He.l("".concat(r,". peerAccount:").concat(n," messageInfoList length:").concat(a.length)),this.request({protocolName:_s,requestData:{peerAccount:n,messageInfoList:a}}).then((function(e){return o.end(),He.l("".concat(r," ok")),Li()})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.w("".concat(r," failed. error:"),e),Oi(e)}))}},{key:"getReadReceiptList",value:function(e){var t="".concat(this._n,".getReadReceiptList"),n=this.getMyUserID(),o=e.filter((function(e){return e.from===n&&!0===e.needReadReceipt}));return He.l("".concat(t," userID:").concat(n," messageList length:").concat(o.length)),Ni({messageList:o})}},{key:"getMessageExtensions",value:function(e,t){return He.l("".concat(this._n,".getMessageExtensions startSequence:").concat(t)),this.request({protocolName:Uo,requestData:{from:e.from,to:e.to,messageKey:this._getMessageKey(e),startSequence:t}})}},{key:"modifyMessageExtensions",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return He.l("".concat(this._n,".modifyMessageExtensions operateType:").concat(n)),this.request({protocolName:Po,requestData:{from:e.from,to:e.to,messageKey:this._getMessageKey(e),extensionList:t,operateType:n}})}},{key:"_getMessageKey",value:function(e){var t=e.clientSequence,n=e.random,o=e.time;return"".concat(t,"_").concat(n,"_").concat(o)}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._messageFromUnreadDBMap.clear(),this._signalingFromUnreadDBList.length=0}}]),s}(po),Pi=function(){function e(){o(this,e),this.list=new Map,this._n="MessageListHandler",this._latestMessageSentByPeerMap=new Map,this._latestMessageSentByMeMap=new Map}return a(e,[{key:"getLocalOldestMessageByConversationID",value:function(e){if(!e)return null;if(!this.list.has(e))return null;var t=this.list.get(e).values();return t?t.next().value:null}},{key:"pushIn",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.conversationID,o=!0;this.list.has(n)||this.list.set(n,new Map);var s=this._getUniqueIDOfMessage(e),a=this.list.get(n).has(s);if(a){var r=this.list.get(n).get(s);if(!t||!0===r.isModified)return o=!1}return this.list.get(n).set(s,e),this._setLatestMessageSentByPeer(n,e),this._setLatestMessageSentByMe(n,e),o}},{key:"unshift",value:function(e,t){var n;if(it(e)?e.length>0&&(n=e[0].conversationID,this._unshiftMultipleMessages(e,t)):(n=e.conversationID,this._unshiftSingleMessage(e,t)),n&&n.startsWith(S.CONV_C2C)){var o=Array.from(this.list.get(n).values()),s=o.length;if(0===s)return;for(var a=s-1;a>=0;a--)if("out"===o[a].flow){this._setLatestMessageSentByMe(n,o[a]);break}for(var r=s-1;r>=0;r--)if("in"===o[r].flow){this._setLatestMessageSentByPeer(n,o[r]);break}}}},{key:"_unshiftSingleMessage",value:function(e,t){var n=e.conversationID,o=this._getUniqueIDOfMessage(e);if(!this.list.has(n))return this.list.set(n,new Map),this.list.get(n).set(o,e),void t.push(e);var s=this.list.get(n),a=Array.from(s);s.has(o)||(a.unshift([o,e]),this.list.set(n,new Map(a)),t.push(e))}},{key:"_unshiftMultipleMessages",value:function(e,t){for(var n=e.length,o=[],s=e[0].conversationID,a=this.list.get(s),r=this.list.has(s)?Array.from(a):[],i=0;i=0;l--)"in"===a[l].flow&&((i=a[l]).nick!==n&&(i.setNickAndAvatar({nick:n}),c=!0),i.avatar!==o&&(i.setNickAndAvatar({avatar:o}),c=!0),c&&(u+=1));He.l("".concat(this._n,".modifyMessageSentByPeer conversationID:").concat(t," count:").concat(u))}}}},{key:"modifyMessageSentByMe",value:function(e){var t=e.conversationID,n=e.latestNick,o=e.latestAvatar,s=this.list.get(t);if(!Zt(s)){var a=Array.from(s.values()),r=a.length;if(0!==r){for(var i=null,u=0,c=!1,l=r-1;l>=0;l--)"out"===a[l].flow&&((i=a[l]).nick!==n&&(i.setNickAndAvatar({nick:n}),c=!0),i.avatar!==o&&(i.setNickAndAvatar({avatar:o}),c=!0),c&&(u+=1));He.l("".concat(this._n,".modifyMessageSentByMe conversationID:").concat(t," count:").concat(u))}}}},{key:"getTopicConversationIDList",value:function(e){return m(this.list.keys()).filter((function(t){return t.startsWith("".concat(S.CONV_GROUP).concat(e))}))}},{key:"traversal",value:function(){if(0!==this.list.size&&-1===He.getLevel()){console.group("conversationID-messageCount");var e,t=D(this.list);try{for(t.s();!(e=t.n()).done;){var n=v(e.value,2),o=n[0],s=n[1];console.log("".concat(o,"-").concat(s.size))}}catch(a){t.e(a)}finally{t.f()}console.groupEnd()}}},{key:"onMessageModified",value:function(e,t){if(!this.list.has(e))return{isUpdated:!1,message:null};var n=this._getUniqueIDOfMessage(t),o=this.list.get(e).has(n);if(He.d("".concat(this._n,".onMessageModified conversationID:").concat(e," uniqueID:").concat(n," has:").concat(o)),o){var s=this.list.get(e).get(n),a=t.messageVersion,r=t.elements,i=t.cloudCustomData;return s.version1&&void 0!==arguments[1]&&arguments[1];if(e)return this._isReady?void(t?e.call(this):setTimeout(e,1)):(this._readyQueue=this._readyQueue||[],void this._readyQueue.push(e))},t.triggerReady=function(){var e=this;this._isReady=!0,setTimeout((function(){var t=e._readyQueue;e._readyQueue=[],t&&t.length>0&&t.forEach((function(e){e.call(this)}),e)}),1)},t.resetReady=function(){this._isReady=!1,this._readyQueue=[]},t.isReady=function(){return this._isReady}};var Fi=["jpg","jpeg","gif","png","bmp","image","webp"],xi=["mp4","quicktime","mov"],Vi=1,Bi=2,Hi=3,Ki=255,Wi=function(){function e(t){var n=this;o(this,e),Zt(t)||(this.userID=t.userID||"",this.nick=t.nick||"",this.gender=t.gender||"",this.birthday=t.birthday||0,this.location=t.location||"",this.selfSignature=t.selfSignature||"",this.allowType=t.allowType||S.ALLOW_TYPE_ALLOW_ANY,this.language=t.language||0,this.avatar=t.avatar||"",this.messageSettings=t.messageSettings||0,this.adminForbidType=t.adminForbidType||S.FORBID_TYPE_NONE,this.level=t.level||0,this.role=t.role||0,this.lastUpdatedTime=0,this.profileCustomField=[],Zt(t.profileCustomField)||t.profileCustomField.forEach((function(e){n.profileCustomField.push({key:e.key,value:e.value})})))}return a(e,[{key:"validate",value:function(e){var t=!0,n="";if(Zt(e))return{valid:!1,tips:"empty options"};if(e.profileCustomField)for(var o=e.profileCustomField.length,s=null,a=0;a500&&(n="nick name limited: must less than or equal to ".concat(500," bytes, current size: ").concat(mt(e[r])," bytes"),t=!1);break;case"gender":Ct(je,e.gender)||(n="key:gender, invalid value:"+e.gender,t=!1);break;case"birthday":ot(e.birthday)||(n="birthday must be a number",t=!1);break;case"location":st(e.location)||(n="location must be a string",t=!1);break;case"selfSignature":st(e.selfSignature)||(n="selfSignature must be a string",t=!1);break;case"allowType":Ct(ze,e.allowType)||(n="key:allowType, invalid value:"+e.allowType,t=!1);break;case"language":ot(e.language)||(n="language must be a number",t=!1);break;case"avatar":st(e.avatar)||(n="avatar must be a string",t=!1);break;case"messageSettings":0!==e.messageSettings&&1!==e.messageSettings&&(n="messageSettings must be 0 or 1",t=!1);break;case"adminForbidType":Ct(Ye,e.adminForbidType)||(n="key:adminForbidType, invalid value:"+e.adminForbidType,t=!1);break;case"level":ot(e.level)||(n="level must be a number",t=!1);break;case"role":ot(e.role)||(n="role must be a number",t=!1);break;default:n="unknown key:"+r+" "+e[r],t=!1}}return{valid:t,tips:n}}}]),e}(),ji=a((function e(t){o(this,e),this.value=t,this.next=null})),Yi=function(){function e(t){o(this,e),this.MAX_LENGTH=t,this.pTail=null,this.pNodeToDel=null,this.map=new Map}return a(e,[{key:"set",value:function(e){var t=new ji(e);if(this.map.size0&&n.members.forEach((function(e){e.userID===t.selfInfo.userID&&ft(t.selfInfo,e,["sequence"])}))}},{key:"updateSelfInfo",value:function(e){var n={nameCard:e.nameCard,joinTime:e.joinTime,role:e.role,messageRemindType:e.messageRemindType,readedSequence:e.readedSequence,excludedUnreadSequenceList:e.excludedUnreadSequenceList};ft(this.selfInfo,t({},n),[],["",null,void 0,0,NaN])}},{key:"setSelfNameCard",value:function(e){this.selfInfo.nameCard=e}}]),e}(),Xi=function(e,n){return ut(e)?{lastTime:0,lastSequence:0,fromAccount:0,messageForShow:"",payload:null,type:"",isRevoked:!1,cloudCustomData:"",onlineOnlyFlag:!1,nick:"",nameCard:"",version:0,isPeerRead:!1,revoker:null}:e instanceof Si?{lastTime:e.time||0,lastSequence:e.sequence||0,fromAccount:e.from||"",messageForShow:Wt(e.type,e.payload,n),payload:e.payload||null,type:e.type||null,isRevoked:e.isRevoked||!1,cloudCustomData:e.cloudCustomData||"",onlineOnlyFlag:e._onlineOnlyFlag||!1,nick:e.nick||"",nameCard:e.nameCard||"",version:e.version||0,isPeerRead:e.isPeerRead||!1,revoker:e.revoker||null}:t(t({},e),{},{messageForShow:Wt(e.type,e.payload,n)})},Qi=function(){function e(t,n){o(this,e),this.conversationID=t.conversationID||"",this.unreadCount=t.unreadCount||0,this.type=t.type||"",this.lastMessage=Xi(t.lastMessage,n),t.lastMsgTime&&(this.lastMessage.lastTime=t.lastMsgTime),this._isInfoCompleted=!1,this.peerReadTime=t.peerReadTime||0,this.groupAtInfoList=[],this.remark="",this.isPinned=t.isPinned||!1,this.messageRemindType="",this.markList=t.markList||[],this.customData=t.customData||"",this.conversationGroupList=t.conversationGroupList||[],this._initProfile(t)}return a(e,[{key:"toAccount",get:function(){return this.conversationID.startsWith(S.CONV_C2C)?this.conversationID.replace(S.CONV_C2C,""):this.conversationID.startsWith(S.CONV_GROUP)?this.conversationID.replace(S.CONV_GROUP,""):""}},{key:"subType",get:function(){return this.groupProfile?this.groupProfile.type:""}},{key:"_initProfile",value:function(e){var t=this;Object.keys(e).forEach((function(n){switch(n){case"userProfile":t.userProfile=e.userProfile;break;case"groupProfile":t.groupProfile=e.groupProfile}})),ut(this.userProfile)&&this.type===S.CONV_C2C?this.userProfile=new Wi({userID:e.conversationID.replace("C2C","")}):ut(this.groupProfile)&&this.type===S.CONV_GROUP&&(this.groupProfile=new Ji({groupID:e.conversationID.replace("GROUP","")}))}},{key:"updateUnreadCount",value:function(e){var t=e.nextUnreadCount,n=e.isFromGetConversations,o=e.isUnreadC2CMessage;ut(t)||(Lt(this.subType)?this.unreadCount=0:n&&this.type===S.CONV_GROUP||n&&this.type===S.CONV_TOPIC||o&&this.type===S.CONV_C2C?this.unreadCount=t:this.unreadCount=this.unreadCount+t)}},{key:"updateLastMessage",value:function(e){this.lastMessage=Xi(e)}},{key:"updateGroupAtInfoList",value:function(e){if(!this._isNeedMergeGroupAtInfo(e)){var t,n=(M(t=e.groupAtType)||y(t)||I(t)||T()).slice(0);-1!==n.indexOf(S.CONV_AT_ME)&&-1!==n.indexOf(S.CONV_AT_ALL)&&(n=[S.CONV_AT_ALL_AT_ME]);var o={from:e.from,groupID:e.groupID,topicID:e.topicID,messageSequence:e.sequence,atTypeArray:n,__random:e.__random,__sequence:e.__sequence};this.groupAtInfoList.push(o)}}},{key:"_isNeedMergeGroupAtInfo",value:function(e){var t=e.groupID,n=e.sequence;if(!Et({groupID:t}))return!1;var o=!1;return this.groupAtInfoList.forEach((function(t){t.messageSequence===n&&(t.atTypeArray.indexOf(S.CONV_AT_ME)>-1&&e.groupAtType.indexOf(S.CONV_AT_ALL)>-1&&(t.atTypeArray=[S.CONV_AT_ALL_AT_ME]),t.atTypeArray.indexOf(S.CONV_AT_ALL)>-1&&e.groupAtType.indexOf(S.CONV_AT_ME)>-1&&(t.atTypeArray=[S.CONV_AT_ALL_AT_ME],t.__random=e.__random,t.__sequence=e.__sequence),o=!0)})),o}},{key:"clearGroupAtInfoList",value:function(){this.groupAtInfoList.length=0}},{key:"reduceUnreadCount",value:function(){return this.unreadCount>=1&&(this.unreadCount-=1,!0)}},{key:"isLastMessageRevoked",value:function(e){var t=e.sequence,n=e.time;return this.type===S.CONV_C2C&&t===this.lastMessage.lastSequence&&n===this.lastMessage.lastTime||this.type===S.CONV_GROUP&&t===this.lastMessage.lastSequence}},{key:"setLastMessageRevoked",value:function(e){this.lastMessage.isRevoked=e}},{key:"setLastMessageRevoker",value:function(e){this.lastMessage.revoker=e}}]),e}(),Zi=function(){function e(t){o(this,e),this._conversationModule=t,this._n="MessageRemindHandler",this._updateSequence=0}return a(e,[{key:"getC2CMessageRemindType",value:function(){var e=this,t="".concat(this._n,".getC2CMessageRemindType");return this._conversationModule.request({protocolName:Ao,updateSequence:this._updateSequence}).then((function(n){He.l("".concat(t," ok"));var o=n.data,s=o.updateSequence,a=o.muteFlagList;e._updateSequence=s,e._patchC2CMessageRemindType(a)})).catch((function(e){He.e("".concat(t," failed. error:"),e)}))}},{key:"_patchC2CMessageRemindType",value:function(e){var t=this,n=0,o="";it(e)&&e.length>0&&e.forEach((function(e){var s=e.userID,a=e.muteFlag;0===a?o=S.MSG_REMIND_ACPT_AND_NOTE:1===a?o=S.MSG_REMIND_DISCARD:2===a&&(o=S.MSG_REMIND_ACPT_NOT_NOTE),!0===t._conversationModule.patchMessageRemindType({ID:s,isC2CConversation:!0,messageRemindType:o})&&(n+=1)})),He.l("".concat(this._n,"._patchC2CMessageRemindType count:").concat(n))}},{key:"set",value:function(e){return e.groupID?this._setGroupMessageRemindType(e):it(e.userIDList)?this._setC2CMessageRemindType(e):void 0}},{key:"_setGroupMessageRemindType",value:function(e){var t=this,n="".concat(this._n,"._setGroupMessageRemindType"),o=e.groupID,s=e.messageRemindType,a="groupID:".concat(o," messageRemindType:").concat(s),r=new li("setMessageRemindType");return r.setMessage(a),this._getModule(Vn).modifyGroupMemberInfo({groupID:o,messageRemindType:s,userID:this._conversationModule.getMyUserID()}).then((function(){r.setNetworkType(t._conversationModule.getNetworkType()).end(),He.l("".concat(n," ok. ").concat(a));var o=t.onGroupMessageRemindTypeUpdated(e);return t._conversationModule.emitTotalUnreadMessageCountUpdate(),Li(o)})).catch((function(e){return t._conversationModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"onGroupMessageRemindTypeUpdated",value:function(e){var t=e.groupID,n=e.messageRemindType,o=this._getModule(Fn).getLocalGroupProfile(t);if(o&&(o.selfInfo.messageRemindType=n),At(t)){var s=t,a=Kt(s),r=this._getModule(Bn).getLocalTopic(a,s);return r&&(r.updateSelfInfo({messageRemindType:n}),this._conversationModule.emitOuterEvent(k.TOPIC_UPDATED,{groupID:a,topic:r})),{topic:r}}return this._conversationModule.patchMessageRemindType({ID:t,isC2CConversation:!1,messageRemindType:n})&&this._emitConversationUpdate(),{group:o}}},{key:"_setC2CMessageRemindType",value:function(e){var t=this,n="".concat(this._n,"._setC2CMessageRemindType"),o=e.userIDList,s=e.messageRemindType,a=o.slice(0,30),r=0;s===S.MSG_REMIND_DISCARD?r=1:s===S.MSG_REMIND_ACPT_NOT_NOTE&&(r=2);var i="userIDList:".concat(a," messageRemindType:").concat(s),u=new li("setMessageRemindType");return u.setMessage(i),this._conversationModule.request({protocolName:Eo,requestData:{userIDList:a,muteFlag:r}}).then((function(e){u.setNetworkType(t._conversationModule.getNetworkType()).end();var o=e.data,r=o.updateSequence,i=o.errorList;t._updateSequence=r;var c=[],l=[];it(i)&&i.forEach((function(e){c.push(e.userID),l.push({userID:e.userID,code:e.errorCode})}));var p=a.filter((function(e){return-1===c.indexOf(e)}));He.l("".concat(n," ok. successUserIDList:").concat(p," failureUserIDList:").concat(JSON.stringify(l)));var d=0;return p.forEach((function(e){t._conversationModule.patchMessageRemindType({ID:e,isC2CConversation:!0,messageRemindType:s})&&(d+=1)})),d>=1&&t._emitConversationUpdate(),a.length=c.length=0,t._conversationModule.emitTotalUnreadMessageCountUpdate(),Ni({successUserIDList:p.map((function(e){return{userID:e}})),failureUserIDList:l})})).catch((function(e){return t._conversationModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];u.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_getModule",value:function(e){return this._conversationModule.getModule(e)}},{key:"_emitConversationUpdate",value:function(){this._conversationModule.emitConversationUpdate(!0,!1)}},{key:"setUpdateSequence",value:function(e){this._updateSequence=e}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._updateSequence=0}}]),e}(),$i=function(){function e(t){o(this,e),this._conversationModule=t,this._n="ConvGroupHandler",this._convGroupMap=new Map,this._startIndex=0,this._pagingStatus=on.NOT_START}return a(e,[{key:"setConvCustomData",value:function(e){var t=this,n="".concat(this._n,".").concat("setConvCustomData"),o=e.conversationIDList,s=e.customData;He.l("".concat(n," options:"),e);var a=new li("setConvCustomData");a.setMessage(JSON.stringify(e));var r={fromAccount:this._getMyUserID(),itemList:[]},i=[],u=[];return o.forEach((function(e){if(!t._hasLocalConversation(e))return t._onConversationNotFound(u,e),!0;if(!Rt(e)&&!Nt(e))return t._onConversationIDInvalid(u,e),!0;var n={operationType:2,contactItem:void 0,customMark:s};Rt(e)?n.contactItem={type:1,toAccount:e.replace(S.CONV_C2C,"")}:Nt(e)&&(n.contactItem={type:2,groupID:e.replace(S.CONV_GROUP,"")}),r.itemList.push(n)})),u.length===o.length?Ni({successConversationIDList:i,failureConversationIDList:u}):this._conversationModule.request({protocolName:Bo,requestData:r}).then((function(e){a.setNetworkType(t._conversationModule.getNetworkType()).end(),He.l("".concat(n," ok"));var o=e.data.resultItem;if(it(o)){var r,c,l=!1;o.forEach((function(e){r=t._concatConversationID(e.contactItem),0===e.resultCode?(i.push(r),(c=t._getLocalConversation(r))&&c.customData!==s&&(c.customData=s,l=!0)):u.push({conversationID:r,code:e.resultCode,message:e.resultInfo})})),!0===l&&t._emitConversationUpdate()}return Li({successConversationIDList:i,failureConversationIDList:u})})).catch((function(e){return t._conversationModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];a.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"markConversation",value:function(e){var t=this;if(!this._conversationModule.canIUse(B.CONV_MARK))return Oi({code:Kr});var n="".concat(this._n,".").concat("markConversation"),o=e.conversationIDList,s=e.markType,a=e.enableMark;He.l("".concat(n," options:"),e);var r=new li("markConversation");r.setMessage(JSON.stringify(e));var i=void 0,u=void 0,c=this._getFlagBit(s);!0===a?u=[c]:i=[c];var l={fromAccount:this._getMyUserID(),itemList:[]},p=[],d=[];return o.forEach((function(e){if(!t._hasLocalConversation(e))return t._onConversationNotFound(d,e),!0;if(!Rt(e)&&!Nt(e))return t._onConversationIDInvalid(d,e),!0;var n={operationType:1,contactItem:void 0,clearMark:i,setMark:u};Rt(e)?n.contactItem={type:1,toAccount:e.replace(S.CONV_C2C,"")}:Nt(e)&&(n.contactItem={type:2,groupID:e.replace(S.CONV_GROUP,"")}),l.itemList.push(n)})),d.length===o.length?Ni({successConversationIDList:p,failureConversationIDList:d}):this._conversationModule.request({protocolName:Ho,requestData:l}).then((function(e){r.setNetworkType(t._conversationModule.getNetworkType()).end(),He.l("".concat(n," ok"));var o=e.data.resultItem;if(it(o)){var i,u,c=!1;o.forEach((function(e){if(i=t._concatConversationID(e.contactItem),0===e.resultCode){if(p.push(i),u=t._getLocalConversation(i)){var n=u.markList.indexOf(s);!0===a?-1===n&&(u.markList.push(s),c=!0):-1!==n&&(u.markList.splice(n,1),c=!0)}}else d.push({conversationID:i,code:e.resultCode,message:e.resultInfo})})),!0===c&&t._emitConversationUpdate()}return Li({successConversationIDList:p,failureConversationIDList:d})})).catch((function(e){return t._conversationModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"getLocalConvGroupList",value:function(){var e=this;return He.l("".concat(this._n,".getLocalConvGroupList pagingStatus:").concat(this._pagingStatus)),this._pagingStatus===on.REJECTED?this.getRemoteConvGroupList().then((function(){return Li(m(e._convGroupMap.values()))})):Ni(m(this._convGroupMap.values()))}},{key:"getRemoteConvGroupList",value:function(){var e=this,t="".concat(this._n,".getRemoteConvGroupList");return this._pagingStatus=on.PENDING,this._conversationModule.request({protocolName:Jo,requestData:{fromAccount:this._getMyUserID(),startIndex:this._startIndex,startTime:Fe()}}).then((function(n){var o,s,a=n.data,r=a.completeFlag,i=a.contactItem,u=a.nextStartIndex,c=void 0===u?0:u,l=a.groupItem;(e._startIndex=c,He.l("".concat(t," completeFlag:").concat(r," nextStartIndex:").concat(c)),it(l)&&l.forEach((function(t){var n=t.convGroupID,o=t.groupName;e._convGroupMap.set(n,o)})),it(i))&&i.forEach((function(t){var n=t.standardMark,a=t.customData,r=t.convGroupIDList;if(o=e._concatConversationID(t),(s=e._getLocalConversation(o))&&(s.markList=Yt(n),s.customData=a||"",it(r))){var i=[];r.forEach((function(t){e._convGroupMap.has(t)&&i.push(e._convGroupMap.get(t))})),s.conversationGroupList=[].concat(i),i.length=0}}));if(0===r)return e.getRemoteConvGroupList();1===r&&(e._pagingStatus=on.RESOLVED,e._emitConversationUpdate(),e._emitConvGroupListUpdate())})).catch((function(n){e._pagingStatus=on.REJECTED,He.w("".concat(t," failed. error:"),n)}))}},{key:"createConvGroup",value:function(e){var t=this;if(!this._conversationModule.canIUse(B.CONV_GROUP))return Oi({code:Kr});var n="".concat(this._n,".").concat("createConvGroup");He.l("".concat(n," options:"),e);var o=new li("createConvGroup");o.setMessage(JSON.stringify(e));var s=e.groupName,a=e.conversationIDList,r={fromAccount:this._getMyUserID(),itemList:[{groupName:s,contactItem:[]}]},i=[],u=[];return a.forEach((function(e){return t._hasLocalConversation(e)?Rt(e)||Nt(e)?void(Rt(e)?r.itemList[0].contactItem.push({type:1,toAccount:e.replace(S.CONV_C2C,"")}):Nt(e)&&r.itemList[0].contactItem.push({type:2,groupID:e.replace(S.CONV_GROUP,"")})):(t._onConversationIDInvalid(u,e),!0):(t._onConversationNotFound(u,e),!0)})),u.length===a.length?Ni({successConversationIDList:i,failureConversationIDList:u}):this._conversationModule.request({protocolName:Ko,requestData:r}).then((function(e){o.setNetworkType(t._conversationModule.getNetworkType()).end(),He.l("".concat(n," ok"));var a=e.data.groupResultItem[0],r=a.groupItem,c=a.resultItem;if(rt(r)&&(t._convGroupMap.set(r.convGroupID,r.groupName),t._emitConvGroupListUpdate()),it(c)){var l,p,d=!1;c.forEach((function(e){l=t._concatConversationID(e.contactItem),0===e.resultCode?(i.push(l),(p=t._getLocalConversation(l))&&-1===p.conversationGroupList.indexOf(s)&&(p.conversationGroupList.push(s),d=!0)):u.push({conversationID:l,code:e.resultCode,message:e.resultInfo})})),!0===d&&(t._emitConversationUpdate(),t._emitConvGroupListUpdate())}return Li({successConversationIDList:i,failureConversationIDList:u})})).catch((function(e){return t._conversationModule.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"deleteConvGroup",value:function(e){var t=this;if(!this._conversationModule.canIUse(B.CONV_GROUP))return Oi({code:Kr});var n="".concat(this._n,".").concat("deleteConvGroup");He.l("".concat(n," groupName:").concat(e));var o=new li("deleteConvGroup");return o.setMessage(e),this._conversationModule.request({protocolName:Wo,requestData:{fromAccount:this._getMyUserID(),groupName:[e]}}).then((function(s){o.setNetworkType(t._conversationModule.getNetworkType()).end(),He.l("".concat(n," ok"));var a=s.data.groupItem;if(it(a)){var r=!1;a.forEach((function(e){t._convGroupMap.has(e.convGroupID)&&(t._convGroupMap.delete(e.convGroupID),r=!0)})),!0===r&&t._emitConvGroupListUpdate()}t._eraseFromConversationGroupList([e])})).catch((function(e){return t._conversationModule.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"renameConvGroup",value:function(e){var t=this;if(!this._conversationModule.canIUse(B.CONV_GROUP))return Oi({code:Kr});var n="".concat(this._n,".").concat("renameConvGroup");He.l("".concat(n," options:"),e);var o=new li("renameConvGroup");o.setMessage(JSON.stringify(e));var s=e.oldName,a=e.newName;return this._conversationModule.request({protocolName:jo,requestData:{fromAccount:this._getMyUserID(),updateType:1,updateGroup:{updateGroupType:1,oldName:s,newName:a}}}).then((function(e){o.setNetworkType(t._conversationModule.getNetworkType()).end(),He.l("".concat(n," ok"));var r=e.data.updateGroupResult.convGroupID;t._convGroupMap.set(r,a),t._emitConvGroupListUpdate();var i,u,c=t._conversationModule.getLocalConversationList(),l=!1;c.forEach((function(e){i=e.conversationGroupList,-1!==(u=i.indexOf(s))&&(i.splice(u,1,a),l=!0)})),!0===l&&t._emitConversationUpdate()})).catch((function(e){return t._conversationModule.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"addConvsToGroup",value:function(e){var t=this;if(!this._conversationModule.canIUse(B.CONV_GROUP))return Oi({code:Kr});var n="".concat(this._n,".").concat("addConvsToGroup");He.l("".concat(n," options:"),e);var o=new li("addConvsToGroup");o.setMessage(JSON.stringify(e));var s=e.conversationIDList,a=e.groupName,r={fromAccount:this._getMyUserID(),updateType:1,updateGroup:{updateGroupType:2,groupName:a,updateItem:[]}},i=[],u=[];return s.forEach((function(e){return t._hasLocalConversation(e)?Rt(e)||Nt(e)?void(Rt(e)?r.updateGroup.updateItem.push({operationType:1,contactItem:{type:1,toAccount:e.replace(S.CONV_C2C,"")}}):Nt(e)&&r.updateGroup.updateItem.push({operationType:1,contactItem:{type:2,groupID:e.replace(S.CONV_GROUP,"")}})):(t._onConversationIDInvalid(u,e),!0):(t._onConversationNotFound(u,e),!0)})),u.length===s.length?Ni({successConversationIDList:i,failureConversationIDList:u}):this._conversationModule.request({protocolName:Yo,requestData:r}).then((function(e){o.setNetworkType(t._conversationModule.getNetworkType()).end(),He.l("".concat(n," ok"));var s=e.data.updateGroupResult.contactResultItem;if(it(s)){var r,c,l=!1;s.forEach((function(e){r=t._concatConversationID(e.contactItem),0===e.resultCode?(c=t._getLocalConversation(r))&&-1===c.conversationGroupList.indexOf(a)&&(c.conversationGroupList.push(a),i.push(r),l=!0):u.push({conversationID:r,code:e.resultCode,message:e.resultInfo})})),!0===l&&(t._emitConversationUpdate(),t._emitConvInGroupUpdate(a))}return Li({successConversationIDList:i,failureConversationIDList:u})})).catch((function(e){return t._conversationModule.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"deleteConvsFromGroup",value:function(e){var t=this;if(!this._conversationModule.canIUse(B.CONV_GROUP))return Oi({code:Kr});var n="".concat(this._n,".").concat("deleteConvsFromGroup");He.l("".concat(n," options:"),e);var o=new li("deleteConvsFromGroup");o.setMessage(JSON.stringify(e));var s=e.conversationIDList,a=e.groupName,r={fromAccount:this._getMyUserID(),updateType:1,updateGroup:{updateGroupType:2,groupName:a,updateItem:[]}},i=[],u=[];return s.forEach((function(e){return t._hasLocalConversation(e)?Rt(e)||Nt(e)?void(Rt(e)?r.updateGroup.updateItem.push({operationType:2,contactItem:{type:1,toAccount:e.replace(S.CONV_C2C,"")}}):Nt(e)&&r.updateGroup.updateItem.push({operationType:2,contactItem:{type:2,groupID:e.replace(S.CONV_GROUP,"")}})):(t._onConversationIDInvalid(u,e),!0):(t._onConversationNotFound(u,e),!0)})),u.length===s.length?Ni({successConversationIDList:i,failureConversationIDList:u}):this._conversationModule.request({protocolName:zo,requestData:r}).then((function(e){o.setNetworkType(t._conversationModule.getNetworkType()).end(),He.l("".concat(n," ok"));var s=e.data.updateGroupResult.contactResultItem;if(it(s)){var r,c,l=!1;s.forEach((function(e){if(r=t._concatConversationID(e.contactItem),0===e.resultCode){if(c=t._getLocalConversation(r)){var n=c.conversationGroupList.indexOf(a);-1!==n&&(c.conversationGroupList.splice(n,1),i.push(r),l=!0)}}else u.push({conversationID:r,code:e.resultCode,message:e.resultInfo})})),!0===l&&(t._emitConversationUpdate(),t._emitConvInGroupUpdate(a))}return Li({successConversationIDList:i,failureConversationIDList:u})})).catch((function(e){return t._conversationModule.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"onConvMarkUpdated",value:function(e){var t=this;if(!Zt(e)){var n,o;He.d("".concat(this._n,".onConvMarkUpdated markItemList:"),e);var s=!1;e.forEach((function(e){var a=e.recentContactItem,r=e.optType,i=e.standardMark,u=e.customMark;if(n=t._concatConversationID(a),o=t._getLocalConversation(n))if(1===r){var c=Yt(i);!0!==function(e,t){if(e===t)return!0;if(!e||!t)return!1;if(e.length!==t.length)return!1;for(var n=0,o=e.length;n=0;o--)if("1"===t[o])return n-o-1}},{key:"_concatConversationID",value:function(e){var t,n=e.type,o=e.to,s=e.groupID,a=e.userID;return 1===n?ut(a)?ut(o)||(t="".concat(S.CONV_C2C).concat(o)):t="".concat(S.CONV_C2C).concat(a):2===n&&(t="".concat(S.CONV_GROUP).concat(s)),t}},{key:"_getMyUserID",value:function(){return this._conversationModule.getMyUserID()}},{key:"_insertConversationGroup",value:function(e,t){var n=this._getLocalConversation(e);if(n){var o=n.conversationGroupList;-1===o.indexOf(t)&&o.push(t)}}},{key:"_getLocalConversation",value:function(e){return this._conversationModule.getLocalConversation(e)}},{key:"_hasLocalConversation",value:function(e){return this._conversationModule.hasLocalConversation(e)}},{key:"_emitConversationUpdate",value:function(){this._conversationModule.emitConversationUpdate(!0,!1)}},{key:"_emitConvGroupListUpdate",value:function(){this._conversationModule.emitOuterEvent(k.CONVERSATION_GROUP_LIST_UPDATED,m(this._convGroupMap.values()))}},{key:"_emitConvInGroupUpdate",value:function(e){var t={groupName:e,conversationList:[]},n=this._conversationModule.getLocalConversationList();t.conversationList=n.filter((function(t){return t.conversationGroupList.includes(e)})),this._conversationModule.emitOuterEvent(k.CONVERSATION_IN_GROUP_UPDATED,t)}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._convGroupMap.clear(),this._startIndex=0,this._pagingStatus=on.NOT_START}}]),e}(),eu=function(e){i(s,e);var n=f(s);function s(e){var t;return o(this,s),(t=n.call(this,e))._n="ConversationModule",qi.mixin(h(t)),t._messageListHandler=new Pi,t._messageRemindHandler=new Zi(h(t)),t._convGroupHandler=new $i(h(t)),t.singlyLinkedList=new Yi(100),t._pagingStatus=on.NOT_START,t._pagingTimeStamp=0,t._pagingStartIndex=0,t._pagingPinnedTimeStamp=0,t._pagingPinnedStartIndex=0,t._pagingConvIDMap=new Map,t._convIDFromUnreadDBMap=new Map,t._conversationMap=new Map,t._tmpGroupList=[],t._tmpGroupAtTipsList=[],t._peerReadTimeMap=new Map,t._completedMap=new Map,t._roamingMessageKeyAndTimeMap=new Map,t._roamingMessageSequenceMap=new Map,t._remoteGroupReadSequenceMap=new Map,t._convTotalUnreadCount=0,t._initListeners(),t}return a(s,[{key:"_initListeners",value:function(){var e=this.getInnerEmitterInstance();e.on(Ui,this._initLocalConversationList,this),e.on(wi,this._onProfileUpdated,this)}},{key:"onCheckTimer",value:function(e){e%60==0&&this._messageListHandler.traversal()}},{key:"_initLocalConversationList",value:function(){var e=this,t=new li("_initLocalConversationList");He.l("".concat(this._n,".").concat("_initLocalConversationList"));var n="",o=this._getStorageConversationList(),s=this.isIntl();if(o){for(var a=o.length,r=0;r0&&(e.updateConversationGroupProfile(e._tmpGroupList),e._tmpGroupList.length=0)})),this.syncConversationList()}},{key:"onMessageSent",value:function(e){this._onSendOrReceiveMessage({conversationOptionsList:e.conversationOptionsList,isInstantMessage:!0})}},{key:"onNewMessage",value:function(e){this._onSendOrReceiveMessage(e)}},{key:"_onSendOrReceiveMessage",value:function(e){var t=this,n=e.conversationOptionsList,o=e.isInstantMessage,s=void 0===o||o,a=e.isUnreadC2CMessage,r=void 0!==a&&a,i=e.updateUnreadCount,u=void 0===i||i;this._isReady?0!==n.length&&(this._getC2CPeerReadTime(n),this._updateLocalConversationList({conversationOptionsList:n,isInstantMessage:s,isUnreadC2CMessage:r,isFromGetConversations:!1,updateUnreadCount:u}),s||(this._convIDFromUnreadDBMap=new Map([].concat(m(this._convIDFromUnreadDBMap),m(n.map((function(e){return[e.conversationID,1]}))))),this._diffAndDeleteConversation()),this._setStorageConversationList(),n.filter((function(e){return e.type===S.CONV_TOPIC})).length>0||this.emitConversationUpdate()):this.ready((function(){t._onSendOrReceiveMessage(e)}))}},{key:"updateConversationGroupProfile",value:function(e){var t=this;if(!it(e)||0!==e.length)if(0!==this._conversationMap.size){var n=!1;e.forEach((function(e){var o="GROUP".concat(e.groupID);if(t._conversationMap.has(o)){n=!0;var s=t._conversationMap.get(o);s.groupProfile=JSON.parse(JSON.stringify(e)),s.lastMessage.lastSequence=0;r--)if(!s[r].isDeleted){a=s[r];break}var i=this._conversationMap.get(o);if(i){var u=!1;i.lastMessage.lastSequence===a.sequence&&i.lastMessage.lastTime===a.time||(Zt(a)&&(a=void 0),i.updateLastMessage(a),i.type!==S.CONV_TOPIC&&(u=!0),He.l("".concat(this._n,".onMessageDeleted. update conversationID:").concat(o," with lastMessage:"),i.lastMessage)),o.startsWith(S.CONV_C2C)&&this.updateUnreadCount(o),u&&this.emitConversationUpdate(!0,!1)}}}},{key:"onMessageModified",value:function(e){var t=e.conversationType,n=e.from,o=e.to,s=e.time,a=e.sequence,r=e.elements,i=e.cloudCustomData,u=e.messageVersion,c=this.getMyUserID(),l="".concat(t).concat(o);o===c&&t===S.CONV_C2C&&(l="".concat(t).concat(n));var p=this._messageListHandler.onMessageModified(l,e),d=p.isUpdated,g=p.message;!0===d&&this.emitOuterEvent(k.MESSAGE_MODIFIED,[g]);var h=this._isTopicConversation(l);if(He.l("".concat(this._n,".onMessageModified isUpdated:").concat(d," isTopicMessage:").concat(h," from:").concat(n," to:").concat(o)),h){this.getModule(Bn).onMessageModified(e)}else{var _=this._conversationMap.get(l);if(_){var f=_.lastMessage;He.d("".concat(this._n.onMessageModified," lastMessage:"),JSON.stringify(f),"options:",JSON.stringify(e)),f&&f.lastTime===s&&f.lastSequence===a&&f.version!==u&&(f.type=r[0].type,f.payload=r[0].content,f.messageForShow=Wt(f.type,f.payload,this.isIntl()),f.cloudCustomData=i,f.version=u,this.emitConversationUpdate(!0,!1))}}return g}},{key:"onNewGroupAtTips",value:function(e){var n=this,o=e.dataList,s=null;o.forEach((function(e){e.groupAtTips?s=e.groupAtTips:e.elements?s=t(t({},e.elements),{},{sync:!0}):e.groupAtType&&(s=t(t({},e),{},{sync:!0})),s.__random=e.random,s.__sequence=e.clientSequence,n._tmpGroupAtTipsList.push(s)})),He.d("".concat(this._n,".onNewGroupAtTips isReady:").concat(this._isReady),this._tmpGroupAtTipsList),this._isReady&&this._handleGroupAtTipsList()}},{key:"_handleGroupAtTipsList",value:function(){var e=this;if(0!==this._tmpGroupAtTipsList.length){var t=!1;this._tmpGroupAtTipsList.forEach((function(n){var o=n.groupID,s=n.from,a=n.topicID,r=void 0===a?void 0:a,i=n.sync,u=void 0!==i&&i;if(s!==e.getMyUserID())if(ut(r)){var c=e._conversationMap.get("".concat(S.CONV_GROUP).concat(o));c&&(c.updateGroupAtInfoList(n),t=!0)}else{var l=e._conversationMap.get("".concat(S.CONV_GROUP).concat(r));if(l){l.updateGroupAtInfoList(n);var p=e.getModule(Bn),d=l.groupAtInfoList;p.onConversationProxy({topicID:r,groupAtInfoList:d})}if(Zt(l)&&u)e.updateTopicConversation([{conversationID:"".concat(S.CONV_GROUP).concat(r),type:S.CONV_TOPIC}]),e._conversationMap.get("".concat(S.CONV_GROUP).concat(r)).updateGroupAtInfoList(n)}})),t&&this.emitConversationUpdate(!0,!1),this._tmpGroupAtTipsList.length=0}}},{key:"_getC2CPeerReadTime",value:function(e){var t=this,n=[];if(e.forEach((function(e){t._conversationMap.has(e.conversationID)||e.type!==S.CONV_C2C||n.push(e.conversationID.replace(S.CONV_C2C,""))})),n.length>0){He.d("".concat(this._n,"._getC2CPeerReadTime userIDList:").concat(n));var o=this.getModule(qn);o&&o.getRemotePeerReadTime(n)}}},{key:"_getStorageConversationList",value:function(){return this.getModule(Wn).getItem("conversationMap")}},{key:"_setStorageConversationList",value:function(){var e=this.getLocalConversationList().filter((function(e){return e.type===S.CONV_C2C||e.type===S.CONV_GROUP&&e.lastMessage.type!==S.MSG_GRP_TIP})).slice(0,20).map((function(e){return{conversationID:e.conversationID,type:e.type,subType:e.subType,lastMessage:e.lastMessage,groupProfile:e.groupProfile,userProfile:e.userProfile}}));this.getModule(Wn).setItem("conversationMap",e)}},{key:"emitConversationUpdate",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.getLocalConversationList();if(t){var o=this.getModule(Fn);o&&o.updateGroupLastMessage(n)}e&&this.emitOuterEvent(k.CONVERSATION_LIST_UPDATED)}},{key:"getLocalConversationList",value:function(){return m(this._conversationMap.values()).filter((function(e){return e.type!==S.CONV_TOPIC}))}},{key:"getLocalConversation",value:function(e){return this._conversationMap.get(e)}},{key:"hasLocalConversation",value:function(e){return this._conversationMap.has(e)}},{key:"getLocalOldestMessage",value:function(e){return this._messageListHandler.getLocalOldestMessage(e)}},{key:"syncConversationList",value:function(){var e=this,t=new li("syncConversationList");return this._pagingStatus===on.NOT_START&&this._conversationMap.clear(),this._pagingGetConversationList().then((function(n){return e._pagingStatus=on.RESOLVED,e._diffAndDeleteConversation(),e.emitConversationUpdate(!0,!1),e._setStorageConversationList(),e._handleC2CPeerReadTime(),e._patchConversationProperties(),t.setMessage(e._conversationMap.size).setNetworkType(e.getNetworkType()).end(),n})).catch((function(n){return e._pagingStatus=on.REJECTED,t.setMessage(e._pagingTimeStamp),e.probeNetwork().then((function(e){var o=v(e,2),s=o[0],a=o[1];t.setError(n,s,a).end()})),Oi(n)}))}},{key:"_diffAndDeleteConversation",value:function(){var e=this;if(this._isSyncCompleted()){var t=[];this._conversationMap.forEach((function(n,o){!e._pagingConvIDMap.has(o)&&e._convIDFromUnreadDBMap.has(o)&&(e._conversationMap.delete(o),t.push(o))})),He.l("".concat(this._n,"._diffAndDeleteConversation list:").concat(t))}}},{key:"_patchConversationProperties",value:function(){var e=this,t=Date.now(),n=this.checkAndPatchRemark(),o=this._messageRemindHandler.getC2CMessageRemindType(),s=this.getModule(Fn).getGroupList();Promise.all([n,o,s]).then((function(){var n=Date.now()-t;He.l("".concat(e._n,"._patchConversationProperties ok. cost ").concat(n," ms")),e.emitConversationUpdate(!0,!1),e.emitTotalUnreadMessageCountUpdate()}))}},{key:"_pagingGetConversationList",value:function(){var e=this,t="".concat(this._n,"._pagingGetConversationList");return He.l("".concat(t," timeStamp:").concat(this._pagingTimeStamp," startIndex:").concat(this._pagingStartIndex)+" pinnedTimeStamp:".concat(this._pagingPinnedTimeStamp," pinnedStartIndex:").concat(this._pagingPinnedStartIndex)),this._pagingStatus=on.PENDING,this.request({protocolName:bo,requestData:{fromAccount:this.getMyUserID(),timeStamp:this._pagingTimeStamp,startIndex:this._pagingStartIndex,pinnedTimeStamp:this._pagingPinnedTimeStamp,pinnedStartIndex:this._pagingPinnedStartIndex,orderType:1}}).then((function(n){var o=n.data,s=o.completeFlag,a=o.conversations,r=void 0===a?[]:a,i=o.timeStamp,u=o.startIndex,c=o.pinnedTimeStamp,l=o.pinnedStartIndex,p=o.groupItem;if(He.l("".concat(t," ok. completeFlag:").concat(s," count:").concat(r.length," isReady:").concat(e._isReady)),e._convGroupHandler.onConvGroupListSynced(p),r.length>0){var d=e._getConversationOptions(r);e._pagingConvIDMap=new Map([].concat(m(e._pagingConvIDMap),m(d.map((function(e){return[e.conversationID,1]}))))),e._updateLocalConversationList({conversationOptionsList:d,isFromGetConversations:!0}),e.isLoggedIn()&&e.emitConversationUpdate()}if(!e._isReady){if(!e.isLoggedIn())return Ni();e.triggerReady()}return e._pagingTimeStamp=i,e._pagingStartIndex=u,e._pagingPinnedTimeStamp=c,e._pagingPinnedStartIndex=l,1!==s?e._pagingGetConversationList():(e._handleGroupAtTipsList(),e._convGroupHandler.getRemoteConvGroupList(),Ni())})).catch((function(n){throw e.isLoggedIn()&&(e._isReady||(He.w("".concat(t," failed. error:"),n),e.triggerReady())),n}))}},{key:"_updateLocalConversationList",value:function(e){var t,n=e.isFromGetConversations,o=e.isInstantMessage,s=Date.now();t=this._getTmpConversationListMapping(e),this._conversationMap=new Map(this._sortConversationList([].concat(m(t.toBeUpdatedConversationList),m(this._conversationMap)))),n||(this._updateUserOrGroupProfile(t.newConversationList),o&&this.emitTotalUnreadMessageCountUpdate()),He.d("".concat(this._n,"._updateLocalConversationList cost ").concat(Date.now()-s," ms"))}},{key:"_getTmpConversationListMapping",value:function(e){for(var t=e.conversationOptionsList,n=e.isFromGetConversations,o=e.isInstantMessage,s=e.isUnreadC2CMessage,a=void 0!==s&&s,r=e.updateUnreadCount,i=[],u=[],c=this.getModule(Fn),l=this.getModule(xn),p=this.isIntl(),d=0,g=t.length;d0&&s.getUserProfile({userIDList:n}).then((function(e){var n=e.data;it(n)?n.forEach((function(e){t._doUpdateUserProfile("C2C".concat(e.userID),e)})):t._doUpdateUserProfile("C2C".concat(n.userID),n)})),o.length>0&&a.getGroupProfileAdvance({groupIDList:o,responseFilter:{groupBaseInfoFilter:["Type","Name","FaceUrl"]}}).then((function(e){e.data.successGroupList.forEach((function(e){var n="GROUP".concat(e.groupID);if(t._conversationMap.has(n)){var o=t._conversationMap.get(n);ft(o.groupProfile,e,[],[null,void 0,"",0,NaN]),!o.subType&&e.type&&(o.subType=e.type)}}))}))}}},{key:"_doUpdateUserProfile",value:function(e,t){this.hasLocalConversation(e)&&(this.getLocalConversation(e).userProfile=t)}},{key:"_getConversationOptions",value:function(e){var n=this,o=[],s=e.filter((function(e){var t=e.type,n=e.userID;return 1===t&&"@TLS#NOT_FOUND"!==n&&"@TLS#ERROR"!==n||2===t})),a=this.getMyUserID(),r=s.map((function(e){if(ut(e.lastMsg)&&(e.lastMsg={elements:[]}),1===e.type){var s={userID:e.userID,nick:e.peerNick,avatar:e.peerAvatar};return o.push(s),{conversationID:"C2C".concat(e.userID),type:"C2C",lastMessage:{lastTime:e.time,lastSequence:e.sequence,fromAccount:e.lastC2CMsgFromAccount,messageForShow:e.messageShow,type:e.lastMsg.elements[0]?e.lastMsg.elements[0].type:null,payload:e.lastMsg.elements[0]?n._amendLayersOverLimitProperty(e.lastMsg.elements[0].content):null,cloudCustomData:e.lastMsg.cloudCustomData||"",isRevoked:8===e.lastMessageFlag,onlineOnlyFlag:!1,nick:"",nameCard:"",version:0,isPeerRead:e.lastC2CMsgFromAccount===a&&e.time<=e.c2cPeerReadTime,revoker:e.lastMsg.revokerInfo?e.lastMsg.revokerInfo.revoker:null},userProfile:new Wi(s),peerReadTime:e.c2cPeerReadTime,isPinned:1===e.isPinned,messageRemindType:"",customData:e.customMark||"",markList:Yt(e.standardMark),conversationGroupList:n._convGroupHandler.getConvGroupListByID(e.contactGroupId)}}return{conversationID:"GROUP".concat(e.groupID),type:"GROUP",lastMessage:t(t({lastTime:e.time,lastSequence:e.messageReadSeq+e.unreadCount,fromAccount:e.msgGroupFromAccount,messageForShow:e.messageShow},n._patchTypeAndPayload(e)),{},{cloudCustomData:e.lastMsg.cloudCustomData||"",isRevoked:2===e.lastMessageFlag,onlineOnlyFlag:!1,nick:e.senderNick||"",nameCard:e.senderNameCard||"",revoker:e.lastMsg.revokerInfo?e.lastMsg.revokerInfo.revoker:null}),groupProfile:new Ji({groupID:e.groupID,name:e.groupNick,avatar:e.groupImage}),unreadCount:e.unreadCount,peerReadTime:0,isPinned:1===e.isPinned,messageRemindType:"",version:0,customData:e.customMark||"",markList:Yt(e.standardMark),conversationGroupList:n._convGroupHandler.getConvGroupListByID(e.contactGroupId)}}));o.length>0&&this.getModule(wn).onConversationsProfileUpdated(o);return r}},{key:"_patchTypeAndPayload",value:function(e){var n=e.lastMsg,o=n.event,s=void 0===o?void 0:o,a=n.elements,r=void 0===a?[]:a,i=n.groupTips,u=void 0===i?{}:i;if(!ut(s)&&!Zt(u)){var c=new Si(u);c.setElement({type:S.MSG_GRP_TIP,content:t(t({},u.elements),{},{groupProfile:u.groupProfile})});var l=JSON.parse(JSON.stringify(c.payload));return c=null,{type:S.MSG_GRP_TIP,payload:l}}return{type:r[0]?r[0].type:null,payload:r[0]?this._amendLayersOverLimitProperty(r[0].content):null}}},{key:"_amendLayersOverLimitProperty",value:function(e){var t=e.layersOverLimit;return 0===t?e.layersOverLimit=!1:1===t&&(e.layersOverLimit=!0),e}},{key:"getLocalMessageList",value:function(e){return this._messageListHandler.getLocalMessageList(e)}},{key:"deleteLocalMessage",value:function(e){e instanceof Si&&this._messageListHandler.remove(e)}},{key:"onConversationDeleted",value:function(e){if(it(e)){var t=e.map((function(e){var t=e.type,n=e.userID,o=e.groupID;return 1===t?"".concat(S.CONV_C2C).concat(n):2===t?"".concat(S.CONV_GROUP).concat(o):void 0}));He.l("".concat(this._n,".onConversationDeleted conversationIDList:").concat(t)),this.deleteLocalConversationList(t)}}},{key:"onConversationPinned",value:function(e){var t=this;if(it(e)){var n=!1;e.forEach((function(e){var o,s=e.type,a=e.userID,r=e.groupID;1===s?o=t.getLocalConversation("".concat(S.CONV_C2C).concat(a)):2===s&&(o=t.getLocalConversation("".concat(S.CONV_GROUP).concat(r))),o&&(He.l("".concat(t._n,".onConversationPinned conversationID:").concat(o.conversationID," isPinned:").concat(o.isPinned)),o.isPinned||(o.isPinned=!0,n=!0))})),n&&this._sortConversationListAndEmitEvent()}}},{key:"onConversationUnpinned",value:function(e){var t=this;if(it(e)){var n=!1;e.forEach((function(e){var o,s=e.type,a=e.userID,r=e.groupID;1===s?o=t.getLocalConversation("".concat(S.CONV_C2C).concat(a)):2===s&&(o=t.getLocalConversation("".concat(S.CONV_GROUP).concat(r))),o&&(He.l("".concat(t._n,".onConversationUnpinned conversationID:").concat(o.conversationID," isPinned:").concat(o.isPinned)),o.isPinned&&(o.isPinned=!1,n=!0))})),n&&this._sortConversationListAndEmitEvent()}}},{key:"getMessageList",value:function(e){var t=this,n=e.conversationID,o=e.nextReqMessageID,s=e.count,a="".concat(this._n,".getMessageList"),r=this.getLocalConversation(n),i="";if(r&&r.groupProfile&&(i=r.groupProfile.type),Lt(i))return He.l("".concat(a," not available in avchatroom. conversationID:").concat(n)),Ni({messageList:[],nextReqMessageID:"",isCompleted:!0});(ut(s)||s>15)&&(s=15),!o&&this._isNotInCommunity(n)&&(this._messageListHandler.removeByConversationID(n),this._completedMap.delete(n),this._roamingMessageSequenceMap.delete(n));var u=this._computeRemainingCount({conversationID:n,nextReqMessageID:o}),c=this._completedMap.has(n);if(He.l("".concat(a," conversationID:").concat(n," nextReqMessageID:").concat(o)+" remainingCount:".concat(u," count:").concat(s," isCompleted:").concat(c)),this._needGetHistory({conversationID:n,remainingCount:u,count:s}))return this.getHistoryMessages({conversationID:n,nextReqMessageID:o,count:20}).then((function(e){var o=e.nextReqID,s=e.storedMessageList,r=t._completedMap.has(n),i=s;u>0&&(i=t._messageListHandler.getLocalMessageList(n).slice(0,s.length+u));var c={nextReqMessageID:r?"":o,messageList:i,isCompleted:r};return He.l("".concat(a," ret.nextReqMessageID:").concat(c.nextReqMessageID," ret.isCompleted:").concat(c.isCompleted," ret.length:").concat(i.length)),Li(c)}));this.modifyMessageList(n);var l=this._getMessageListFromMemory({conversationID:n,nextReqMessageID:o,count:s});return Ni(l)}},{key:"_getMessageListFromMemory",value:function(e){var t=e.conversationID,n=e.nextReqMessageID,o=e.count,s="".concat(this._n,"._getMessageListFromMemory"),a=this._messageListHandler.getLocalMessageList(t),r=a.length,i=0,u={isCompleted:!1,nextReqMessageID:"",messageList:[]};return n?(i=a.findIndex((function(e){return e.ID===n})))>o?(u.messageList=a.slice(i-o,i),u.nextReqMessageID=a[i-o].ID):(u.messageList=a.slice(0,i),u.isCompleted=!0):r>o?(i=r-o,u.messageList=a.slice(i,r),u.nextReqMessageID=a[i].ID):(u.messageList=a.slice(0,r),u.isCompleted=!0),He.l("".concat(s," conversationID:").concat(t)+" ret.nextReqMessageID:".concat(u.nextReqMessageID," ret.isCompleted:").concat(u.isCompleted," ret.length:").concat(u.messageList.length)),u}},{key:"getMessageListHopping",value:function(e){var t=e.conversationID,n=e.sequence,o=e.time,s=e.count,a=e.direction,r=void 0===a?0:a;if((ut(s)||s>15)&&(s=15),t.startsWith(S.CONV_C2C)){var i=this.getModule(qn),u=t.replace(S.CONV_C2C,"");return i.getRoamingMessagesHopping({peerAccount:u,time:o,count:s,direction:r})}if(t.startsWith(S.CONV_GROUP)){var c=this.getModule(Fn),l=t.replace(S.CONV_GROUP,"");return c.getRoamingMessagesHopping({groupID:l,sequence:n,count:s,direction:r})}}},{key:"_computeRemainingCount",value:function(e){var t=e.conversationID,n=e.nextReqMessageID,o=this._messageListHandler.getLocalMessageList(t),s=o.length;if(!n)return s;var a=0;return Rt(t)?a=o.findIndex((function(e){return e.ID===n})):Nt(t)&&(a=-1!==n.indexOf("-")?o.findIndex((function(e){return e.ID===n})):o.findIndex((function(e){return e.sequence===n}))),-1===a&&(a=0),a}},{key:"_getMessageListSize",value:function(e){return this._messageListHandler.getLocalMessageList(e).length}},{key:"_needGetHistory",value:function(e){var t=e.conversationID,n=e.remainingCount,o=e.count,s=this.getLocalConversation(t),a="";return s&&s.groupProfile&&(a=s.groupProfile.type),!Ot(t)&&!Lt(a)&&(!(Nt(t)&&this._isPagingGetGroupListCompleted()&&this._getLocalGroupCount()<=4e3&&!this._hasLocalGroup(t)&&!this._isTopicConversation(t))&&(n<=o&&!this._completedMap.has(t)))}},{key:"_isTopicConversation",value:function(e){var t=e.replace(S.CONV_GROUP,"");return At(t)}},{key:"getHistoryMessages",value:function(e){var t=e.conversationID,n=e.count;if(t===S.CONV_SYSTEM)return Ni();var o=15;n>20&&(o=20);var s=null;if(Rt(t)){var a=this._roamingMessageKeyAndTimeMap.has(t);return(s=this.getModule(qn))?s.getRoamingMessage({conversationID:t,peerAccount:t.replace(S.CONV_C2C,""),count:o,lastMessageTime:a?this._roamingMessageKeyAndTimeMap.get(t).lastMessageTime:0,messageKey:a?this._roamingMessageKeyAndTimeMap.get(t).messageKey:""}):Oi({code:Pr})}if(Nt(t)){if(!(s=this.getModule(Fn)))return Oi({code:Pr});var r=null;this._conversationMap.has(t)&&(r=this._conversationMap.get(t).lastMessage);var i=0;r&&(i=r.lastSequence);var u=this._roamingMessageSequenceMap.get(t);return s.getRoamingMessage({conversationID:t,groupID:t.replace(S.CONV_GROUP,""),count:o,sequence:u||i})}return Ni()}},{key:"patchConversationLastMessage",value:function(e){var t=this.getLocalConversation(e);if(t){var n=t.lastMessage,o=n.messageForShow,s=n.payload;if(Zt(o)||Zt(s)){var a=this._messageListHandler.getLocalMessageList(e);if(0===a.length)return;var r=a[a.length-1];He.l("".concat(this._n,".patchConversationLastMessage conversationID:").concat(e," payload:"),r.payload),t.updateLastMessage(r)}}}},{key:"onRoamingMessage",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0,o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=n.startsWith(S.CONV_C2C)?S.CONV_C2C:S.CONV_GROUP,a=null,r=[],i=[],u=0,c=e.length,l=null,p=s===S.CONV_GROUP,d=this.getModule(zn),g=this.getFileDownloadProxy(),h=function(){u=p?e.length-1:0,c=p?0:e.length},_=function(){p?--u:++u},f=function(){return p?u>=c:u0&&void 0!==arguments[0]?arguments[0]:{},n="setAllMessageRead",o="".concat(this._n,".").concat(n);t.scope||(t.scope=S.READ_ALL_MSG),He.l("".concat(o," options:"),t);var s=this._createSetAllMessageReadPack(t);if(0===s.readAllC2CMessage&&0===s.groupMessageReadInfoList.length)return Ni();var a=new li(n);return this.request({protocolName:ps,requestData:s}).then((function(n){var o=n.data,s=e._handleAllMessageRead(o);return a.setMessage("scope:".concat(t.scope," failureGroups:").concat(JSON.stringify(s))).setNetworkType(e.getNetworkType()).end(),Ni()})).catch((function(t){return e.probeNetwork().then((function(e){var n=v(e,2),o=n[0],s=n[1];a.setError(t,o,s).end()})),He.w("".concat(o," failed. error:"),t),Oi({code:t&&t.code?t.code:Pa,message:t&&t.message?t.message:void 0})}))}},{key:"setConversationCustomData",value:function(e){return this._convGroupHandler.setConvCustomData(e)}},{key:"markConversation",value:function(e){return this._convGroupHandler.markConversation(e)}},{key:"getConversationGroupList",value:function(){return this._convGroupHandler.getLocalConvGroupList()}},{key:"createConversationGroup",value:function(e){return this._convGroupHandler.createConvGroup(e)}},{key:"deleteConversationGroup",value:function(e){return this._convGroupHandler.deleteConvGroup(e)}},{key:"renameConversationGroup",value:function(e){return this._convGroupHandler.renameConvGroup(e)}},{key:"addConversationsToGroup",value:function(e){return this._convGroupHandler.addConvsToGroup(e)}},{key:"deleteConversationsFromGroup",value:function(e){return this._convGroupHandler.deleteConvsFromGroup(e)}},{key:"onConversationMarkUpdated",value:function(e){this._convGroupHandler.onConvMarkUpdated(e)}},{key:"onConversationGroupCreated",value:function(e){this._convGroupHandler.onConvGroupCreated(e)}},{key:"onConversationGroupDeleted",value:function(e){this._convGroupHandler.onConvGroupDeleted(e)}},{key:"onConversationGroupNameUpdated",value:function(e){this._convGroupHandler.onConvGroupNameUpdated(e)}},{key:"onConversationInGroupUpdated",value:function(e){this._convGroupHandler.onConvInGroupUpdated(e)}},{key:"onConversationAddedToOrDeletedFromGroup",value:function(e){this._convGroupHandler.onConvAddedToOrDeletedFromGroup(e)}},{key:"_getConversationLastMessageSequence",value:function(e){var t=this._messageListHandler.getLocalLastMessage(e.conversationID),n=e.lastMessage.lastSequence;return t&&n0)if(a.type===S.CONV_C2C&&0===n.readAllC2CMessage){if(o===S.READ_ALL_MSG)n.readAllC2CMessage=1;else if(o===S.READ_ALL_C2C_MSG){n.readAllC2CMessage=1;break}}else if(a.type===S.CONV_GROUP&&(o===S.READ_ALL_GROUP_MSG||o===S.READ_ALL_MSG)){var r=this._getConversationLastMessageSequence(a);n.groupMessageReadInfoList.push({groupID:a.groupProfile.groupID,messageSequence:r})}}}catch(i){s.e(i)}finally{s.f()}return n}},{key:"onPushedAllMessageRead",value:function(e){this._handleAllMessageRead(e)}},{key:"_handleAllMessageRead",value:function(e){var t=e.groupMessageReadInfoList,n=e.readAllC2CMessage,o=this._parseGroupReadInfo(t);return this._updateAllConversationUnreadCount({readAllC2CMessage:n})>=1&&(this.emitConversationUpdate(!0,!1),this.emitTotalUnreadMessageCountUpdate()),o}},{key:"_parseGroupReadInfo",value:function(e){var t=[];if(e&&e.length)for(var n=0,o=e.length;n=1){if(1===n&&i.type===S.CONV_C2C){var u=this._getConversationLastMessageTime(i);this.updateIsReadAfterReadReport({conversationID:r,lastMessageTime:u})}else if(i.type===S.CONV_GROUP){var c=r.replace(S.CONV_GROUP,"");if(this._remoteGroupReadSequenceMap.has(c)){var l=this._remoteGroupReadSequenceMap.get(c),p=this._getConversationLastMessageSequence(i);this.updateIsReadAfterReadReport({conversationID:r,remoteReadSequence:l}),p>=l&&this._remoteGroupReadSequenceMap.delete(c)}}this.updateUnreadCount(r,!1)&&(o+=1)}}}catch(d){s.e(d)}finally{s.f()}return o}},{key:"isRemoteRead",value:function(e){var t=e.conversationID,n=e.sequence,o=t.replace(S.CONV_GROUP,""),s=!1;if(this._remoteGroupReadSequenceMap.has(o)){var a=this._remoteGroupReadSequenceMap.get(o);n<=a&&(s=!0,He.l("".concat(this._n,".isRemoteRead conversationID:").concat(t," messageSequence:").concat(n," remoteReadSequence:").concat(a))),n>=a+10&&this._remoteGroupReadSequenceMap.delete(o)}return s}},{key:"updateIsReadAfterReadReport",value:function(e){var t=e.conversationID,n=e.lastMessageSeq,o=e.lastMessageTime,s=this._messageListHandler.getLocalMessageList(t);if(0!==s.length)for(var a,r=s.length-1;r>=0;r--)if(a=s[r],!(o&&a.time>o||n&&a.sequence>n)){if("in"===a.flow&&a.isRead)break;a.setIsRead(!0)}}},{key:"updateUnreadCount",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=!1,o=this.getLocalConversation(e),s=this._messageListHandler.getLocalMessageList(e);if(o){var a=o.unreadCount,r=s.filter((function(e){return!e.isRead&&!e._onlineOnlyFlag&&!e.isDeleted})).length;if(a!==r&&(o.unreadCount=r,n=!0,He.l("".concat(this._n,".updateUnreadCount from ").concat(a," to ").concat(r,", conversationID:").concat(e)),!0===t&&(this.emitConversationUpdate(!0,!1),this.emitTotalUnreadMessageCountUpdate())),n&&o.type===S.CONV_TOPIC){var i=o.unreadCount,u=this.getModule(Bn),c=e.replace(S.CONV_GROUP,"");u.onConversationProxy({topicID:c,unreadCount:i})}return n}}},{key:"clearGroupAtInfoList",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.getLocalConversation(e);if(n&&n.groupAtInfoList.length>0){if(n.clearGroupAtInfoList(),He.l("".concat(this._n,".clearGroupAtInfoList conversationID:").concat(e)),n.type===S.CONV_TOPIC){var o=n.groupAtInfoList,s=this.getModule(Bn),a=e.replace(S.CONV_GROUP,"");s.onConversationProxy({topicID:a,groupAtInfoList:o})}!0===t&&this.emitConversationUpdate(!0,!1)}}},{key:"updateReadReceiptInfo",value:function(e){var t=this,n=e.userID,o=void 0===n?void 0:n,s=e.groupID,a=void 0===s?void 0:s,r=e.readReceiptList;if(!Zt(r)){var i=[];if(ut(o)){if(!ut(a)){var u="".concat(S.CONV_GROUP).concat(a);r.forEach((function(e){var n=e.tinyID,o=e.clientTime,s=e.random,r=e.readCount,c=e.unreadCount,l="".concat(n,"-").concat(o,"-").concat(s),p=t._messageListHandler.getLocalMessage(u,l),d={groupID:a,messageID:l,readCount:0,unreadCount:0};p&&(ot(r)&&(p.readReceiptInfo.readCount=r,d.readCount=r),ot(c)&&(p.readReceiptInfo.unreadCount=c,d.unreadCount=c),i.push(d))}))}}else{var c="".concat(S.CONV_C2C).concat(o);r.forEach((function(e){var n=e.tinyID,s=e.clientTime,a=e.random,r="".concat(n,"-").concat(s,"-").concat(a),u=t._messageListHandler.getLocalMessage(c,r);if(u){u.readReceiptInfo.isPeerRead=!0;var l={userID:o,messageID:r,isPeerRead:!0};i.push(l)}}))}i.length>0&&this.emitOuterEvent(k.MESSAGE_READ_RECEIPT_RECEIVED,i)}}},{key:"recomputeGroupUnreadCount",value:function(e){var t=e.conversationID,n=e.count,o=this.getLocalConversation(t);if(o){var s=o.unreadCount,a=s-n;a<0&&(a=0),o.unreadCount=a,He.l("".concat(this._n,".recomputeGroupUnreadCount from ").concat(s," to ").concat(a,", conversationID:").concat(t))}}},{key:"updateIsRead",value:function(e){var t=this.getLocalConversation(e),n=this.getLocalMessageList(e);if(t&&0!==n.length&&!Ot(t.type)){for(var o=[],s=0,a=n.length;s0){var n=this._messageListHandler.updateMessageIsPeerReadProperty(e,t);if(n.length>0&&this.emitOuterEvent(k.MESSAGE_READ_BY_PEER,n),this._conversationMap.has(e)){var o=this._conversationMap.get(e).lastMessage;Zt(o)||o.fromAccount===this.getMyUserID()&&o.lastTime<=t&&!o.isPeerRead&&(o.isPeerRead=!0,this.emitConversationUpdate(!0,!1))}}}},{key:"updateMessageIsModifiedProperty",value:function(e){this._messageListHandler.updateMessageIsModifiedProperty(e)}},{key:"setCompleted",value:function(e){He.l("".concat(this._n,".setCompleted. conversationID:").concat(e)),this._completedMap.set(e,!0)}},{key:"updateRoamingMessageKeyAndTime",value:function(e,t,n){this._roamingMessageKeyAndTimeMap.set(e,{messageKey:t,lastMessageTime:n})}},{key:"updateRoamingMessageSequence",value:function(e,t){this._roamingMessageSequenceMap.set(e,t)}},{key:"getConversationList",value:function(e){var t=this,n="getConversationList",o="".concat(this._n,".").concat(n),s="pagingStatus:".concat(this._pagingStatus,", local conversation count:").concat(this._conversationMap.size,", options:").concat(e);if(He.l("".concat(o,". ").concat(s)),this._pagingStatus===on.REJECTED){var a=new li(n);return a.setMessage(s),this.syncConversationList().then((function(){a.setNetworkType(t.getNetworkType()).end();var n=t._getConversationList(e);return Li({conversationList:n,isSyncCompleted:t._isSyncCompleted()})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];a.setError(e,o,s).end()})),He.e("".concat(o," failed. error:"),e),Oi(e)}))}if(0===this._conversationMap.size){var r=new li(n);return r.setMessage(s),this.syncConversationList().then((function(){r.setNetworkType(t.getNetworkType()).end();var n=t._getConversationList(e);return Li({conversationList:n,isSyncCompleted:t._isSyncCompleted()})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),He.e("".concat(o," failed. error:"),e),Oi(e)}))}var i=this._getConversationList(e);return He.l("".concat(o,". returned conversation count:").concat(i.length)),Ni({conversationList:i,isSyncCompleted:this._isSyncCompleted()})}},{key:"_getConversationList",value:function(e){if(ut(e))return this.getLocalConversationList();if(it(e))return 0===e.length?[]:this.getLocalConversationList().filter((function(t){return e.includes(t.conversationID)}));if(rt(e)){var t=e.type,n=e.markType,o=e.groupName;return this.getLocalConversationList().filter((function(e){return(t!==S.CONV_C2C&&t!==S.CONV_GROUP||e.type===t)&&(!st(o)||e.conversationGroupList.includes(o))&&(!ot(n)||e.markList.includes(n))}))}return[]}},{key:"_handleC2CPeerReadTime",value:function(){var e,t=D(this._conversationMap);try{for(t.s();!(e=t.n()).done;){var n=v(e.value,2),o=n[0],s=n[1];s.type===S.CONV_C2C&&(He.d("".concat(this._n,"._handleC2CPeerReadTime conversationID:").concat(o," peerReadTime:").concat(s.peerReadTime)),this.recordPeerReadTime(o,s.peerReadTime))}}catch(a){t.e(a)}finally{t.f()}}},{key:"_isPagingGetGroupListCompleted",value:function(){return this.getModule(Fn).isPagingGetCompleted()}},{key:"_getLocalGroupCount",value:function(){return this.getModule(Fn).getLocalGroupList().length}},{key:"_hasLocalGroup",value:function(e){return this.getModule(Fn).hasLocalGroup(e.replace(S.CONV_GROUP,""))}},{key:"getConversationProfile",value:function(e){var t,n=this;if((t=this._conversationMap.has(e)?this._conversationMap.get(e):new Qi({conversationID:e,type:e.slice(0,3)===S.CONV_C2C?S.CONV_C2C:S.CONV_GROUP},this.isIntl()))._isInfoCompleted||t.type===S.CONV_SYSTEM)return Ni({conversation:t});if(Nt(e)&&!this._hasLocalGroup(e))return Ni({conversation:t});var o="".concat(this._n,".").concat("getConversationProfile"),s=new li("getConversationProfile");return He.l("".concat(o,". conversationID:").concat(e," remark:").concat(t.remark," lastMessage:"),t.lastMessage),this._updateUserOrGroupProfileCompletely(t).then((function(a){s.setNetworkType(n.getNetworkType()).setMessage("conversationID:".concat(e," unreadCount:").concat(a.data.conversation.unreadCount)).end();var r=n.getModule(xn);if(r&&t.type===S.CONV_C2C){var i=e.replace(S.CONV_C2C,"");if(r.isMyFriend(i)){var u=r.getFriendRemark(i);t.remark!==u&&(t.remark=u,He.l("".concat(o,". conversationID:").concat(e," patch remark:").concat(t.remark)))}}return He.l("".concat(o," ok. conversationID:").concat(e)),a})).catch((function(t){return n.probeNetwork().then((function(n){var o=v(n,2),a=o[0],r=o[1];s.setError(t,a,r).setMessage("conversationID:".concat(e)).end()})),He.e("".concat(o," failed. error:"),t),Oi(t)}))}},{key:"_updateUserOrGroupProfileCompletely",value:function(e){var t=this;return e.type===S.CONV_C2C?this.getModule(wn).getUserProfile({userIDList:[e.toAccount]}).then((function(n){var o=n.data;return 0===o.length?Oi(new Ei({code:sr})):(e.userProfile=o[0],e._isInfoCompleted=!0,t._unshiftConversation(e),Ni({conversation:e}))})):this.getModule(Fn).getGroupProfile({groupID:e.toAccount}).then((function(n){return e.groupProfile=n.data.group,e._isInfoCompleted=!0,t._unshiftConversation(e),Ni({conversation:e})}))}},{key:"_unshiftConversation",value:function(e){e instanceof Qi&&!this._conversationMap.has(e.conversationID)&&(this._conversationMap=new Map([[e.conversationID,e]].concat(m(this._conversationMap))),this._setStorageConversationList(),this.emitConversationUpdate(!0,!1))}},{key:"_onProfileUpdated",value:function(e){var t=this;e.data.forEach((function(e){var n=e.userID;if(n===t.getMyUserID())t._onMyProfileModified({latestNick:e.nick,latestAvatar:e.avatar});else{var o=t._conversationMap.get("".concat(S.CONV_C2C).concat(n));o&&(o.userProfile=e)}}))}},{key:"_isSyncCompleted",value:function(){return this._pagingStatus===on.RESOLVED}},{key:"_errorLog",value:function(e,t,n,o){var s=new Error("Params validate failed."),a="".concat(this.getErrorMessage("API_REFER")).concat(e);throw He.w("[".concat(e,"] | ").concat(t," | ").concat(this.getErrorMessage(n,o),", ").concat(a)),He.e("[".concat(e,"] Invalid ").concat(t,": type check failed for ").concat(t,".")),s}},{key:"_isValidConversationID",value:function(e){return Rt(e)||Nt(e)||Ot(e)}},{key:"deleteConversation",value:function(e){var t=this,n="deleteConversation";return st(e)||at(e)||this._errorLog(n,"options","StringOrObjectRequiredLog"),st(e)?(this._isValidConversationID(e)||this._errorLog(n,"options","InvalidConversationID",e),He.l("".concat(this._n,".").concat(n," conversationID:").concat(e)),this.deleteConversationList({conversationIDList:[e],flag:1})):(it(e.conversationIDList)||this._errorLog(n,"conversationIDList","ArrayRequiredLog"),0===e.conversationIDList.length&&this._errorLog(n,"conversationIDList","NonEmptyArrayLog"),e.conversationIDList.forEach((function(e){t._isValidConversationID(e)||t._errorLog(n,"conversationIDList","InvalidConversationID",e)})),"clearHistoryMessage"in e&&"boolean"!=typeof e.clearHistoryMessage&&this._errorLog(n,"clearHistoryMessage","BooleanRequiredLog"),e.conversationIDList.length>100&&(e.conversationIDList=e.conversationIDList.slice(0,100)),this.deleteConversationList(e))}},{key:"deleteConversationList",value:function(e){var t=this,n=e.conversationIDList,o=void 0===n?[]:n,s=e.clearHistoryMessage,a=void 0===s||s,r=e.flag,i=void 0===r?0:r,u="".concat(this._n,".").concat("deleteConversationList");He.l("".concat(u," conversationIDList.length:").concat(o.length," clearHistoryMessage:").concat(a));var c=new li("deleteConversationList");return c.setMessage("conversationIDList:".concat(o)),Promise.all([this.rmLocalOnlyConversationList(o),this.rmLocalAndRemoteConversationList(o,a)]).then((function(e){c.setNetworkType(t.getNetworkType()).end();var n=[].concat(m(e[0]),m(e[1]));return 0===n.length?Oi(new Ei({code:or})):(He.l("".concat(u," ok")),Ni(1===i?{conversationID:n[0]}:{conversationIDList:n}))})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];c.setError(e,o,s).end()})),He.e("".concat(u," failed. error:"),e),Oi(e)}))}},{key:"rmLocalOnlyConversationList",value:function(e){var t=this;return e.filter((function(e){if(!t._conversationMap.has(e))return!1;var n=t.getLocalConversation(e).type;return n!==S.CONV_GROUP||t._hasLocalGroup(e)?n===S.CONV_SYSTEM&&(t.getModule(Fn).deleteGroupSystemNotice({messageList:t._messageListHandler.getLocalMessageList(e)}),t.deleteLocalConversation(e),!0):(t.deleteLocalConversation(e),!0)}))}},{key:"rmLocalAndRemoteConversationList",value:function(e,t){var n=this,o={fromAccount:this.getMyUserID(),conversationList:[],clearHistoryMessage:t?1:0};return e.forEach((function(e){if(n._conversationMap.has(e)){var t=n.getLocalConversation(e).type;t===S.CONV_C2C?o.conversationList.push({toAccount:e.replace(t,""),type:1}):t===S.CONV_GROUP&&n._hasLocalGroup(e)&&o.conversationList.push({toGroupID:e.replace(t,""),type:2})}})),0===o.conversationList.length?[]:this.request({protocolName:qo,requestData:o}).then((function(e){var t=[];return e.data.resultList.length>0&&e.data.resultList.map((function(e){if(0===e.code){var n="".concat(1===e.type?S.CONV_C2C:S.CONV_GROUP).concat(e.to);t.push(n)}})),n.deleteLocalConversationList(t),t}))}},{key:"clearHistoryMessage",value:function(e){var t=this,n={fromAccount:this.getMyUserID(),toAccount:void 0,type:void 0,toGroupID:void 0};if(!this._conversationMap.has(e))return Oi({code:or});var o=this._conversationMap.get(e).type;if(o===S.CONV_C2C)n.type=1,n.toAccount=e.replace(S.CONV_C2C,"");else{if(o!==S.CONV_GROUP)return o===S.CONV_SYSTEM?(this.getModule(Fn).deleteGroupSystemNotice({messageList:this._messageListHandler.getLocalMessageList(e)}),Ni({conversationID:e})):Oi({code:ar});n.type=2,n.toGroupID=e.replace(S.CONV_GROUP,"")}var s="".concat(this._n,".").concat("clearHistoryMessage"),a=new li("clearHistoryMessage");return a.setMessage("conversationID:".concat(e)),He.l("".concat(s,". conversationID:").concat(e)),this.setMessageRead({conversationID:e}).then((function(){return t.request({protocolName:Fo,requestData:n})})).then((function(){a.setNetworkType(t.getNetworkType()).end(),He.l("".concat(s," ok")),t._messageListHandler.removeByConversationID(e),t.setCompleted(e);var n=t.getLocalConversation(e);return n&&(n.updateLastMessage(),t._sortConversationListAndEmitEvent()),Ni({conversationID:e})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];a.setError(e,o,s).end()})),He.e("".concat(s," failed. error:"),e),Oi(e)}))}},{key:"pinConversation",value:function(e){var t=this,n=e.conversationID,o=e.isPinned;if(!this._conversationMap.has(n))return Oi({code:or});var s=this.getLocalConversation(n);if(s.isPinned===o)return Ni({conversationID:n});var a="".concat(this._n,".").concat("pinConversation"),r=new li("pinConversation");r.setMessage("conversationID:".concat(n," isPinned:").concat(o)),He.l("".concat(a,". conversationID:").concat(n," isPinned:").concat(o));var i=null;return Rt(n)?i={type:1,toAccount:n.replace(S.CONV_C2C,"")}:Nt(n)&&(i={type:2,groupID:n.replace(S.CONV_GROUP,"")}),this.request({protocolName:xo,requestData:{fromAccount:this.getMyUserID(),operationType:!0===o?1:2,itemList:[i]}}).then((function(){return r.setNetworkType(t.getNetworkType()).end(),He.l("".concat(a," ok")),s.isPinned!==o&&(s.isPinned=o,t._sortConversationListAndEmitEvent()),Li({conversationID:n})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),He.e("".concat(a," failed. error:"),e),Oi(e)}))}},{key:"setMessageRemindType",value:function(e){return this._messageRemindHandler.set(e)}},{key:"patchMessageRemindType",value:function(e){var t=e.ID,n=e.isC2CConversation,o=e.messageRemindType,s=!1,a=this.getLocalConversation(n?"".concat(S.CONV_C2C).concat(t):"".concat(S.CONV_GROUP).concat(t));return a&&a.messageRemindType!==o&&(a.messageRemindType=o,s=!0),He.d("".concat(this._n,".patchMessageRemindType options:"),e,"ret:".concat(s)),s}},{key:"onC2CMessageRemindTypeSynced",value:function(e){var t=this,n="".concat(this._n,".onC2CMessageRemindTypeSynced");He.d(n,e),e.dataList.forEach((function(e){if(!Zt(e.muteNotificationsSync)){var o,s=e.muteNotificationsSync,a=s.to,r=s.updateSequence,i=s.muteFlag;t._messageRemindHandler.setUpdateSequence(r),0===i?o=S.MSG_REMIND_ACPT_AND_NOTE:1===i?o=S.MSG_REMIND_DISCARD:2===i&&(o=S.MSG_REMIND_ACPT_NOT_NOTE);var u=0;t.patchMessageRemindType({ID:a,isC2CConversation:!0,messageRemindType:o})&&(u+=1),He.l("".concat(n," updateCount:").concat(u)),u>=1&&t.emitConversationUpdate(!0,!1)}}))}},{key:"onGroupMessageRemindTypeSynced",value:function(e){He.d("".concat(this._n,".onGroupMessageRemindTypeSynced options:"),e),this._messageRemindHandler.onGroupMessageRemindTypeUpdated(e)}},{key:"deleteLocalConversation",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this._conversationMap.has(e);if(He.d("".concat(this._n,".deleteLocalConversation conversationID:").concat(e," has:").concat(n)),n&&(this._conversationMap.delete(e),this._roamingMessageKeyAndTimeMap.has(e)&&this._roamingMessageKeyAndTimeMap.delete(e),this._roamingMessageSequenceMap.has(e)&&this._roamingMessageSequenceMap.delete(e),this._setStorageConversationList(),this._messageListHandler.removeByConversationID(e),this._completedMap.delete(e),t)){var o=!this._isTopicConversation(e);this.emitConversationUpdate(o,!1)}}},{key:"deleteLocalConversationList",value:function(e){var t=this,n=0,o=!1;e.forEach((function(e){t._conversationMap.has(e)&&(n+=t._conversationMap.get(e).unreadCount||0,t.deleteLocalConversation(e,!1),o=!0)})),He.l("".concat(this._n,".deleteLocalConversationList conversationIDList.length:").concat(e.length," isConvIDExisted:").concat(o)),o&&(this.emitConversationUpdate(!0,!1),n>0&&this.emitTotalUnreadMessageCountUpdate())}},{key:"isMessageSentByCurrentInstance",value:function(e){return!(!this._messageListHandler.hasLocalMessage(e.conversationID,e.ID)&&!this.singlyLinkedList.has(e.random))}},{key:"modifyMessageList",value:function(e){if(e.startsWith(S.CONV_C2C)&&this._conversationMap.has(e)){var t=this._conversationMap.get(e),n=Date.now();this._messageListHandler.modifyMessageSentByPeer({conversationID:e,latestNick:t.userProfile.nick,latestAvatar:t.userProfile.avatar});var o=this.getModule(wn).getNickAndAvatarByUserID(this.getMyUserID());this._messageListHandler.modifyMessageSentByMe({conversationID:e,latestNick:o.nick,latestAvatar:o.avatar}),He.l("".concat(this._n,".modifyMessageList conversationID:").concat(e," cost ").concat(Date.now()-n," ms"))}}},{key:"updateUserProfileSpecifiedKey",value:function(e){He.l("".concat(this._n,".updateUserProfileSpecifiedKey options:"),e);var t=e.conversationID,n=e.nick,o=e.avatar;if(this._conversationMap.has(t)){var s=this._conversationMap.get(t).userProfile;st(n)&&s.nick!==n&&(s.nick=n),st(o)&&s.avatar!==o&&(s.avatar=o),this.emitConversationUpdate(!0,!1)}}},{key:"_onMyProfileModified",value:function(e){var n=this,o=this.getLocalConversationList(),s=Date.now();o.forEach((function(o){n.modifyMessageSentByMe(t({conversationID:o.conversationID},e))})),He.l("".concat(this._n,"._onMyProfileModified. modify all messages sent by me, cost ").concat(Date.now()-s," ms"))}},{key:"modifyMessageSentByMe",value:function(e){this._messageListHandler.modifyMessageSentByMe(e)}},{key:"getLatestMessageSentByMe",value:function(e){return this._messageListHandler.getLatestMessageSentByMe(e)}},{key:"modifyMessageSentByPeer",value:function(e){this._messageListHandler.modifyMessageSentByPeer(e)}},{key:"getLatestMessageSentByPeer",value:function(e){return this._messageListHandler.getLatestMessageSentByPeer(e)}},{key:"pushIntoNoticeResult",value:function(e,t){return!(!this._messageListHandler.pushIn(t)||this.singlyLinkedList.has(t.random))&&(e.push(t),!0)}},{key:"getLocalLastMessage",value:function(e){return this._messageListHandler.getLocalLastMessage(e)}},{key:"checkAndPatchRemark",value:function(){var e=Promise.resolve();if(0===this._conversationMap.size)return e;var t=this.getModule(xn);if(!t)return e;var n=m(this._conversationMap.values()).filter((function(e){return e.type===S.CONV_C2C}));if(0===n.length)return e;var o=0;return n.forEach((function(e){var n=e.conversationID.replace(S.CONV_C2C,"");if(t.isMyFriend(n)){var s=t.getFriendRemark(n);e.remark!==s&&(e.remark=s,o+=1)}})),He.l("".concat(this._n,".checkAndPatchRemark. c2c conversation count:").concat(n.length,", patched count:").concat(o)),e}},{key:"updateTopicConversation",value:function(e){this._updateLocalConversationList({conversationOptionsList:e,isFromGetConversations:!0})}},{key:"sendReadReceipt",value:function(e){var t=e[0],n=null;return t.conversationType===S.CONV_C2C?n=this._m.getModule(qn):t.conversationType===S.CONV_GROUP&&(n=this._m.getModule(Fn)),n?n.sendReadReceipt(e):Oi({code:Pr})}},{key:"getReadReceiptList",value:function(e){var t=e[0],n=null;return t.conversationType===S.CONV_C2C?n=this._m.getModule(qn):t.conversationType===S.CONV_GROUP&&(n=this._m.getModule(Fn)),n?n.getReadReceiptList(e):Oi({code:Pr})}},{key:"getLastMessageTime",value:function(e){var t=this.getLocalConversation(e);return t?t.lastMessage.lastTime:0}},{key:"getTotalUnreadMessageCount",value:function(){var e=this.getLocalConversationList(),t=0;return e.forEach((function(e){e.type!==S.CONV_SYSTEM&&(""!==e.messageRemindType&&e.messageRemindType!==S.MSG_REMIND_ACPT_AND_NOTE||(t+=e.unreadCount))})),t}},{key:"emitTotalUnreadMessageCountUpdate",value:function(){var e=this.getTotalUnreadMessageCount();this._convTotalUnreadCount!==e&&(He.l("".concat(this._n,".emitTotalUnreadMessageCountUpdate from ").concat(this._convTotalUnreadCount," to ").concat(e)),this._convTotalUnreadCount=e,this.emitOuterEvent(k.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED))}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._pagingStatus=on.NOT_START,this._messageListHandler.reset(),this._messageRemindHandler.reset(),this._roamingMessageKeyAndTimeMap.clear(),this._roamingMessageSequenceMap.clear(),this.singlyLinkedList.reset(),this._peerReadTimeMap.clear(),this._completedMap.clear(),this._conversationMap.clear(),this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0,this._remoteGroupReadSequenceMap.clear(),this._convTotalUnreadCount=0,this.resetReady()}}]),s}(po),tu=function(){function e(t){o(this,e),this._groupModule=t,this._n="GroupTipsHandler",this._cachedGroupTipsMap=new Map,this._checkCountMap=new Map,this.MAX_CHECK_COUNT=4,this._getTopicPendingMap=new Map}return a(e,[{key:"onCheckTimer",value:function(e){e%1==0&&this._cachedGroupTipsMap.size>0&&this._checkCachedGroupTips()}},{key:"_checkCachedGroupTips",value:function(){var e=this;this._cachedGroupTipsMap.forEach((function(t,n){var o=e._checkCountMap.get(n),s=e._groupModule.hasLocalGroup(n);He.l("".concat(e._n,"._checkCachedGroupTips groupID:").concat(n," hasLocalGroup:").concat(s," checkCount:").concat(o)),s?(e._notifyCachedGroupTips(n),e._checkCountMap.delete(n),e._groupModule.deleteUnjoinedAVChatRoom(n)):o>=e.MAX_CHECK_COUNT?(e._deleteCachedGroupTips(n),e._checkCountMap.delete(n)):(o++,e._checkCountMap.set(n,o))}))}},{key:"onNewGroupTips",value:function(e){He.d("".concat(this._n,".onReceiveGroupTips count:").concat(e.dataList.length));var t=this.newGroupTipsStoredAndSummary(e),n=t.eventDataList,o=t.result,s=t.AVChatRoomMessageList;(s.length>0&&this._groupModule.onAVChatRoomMessage(s),n.length>0)&&(this._groupModule.updateNextMessageSeq(n),this._groupModule.getModule(Hn).onNewMessage({conversationOptionsList:n,isInstantMessage:!0}));o.length>0&&(this._groupModule.emitOuterEvent(k.MESSAGE_RECEIVED,o),this.handleMessageList(o))}},{key:"newGroupTipsStoredAndSummary",value:function(e){for(var n=this,o=e.event,s=e.dataList,a=null,r=[],i=[],u={},c=[],l=function(e,l){var p=kt(s[e]);if(6===o){if(n._groupModule.isGroupAttributesUpdatedNotice(p))return"continue";if(n._groupModule.isGroupCountersNotice(p))return"continue"}var d=p.groupProfile,g=d.groupID,h=d.communityType,_=void 0===h?0:h,f=d.topicID,v=void 0===f?void 0:f,m=d.invisible,M=void 0,y=n._groupModule.isMessageFromTopic(_,v);if(y){M=S.CONV_TOPIC,p.to=v;var I=n._groupModule.getModule(Bn);I.hasLocalTopic(g,v)||n._getTopicPendingMap.has(v)||(n._getTopicPendingMap.set(v,1),I.getTopicList({groupID:g,topicIDList:[v]}).finally((function(){n._getTopicPendingMap.delete(v)})))}var C=n._groupModule.hasLocalGroup(g);if(!C&&n._groupModule.isUnjoinedAVChatRoom(g))return"continue";if(!C&&!y)return n._cacheGroupTipsAndProbe({groupID:g,event:o,item:p}),"continue";if(n._groupModule.isMessageFromOrToAVChatroom(g))return p.event=o,c.push(p),"continue";if(p.currentUser=n._groupModule.getMyUserID(),p.conversationType=S.CONV_GROUP,(a=new Si(p)).setElement({type:S.MSG_GRP_TIP,content:t(t({},p.elements),{},{groupProfile:p.groupProfile})}),a.isSystemMessage=!1,1===m)return n._qualityStat(a),"continue";var T=n._groupModule.getModule(Hn),D=a,k=D.conversationID,L=D.sequence;if(6===o)a._onlineOnlyFlag=!0,i.push(a);else if(!T.pushIntoNoticeResult(i,a))return"continue";if(n._groupModule.isMessageFromCommunityOfTopic(_,v))return"continue";if(6===o&&T.getLocalConversation(k))return"continue";6!==o&&n._qualityStat(a);var E=T.isRemoteRead({conversationID:k,sequence:L});if(ut(u[k])){var A=0;"in"===a.flow&&(a._isExcludedFromUnreadCount||a._onlineOnlyFlag||E||(A=1)),u[k]=r.push({conversationID:k,unreadCount:A,type:ut(M)?a.conversationType:M,subType:a.conversationSubType,lastMessage:a._isExcludedFromLastMessage?"":a})-1}else{var R=u[k];r[R].type=a.conversationType,r[R].subType=a.conversationSubType,r[R].lastMessage=a._isExcludedFromLastMessage?"":a,"in"===a.flow&&(a._isExcludedFromUnreadCount||a._onlineOnlyFlag||E||r[R].unreadCount++)}},p=0,d=s.length;p=0){u.updateSelfInfo({muteTime:p.muteTime}),c=!0;break}}c&&this._groupModule.emitOuterEvent(k.TOPIC_UPDATED,{groupID:i,topic:u})}}},{key:"_onTopicProfileUpdated",value:function(e){var n=e.payload,o=n.groupProfile.groupID,s=n.newTopicInfo;this._groupModule.getModule(Bn).onTopicProfileUpdated(t({groupID:o,topicID:e.to},s))}},{key:"_cacheGroupTips",value:function(e,t){this._cachedGroupTipsMap.has(e)||this._cachedGroupTipsMap.set(e,[]),this._cachedGroupTipsMap.get(e).push(t)}},{key:"_deleteCachedGroupTips",value:function(e){this._cachedGroupTipsMap.has(e)&&this._cachedGroupTipsMap.delete(e)}},{key:"_notifyCachedGroupTips",value:function(e){var t=this,n=this._cachedGroupTipsMap.get(e)||[];n.forEach((function(e){t.onNewGroupTips(e)})),this._deleteCachedGroupTips(e),He.l("".concat(this._n,"._notifyCachedGroupTips groupID:").concat(e," count:").concat(n.length))}},{key:"_cacheGroupTipsAndProbe",value:function(e){var t=this,n=e.groupID,o=e.event,s=e.item;this._cacheGroupTips(n,{event:o,dataList:[s]}),this._groupModule.getGroupSimplifiedInfo(n).then((function(e){e.type===S.GRP_AVCHATROOM?t._groupModule.hasLocalGroup(n)?t._notifyCachedGroupTips(n):t._groupModule.setUnjoinedAVChatRoom(n):(t._groupModule.updateGroupMap([e]),t._notifyCachedGroupTips(n))})),this._checkCountMap.has(n)||this._checkCountMap.set(n,0),He.l("".concat(this._n,"._cacheGroupTipsAndProbe groupID:").concat(n))}},{key:"reset",value:function(){this._cachedGroupTipsMap.clear(),this._checkCountMap.clear(),this._getTopicPendingMap.clear()}}]),e}(),nu=function(){function e(t){o(this,e),this._groupModule=t,this._n="CommonGroupHandler",this.tempConversationList=null,this._cachedGroupMessageMap=new Map,this._checkCountMap=new Map,this.MAX_CHECK_COUNT=4,this._getTopicPendingMap=new Map,this._isPagingGetCompleted=!1,t.getInnerEmitterInstance().once(Ui,this._initGroupList,this)}return a(e,[{key:"onCheckTimer",value:function(e){e%1==0&&this._cachedGroupMessageMap.size>0&&this._checkCachedGroupMessage()}},{key:"_checkCachedGroupMessage",value:function(){var e=this;this._cachedGroupMessageMap.forEach((function(t,n){var o=e._checkCountMap.get(n),s=e._groupModule.hasLocalGroup(n);He.l("".concat(e._n,"._checkCachedGroupMessage groupID:").concat(n," hasLocalGroup:").concat(s," checkCount:").concat(o)),s?(e._notifyCachedGroupMessage(n),e._checkCountMap.delete(n),e._groupModule.deleteUnjoinedAVChatRoom(n)):o>=e.MAX_CHECK_COUNT?(e._deleteCachedGroupMessage(n),e._checkCountMap.delete(n)):(o++,e._checkCountMap.set(n,o))}))}},{key:"_initGroupList",value:function(){var e=this;He.l("".concat(this._n,"._initGroupList"));var t=new li("getGroupListInStorage"),n=this._groupModule.getStorageGroupList();if(it(n)&&n.length>0){n.forEach((function(t){e._groupModule.initGroupMap(t)})),this._groupModule.emitGroupListUpdate(!0,!1);var o=this._groupModule.getLocalGroupList().length;t.setNetworkType(this._groupModule.getNetworkType()).setMessage("group count:".concat(o)).end()}else t.setNetworkType(this._groupModule.getNetworkType()).setMessage("group count:0").end();He.l("".concat(this._n,"._initGroupList ok"))}},{key:"handleUpdateGroupLastMessage",value:function(e){var n="".concat(this._n,".handleUpdateGroupLastMessage");if(He.l("".concat(n," conversation count:").concat(e.length,", local group count:").concat(this._groupModule.getLocalGroupList().length)),0!==this._groupModule.getGroupMap().size){for(var o,s,a,r=!1,i=0,u=e.length;i0&&this._groupModule.onAVChatRoomMessage(s),this._groupModule.filterModifiedMessage(o),n.length>0)&&(this._groupModule.updateNextMessageSeq(n),this._groupModule.getModule(Hn).onNewMessage({conversationOptionsList:n,isInstantMessage:e.isInstantMessage||!0,updateUnreadCount:e.updateUnreadCount||!0}));var a=this._groupModule.filterUnmodifiedMessage(o);a.length>0&&this._groupModule.emitOuterEvent(k.MESSAGE_RECEIVED,a),o.length=0}},{key:"_newGroupMessageStoredAndSummary",value:function(e){var t=this,n=e.dataList,o=e.event,s=e.isInstantMessage,a=null,r=[],i=[],u=[],c={},l=this._groupModule.getModule(zn),p=this._groupModule.getFileDownloadProxy(),d=n.length;d>1&&n.sort((function(e,t){return e.sequence-t.sequence}));for(var g=function(e){var d=kt(n[e]),g=d.groupProfile,h=g.groupID,_=g.communityType,f=void 0===_?0:_,v=g.topicID,m=void 0===v?void 0:v,M=g.invisible,y=void 0,I=t._groupModule.isMessageFromTopic(f,m);if(I){y=S.CONV_TOPIC,d.to=m;var C=t._groupModule.getModule(Bn);C.hasLocalTopic(h,m)||t._getTopicPendingMap.has(m)||(t._getTopicPendingMap.set(m,1),C.getTopicList({groupID:h,topicIDList:[m]}).finally((function(){t._getTopicPendingMap.delete(m)})))}var T=t._groupModule.hasLocalGroup(h);if(!T&&t._groupModule.isUnjoinedAVChatRoom(h))return"continue";if(!T&&!I)return t._cacheGroupMessageAndProbe({groupID:h,event:o,item:d}),"continue";if(t._groupModule.isMessageFromOrToAVChatroom(h))return d.event=o,u.push(d),"continue";if(d.currentUser=t._groupModule.getMyUserID(),d.conversationType=S.CONV_GROUP,d.isSystemMessage=!!d.isSystemMessage,a=new Si(d),d.elements=l.parseElements(d.elements,d.from),a.setElement(d.elements,p),1===M)return t._qualityStat(s,a),"continue";var D=1===n[e].isModified,k=t._groupModule.getModule(Hn);if(k.isMessageSentByCurrentInstance(a)?a.isModified=D:D=!1,1===d.onlineOnlyFlag)a._onlineOnlyFlag=!0,k.isMessageSentByCurrentInstance(a)||i.push(a);else{if(t._groupModule.isMessageFromCommunityOfTopic(f,m))return i.push(a),"continue";if(!k.pushIntoMessageList(i,a,D))return"continue";t._qualityStat(s,a);var L=a,E=L.conversationID,A=L.sequence,R=k.isRemoteRead({conversationID:E,sequence:A});if(ut(c[E])){var N=0;"in"===a.flow&&(a._isExcludedFromUnreadCount||R||(N=1)),c[E]=r.push({conversationID:E,unreadCount:N,type:ut(y)?a.conversationType:y,subType:a.conversationSubType,lastMessage:a._isExcludedFromLastMessage?"":a})-1}else{var O=c[E];r[O].type=ut(y)?a.conversationType:y,r[O].subType=a.conversationSubType,r[O].lastMessage=a._isExcludedFromLastMessage?"":a,"in"===a.flow&&(a._isExcludedFromUnreadCount||R||r[O].unreadCount++)}}},h=0;h0&&n.addMessageDelay(t.clientTime)}},{key:"onGroupMessageRevoked",value:function(e){var t=this._groupModule.getModule(Hn),n=[],o=null,s=!0;e.dataList.forEach((function(e){var a=e.elements.revokedInfos;ut(a)||a.forEach((function(e){var a=Zt(e.topicID)?"GROUP".concat(e.groupID):"GROUP".concat(e.topicID);o=t.revoke(a,e.sequence,e.random);var r=e.revokerInfo&&e.revokerInfo.revoker;if(o)o.revoker=r,n.push(o);else{var i={conversationID:a,to:e.topicID||"",sequence:e.sequence,time:e.time,revoker:r};t.isLastMessageRevoked(i)&&(n.push(i),s=!1)}}))})),0!==n.length&&(t.onMessageRevoked(n),!0===s&&(He.l("".concat(this._n,".onGroupMessageRevoked count:").concat(n.length)),this._groupModule.emitOuterEvent(k.MESSAGE_REVOKED,n)))}},{key:"_groupListTreeShaking",value:function(e){for(var t=new Map(m(this._groupModule.getGroupMap())),n=0,o=e.length;ng),_="offset:".concat(u," totalCount:").concat(d," isCompleted:").concat(h," ")+"currentCount:".concat(l.length," isCommunityRelay:").concat(s);return p.setNetworkType(t._groupModule.getNetworkType()).setMessage("".concat(_)).end(),s||h?!s&&h?(He.l("".concat(n," start to get community list")),u=0,t._pagingGetGroupList({limit:i,offset:u,groupBaseInfoFilter:c,groupList:l,isCommunityRelay:!0})):s&&!h?(u=g,t._pagingGetGroupList({limit:i,offset:u,groupBaseInfoFilter:c,groupList:l,isCommunityRelay:!0})):(He.l("".concat(n," ok. totalCount:").concat(l.length)),Li({groupList:l})):(u=g,t._pagingGetGroupList({limit:i,offset:u,groupBaseInfoFilter:c,groupList:l}))})).catch((function(e){return 11e3!==e.code&&t._groupModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],a=n[1];p.setMessage("isCommunityRelay:".concat(s)).setError(e,o,a).end()})),s?(11e3===e.code&&(p=null,He.l("".concat(n," ok. community unavailable"))),Ni({groupList:l})):Oi(e)}))}},{key:"_pagingGetGroupListWithTopic",value:function(e){var t=this,n="".concat(this._n,"._pagingGetGroupListWithTopic"),o=e.limit,s=e.offset,a=e.groupBaseInfoFilter,r=e.groupList,i=new li("pagingGetGroupListWithTopic");return this._groupModule.request({protocolName:Xo,requestData:{type:S.GRP_COMMUNITY,memberAccount:this._groupModule.getMyUserID(),limit:o,offset:s,responseFilter:{groupBaseInfoFilter:a,selfInfoFilter:["Role","JoinTime","MsgFlag","MsgSeq"]},isSupportTopic:1}}).then((function(e){var u=e.data,c=u.groups,l=void 0===c?[]:c,p=u.totalCount;r.push.apply(r,m(l));var d=s+o,g=!(p>d),h="offset:".concat(s," totalCount:").concat(p," isCompleted:").concat(g," ")+"currentCount:".concat(r.length);return i.setNetworkType(t._groupModule.getNetworkType()).setMessage("".concat(h)).end(),g?(He.l("".concat(n," ok. totalCount:").concat(r.length)),Li({groupList:r})):(s=d,t._pagingGetGroupListWithTopic({limit:o,offset:s,groupBaseInfoFilter:a,groupList:r}))})).catch((function(e){return t._groupModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];i.setError(e,o,s).end()})),Oi(e)}))}},{key:"_cacheGroupMessage",value:function(e,t){this._cachedGroupMessageMap.has(e)||this._cachedGroupMessageMap.set(e,[]),this._cachedGroupMessageMap.get(e).push(t)}},{key:"_deleteCachedGroupMessage",value:function(e){this._cachedGroupMessageMap.has(e)&&this._cachedGroupMessageMap.delete(e)}},{key:"_notifyCachedGroupMessage",value:function(e){var t=this,n=this._cachedGroupMessageMap.get(e)||[];n.forEach((function(e){t.onNewGroupMessage(e)})),this._deleteCachedGroupMessage(e),He.l("".concat(this._n,"._notifyCachedGroupMessage groupID:").concat(e," count:").concat(n.length))}},{key:"_cacheGroupMessageAndProbe",value:function(e){var t=this,n=e.groupID,o=e.event,s=e.item;this._cacheGroupMessage(n,{event:o,dataList:[s]}),this._groupModule.getGroupSimplifiedInfo(n).then((function(e){e.type===S.GRP_AVCHATROOM?t._groupModule.hasLocalGroup(n)?t._notifyCachedGroupMessage(n):t._groupModule.setUnjoinedAVChatRoom(n):(t._groupModule.updateGroupMap([e]),t._notifyCachedGroupMessage(n))})),this._checkCountMap.has(n)||this._checkCountMap.set(n,0),He.l("".concat(this._n,"._cacheGroupMessageAndProbe groupID:").concat(n))}},{key:"_handleGroupAtInfoWithoutTopic",value:function(e,n){var o=this;e&&0!==n.length&&n.forEach((function(e){var n=e.groupID,s=e.groupAtInfoList,a=[];ut(s)||(s.forEach((function(e){a.push(t(t({},e),{},{groupID:n}))})),o._groupModule.getModule(Hn).onNewGroupAtTips({dataList:a}))}))}},{key:"reset",value:function(){this._cachedGroupMessageMap.clear(),this._checkCountMap.clear(),this._getTopicPendingMap.clear(),this._isPagingGetCompleted=!1,this._groupModule.getInnerEmitterInstance().once(Ui,this._initGroupList,this)}}]),e}(),ou=1,su=2,au=3,ru=4,iu=5,uu=function(){function e(t){o(this,e),this._groupModule=t,this._n="GroupAttributesHandler",this._groupAttributesMap=new Map,this._groupAttributesCopy={},this.CACHE_EXPIRE_TIME=3e4,this._groupModule.getInnerEmitterInstance().on(bi,this._onCloudConfigUpdated,this)}return a(e,[{key:"_onCloudConfigUpdated",value:function(){var e=this._groupModule.getCloudConfig("grp_attr_cache_time");ut(e)||(this.CACHE_EXPIRE_TIME=Number(e))}},{key:"updateLocalMainSequenceOnReconnected",value:function(){this._groupAttributesMap.forEach((function(e){e.localMainSequence=0}))}},{key:"isGroupAttributesUpdatedNotice",value:function(e){var t=e.to,n=e.elements.newGroupProfile,o=!ut(n)&&!Zt(n.groupAttributeOption);return o&&this._onGroupAttributesUpdated({groupID:t,groupAttributeOption:n.groupAttributeOption}),o}},{key:"_onGroupAttributesUpdated",value:function(e){var t=this,n=e.groupID,o=e.groupAttributeOption,s=o.mainSequence,a=o.isWithChangedAttributeInfo,r=o.groupAttributeList,i=void 0===r?[]:r,u=o.operationType;if(He.l("".concat(this._n,".onGroupAttributesUpdated. ")+"groupID:".concat(n," isWithChangedAttributeInfo:").concat(a," operationType:").concat(u)),!ut(u)){this._groupAttributesCopy=this._getCachedAttributes({groupID:n});var c=this._getLocalGroupAttributes(n).localMainSequence;if(1===a&&s-c==1)return this._refreshCachedGroupAttributes({groupID:n,remoteMainSequence:s,groupAttributeList:i,operationType:u}),void this._emitGroupAttributesUpdated(n);if(this._hasLocalGroupAttributes(n)){var l=this._getLocalGroupAttributes(n).avChatRoomKey;this._getGroupAttributes({groupID:n,avChatRoomKey:l}).then((function(){t._emitGroupAttributesUpdated(n)}))}}}},{key:"initGroupAttributesCache",value:function(e){var t=e.groupID,n=e.avChatRoomKey,o=void 0===n?void 0:n;this._groupAttributesMap.set(t,{lastUpdateTime:0,localMainSequence:0,remoteMainSequence:0,attributes:new Map,avChatRoomKey:o}),He.l("".concat(this._n,".initGroupAttributesCache groupID:").concat(t," avChatRoomKey:").concat(o))}},{key:"initGroupAttributes",value:function(e){var t=this,n=e.groupID,o=e.groupAttributes,s=this._getLocalGroupAttributes(n),a=s.remoteMainSequence,r=s.avChatRoomKey,i=new li("initGroupAttributes");return i.setMessage("groupID:".concat(n," avChatRoomKey:").concat(r," mainSequence:").concat(a)),this._groupModule.request({protocolName:Ds,requestData:{groupID:n,avChatRoomKey:r,mainSequence:a,groupAttributeList:this._transformGroupAttributes(o)}}).then((function(e){var s=e.data,a=s.mainSequence,r=m(s.groupAttributeList);return r.forEach((function(e){e.value=o[e.key]})),t._refreshCachedGroupAttributes({groupID:n,remoteMainSequence:a,groupAttributeList:r,operationType:ou}),i.setNetworkType(t._groupModule.getNetworkType()).end(),He.l("".concat(t._n,".").concat("initGroupAttributes"," ok. groupID:").concat(n)),Li({groupAttributes:o})})).catch((function(e){return t._groupModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];i.setError(e,o,s).end()})),Oi(e)}))}},{key:"setGroupAttributes",value:function(e){var t=this,n="".concat(this._n,".").concat("setGroupAttributes"),o=e.groupID,s=e.groupAttributes,a=this._getLocalGroupAttributes(o),r=a.remoteMainSequence,i=a.avChatRoomKey,u=a.attributes,c=this._transformGroupAttributes(s);c.forEach((function(e){var t=e.key;e.sequence=0,u.has(t)&&(e.sequence=u.get(t).sequence)}));var l=new li("setGroupAttributes");return l.setMessage("groupID:".concat(o," groupAttributes:").concat(JSON.stringify(s))),He.l("".concat(n,". groupID:").concat(o," mainSequence:").concat(r)),this._groupModule.request({protocolName:ks,requestData:{groupID:o,avChatRoomKey:i,mainSequence:r,groupAttributeList:c}}).then((function(e){var a=e.data,r=a.mainSequence,i=m(a.groupAttributeList);return i.forEach((function(e){e.value=s[e.key]})),t._refreshCachedGroupAttributes({groupID:o,remoteMainSequence:r,groupAttributeList:i,operationType:su}),l.setNetworkType(t._groupModule.getNetworkType()).end(),He.l("".concat(n," ok.")),Li({groupAttributes:s})})).catch((function(e){return t._groupModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];l.setError(e,o,s).end()})),Oi(e)}))}},{key:"deleteGroupAttributes",value:function(e){var t=this,n=e.groupID,o=e.keyList,s=void 0===o?[]:o,a=this._getLocalGroupAttributes(n),r=a.remoteMainSequence,i=a.avChatRoomKey,u=a.attributes,c=m(u.keys()),l=Ls,p=au,d={groupID:n,avChatRoomKey:i,mainSequence:r},g=[];s.length>0&&(c=[],l=Ss,p=ru,s.forEach((function(e){var t=0;u.has(e)&&(t=u.get(e).sequence,c.push(e)),g.push({key:e,sequence:t})})),d.groupAttributeList=g);var h=new li("deleteGroupAttributes");return h.setMessage("groupID:".concat(n," mainSequence:").concat(r," keyList:").concat(s," protocolName:").concat(l)),this._groupModule.request({protocolName:l,requestData:d}).then((function(e){var o=e.data.mainSequence;return t._refreshCachedGroupAttributes({groupID:n,remoteMainSequence:o,groupAttributeList:g,operationType:p}),h.setNetworkType(t._groupModule.getNetworkType()).end(),He.l("".concat(t._n,".").concat("deleteGroupAttributes"," ok. groupID:").concat(n)),Li({keyList:c})})).catch((function(e){return t._groupModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];h.setError(e,o,s).end()})),Oi(e)}))}},{key:"getGroupAttributes",value:function(e){var t=this,n="".concat(this._n,".").concat("getGroupAttributes"),o=e.groupID,s=this._getLocalGroupAttributes(o),a=s.avChatRoomKey,r=s.lastUpdateTime,i=s.localMainSequence,u=s.remoteMainSequence,c=new li("getGroupAttributes");if(c.setMessage("groupID:".concat(o," localMainSequence:").concat(i," remoteMainSequence:").concat(u," keyList:").concat(e.keyList)),Date.now()-r>=this.CACHE_EXPIRE_TIME||i0)o.forEach((function(e){a.has(e)&&(s[e]=a.get(e).value)}));else{var r,i=D(a.keys());try{for(i.s();!(r=i.n()).done;){var u=r.value;s[u]=a.get(u).value}}catch(c){i.e(c)}finally{i.f()}}}return s}},{key:"_updateCachedAttributes",value:function(e){var t=e.groupAttributes,n=e.groupAttributeList,o=e.operationType;o!==au?o!==ru?(o===ou&&t.attributes.clear(),n.forEach((function(e){var n=e.key,o=e.value,s=e.sequence;t.attributes.set(n,{value:o,sequence:s})}))):n.forEach((function(e){t.attributes.delete(e.key)})):t.attributes.clear()}},{key:"_hasLocalGroupAttributes",value:function(e){return this._groupAttributesMap.has(e)}},{key:"_getLocalGroupAttributes",value:function(e){return this._hasLocalGroupAttributes(e)||this.initGroupAttributesCache({groupID:e}),this._groupAttributesMap.get(e)}},{key:"_transformGroupAttributes",value:function(e){var t=[];return Object.keys(e).forEach((function(n){t.push({key:n,value:e[n]})})),t}},{key:"_emitGroupAttributesUpdated",value:function(e){var t=this._getCachedAttributes({groupID:e}),n=this._computeAttrChangedInfo(t),o=n.updatedKeyList,s=n.deletedKeyList;this._groupModule.emitOuterEvent(k.GROUP_ATTRIBUTES_UPDATED,{groupID:e,groupAttributes:t,updatedKeyList:o,deletedKeyList:s})}},{key:"_computeAttrChangedInfo",value:function(e){var t=this,n=[],o=[];return Object.keys(e).forEach((function(o){e[o]!==t._groupAttributesCopy[o]&&n.push(o)})),Object.keys(this._groupAttributesCopy).forEach((function(t){ut(e[t])&&o.push(t)})),this._groupAttributesCopy={},He.l("".concat(this._n,"._computeAttrChangedInfo update count:").concat(n.length,", delete count:").concat(o.length)),{updatedKeyList:n,deletedKeyList:o}}},{key:"deleteLocalGroupAttributes",value:function(e){this._hasLocalGroupAttributes(e)&&this._groupAttributesMap.delete(e)}},{key:"reset",value:function(){this._groupAttributesMap.clear(),this._groupAttributesCopy={},this.CACHE_EXPIRE_TIME=3e4}}]),e}(),cu="Set",lu="Increase",pu="Decrease",du=function(){function e(t){o(this,e),this._groupModule=t,this._n="GroupCountersHandler",this._groupCountersMap=new Map,this.EXPIRE_TIME=3e4,this._groupModule.getInnerEmitterInstance().on(bi,this._onCloudConfigUpdated,this)}return a(e,[{key:"_onCloudConfigUpdated",value:function(){var e=this._groupModule.getCloudConfig("grp_counter_expire_time");ut(e)||(this.EXPIRE_TIME=Number(e))}},{key:"isGroupCountersNotice",value:function(e){var t=e.to,n=e.elements.groupCounterInfo,o=!1;return Zt(n)||(this._onGroupCountersUpdated({groupID:t,groupCounterInfo:n}),o=!0),o}},{key:"_onGroupCountersUpdated",value:function(e){var t=this,n=e.groupID;e.groupCounterInfo.forEach((function(e){var o=e.type,s=e.groupCounterSeq,a=e.counterList,r=void 0===a?[]:a;0!==o&&2!==o||(t._updateLocalGroupCounters({groupID:n,groupCounterSeq:s,counterList:r}),r.forEach((function(e){t._groupModule.emitOuterEvent(k.GROUP_COUNTER_UPDATED,{groupID:n,key:e.key,value:e.value})}))),1===o&&t._deleteLocalGroupCounters({groupID:n,groupCounterSeq:s,counterList:r})})),He.l("".concat(this._n,"._onGroupCountersUpdated groupID:").concat(n))}},{key:"initGroupCountersCache",value:function(e){var t=e.groupID,n=e.avChatRoomKey;this._groupCountersMap.set(t,{lastUpdateTime:0,groupCounterSeq:0,counters:new Map,avChatRoomKey:n}),He.l("".concat(this._n,".initGroupCountersCache groupID:").concat(t," avChatRoomKey:").concat(n))}},{key:"setGroupCounters",value:function(e){var t=this;if(!this._groupModule.canIUse(B.GRP_COUNTER))return Oi({code:Kr});var n="".concat(this._n,".setGroupCounters"),o=e.groupID,s=e.counters,a=this._convertObjectToList(s),r=this._getLocalGroupCounters(o).avChatRoomKey,i="groupID:".concat(o," count:").concat(a.length),u=new li("setGroupCounters");return u.setMessage("".concat(i)),He.l("".concat(n,". ").concat(i)),this._updateGroupCounters({groupID:o,counterList:a,avChatRoomKey:r,mode:cu}).then((function(e){return u.end(),He.l("".concat(n," ok.")),Li({counters:e})})).catch((function(e){return t._groupModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];u.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"increaseGroupCounter",value:function(e){var t=this;if(!this._groupModule.canIUse(B.GRP_COUNTER))return Oi({code:Kr});var n="".concat(this._n,".increaseGroupCounters"),o=e.groupID,s=e.key,a=e.value,r=this._getLocalGroupCounters(o).avChatRoomKey,i="groupID:".concat(o," key:").concat(s," value:").concat(a),u=new li("increaseGroupCounter");u.setMessage("".concat(i)),He.l("".concat(n,". ").concat(i));var c=[{key:s,value:a}];return this._updateGroupCounters({groupID:o,counterList:c,avChatRoomKey:r,mode:lu}).then((function(e){return u.end(),He.l("".concat(n," ok.")),Li({counters:e})})).catch((function(e){return t._groupModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];u.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"decreaseGroupCounter",value:function(e){var t=this;if(!this._groupModule.canIUse(B.GRP_COUNTER))return Oi({code:Kr});var n="".concat(this._n,".decreaseGroupCounter"),o=e.groupID,s=e.key,a=e.value,r=this._getLocalGroupCounters(o).avChatRoomKey,i="groupID:".concat(o," key:").concat(s," value:").concat(a),u=new li("decreaseGroupCounter");u.setMessage("".concat(i)),He.l("".concat(n,". ").concat(i));var c=[{key:s,value:a}];return this._updateGroupCounters({groupID:o,counterList:c,avChatRoomKey:r,mode:pu}).then((function(e){return u.end(),He.l("".concat(n," ok.")),Li({counters:e})})).catch((function(e){return t._groupModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];u.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"getGroupCounters",value:function(e){var t=this;if(!this._groupModule.canIUse(B.GRP_COUNTER))return Oi({code:Kr});var n="".concat(this._n,".getGroupCounters"),o=e.groupID,s=e.keyList,a=void 0===s?[]:s,r=this._getLocalGroupCounters(o),i=r.avChatRoomKey,u=r.lastUpdateTime,c=new li("getGroupCounters");if(c.setMessage("groupID:".concat(o)),Date.now()-u>=this.EXPIRE_TIME)return this._getRemoteGroupCounters({groupID:o,avChatRoomKey:i}).then((function(e){c.setMoreMessage("from remote. count:".concat(e.length)).end(),He.l("".concat(n," from remote. groupID:").concat(o));var s=t._getLocalCounters(o,a);return Li({counters:s})})).catch((function(e){return t._groupModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];c.setError(e,o,s).end()})),Oi(e)}));c.setMoreMessage("from cache").end(),He.l("".concat(n," from cache. groupID:").concat(o));var l=this._getLocalCounters(o,a);return Ni({counters:l})}},{key:"_getRemoteGroupCounters",value:function(e){var n=this;return this._groupModule.request({protocolName:Gs,requestData:t({},e)}).then((function(t){var o=t.data,s=o.counterList,a=void 0===s?[]:s,r=o.groupCounterSeq;return n._updateLocalGroupCounters({groupID:e.groupID,counterList:a,groupCounterSeq:r}),He.l("".concat(n._n,"._getRemoteGroupCounters ok. groupID:").concat(e.groupID)),a})).catch((function(e){return Oi(e)}))}},{key:"_convertObjectToList",value:function(e){var t=[];return Object.keys(e).forEach((function(n){t.push({key:n,value:e[n]})})),t}},{key:"_updateGroupCounters",value:function(e){var n="".concat(this._n,"._updateGroupCounters"),o=e.groupID,s=e.avChatRoomKey,a=e.mode;return He.l("".concat(n,". groupID:").concat(o," avChatRoomKey:").concat(s," mode:").concat(a)),this._groupModule.request({protocolName:Os,requestData:t({},e)}).then((function(e){He.l("".concat(n," ok."));var t=e.data.counterList,o={};return(void 0===t?[]:t).forEach((function(e){var t=e.key,n=e.value;o[t]=n})),o})).catch((function(e){return Oi(e)}))}},{key:"_hasLocalGroupCounters",value:function(e){return this._groupCountersMap.has(e)}},{key:"_getLocalGroupCounters",value:function(e){return this._hasLocalGroupCounters(e)||this.initGroupCountersCache({groupID:e}),this._groupCountersMap.get(e)}},{key:"_updateLocalGroupCounters",value:function(e){var t=e.groupID,n=e.counterList,o=void 0===n?[]:n,s=e.groupCounterSeq;if(this._hasLocalGroupCounters(t)){var a=this._getLocalGroupCounters(t),r=a.counters,i=a.avChatRoomKey,u=a.groupCounterSeq;if(s>0&&s0)t.forEach((function(e){o.has(e)&&(n[e]=o.get(e))}));else{var s,a=D(o.keys());try{for(a.s();!(s=a.n()).done;){var r=s.value;n[r]=o.get(r)}}catch(i){a.e(i)}finally{a.f()}}return n}},{key:"reset",value:function(){this._groupCountersMap.clear(),this.EXPIRE_TIME=3e4}}]),e}(),gu=function(){function e(t){o(this,e);var n=t.manager,s=t.groupID,a=t.onInit,r=t.onSuccess,i=t.onFail;this._n="Polling",this._manager=n,this._groupModule=n._groupModule,this._onInit=a,this._onSuccess=r,this._onFail=i,this._groupID=s,this._timeoutID=-1,this._isRunning=!1,this._protocolName=Ms}return a(e,[{key:"start",value:function(){var e=this._groupModule.isLoggedIn();e||(this._protocolName=ys),He.l("".concat(this._n,".start pollingInterval:").concat(this._manager.getPollingInterval()," isLoggedIn:").concat(e)),this._isRunning=!0,this._request()}},{key:"isRunning",value:function(){return this._isRunning}},{key:"_request",value:function(){var e=this,t=this._onInit(this._groupID);this._groupModule.request({protocolName:this._protocolName,requestData:t}).then((function(t){e._onSuccess(e._groupID,t),e.isRunning()&&(clearTimeout(e._timeoutID),e._timeoutID=setTimeout(e._request.bind(e),e._manager.getPollingInterval()))})).catch((function(t){e._onFail(e._groupID,t),e.isRunning()&&(clearTimeout(e._timeoutID),e._timeoutID=setTimeout(e._request.bind(e),e._manager.MAX_POLLING_INTERVAL))}))}},{key:"stop",value:function(){He.l("".concat(this._n,".stop")),this._timeoutID>0&&(clearTimeout(this._timeoutID),this._timeoutID=-1),this._isRunning=!1}}]),e}(),hu={3:!0,4:!0,5:!0,6:!0,17:!0},_u=function(){function e(t){o(this,e),this._groupModule=t,this._n="AVChatRoomHandler",this._joinedGroupMap=new Map,this._pollingRequestInfoMap=new Map,this._pollingInstanceMap=new Map,this.sequencesLinkedList=new Yi(200),this.messageIDLinkedList=new Yi(100),this.receivedMessageCount=0,this._reportMessageStackedCount=0,this._onlineMemberCountMap=new Map,this.DEFAULT_EXPIRE_TIME=60,this.DEFAULT_POLLING_INTERVAL=300,this.MAX_POLLING_INTERVAL=2e3,this._pollingInterval=this.DEFAULT_POLLING_INTERVAL,this.DEFAULT_POLLING_NO_MESSAGE_COUNT=20,this.DEFAULT_POLLING_INTERVAL_PLUS=2e3,this._pollingNoMessageCount=0,this._startBroadcastSeq=1,this._broadcastMessageIDMap=new Map,this.DEFAULT_POLLING_SIMPLIFIED_MSG=0}return a(e,[{key:"hasJoinedAVChatRoom",value:function(){return this._joinedGroupMap.size>0}},{key:"checkJoinedAVChatRoomByID",value:function(e){return this._joinedGroupMap.has(e)}},{key:"getJoinedAVChatRoom",value:function(){return this._joinedGroupMap.size>0?m(this._joinedGroupMap.keys()):null}},{key:"_updateRequestData",value:function(e){var n=this._pollingRequestInfoMap.get(e);return e===m(this._pollingInstanceMap.keys())[0]?t(t({},n),{},{startBroadcastSeq:this._startBroadcastSeq,simplifiedMessage:this.DEFAULT_POLLING_SIMPLIFIED_MSG}):t(t({},n),{},{simplifiedMessage:this.DEFAULT_POLLING_SIMPLIFIED_MSG})}},{key:"_handleSuccess",value:function(e,t){var n=t.data,o=n.key,s=n.nextSeq,a=n.rspMsgList,r=n.errorCode,i=n.nextBroadcastSeq,u=n.broadcastMessageList;if(0!==r){var c=this._pollingRequestInfoMap.get(e),l=new li("longPollingAVError"),p=c?"".concat(c.key,"-").concat(c.startSeq):"requestInfo is undefined";l.setMessage("".concat(e,"-").concat(p,"-").concat(t.errorInfo)).setCode(t.errorCode).setNetworkType(this._groupModule.getNetworkType()).end(!0)}else{if(!this.checkJoinedAVChatRoomByID(e))return;st(o)&&ot(s)&&this._pollingRequestInfoMap.set(e,{key:o,startSeq:s}),ot(i)&&i>this._startBroadcastSeq&&(this._startBroadcastSeq=i),it(a)&&a.length>0?(a.forEach((function(e){e.to=e.groupID})),this.onMessage(a)):(this._pollingNoMessageCount+=1,this._pollingNoMessageCount===this.DEFAULT_POLLING_NO_MESSAGE_COUNT&&(this._pollingInterval=this.DEFAULT_POLLING_INTERVAL+this.DEFAULT_POLLING_INTERVAL_PLUS)),this._onBroadcastMessage(u)}}},{key:"_handleFailure",value:function(e,t){}},{key:"onMessage",value:function(e){if(it(e)&&0!==e.length){0!==this._pollingNoMessageCount&&(this._pollingNoMessageCount=0,this._pollingInterval=this.DEFAULT_POLLING_INTERVAL);var t=null,n=[],o=this._getModule(Hn),s=this._getModule(so),a=e.length;a>1&&e.sort((function(e,t){return e.sequence-t.sequence}));for(var r=this._getModule(Kn),i=0;i1&&g<=20?this._getModule(eo).onMessageMaybeLost(p,d+1,g-1):g<-1&&g>=-20&&this._getModule(eo).onMessageMaybeLost(p,t.sequence+1,Math.abs(g)-1)}this.sequencesLinkedList.set(t.sequence),this.messageIDLinkedList.set(t.ID);var h=!1;if(this._isMessageSentByCurrentInstance(t)?c&&(h=!0,t.isModified=c,o.updateMessageIsModifiedProperty(t)):h=!0,h){if(t.conversationType===S.CONV_SYSTEM&&5===t.payload.operationType&&this._onGroupDismissed(t.payload.groupProfile.groupID),!l&&t.conversationType!==S.CONV_SYSTEM){var _=t.conversationID.replace(S.CONV_GROUP,"");this._pollingInstanceMap.has(_)?this._groupModule.isLoggedIn()&&s.addMessageSequence({key:ai,message:t}):(t.type!==S.MSG_GRP_TIP&&t.clientTime>0&&s.addMessageDelay(t.clientTime),s.addMessageSequence({key:si,message:t}))}n.push(t)}}}else He.w("".concat(this._n,".onMessage unknown event:").concat(u.event))}if(0!==n.length){this._groupModule.filterModifiedMessage(n);var f=this.packConversationOption(n);if(f.length>0)this._getModule(Hn).onNewMessage({conversationOptionsList:f,isInstantMessage:!0});He.d("".concat(this._n,".onMessage count:").concat(n.length)),this._checkMessageStacked(n);var v=this._groupModule.filterUnmodifiedMessage(n);v.length>0&&this._groupModule.emitOuterEvent(k.MESSAGE_RECEIVED,v),n.length=0}}}},{key:"isBroadcastOrNormal",value:function(e){return 3===e||17===e}},{key:"isGroupTip",value:function(e){return 4===e||6===e}},{key:"isGroupSystemNotice",value:function(e){return 5===e}},{key:"restoreGroupTipElements",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.groupJoinType||(e.groupJoinType=1);var t=e.operatorInfo,n=void 0===t?{}:t,o=e.operatorID,s=e.userIDList,a=void 0===s?[]:s,r=n.userID,i=void 0===r?o:r,u=n.avatar,c=void 0===u?"":u,l=n.nick,p=void 0===l?"":l;e.operatorInfo={userID:i,avatar:c,nick:p};var d=a.map((function(e){return{userID:e}}));return e.memberInfoList=e.memberInfoList||d,e}},{key:"restoreMessageFromSimplified",value:function(e){var n=e.event;if(this.isBroadcastOrNormal(n)&&(e.cloudCustomData=e.cloudCustomData||"",e.elements=e.elements.map((function(e){if(e.type===S.MSG_CUSTOM){var n=e.content,o=void 0===n?{}:n;e.content=t({data:"",description:"",extension:""},o)}return e}))),(this.isGroupTip(n)||this.isGroupSystemNotice(n))&&(e.from=e.from||"@TIM#SYSTEM"),this.isGroupTip(n)){e.elements=this.restoreGroupTipElements(e.elements);var o=e.elements,s=void 0===o?{}:o,a=s.operationType,i=s.operatorInfo;if(1===a){var u=[{userID:(void 0===i?{}:i).userID}];s.memberInfoList=s.memberInfoList||u}}if(this.isGroupSystemNotice(n)){var c=e.elements,l=c.memberInfoList,p=c.operatorInfo;l||(l=void 0===p?{}:p),e.elements.memberInfoList=t({userID:e.elements.operatorID,avatar:"",nick:""},l),e.elements=t({authentication:"",remarkInfo:"",messageKey:1e3*e.time},e.elements);var d=Object.keys(e.elements).filter((function(e){return"operatorInfo"!==e})).reduce((function(n,o){return t(t({},n),{},r({},o,e.elements[o]))}),{});e.elements=d}return e}},{key:"_onGroupDismissed",value:function(e){He.l("".concat(this._n,"._onGroupDismissed groupID:").concat(e)),this._groupModule.deleteLocalGroupAndConversation(e),this.reset(e)}},{key:"_checkMessageStacked",value:function(e){var t="MessageStacked",n=e.length;n>=100&&(this._groupModule.outputWarning(t),this._reportMessageStackedCount<5&&(new li(t).setNetworkType(this._groupModule.getNetworkType()).setMessage("count:".concat(n," groupID:").concat(m(this._joinedGroupMap.keys()))).setLevel("warning").end(),this._reportMessageStackedCount+=1))}},{key:"_isMessageSentByCurrentInstance",value:function(e){return!!this._getModule(Hn).isMessageSentByCurrentInstance(e)}},{key:"packMessage",value:function(e,t){e.currentUser=this._groupModule.getMyUserID(),e.conversationType=5===t?S.CONV_SYSTEM:S.CONV_GROUP,e.isSystemMessage=!!e.isSystemMessage;var n=new Si(e),o=this.packElements(e,t);return n.setElement(o,this._groupModule.getFileDownloadProxy()),n}},{key:"packElements",value:function(e,n){return 4===n||6===n?(this._updateMemberCountByGroupTips(e),{type:S.MSG_GRP_TIP,content:t(t({},e.elements),{},{groupProfile:e.groupProfile})}):5===n?{type:S.MSG_GRP_SYS_NOTICE,content:t(t({},e.elements),{},{groupProfile:t(t({},e.groupProfile),{},{groupID:e.groupID})})}:this._getModule(zn).parseElements(e.elements,e.from)}},{key:"packConversationOption",value:function(e){for(var t=new Map,n=0;n0&&this._groupModule.emitOuterEvent(k.MESSAGE_RECEIVED,t)}}},{key:"start",value:function(e){if(this._pollingInstanceMap.has(e)){var t=this._pollingInstanceMap.get(e);t.isRunning()||t.start()}else{var n=new gu({manager:this,groupID:e,onInit:this._updateRequestData.bind(this),onSuccess:this._handleSuccess.bind(this),onFail:this._handleFailure.bind(this)});n.start(),this._pollingInstanceMap.set(e,n),He.l("".concat(this._n,".start groupID:").concat(e))}}},{key:"handleJoinResult",value:function(e){var t=this;return this._preCheck().then((function(){var n=e.longPollingKey,o=e.group,s=o.groupID;return t._joinedGroupMap.set(s,o),t._groupModule.updateGroupMap([o]),t._groupModule.deleteUnjoinedAVChatRoom(s),t._groupModule.emitGroupListUpdate(!0,!1),ut(n)?Ni({status:Je,group:o}):Promise.resolve()}))}},{key:"startRunLoop",value:function(e){var t=this;return this.handleJoinResult(e).then((function(){var n=e.longPollingKey,o=e.group,s=e.startSeq,a=void 0===s?0:s,r=o.groupID;return t._pollingRequestInfoMap.set(r,{key:n,startSeq:a}),t.start(r),t._groupModule.isLoggedIn()?Ni({status:Je,group:o}):Ni({status:Je})}))}},{key:"_preCheck",value:function(){if(this._getModule(Kn).isUnlimitedAVChatRoom())return Promise.resolve();if(!this.hasJoinedAVChatRoom())return Promise.resolve();var e=v(this._joinedGroupMap.entries().next().value,2),t=e[0],n=e[1];if(this._groupModule.isLoggedIn()){if(!(n.selfInfo.role===S.GRP_MBR_ROLE_OWNER||n.ownerID===this._groupModule.getMyUserID()))return this._groupModule.quitGroup(t);this._groupModule.deleteLocalGroupAndConversation(t)}else this._groupModule.deleteLocalGroupAndConversation(t);return this.reset(t),Promise.resolve()}},{key:"joinWithoutAuth",value:function(e){var t=this,n=e.groupID,o="".concat(this._n,".").concat("joinWithoutAuth"),s=new li("joinWithoutAuth");return this._groupModule.request({protocolName:ns,requestData:e}).then((function(e){var a=e.data.longPollingKey;if(t._groupModule.probeNetwork().then((function(e){var t=v(e,2),o=(t[0],t[1]);s.setNetworkType(o).setMessage("groupID:".concat(n," longPollingKey:").concat(a)).end(!0)})),ut(a))return Oi({code:vr});He.l("".concat(o," ok. groupID:").concat(n)),t._getModule(Hn).setCompleted("".concat(S.CONV_GROUP).concat(n));var r=new Ji({groupID:n});return t.startRunLoop({group:r,longPollingKey:a}),Li({status:Je})})).catch((function(e){return He.e("".concat(o," failed. groupID:").concat(n," error:"),e),t._groupModule.probeNetwork().then((function(t){var o=v(t,2),a=o[0],r=o[1];s.setError(e,a,r).setMessage("groupID:".concat(n)).end(!0)})),Oi(e)})).finally((function(){t._groupModule.getModule(jn).reportAtOnce()}))}},{key:"getGroupOnlineMemberCount",value:function(e){var t=this._onlineMemberCountMap.get(e)||{},n=Date.now();return Zt(t)||n-t.lastSyncTime>1e3*t.expireTime&&n-t.latestUpdateTime>1e4&&n-t.lastReqTime>3e3?(t.lastReqTime=n,this._onlineMemberCountMap.set(e,t),this._getGroupOnlineMemberCount(e).then((function(e){return Li({memberCount:e.memberCount})})).catch((function(e){return Oi(e)}))):Ni({memberCount:t.memberCount})}},{key:"_getGroupOnlineMemberCount",value:function(e){var t=this,n="".concat(this._n,".").concat("_getGroupOnlineMemberCount");return this._groupModule.request({protocolName:Is,requestData:{groupID:e}}).then((function(o){var s=t._onlineMemberCountMap.get(e)||{},a=o.data,r=a.onlineMemberNum,i=void 0===r?0:r,u=a.expireTime,c=void 0===u?t.DEFAULT_EXPIRE_TIME:u;He.l("".concat(n," ok. groupID:").concat(e," memberCount:").concat(i," expireTime:").concat(c));var l=Date.now();return Zt(s)&&(s.lastReqTime=l),t._onlineMemberCountMap.set(e,Object.assign(s,{lastSyncTime:l,latestUpdateTime:l,memberCount:i,expireTime:c})),{memberCount:i}})).catch((function(o){return He.w("".concat(n," failed. error:"),o),new li("_getGroupOnlineMemberCount").setCode(o.code).setMessage("groupID:".concat(e," error:").concat(JSON.stringify(o))).setNetworkType(t._groupModule.getNetworkType()).end(),Promise.reject(o)}))}},{key:"_getModule",value:function(e){return this._groupModule.getModule(e)}},{key:"setPollingInterval",value:function(e){ut(e)||(ot(e)?this._pollingInterval=this.DEFAULT_POLLING_INTERVAL=e:this._pollingInterval=this.DEFAULT_POLLING_INTERVAL=parseInt(e,10))}},{key:"setPollingIntervalPlus",value:function(e){ut(e)||(ot(e)?this.DEFAULT_POLLING_INTERVAL_PLUS=e:this.DEFAULT_POLLING_INTERVAL_PLUS=parseInt(e,10))}},{key:"setPollingNoMessageCount",value:function(e){ut(e)||(ot(e)?this.DEFAULT_POLLING_NO_MESSAGE_COUNT=e:this.DEFAULT_POLLING_NO_MESSAGE_COUNT=parseInt(e,10))}},{key:"setPollingSimplifiedMessage",value:function(e){ut(e)||"0"!==e&&"1"!==e||(this.DEFAULT_POLLING_SIMPLIFIED_MSG=parseInt(e,10))}},{key:"getPollingInterval",value:function(){return this._pollingInterval}},{key:"onAVChatRoomMemberBanned",value:function(e){var t=e.payload.groupProfile.groupID;He.l("".concat(this._n,".onAVChatRoomMemberBanned groupID:").concat(t)),this._groupModule.deleteLocalGroupAndConversation(t),this.reset(t)}},{key:"restartPolling",value:function(){He.l("".concat(this._n,".restartPolling count:").concat(this._pollingInstanceMap.size));var e,t=D(this._pollingInstanceMap.values());try{for(t.s();!(e=t.n()).done;){var n=e.value;n.stop(),n.start()}}catch(o){t.e(o)}finally{t.f()}}},{key:"reset",value:function(e){if(e){He.l("".concat(this._n,".reset groupID:").concat(e));var t=this._pollingInstanceMap.get(e);t&&t.stop(),this._pollingInstanceMap.delete(e),this._joinedGroupMap.delete(e),this._pollingRequestInfoMap.delete(e),this._onlineMemberCountMap.delete(e)}else{He.l("".concat(this._n,".reset all"));var n,o=D(this._pollingInstanceMap.values());try{for(o.s();!(n=o.n()).done;){n.value.stop()}}catch(s){o.e(s)}finally{o.f()}this._pollingInstanceMap.clear(),this._joinedGroupMap.clear(),this._pollingRequestInfoMap.clear(),this._onlineMemberCountMap.clear(),this._broadcastMessageIDMap.clear()}this.sequencesLinkedList.reset(),this.messageIDLinkedList.reset(),this.receivedMessageCount=0,this._reportMessageStackedCount=0,this._pollingInterval=this.DEFAULT_POLLING_INTERVAL=300,this.DEFAULT_POLLING_NO_MESSAGE_COUNT=20,this.DEFAULT_POLLING_INTERVAL_PLUS=2e3,this._pollingNoMessageCount=0}}]),e}(),fu=1,vu=15,mu=function(){function e(t){o(this,e),this._groupModule=t,this._n="GroupSystemNoticeHandler",this.pendencyMap=new Map}return a(e,[{key:"onNewGroupSystemNotice",value:function(e){var t=e.dataList,n=e.isSyncingEnded,o=e.isInstantMessage;He.d("".concat(this._n,".onReceiveSystemNotice count:").concat(t.length));var s=this.newSystemNoticeStoredAndSummary({notifiesList:t,isInstantMessage:o}),a=s.eventDataList,r=s.result;a.length>0&&(this._groupModule.getModule(Hn).onNewMessage({conversationOptionsList:a,isInstantMessage:o}),this._onReceivedGroupSystemNotice({result:r,isInstantMessage:o}));o?r.length>0&&this._groupModule.emitOuterEvent(k.MESSAGE_RECEIVED,r):!0===n&&this._clearGroupSystemNotice()}},{key:"newSystemNoticeStoredAndSummary",value:function(e){var n=e.notifiesList,o=e.isInstantMessage,s=null,a=n.length,r=0,i=[],u={conversationID:S.CONV_SYSTEM,unreadCount:0,type:S.CONV_SYSTEM,subType:null,lastMessage:null};for(r=0;r0?[u]:[],result:i}}},{key:"_clearGroupSystemNotice",value:function(){var e=this;this._getPendencyList().then((function(t){t.forEach((function(t){e.pendencyMap.set("".concat(t.from,"_").concat(t.groupID,"_").concat(t.to),t)}));var n=e._groupModule.getModule(Hn).getLocalMessageList(S.CONV_SYSTEM),o=[];n.forEach((function(t){var n=t.payload,s=n.operatorID,a=n.operationType,r=n.groupProfile;if(a===fu){var i="".concat(s,"_").concat(r.groupID,"_").concat(r.to),u=e.pendencyMap.get(i);u&&ot(u.handled)&&0!==u.handled&&o.push(t)}})),e.deleteGroupSystemNotice({messageList:o})}))}},{key:"deleteGroupSystemNotice",value:function(e){var t=this,n="".concat(this._n,".deleteGroupSystemNotice");return it(e.messageList)&&0!==e.messageList.length?(He.l("".concat(n," ")+e.messageList.map((function(e){return e.ID}))),this._groupModule.request({protocolName:ms,requestData:{messageListToDelete:e.messageList.map((function(e){return{from:S.CONV_SYSTEM,messageSeq:e.clientSequence,messageRandom:e.random}}))}}).then((function(){He.l("".concat(n," ok"));var o=t._groupModule.getModule(Hn);return e.messageList.forEach((function(e){o.deleteLocalMessage(e)})),Li()})).catch((function(e){return He.e("".concat(n," error:"),e),Oi(e)}))):Ni()}},{key:"_getPendencyList",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.type,o=void 0===n?void 0:n,s=t.startTime,a=void 0===s?0:s,r=t.limit,i=void 0===r?20:r;return this._groupModule.request({protocolName:vs,requestData:{type:o,startTime:a,limit:i,handleAccount:this._groupModule.getMyUserID()}}).then((function(t){var n=t.data.pendencyList;return 0!==t.data.nextStartTime?e._getPendencyList({startTime:t.data.nextStartTime}).then((function(e){return[].concat(m(n),m(e))})):n}))}},{key:"getGroupApplicationList",value:function(){var e=this;return this._getPendencyList().then((function(t){return e._getPendencyList({type:S.GRP_COMMUNITY}).then((function(n){return t.push.apply(t,m(n)),e._handlePendencyResult(t)})).catch((function(n){return e._handlePendencyResult(t)}))}))}},{key:"_handlePendencyResult",value:function(e){var t=this,n=[];return e.forEach((function(e){t.pendencyMap.set("".concat(e.from,"_").concat(e.groupID,"_").concat(e.to),e),0===e.handled&&n.push({applicant:e.from,applicantNick:e.fromUserNickName,groupName:e.groupName,groupID:e.groupID,authentication:e.authentication,messageKey:e.time,applicationType:e.applicationType,userID:e.userID})})),Ni({applicationList:n})}},{key:"_onReceivedGroupSystemNotice",value:function(e){var t=this,n=e.result;e.isInstantMessage&&n.forEach((function(e){switch(e.payload.operationType){case 1:break;case 2:t._onApplyGroupRequestAgreed(e);break;case 3:break;case 4:t._onMemberKicked(e);break;case 5:t._onGroupDismissed(e);break;case 6:break;case 7:t._onInviteGroup(e);break;case 8:t._onQuitGroup(e);break;case 9:t._onSetManager(e);break;case 10:t._onDeleteManager(e);break;case 11:case 12:case 15:break;case 20:t._onMessageRemindTypeSynced(e);break;case 21:t._groupModule.onAVChatRoomMemberBanned(e)}}))}},{key:"_onApplyGroupRequestAgreed",value:function(e){var t=this,n=e.payload.groupProfile.groupID;this._groupModule.hasLocalGroup(n)||this._groupModule.getGroupProfile({groupID:n}).then((function(e){var n=e.data.group;if(n){t._groupModule.updateGroupMap([n]);var o=!n.isSupportTopic;t._groupModule.emitGroupListUpdate(!0,o)}}))}},{key:"_onMemberKicked",value:function(e){var t=e.payload.groupProfile.groupID;this._groupModule.hasLocalGroup(t)&&this._groupModule.deleteLocalGroupAndConversation(t)}},{key:"_onGroupDismissed",value:function(e){var t=e.payload.groupProfile.groupID;this._groupModule.hasLocalGroup(t)&&this._groupModule.deleteLocalGroupAndConversation(t);var n=this._groupModule._AVChatRoomHandler;n&&n.checkJoinedAVChatRoomByID(t)&&n.reset(t)}},{key:"_onInviteGroup",value:function(e){var t=this,n=e.payload.groupProfile.groupID;this._groupModule.hasLocalGroup(n)||this._groupModule.getGroupProfile({groupID:n}).then((function(e){var n=e.data.group;n&&(t._groupModule.updateGroupMap([n]),t._groupModule.emitGroupListUpdate())}))}},{key:"_onQuitGroup",value:function(e){var t=e.payload.groupProfile.groupID;this._groupModule.hasLocalGroup(t)&&this._groupModule.deleteLocalGroupAndConversation(t)}},{key:"_onSetManager",value:function(e){var t=e.payload.groupProfile,n=t.to,o=t.groupID,s=this._groupModule.getModule(Vn).getLocalGroupMemberInfo(o,n);s&&s.updateRole(S.GRP_MBR_ROLE_ADMIN)}},{key:"_onDeleteManager",value:function(e){var t=e.payload.groupProfile,n=t.to,o=t.groupID,s=this._groupModule.getModule(Vn).getLocalGroupMemberInfo(o,n);s&&s.updateRole(S.GRP_MBR_ROLE_MEMBER)}},{key:"_onMessageRemindTypeSynced",value:function(e){var t=e.payload.groupProfile.groupID,n=e.payload.messageRemindType;this._groupModule.getModule(Hn).onGroupMessageRemindTypeSynced({groupID:t,messageRemindType:n})}},{key:"_handleTopicSystemNotice",value:function(e){var t=e.groupProfile,n=t.groupID,o=t.topicID,s=e.elements,a=s.operationType,r=s.topicIDList,i=s.messageRemindType,u=this._groupModule.getModule(Bn);17===a?u.onTopicCreated({groupID:n,topicID:o}):18===a?u.onTopicDeleted({groupID:n,topicIDList:r}):20===a&&u.onTopicMessageRemindTypeUpdated({groupID:n,topicID:o,messageRemindType:i})}},{key:"reset",value:function(){this.pendencyMap.clear()}}]),e}(),Mu=["relayFlag"],yu=function(e){i(s,e);var n=f(s);function s(e){var t;return o(this,s),(t=n.call(this,e))._n="GroupModule",t._commonGroupHandler=null,t._AVChatRoomHandler=null,t._groupSystemNoticeHandler=null,t._commonGroupHandler=new nu(h(t)),t._groupAttributesHandler=new uu(h(t)),t._groupCountersHandler=new du(h(t)),t._AVChatRoomHandler=new _u(h(t)),t._groupTipsHandler=new tu(h(t)),t._groupSystemNoticeHandler=new mu(h(t)),t.groupMap=new Map,t._unjoinedAVChatRoomList=new Map,t._receiptDetailCompleteMap=new Map,t.getInnerEmitterInstance().on(bi,t._onCloudConfigUpdated,h(t)),t}return a(s,[{key:"_onCloudConfigUpdated",value:function(){var e=this.getCloudConfig("polling_interval"),t=this.getCloudConfig("polling_interval_plus"),n=this.getCloudConfig("polling_no_msg_count"),o=this.getCloudConfig("polling_simplified_msg");this._AVChatRoomHandler&&(He.l("".concat(this._n,"._onCloudConfigUpdated pollingInterval:").concat(e)+" pollingIntervalPlus:".concat(t," pollingNoMessageCount:").concat(n)+" pollingSimplifiedMessage:".concat(o)),this._AVChatRoomHandler.setPollingInterval(e),this._AVChatRoomHandler.setPollingIntervalPlus(t),this._AVChatRoomHandler.setPollingNoMessageCount(n),this._AVChatRoomHandler.setPollingSimplifiedMessage(o))}},{key:"onCheckTimer",value:function(e){this.isLoggedIn()&&(this._commonGroupHandler.onCheckTimer(e),this._groupTipsHandler.onCheckTimer(e))}},{key:"guardForAVChatRoom",value:function(e){var t=this;if(e.conversationType===S.CONV_GROUP){var n=At(e.to)?Kt(e.to):e.to;return this.hasLocalGroup(n)?Ni():this.getGroupProfile({groupID:n}).then((function(o){var s=o.data.group.type;if(He.l("".concat(t._n,".guardForAVChatRoom. groupID:").concat(n," type:").concat(s)),s===S.GRP_AVCHATROOM){var a=La;return Oi(new Ei({code:a,message:t.getErrorMessage(a,e.from,n),data:{message:e}}))}return Ni()}))}return Ni()}},{key:"checkJoinedAVChatRoomByID",value:function(e){return!!this._AVChatRoomHandler&&this._AVChatRoomHandler.checkJoinedAVChatRoomByID(e)}},{key:"onNewGroupMessage",value:function(e){this._commonGroupHandler&&this._commonGroupHandler.onNewGroupMessage(e)}},{key:"updateNextMessageSeq",value:function(e){var t=this;if(it(e)){var n=this.getModule(Bn);e.forEach((function(e){var o=e.conversationID.replace(S.CONV_GROUP,"");At(o)&&n.updateLastMessage(o,e.lastMessage),t.groupMap.has(o)&&(t.groupMap.get(o).nextMessageSeq=e.lastMessage.sequence+1)}))}}},{key:"onNewGroupTips",value:function(e){this._groupTipsHandler&&this._groupTipsHandler.onNewGroupTips(e)}},{key:"onGroupMessageRevoked",value:function(e){this._commonGroupHandler&&this._commonGroupHandler.onGroupMessageRevoked(e)}},{key:"onNewGroupSystemNotice",value:function(e){this._groupSystemNoticeHandler&&this._groupSystemNoticeHandler.onNewGroupSystemNotice(e)}},{key:"onGroupMessageReadNotice",value:function(e){var t=this;e.dataList.forEach((function(e){var n=e.elements.groupMessageReadNotice;if(!ut(n)){var o=t.getModule(Hn);n.forEach((function(e){var n=e.groupID,s=e.topicID,a=void 0===s?void 0:s,r=e.lastMessageSeq;He.d("".concat(t._n,".onGroupMessageReadNotice groupID:").concat(n," lastMessageSeq:").concat(r));var i="".concat(S.CONV_GROUP).concat(n),u=!0;Zt(a)||(i="".concat(S.CONV_GROUP).concat(a),u=!1),o.updateIsReadAfterReadReport({conversationID:i,lastMessageSeq:r}),o.updateUnreadCount(i,u),o.clearGroupAtInfoList(i,u)}))}}))}},{key:"onReadReceiptList",value:function(e){var t=this;He.d("".concat(this._n,".onReadReceiptList options:"),JSON.stringify(e)),e.dataList.forEach((function(e){var n=e.groupProfile,o=e.elements,s=n.groupID,a=t.getModule(Hn),r=o.readReceiptList;a.updateReadReceiptInfo({groupID:s,readReceiptList:r})}))}},{key:"onGroupMessageModified",value:function(e){He.d("".concat(this._n,".onGroupMessageModified options:"),JSON.stringify(e));var n=this.getModule(Hn);e.dataList.forEach((function(e){n.onMessageModified(t(t({},e),{},{conversationType:S.CONV_GROUP,to:e.topicID?e.topicID:e.groupID}))}))}},{key:"deleteGroupSystemNotice",value:function(e){this._groupSystemNoticeHandler&&this._groupSystemNoticeHandler.deleteGroupSystemNotice(e)}},{key:"initGroupMap",value:function(e){this.groupMap.set(e.groupID,new Ji(e))}},{key:"deleteGroup",value:function(e){this.groupMap.delete(e)}},{key:"updateGroupMap",value:function(e){var t,n=this,o=this.getModule(Hn);e.forEach((function(e){t=e.groupID,n.groupMap.has(t)?n.groupMap.get(t).updateGroup(e):(n.groupMap.set(t,new Ji(e)),o.deleteGroupRomaingMessageInfo(t))}));var s,a=this.getMyUserID(),r=D(this.groupMap);try{for(r.s();!(s=r.n()).done;){var i=v(s.value,2)[1];i.selfInfo.userID=a,"Owner"===i.selfInfo.role&&(i.ownerID=a)}}catch(u){r.e(u)}finally{r.f()}this._setStorageGroupList()}},{key:"getStorageGroupList",value:function(){return this.getModule(Wn).getItem("groupMap")}},{key:"_setStorageGroupList",value:function(){var e=this.getLocalGroupList().filter((function(e){var t=e.type;return!Lt(t)})).filter((function(e){return!e.isSupportTopic})).slice(0,20).map((function(e){return{groupID:e.groupID,name:e.name,avatar:e.avatar,type:e.type}}));this.getModule(Wn).setItem("groupMap",e)}},{key:"getGroupMap",value:function(){return this.groupMap}},{key:"getLocalGroupList",value:function(){return m(this.groupMap.values())}},{key:"getLocalGroupProfile",value:function(e){return this.groupMap.get(e)}},{key:"sortLocalGroupList",value:function(){var e=m(this.groupMap).filter((function(e){var t=v(e,2);t[0];return!Zt(t[1].lastMessage)}));e.sort((function(e,t){return t[1].lastMessage.lastTime-e[1].lastMessage.lastTime})),this.groupMap=new Map(m(e))}},{key:"updateGroupLastMessage",value:function(e){this._commonGroupHandler&&this._commonGroupHandler.handleUpdateGroupLastMessage(e)}},{key:"emitGroupListUpdate",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.getLocalGroupList();if(e&&this.emitOuterEvent(k.GROUP_LIST_UPDATED),t){var o=JSON.parse(JSON.stringify(n)),s=this.getModule(Hn);s.updateConversationGroupProfile(o)}}},{key:"patchGroupMessageRemindType",value:function(){var e=this.getLocalGroupList(),t=this.getModule(Hn),n=0;e.forEach((function(e){!0===t.patchMessageRemindType({ID:e.groupID,isC2CConversation:!1,messageRemindType:e.selfInfo.messageRemindType})&&(n+=1)})),He.l("".concat(this._n,".patchGroupMessageRemindType count:").concat(n))}},{key:"recomputeUnreadCount",value:function(){var e=this.getLocalGroupList(),t=this.getModule(Hn);e.forEach((function(e){var n=e.groupID,o=e.selfInfo,s=o.excludedUnreadSequenceList,a=o.readedSequence;if(it(s)){var r=0;s.forEach((function(t){t>=a&&t<=e.nextMessageSeq-1&&(r+=1)})),r>=1&&t.recomputeGroupUnreadCount({conversationID:"".concat(S.CONV_GROUP).concat(n),count:r})}}))}},{key:"getMyNameCardByGroupID",value:function(e){var t=this.getLocalGroupProfile(e);return t?t.selfInfo.nameCard:""}},{key:"isPagingGetCompleted",value:function(){return!!this._commonGroupHandler&&this._commonGroupHandler.isPagingGetCompleted()}},{key:"getGroupList",value:function(e){return this._commonGroupHandler?this._commonGroupHandler.getGroupList(e):Ni()}},{key:"getGroupProfile",value:function(e){var t=this,n="".concat(this._n,".").concat("getGroupProfile"),o=new li("getGroupProfile"),s=e.groupID,a=e.groupCustomFieldFilter;He.l("".concat(n," groupID:").concat(s));var r={groupIDList:[s],responseFilter:{groupBaseInfoFilter:["Type","Name","Introduction","Notification","FaceUrl","Owner_Account","CreateTime","InfoSeq","LastInfoTime","LastMsgTime","MemberNum","MaxMemberNum","ApplyJoinOption","NextMsgSeq","ShutUpAllMember","InviteJoinOption"],groupCustomFieldFilter:a,memberInfoFilter:["Role","JoinTime","MsgSeq","MsgFlag","NameCard"]}};return this.getGroupProfileAdvance(r).then((function(e){var a,r=e.data,i=r.successGroupList,u=r.failureGroupList;if(He.l("".concat(n," ok")),u.length>0)return Oi(u[0]);(Lt(i[0].type)&&!t.hasLocalGroup(s)?a=new Ji(i[0]):(t.updateGroupMap(i),a=t.getLocalGroupProfile(s)),a.isSupportTopic)||t.getModule(Hn).updateConversationGroupProfile([a]);return o.setNetworkType(t.getNetworkType()).setMessage("groupID:".concat(s," type:").concat(a.type," muteAllMembers:").concat(a.muteAllMembers," ownerID:").concat(a.ownerID)).end(),Li({group:a})})).catch((function(s){return t.probeNetwork().then((function(t){var n=v(t,2),a=n[0],r=n[1];o.setError(s,a,r).setMessage("groupID:".concat(e.groupID)).end()})),He.e("".concat(n," failed. error:"),s),Oi(s)}))}},{key:"getGroupProfileAdvance",value:function(e){var n="".concat(this._n,".getGroupProfileAdvance"),o=e.groupIDList;it(o)&&o.length>50&&(this.outputWarning("GetGroupProfileLimit"),o.length=50);var s=[],a=[];o.forEach((function(e){Et({groupID:e})?a.push(e):s.push(e)}));var r=[];if(s.length>0){var i=this._getGroupProfileAdvance(t(t({},e),{},{groupIDList:s}));r.push(i)}if(a.length>0){var u=this._getGroupProfileAdvance(t(t({},e),{},{groupIDList:a,relayFlag:s.length>0}));r.push(u)}return Promise.all(r).then((function(e){var t=[],n=[];return e.forEach((function(e){t.push.apply(t,m(e.successGroupList)),n.push.apply(n,m(e.failureGroupList))})),Li({successGroupList:t,failureGroupList:n})})).catch((function(e){return He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_getGroupProfileAdvance",value:function(e){var t=this,n=e.relayFlag,o=void 0!==n&&n,s=g(e,Mu);return this.request({protocolName:Qo,requestData:s}).then((function(e){He.l("".concat(t._n,"._getGroupProfileAdvance ok."));var n=e.data.groups;return{successGroupList:n.filter((function(e){return ut(e.errorCode)||0===e.errorCode})),failureGroupList:n.filter((function(e){return e.errorCode&&0!==e.errorCode})).map((function(e){return new Ei({code:e.errorCode,message:e.errorInfo,data:{groupID:e.groupID}})}))}})).catch((function(t){return o&&Et({groupID:e.groupIDList[0]})?{successGroupList:[],failureGroupList:[]}:Oi(t)}))}},{key:"createGroup",value:function(e){var n=this,o="".concat(this._n,".").concat("createGroup"),s=e.type,a=e.groupID;if(e.name&&!1===this._filterProfanity("name",e))return Oi({code:Wr});if(e.introduction&&!1===this._filterProfanity("introduction",e))return Oi({code:Wr});if(e.notification&&!1===this._filterProfanity("notification",e))return Oi({code:Wr});if(!["Public","Private","ChatRoom","AVChatRoom","Community"].includes(s))return Oi({code:ir});if(!Et({type:s})){if(!Zt(a)&&Et({groupID:a}))return Oi({code:cr});e.isSupportTopic=void 0}if(Lt(s)&&!ut(e.memberList)&&e.memberList.length>0&&(e.memberList=void 0),this._canIUseJoinOption(s)||ut(e.joinOption)||(e.joinOption=void 0),Et({type:s})){if(!Zt(a)&&!Et({groupID:a}))return Oi({code:cr});e.isSupportTopic=!0===e.isSupportTopic?1:0}var r=new li("createGroup");He.l("".concat(o," options:"),e);var i=null,u=[];return this.request({protocolName:Zo,requestData:t(t({},e),{},{ownerID:this.getMyUserID(),webPushFlag:1})}).then((function(s){var a=s.data,c=a.groupID,l=a.overLimitUserIDList,p=void 0===l?[]:l;if(i=c,u=p,r.setNetworkType(n.getNetworkType()).setMessage("groupType:".concat(e.type," groupID:").concat(c," overLimitUserIDList=").concat(p)).end(),He.l("".concat(o," ok groupID:").concat(c," overLimitUserIDList:"),p),e.type===S.GRP_AVCHATROOM)return n.getGroupProfile({groupID:c});if(e.type===S.GRP_COMMUNITY&&1===e.isSupportTopic)return n.getGroupProfile({groupID:c});Zt(e.memberList)||Zt(p)||(e.memberList=e.memberList.filter((function(e){return-1===p.indexOf(e.userID)}))),n.updateGroupMap([t(t({},e),{},{groupID:c})]);var d=n.getModule(Un),g=d.createCustomMessage({to:c,conversationType:S.CONV_GROUP,payload:{data:"group_create",extension:n.isIntl()?"".concat(n.getMyUserID()," created a group"):"".concat(n.getMyUserID(),"创建群组")}});return d.sendMessageInstance(g),n.emitGroupListUpdate(),n.getGroupProfile({groupID:c})})).then((function(e){var t=e.data.group,n=t.selfInfo,o=n.nameCard,s=n.joinTime;return t.updateSelfInfo({nameCard:o,joinTime:s,messageRemindType:S.MSG_REMIND_ACPT_AND_NOTE,role:S.GRP_MBR_ROLE_OWNER}),Li({group:t,overLimitUserIDList:u})})).catch((function(s){if(r.setMessage("groupType:".concat(e.type)),n.probeNetwork().then((function(e){var t=v(e,2),n=t[0],o=t[1];r.setError(s,n,o).end()})),10010===s.code||10007===s.code){n.updateGroupMap([t(t({},e),{},{groupID:i})]);var a=n.getLocalGroupProfile(i);return He.l("".concat(o," success, but failed to get group profile.")),Li({group:a,overLimitUserIDList:u})}return He.e("".concat(o," failed. error:"),s),Oi(s)}))}},{key:"dismissGroup",value:function(e){var t=this,n="".concat(this._n,".").concat("dismissGroup");if(this.hasLocalGroup(e)&&this.getLocalGroupProfile(e).type===S.GRP_WORK)return Oi(new Ei({code:gr}));var o=new li("dismissGroup");return o.setMessage("groupID:".concat(e)),He.l("".concat(n," groupID:").concat(e)),this.request({protocolName:$o,requestData:{groupID:e}}).then((function(){return o.setNetworkType(t.getNetworkType()).end(),He.l("".concat(n," ok")),t.deleteLocalGroupAndConversation(e),t.checkJoinedAVChatRoomByID(e)&&t._AVChatRoomHandler.reset(e),t._groupAttributesHandler.deleteLocalGroupAttributes(e),Li({groupID:e})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"updateGroupProfile",value:function(e){var t=this,n="".concat(this._n,".").concat("updateGroupProfile");if(this.hasLocalGroup(e.groupID)){var o=this.getLocalGroupProfile(e.groupID).type;this._canIUseJoinOption(o)||ut(e.joinOption)||(He.w("".concat(n," joinOption is unavailable for Work/Meeting/AVChatRoom")),e.joinOption=void 0)}if(ut(e.muteAllMembers)||(e.muteAllMembers?e.muteAllMembers="On":e.muteAllMembers="Off"),e.name&&!1===this._filterProfanity("name",e))return Oi({code:Wr});if(e.introduction&&!1===this._filterProfanity("introduction",e))return Oi({code:Wr});if(e.notification&&!1===this._filterProfanity("notification",e))return Oi({code:Wr});var s=new li("updateGroupProfile");return s.setMessage(JSON.stringify(e)),He.l("".concat(n," groupID:").concat(e.groupID)),this.request({protocolName:es,requestData:e}).then((function(){(s.setNetworkType(t.getNetworkType()).end(),He.l("".concat(n," ok")),t.hasLocalGroup(e.groupID))&&(t.groupMap.get(e.groupID).updateGroup(e),t._setStorageGroupList());return Li({group:t.groupMap.get(e.groupID)})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],a=n[1];s.setError(e,o,a).end()})),He.l("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_filterProfanity",value:function(e,t){var n=this.getModule(io);if(!n)return!0;var o=n.filterText(t[e],z),s=o.isAllowedToSend,a=o.modifiedText;return!0===s&&(t[e]=a,!0)}},{key:"joinGroup",value:function(e){var t=this,n=e.groupID,o=e.type,s="".concat(this._n,".joinGroup");if(o===S.GRP_WORK)return Oi({code:ur});if(this.deleteUnjoinedAVChatRoom(n),this.hasLocalGroup(n)){if(!this.isLoggedIn())return Ni({status:S.JOIN_STATUS_ALREADY_IN_GROUP});var a=new li("applyJoinGroup");return this.getGroupProfile({groupID:n}).then((function(){return a.setNetworkType(t.getNetworkType()).setMessage("groupID:".concat(n," joinedStatus:").concat(S.JOIN_STATUS_ALREADY_IN_GROUP)).end(),Ni({status:S.JOIN_STATUS_ALREADY_IN_GROUP})})).catch((function(o){return a.setNetworkType(t.getNetworkType()).setMessage("groupID:".concat(n," unjoined")).end(),He.w("".concat(s," ").concat(n," was unjoined, now join!")),t.groupMap.delete(n),t.applyJoinGroup(e)}))}return He.l("".concat(s," groupID:").concat(n)),this.isLoggedIn()?this.applyJoinGroup(e):this._AVChatRoomHandler.joinWithoutAuth(e)}},{key:"applyJoinGroup",value:function(e){var n=this,o="".concat(this._n,".").concat("applyJoinGroup"),s=e.groupID;if(!Zt(e.applyMessage)&&!1===this._filterProfanity("applyMessage",e))return Oi({code:Wr});var a=new li("applyJoinGroup"),r=t({},e),i=this.canIUse(B.AVCHATROOM_HISTORY_MSG);return i&&(r.historyMessageFlag=1),this.getModule(Hn).deleteTopicRoamingMessageInfo(s),this.request({protocolName:ts,requestData:r}).then((function(e){var t=e.data,r=t.joinedStatus,u=t.longPollingKey,c=t.startSeq,l=t.avChatRoomFlag,p=t.avChatRoomKey,d=t.messageList,g="groupID:".concat(s," joinedStatus:").concat(r," longPollingKey:").concat(u," startSeq:").concat(c)+" avChatRoomFlag:".concat(l," canGetAVChatRoomHistoryMessage:").concat(i,",")+" history message count:".concat(Zt(d)?0:d.length);switch(a.setNetworkType(n.getNetworkType()).setMessage("".concat(g)).end(),He.l("".concat(o," ok. ").concat(g)),r){case Xe:return Li({status:Xe});case Je:return n.getGroupProfile({groupID:s}).then((function(e){var t=e.data.group;return n._handleJoinResult({group:t,avChatRoomFlag:l,longPollingKey:u,startSeq:c,avChatRoomKey:p,messageList:d})})).catch((function(){var e=new Ji({groupID:s});return n._handleJoinResult({group:e,avChatRoomFlag:l,longPollingKey:u,startSeq:c,avChatRoomKey:p,messageList:d})}));default:var h=new Ei({code:_r});return He.e("".concat(o," failed. error:"),h),Oi(h)}})).catch((function(e){return a.setMessage("groupID:".concat(s)),n.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];a.setError(e,o,s).end()})),He.e("".concat(o," failed. error:"),e),Oi(e)}))}},{key:"_handleJoinResult",value:function(e){var t,n=this,o=e.group,s=e.avChatRoomFlag,a=e.longPollingKey,r=e.startSeq,i=e.avChatRoomKey,u=e.messageList,c=o.groupID;return 1===s?(this.getModule(Hn).setCompleted("".concat(S.CONV_GROUP).concat(c)),this._groupAttributesHandler.initGroupAttributesCache({groupID:c,avChatRoomKey:i}),this._groupCountersHandler.initGroupCountersCache({groupID:c,avChatRoomKey:i}),(t=ut(a)?this._AVChatRoomHandler.handleJoinResult({group:o}):this._AVChatRoomHandler.startRunLoop({group:o,longPollingKey:a,startSeq:r})).then((function(){n._onAVChatRoomHistoryMessage(u)})),t):(this.emitGroupListUpdate(!0,!1),Li({status:Je,group:o}))}},{key:"quitGroup",value:function(e){var t=this,n="".concat(this._n,".").concat("quitGroup");He.l("".concat(n," groupID:").concat(e));var o=this.checkJoinedAVChatRoomByID(e);if(!o&&!this.hasLocalGroup(e))return Oi({code:hr});if(o&&!this.isLoggedIn())return He.l("".concat(n," anonymously ok. groupID:").concat(e)),this.deleteLocalGroupAndConversation(e),this._AVChatRoomHandler.reset(e),Ni({groupID:e});var s=new li("quitGroup");return s.setMessage("groupID:".concat(e)),this.request({protocolName:os,requestData:{groupID:e}}).then((function(){return s.setNetworkType(t.getNetworkType()).end(),He.l("".concat(n," ok")),t.deleteLocalGroupAndConversation(e),o&&t._AVChatRoomHandler.reset(e),t._groupAttributesHandler.deleteLocalGroupAttributes(e),Li({groupID:e})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],a=n[1];s.setError(e,o,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"searchGroupByID",value:function(e){var t=this,n="".concat(this._n,".").concat("searchGroupByID"),o={groupIDList:[e]},s=new li("searchGroupByID");return s.setMessage("groupID:".concat(e)),He.l("".concat(n," groupID:").concat(e)),this.request({protocolName:ss,requestData:o}).then((function(e){var o=e.data.groupProfile;if(0!==o[0].errorCode)throw new Ei({code:o[0].errorCode,message:o[0].errorInfo});return s.setNetworkType(t.getNetworkType()).end(),He.l("".concat(n," ok")),Li({group:new Ji(o[0])})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],a=n[1];s.setError(e,o,a).end()})),He.w("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"changeGroupOwner",value:function(e){var t=this,n="".concat(this._n,".").concat("changeGroupOwner");if(this.hasLocalGroup(e.groupID)&&this.getLocalGroupProfile(e.groupID).type===S.GRP_AVCHATROOM)return Oi({code:pr});if(e.newOwnerID===this.getMyUserID())return Oi({code:dr});var o=new li("changeGroupOwner");return o.setMessage("groupID:".concat(e.groupID," newOwnerID:").concat(e.newOwnerID)),He.l("".concat(n," groupID:").concat(e.groupID)),this.request({protocolName:as,requestData:e}).then((function(){o.setNetworkType(t.getNetworkType()).end(),He.l("".concat(n," ok"));var s=e.groupID,a=e.newOwnerID;t.groupMap.get(s).ownerID=a;var r=t.getModule(Vn).getLocalGroupMemberList(s);if(r instanceof Map){var i=r.get(t.getMyUserID());ut(i)||(i.updateRole("Member"),t.groupMap.get(s).selfInfo.role="Member");var u=r.get(a);ut(u)||u.updateRole("Owner")}return t.emitGroupListUpdate(!0,!1),Li({group:t.groupMap.get(s)})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"getGroupApplicationList",value:function(){return this._groupSystemNoticeHandler.getGroupApplicationList()}},{key:"handleGroupApplication",value:function(e){var t,n,o,s,a,r=this,i="".concat(this._n,".").concat("handleGroupApplication"),u=e.handleAction,c=e.handleMessage,l=e.message,p=e.application;l?(t=l.payload.operatorID,n=l.payload.groupProfile.groupID,o=l.payload.authentication,s=l.payload.messageKey):p&&(t=p.applicant,n=p.groupID,o=p.authentication,s=p.messageKey);var d=rs;p&&2===p.applicationType&&(d=is,a=p.userID);var g=new li("handleGroupApplication");return g.setMessage("groupID:".concat(n)),He.l("".concat(i," groupID:").concat(n)),this.request({protocolName:d,requestData:{handleAction:u,handleMessage:c,applicant:t,invitee:a,groupID:n,authentication:o,messageKey:s}}).then((function(){return g.setNetworkType(r.getNetworkType()).end(),He.l("".concat(i," ok")),l&&r._groupSystemNoticeHandler.deleteGroupSystemNotice({messageList:[e.message]}),Li({group:r.getLocalGroupProfile(n)})})).catch((function(e){return r.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];g.setError(e,o,s).end()})),He.e("".concat(i," failed. error"),e),Oi(e)}))}},{key:"handleGroupInvitation",value:function(e){var n=this,o="".concat(this._n,".").concat("handleGroupInvitation"),s=e.message.payload,a=s.groupProfile.groupID,r=s.authentication,i=s.messageKey,u=s.operatorID,c=e.handleAction,l=new li("handleGroupInvitation");return l.setMessage("groupID:".concat(a," inviter:").concat(u," handleAction:").concat(c)),He.l("".concat(o," groupID:").concat(a," inviter:").concat(u," handleAction:").concat(c)),this.request({protocolName:us,requestData:t(t({},e),{},{inviter:u,groupID:a,authentication:r,messageKey:i})}).then((function(){return l.setNetworkType(n.getNetworkType()).end(),He.l("".concat(o," ok")),n._groupSystemNoticeHandler.deleteGroupSystemNotice({messageList:[e.message]}),Li({group:n.getLocalGroupProfile(a)})})).catch((function(e){return n.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];l.setError(e,o,s).end()})),He.e("".concat(o," failed. error"),e),Oi(e)}))}},{key:"getGroupOnlineMemberCount",value:function(e){return this._AVChatRoomHandler?this._AVChatRoomHandler.checkJoinedAVChatRoomByID(e)?this._AVChatRoomHandler.getGroupOnlineMemberCount(e):Ni({memberCount:0}):Oi({code:Pr})}},{key:"hasLocalGroup",value:function(e){return this.groupMap.has(e)}},{key:"deleteLocalGroupAndConversation",value:function(e){var t=this.checkJoinedAVChatRoomByID(e);(He.l("".concat(this._n,".deleteLocalGroupAndConversation isJoinedAVChatRoom:").concat(t)),t)&&this.getModule(Hn).deleteLocalConversation("".concat(S.CONV_GROUP).concat(e));if(Et({groupID:e})){var n=this.getLocalGroupProfile(e);if(n&&!0===n.isSupportTopic)this.getModule(Bn).deleteTopicListInCommunity(e)}this._deleteLocalGroup(e),this.emitGroupListUpdate(!0,!1)}},{key:"_deleteLocalGroup",value:function(e){this.groupMap.delete(e),this.getModule(Vn).deleteGroupMemberList(e),this._setStorageGroupList()}},{key:"sendMessage",value:function(e,t){if(it(e._receiverList)&&e._receiverList.length>0&&!this.canIUse(B.MSG_TO_SPECIFIED_GRP_MBR))return Oi({code:Kr});var n=this.createGroupMessagePack(e,t);return this.request(n)}},{key:"createGroupMessagePack",value:function(e,t){var n=null;t&&t.offlinePushInfo&&(n=t.offlinePushInfo);var o="";st(e.cloudCustomData)&&e.cloudCustomData.length>0&&(o=e.cloudCustomData);var s=[];if(rt(t)&&rt(t.messageControlInfo)){var a=t.messageControlInfo,r=a.excludedFromUnreadCount,i=a.excludedFromLastMessage,u=a.excludedFromContentModeration;!0===r&&s.push("NoUnread"),!0===i&&s.push("NoLastMsg"),!0===u&&s.push("NoMsgCheck")}var c=void 0;it(e._receiverList)&&e._receiverList.length>0&&(c=e._receiverList,e._receiverList.length>50&&(c=e._receiverList.slice(0,50),this.outputWarning("ReceiverListLimit")));var l=this.isOnlineMessage(e,t)?1:0,p=e.getGroupAtInfoList(),d={fromAccount:this.getMyUserID(),groupID:e.to,msgBody:e.getElements(),cloudCustomData:o,random:e.random,priority:e.priority,clientSequence:e.clientSequence,groupAtInfo:e.type!==S.MSG_TEXT||Zt(p)?void 0:p,onlineOnlyFlag:l,clientTime:e.clientTime,offlinePushInfo:n?{pushFlag:!0===n.disablePush?1:0,title:n.title||"",desc:n.description||"",ext:n.extension||"",apnsInfo:{badgeMode:!0===n.ignoreIOSBadge?1:0,isVoipPush:this._isVoipPush(n)},androidInfo:{OPPOChannelID:n.androidOPPOChannelID||""}}:void 0,messageControlInfo:0===l?s:void 0,needReadReceipt:!0!==e.needReadReceipt||this.isMessageFromOrToAVChatroom(e.to)?0:1,receiverList:c,isSupportExtension:!0===e.isSupportExtension?1:0};return At(e.to)&&(d.groupID=Kt(e.to),d.topicID=e.to),{protocolName:yo,tjgID:this.generateTjgID(e),requestData:d}}},{key:"_isVoipPush",value:function(e){var t=void 0;return ut(e.disableVoipPush)||(t=!1===e.disableVoipPush?1:0),t}},{key:"revokeMessage",value:function(e){var t={groupID:e.to,msgSeqList:[{msgSeq:e.sequence}]};return At(e.to)&&(t.groupID=Kt(e.to),t.topicID=e.to),this.request({protocolName:cs,requestData:t})}},{key:"deleteMessage",value:function(e){var t=e.to,n=e.keyList;He.l("".concat(this._n,".deleteMessage groupID:").concat(t," count:").concat(n.length));var o={groupID:t,deleter:this.getMyUserID(),keyList:n};return At(t)&&(o.groupID=Kt(t),o.topicID=t),this.request({protocolName:Cs,requestData:o})}},{key:"modifyRemoteMessage",value:function(e){var t=e.to,n=e.sequence,o=e.payload,s=e.type,a=e.version,r=void 0===a?0:a,i=e.cloudCustomData,u=t,c=void 0;At(t)&&(u=Kt(t),c=t);var l=void 0;return jt(s)&&(l=[]).push({type:s,content:o}),this.request({protocolName:Ts,requestData:{groupID:u,topicID:c,sequence:n,version:r,elements:l,cloudCustomData:i}})}},{key:"getRoamingMessage",value:function(e){var t=this,n="".concat(this._n,".getRoamingMessage"),o=e.conversationID,s=e.groupID,a=e.sequence,r=new li("getGroupRoamingMessages"),i=0,u=void 0;return At(s)&&(s=Kt(u=s)),this._computeLastSequence({groupID:s,topicID:u,sequence:a}).then((function(e){return i=e,He.l("".concat(n," groupID:").concat(s," startSequence:").concat(i)),t.request({protocolName:ds,requestData:{groupID:s,count:21,sequence:i,topicID:u}})})).then((function(e){var a=e.data,c=a.messageList,l=a.complete,p=a.invisibleSequenceList,d=void 0===p?[]:p;ut(c)?He.l("".concat(n," ok. complete:").concat(l," but messageList is undefined!")):He.l("".concat(n," ok. complete:").concat(l," count:").concat(c.length));var g=t._getMinSequence(d,c)-1;r.setNetworkType(t.getNetworkType()).setMessage("groupID:".concat(s," topicID:").concat(u," startSequence:").concat(i," complete:").concat(l," nextSequence:").concat(g)).end();var h=t.getModule(Hn),_=[];return Zt(c)||(h.updateRoamingMessageSequence(o,g),_=h.onRoamingMessage(c,o),h.updateIsRead(o),h.patchConversationLastMessage(o)),2===l&&(h.setCompleted(o),g=""),He.l("".concat(n," nextReqID:").concat(g,", stored message count:").concat(_.length,", invisible sequence count:").concat(d.length)),{nextReqID:g+"",storedMessageList:_}})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],a=n[1];r.setError(e,o,a).setMessage("groupID:".concat(s," topicID:").concat(u," startSequence:").concat(i)).end()})),He.w("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_getGroupIDOfMessage",value:function(e){return e.conversationID.replace(S.CONV_GROUP,"")}},{key:"_getMinSequence",value:function(e,t){var n=0;Zt(t)||(n=t[t.length-1].sequence);var o=0;Zt(e)||(o=e[e.length-1]);return He.l("".concat(this._n,"._getMinSequence minVisibleSequence:").concat(n," minInvisibleSequence:").concat(o)),o>0&&o=100?100:a,h="groupID:".concat(r," sequence:").concat(u," cursor:").concat(d," filter:").concat(p," completeFlag:").concat(l);He.l("".concat(c," ").concat(h));var _={cursor:"",isCompleted:!1,messageID:i,unreadUserIDList:[],readUserIDList:[]},f=new li("getReadReceiptDetail");return f.setMessage(h),this.request({protocolName:fs,requestData:{groupID:r,sequence:u,flag:p,cursor:d,count:g}}).then((function(e){f.end();var n=e.data,o=n.cursor,s=n.isCompleted,a=n.unreadUserIDList,r=n.readUserIDList;return _.cursor=o,1===s&&(_.isCompleted=!0,t._receiptDetailCompleteMap.set(i,!0)),0===p?_.readUserIDList=r.map((function(e){return e.userID})):1===p&&(_.unreadUserIDList=a.map((function(e){return e.userID}))),He.l("".concat(c," ok")),Li(_)})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];f.setError(e,o,s).end()})),He.w("".concat(c," failed. error:"),e),Oi(e)}))}},{key:"getRoamingMessagesHopping",value:function(e){var t=this,n="".concat(this._n,".getRoamingMessagesHopping"),o=new li("getGroupRoamingMessagesHopping"),s=e.groupID,a=e.count,r=e.sequence,i=e.direction,u=r;1===i&&(u=r+a-1);var c=void 0;At(s)&&(s=Kt(c=s));var l="".concat(c?"topicID:".concat(c):"groupID:".concat(s)," sequence:").concat(r," direction:").concat(i);return He.l("".concat(n," ").concat(l)),this.request({protocolName:ds,requestData:{groupID:s,topicID:c,count:a,sequence:u}}).then((function(s){var a=s.data,u=a.messageList,c=a.complete,p="complete:".concat(c," count:").concat(u?u.length:0);if(He.l("".concat(n," ok. ").concat(p)),o.setNetworkType(t.getNetworkType()).setMessage("".concat(l," ").concat(p)).end(),2===c||Zt(u)){var d=t._computeResult();return Li(d)}var g="".concat(S.CONV_GROUP).concat(e.groupID),h=t.getModule(Hn).onRoamingMessage(u,g,!1),_=t._computeResult({direction:i,sequence:r,remoteMessageList:u,processedMessageList:h});return Li(_)})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),i=n[0],u=n[1];o.setError(e,i,u).setMessage("groupID:".concat(s," sequence:").concat(r," count:").concat(a)).end()})),He.w("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_computeResult",value:function(e){var t={messageList:[],isCompleted:!1,nextMessageSeq:""};if(ut(e))return t.isCompleted=!0,t;var n=e.direction,o=e.sequence,s=e.remoteMessageList,a=void 0===s?[]:s,r=e.processedMessageList,i=void 0===r?[]:r,u=a.length;return 1===n?(t.nextMessageSeq=a[0].sequence+1,i.forEach((function(e){e.sequence>=o&&t.messageList.push(e)})),0===t.messageList.length&&a[0].sequence0?Promise.resolve(s):ut(o)||this.hasLocalGroup(t)?ut(o)?this.getGroupLastSequence(t):this.getTopicLastSequence({groupID:t,topicID:o}):Promise.resolve(0)}},{key:"getGroupLastSequence",value:function(e){var t=this,n="".concat(this._n,".").concat("getGroupLastSequence"),o=new li("getGroupLastSequence"),s=0,a="";if(this.hasLocalGroup(e)){var r=this.getLocalGroupProfile(e),i=r.lastMessage;if(i.lastSequence>0&&!1===i.onlineOnlyFlag)return s=i.lastSequence,a="got lastSequence:".concat(s," from local group profile[lastMessage.lastSequence]. groupID:").concat(e),He.l("".concat(n," ").concat(a)),o.setNetworkType(this.getNetworkType()).setMessage("".concat(a)).end(),Promise.resolve(s);if(r.nextMessageSeq>1)return s=r.nextMessageSeq-1,a="got lastSequence:".concat(s," from local group profile[nextMessageSeq]. groupID:").concat(e),He.l("".concat(n," ").concat(a)),o.setNetworkType(this.getNetworkType()).setMessage("".concat(a)).end(),Promise.resolve(s)}var u="GROUP".concat(e),c=this.getModule(Hn).getLocalConversation(u);if(c&&c.lastMessage.lastSequence&&!1===c.lastMessage.onlineOnlyFlag)return s=c.lastMessage.lastSequence,a="got lastSequence:".concat(s," from local conversation profile[lastMessage.lastSequence]. groupID:").concat(e),He.l("".concat(n," ").concat(a)),o.setNetworkType(this.getNetworkType()).setMessage("".concat(a)).end(),Promise.resolve(s);var l={groupIDList:[e],responseFilter:{groupBaseInfoFilter:["NextMsgSeq"]}};return this.getGroupProfileAdvance(l).then((function(r){var i=r.data.successGroupList;return Zt(i)?He.l("".concat(n," successGroupList is empty. groupID:").concat(e)):(s=i[0].nextMessageSeq-1,a="got lastSequence:".concat(s," from getGroupProfileAdvance. groupID:").concat(e),He.l("".concat(n," ").concat(a))),o.setNetworkType(t.getNetworkType()).setMessage("".concat(a)).end(),s})).catch((function(s){return t.probeNetwork().then((function(t){var n=v(t,2),a=n[0],r=n[1];o.setError(s,a,r).setMessage("get lastSequence failed from getGroupProfileAdvance. groupID:".concat(e)).end()})),He.w("".concat(n," failed. error:"),s),Oi(s)}))}},{key:"getTopicLastSequence",value:function(e){var t=this,n=e.groupID,o=e.topicID,s="".concat(this._n,".").concat("getTopicLastSequence"),a=new li("getTopicLastSequence"),r=0,i="",u=this.getModule(Bn);return u.hasLocalTopic(n,o)?(r=u.getLocalTopic(n,o).nextMessageSeq-1,i="get lastSequence:".concat(r," from local topic info[nextMessageSeq]. topicID:").concat(o),He.l("".concat(s," ").concat(i)),a.setNetworkType(this.getNetworkType()).setMessage("".concat(i)).end(),Promise.resolve(r)):u.getTopicList({groupID:n,topicIDList:[o]}).then((function(e){var n=e.data.successTopicList;return Zt(n)?He.l("".concat(s," successTopicList is empty. topicID:").concat(o)):(r=n[0].nextMessageSeq-1,i="get lastSequence:".concat(r," from getTopicList. topicID:").concat(o),He.l("".concat(s," ").concat(i))),a.setNetworkType(t.getNetworkType()).setMessage("".concat(i)).end(),r})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),s=n[0],r=n[1];a.setError(e,s,r).setMessage("get lastSequence failed from getTopicList. topicID:".concat(o)).end()})),He.w("".concat(s," failed. error:"),e),Oi(e)}))}},{key:"isMessageFromOrToAVChatroom",value:function(e){return!!this._AVChatRoomHandler&&this._AVChatRoomHandler.checkJoinedAVChatRoomByID(e)}},{key:"hasJoinedAVChatRoom",value:function(){return this._AVChatRoomHandler?this._AVChatRoomHandler.hasJoinedAVChatRoom():0}},{key:"getJoinedAVChatRoom",value:function(){return this._AVChatRoomHandler?this._AVChatRoomHandler.getJoinedAVChatRoom():[]}},{key:"isOnlineMessage",value:function(e,t){return!(!this._canIUseOnlineOnlyFlag(e)||!t||!0!==t.onlineUserOnly)}},{key:"_canIUseOnlineOnlyFlag",value:function(e){var t=this.getJoinedAVChatRoom();return!t||!t.includes(e.to)||e.conversationType!==S.CONV_GROUP}},{key:"_onAVChatRoomHistoryMessage",value:function(e){if(!Zt(e)){He.l("".concat(this._n,"._onAVChatRoomHistoryMessage count:").concat(e.length));var n=[];e.forEach((function(e){n.push(t(t({},e),{},{isHistoryMessage:1}))})),this.onAVChatRoomMessage(n)}}},{key:"onAVChatRoomMessage",value:function(e){this._AVChatRoomHandler&&this._AVChatRoomHandler.onMessage(e)}},{key:"onAVChatRoomMemberBanned",value:function(e){this._AVChatRoomHandler&&this._AVChatRoomHandler.onAVChatRoomMemberBanned(e)}},{key:"getGroupSimplifiedInfo",value:function(e){var t=this,n=new li("getGroupSimplifiedInfo"),o={groupIDList:[e],responseFilter:{groupBaseInfoFilter:["Type","Name"]}};return this.getGroupProfileAdvance(o).then((function(o){var s=o.data.successGroupList;return n.setNetworkType(t.getNetworkType()).setMessage("groupID:".concat(e," type:").concat(s[0].type)).end(),s[0]})).catch((function(o){t.probeNetwork().then((function(t){var s=v(t,2),a=s[0],r=s[1];n.setError(o,a,r).setMessage("groupID:".concat(e)).end()}))}))}},{key:"setUnjoinedAVChatRoom",value:function(e){this._unjoinedAVChatRoomList.set(e,1)}},{key:"deleteUnjoinedAVChatRoom",value:function(e){this._unjoinedAVChatRoomList.has(e)&&this._unjoinedAVChatRoomList.delete(e)}},{key:"isUnjoinedAVChatRoom",value:function(e){return this._unjoinedAVChatRoomList.has(e)}},{key:"isGroupAttributesUpdatedNotice",value:function(e){return this._groupAttributesHandler.isGroupAttributesUpdatedNotice(e)}},{key:"updateLocalMainSequenceOnReconnected",value:function(){this._groupAttributesHandler.updateLocalMainSequenceOnReconnected()}},{key:"initGroupAttributes",value:function(e){return this._groupAttributesHandler.initGroupAttributes(e)}},{key:"setGroupAttributes",value:function(e){return this._groupAttributesHandler.setGroupAttributes(e)}},{key:"deleteGroupAttributes",value:function(e){return this._groupAttributesHandler.deleteGroupAttributes(e)}},{key:"getGroupAttributes",value:function(e){return this._groupAttributesHandler.getGroupAttributes(e)}},{key:"isMessageFromTopic",value:function(e,t){return 2===e&&!Zt(t)}},{key:"isMessageFromCommunityOfTopic",value:function(e,t){return 2===e&&Zt(t)}},{key:"getMessageExtensions",value:function(e,t){return He.l("".concat(this._n,".getMessageExtensions startSequence:").concat(t)),this.request({protocolName:Rs,requestData:{groupID:e.to,messageSequence:e.sequence,startSequence:t}})}},{key:"modifyMessageExtensions",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return He.l("".concat(this._n,".modifyMessageExtensions operateType:").concat(n)),this.request({protocolName:As,requestData:{groupID:e.to,messageSequence:e.sequence,extensionList:t,operateType:n}})}},{key:"getGroupNotify",value:function(e){var n=this;if(this.hasLocalGroup(e)){var o=this.getLocalGroupProfile(e),s=o.type,a=o.isSupportTopic;if(!Lt(s)&&!a){var r="".concat(this._n,".getGroupNotify"),i=this._getGroupLastRevokedTime(e),u=1e3*we();He.l("".concat(r," groupID:").concat(e," type:").concat(s," beginTime:").concat(i," endTime:").concat(u)),this.request({protocolName:Ns,requestData:{type:Et({type:s,groupID:e})?S.GRP_COMMUNITY:void 0,groupID:e,beginTime:i,endTime:u}}).then((function(o){var s=o.data,a=s.nextRevokedTime,i=s.notifyList;He.l("".concat(r," ok. groupID:").concat(e," nextRevokedTime:").concat(a));var u={dataList:[{elements:{revokedInfos:[]}}]};it(i)&&i.forEach((function(n){u.dataList[0].elements.revokedInfos.push({groupID:e,sequence:n.sequence,random:n.random,revokerInfo:t({},n.revokerInfo)})})),n.onGroupMessageRevoked(u),0!==a?(n._setGroupLastRevokedTime(e,a),n.getGroupNotify(e)):n._setGroupLastRevokedTime(e,1e3*we())})).catch((function(e){He.e("".concat(r," failed. error:"),e)}))}}}},{key:"_getGroupLastRevokedTime",value:function(e){return this.hasLocalGroup(e)?this.getLocalGroupProfile(e)._lastRevokedTime:0}},{key:"_setGroupLastRevokedTime",value:function(e,t){this.hasLocalGroup(e)&&(this.getLocalGroupProfile(e)._lastRevokedTime=t)}},{key:"isGroupCountersNotice",value:function(e){return this._groupCountersHandler.isGroupCountersNotice(e)}},{key:"setGroupCounters",value:function(e){return this._groupCountersHandler.setGroupCounters(e)}},{key:"increaseGroupCounter",value:function(e){return this._groupCountersHandler.increaseGroupCounter(e)}},{key:"decreaseGroupCounter",value:function(e){return this._groupCountersHandler.decreaseGroupCounter(e)}},{key:"getGroupCounters",value:function(e){return this._groupCountersHandler.getGroupCounters(e)}},{key:"restartPolling",value:function(){this._AVChatRoomHandler&&this._AVChatRoomHandler.restartPolling()}},{key:"_canIUseJoinOption",value:function(e){return function(e){return e===S.GRP_PUBLIC}(e)||Et({type:e})}},{key:"reset",value:function(){this.groupMap.clear(),this._unjoinedAVChatRoomList.clear(),this._receiptDetailCompleteMap.clear(),this._commonGroupHandler.reset(),this._groupSystemNoticeHandler.reset(),this._groupTipsHandler.reset(),this._groupAttributesHandler.reset(),this._groupCountersHandler.reset(),this._AVChatRoomHandler&&this._AVChatRoomHandler.reset()}}]),s}(po),Iu=function(){function e(t){o(this,e),this.userID="",this.avatar="",this.nick="",this.role="",this.joinTime="",this.lastSendMsgTime="",this.nameCard="",this.muteUntil=0,this.memberCustomField=[],this._initMember(t)}return a(e,[{key:"_initMember",value:function(e){this.updateMember(e)}},{key:"updateMember",value:function(e){var t=[null,void 0,"",0,NaN];e.memberCustomField&&St(this.memberCustomField,e.memberCustomField),ft(this,e,["memberCustomField","marks"],t)}},{key:"updateRole",value:function(e){["Owner","Admin","Member"].indexOf(e)<0||(this.role=e)}},{key:"updateMuteUntil",value:function(e){ut(e)||(this.muteUntil=Math.floor((Date.now()+1e3*e)/1e3))}},{key:"updateNameCard",value:function(e){ut(e)||(this.nameCard=e)}},{key:"updateMemberCustomField",value:function(e){e&&St(this.memberCustomField,e)}}]),e}(),Cu=function(e){i(s,e);var n=f(s);function s(e){var t;return o(this,s),(t=n.call(this,e))._n="GroupMemberModule",t.groupMemberListMap=new Map,t.getInnerEmitterInstance().on(wi,t._onProfileUpdated,h(t)),t}return a(s,[{key:"_onProfileUpdated",value:function(e){for(var t=this,n=e.data,o=function(e){var o=n[e];t.groupMemberListMap.forEach((function(e){e.has(o.userID)&&e.get(o.userID).updateMember({nick:o.nick,avatar:o.avatar})}))},s=0;s100?100:r};Et({groupID:n})?h.next="".concat(s):(h.offset=s,g=s+r);var _=[];return this.request({protocolName:Ps,requestData:h}).then((function(e){var o=e.data,s=o.members,a=o.memberNum,r=o.next,i=void 0===r?void 0:r;if(ut(i)||(g=Zt(i)?0:i),!it(s)||0===s.length)return g=0,Promise.resolve([]);var u=t.getModule(Fn);return u.hasLocalGroup(n)&&(u.getLocalGroupProfile(n).memberNum=a),_=t._updateLocalGroupMemberMap(n,s),t.getModule(wn).getUserProfile({userIDList:s.map((function(e){return e.userID})),tagList:[We.NICK,We.AVATAR]})})).then((function(e){var o=e.data;if(!it(o)||0===o.length)return Ni({memberList:[],offset:g});var a=o.map((function(e){return{userID:e.userID,nick:e.nick,avatar:e.avatar}}));return t._updateLocalGroupMemberMap(n,a),_.length5?"userIDList.length:".concat(e.userIDList.length):"userIDList:".concat(e.userIDList)),He.l("".concat(o," groupID:").concat(e.groupID," userIDList:").concat(e.userIDList.join(","))),e.userIDList.length>50&&(e.userIDList=e.userIDList.slice(0,50));var a=e.groupID,r=e.userIDList;return this._getGroupMemberProfileAdvance(t(t({},e),{},{userIDList:r})).then((function(e){var t=e.data.members;return it(t)&&0!==t.length?(n._updateLocalGroupMemberMap(a,t),n.getModule(wn).getUserProfile({userIDList:t.map((function(e){return e.userID})),tagList:[We.NICK,We.AVATAR]})):Ni([])})).then((function(e){var t=e.data.map((function(e){return{userID:e.userID,nick:e.nick,avatar:e.avatar}}));n._updateLocalGroupMemberMap(a,t);var o=r.filter((function(e){return n.hasLocalGroupMember(a,e)})).map((function(e){return n.getLocalGroupMemberInfo(a,e)}));return s.setNetworkType(n.getNetworkType()).end(),Li({memberList:o})}))}},{key:"addGroupMember",value:function(e){var t=this,n="".concat(this._n,".").concat("addGroupMember"),o=e.groupID,s=this.getModule(Fn).getLocalGroupProfile(o),a=s.type,r=new li("addGroupMember");if(r.setMessage("groupID:".concat(o," groupType:").concat(a)),Lt(a)){var i=new Ei({code:fr});return r.setError(i,!0,this.getNetworkType()).end(),Oi(i)}return e.userIDList=e.userIDList.map((function(e){return{userID:e}})),He.l("".concat(n," groupID:").concat(o)),this.request({protocolName:ws,requestData:e}).then((function(o){var a=o.data.members;He.l("".concat(n," ok"));var i=a.filter((function(e){return 1===e.result})).map((function(e){return e.userID})),u=a.filter((function(e){return 0===e.result})).map((function(e){return e.userID})),c=a.filter((function(e){return 2===e.result})).map((function(e){return e.userID})),l=a.filter((function(e){return 4===e.result})).map((function(e){return e.userID})),p="groupID:".concat(e.groupID,", ")+"successUserIDList:".concat(i,", ")+"failureUserIDList:".concat(u,", ")+"existedUserIDList:".concat(c,", ")+"overLimitUserIDList:".concat(l);return r.setNetworkType(t.getNetworkType()).setMoreMessage(p).end(),0===i.length?Li({successUserIDList:i,failureUserIDList:u,existedUserIDList:c,overLimitUserIDList:l}):(s.memberCount+=i.length,t._updateConversationGroupProfile(s),Li({successUserIDList:i,failureUserIDList:u,existedUserIDList:c,overLimitUserIDList:l,group:s}))})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"deleteGroupMember",value:function(e){var t=this,n="".concat(this._n,".").concat("deleteGroupMember"),o=e.groupID,s=e.userIDList,a=this.getModule(Fn).getLocalGroupProfile(o);if(ut(a))return Oi({code:lr});if(Lt(a.type))return this.canIUse(B.AVCHATROOM_BAN_MBR)?this._banAVChatRoomMember(e):Oi({code:Kr});var r=new li("deleteGroupMember"),i="groupID:".concat(o," ").concat(s.length>5?"userIDList.length:".concat(s.length):"userIDList:".concat(s));return r.setMessage(i),He.l("".concat(n," groupID:").concat(o," userIDList:"),s),this.request({protocolName:qs,requestData:e}).then((function(){return r.setNetworkType(t.getNetworkType()).end(),He.l("".concat(n," ok")),a.memberCount-=1,t._updateConversationGroupProfile(a),t.deleteLocalGroupMembers(o,s),Li({group:a,userIDList:s})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_updateConversationGroupProfile",value:function(e){this.getModule(Hn).updateConversationGroupProfile([e])}},{key:"_banAVChatRoomMember",value:function(e){var t=this,n="".concat(this._n,".").concat("deleteGroupMember"),o=e.groupID,s=e.userIDList,a="groupID:".concat(o," ").concat(s.length>5?"userIDList.length:".concat(s.length):"userIDList:".concat(s)),r=new li("deleteGroupMember");r.setMessage(a),He.l("".concat(n," groupID:").concat(o," userIDList:"),s);var i=this.getModule(Fn).getLocalGroupProfile(o);return ut(e.duration)||0===e.duration?Oi({code:Tr}):this.request({protocolName:Fs,requestData:e}).then((function(){return r.setNetworkType(t.getNetworkType()).end(),He.l("".concat(n," ok")),t.deleteLocalGroupMembers(o,s),Li({group:i,userIDList:s})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"setGroupMemberMuteTime",value:function(e){var t=this,n=e.groupID,o=e.userID,s=e.muteTime,a="".concat(this._n,".").concat("setGroupMemberMuteTime");if(o===this.getMyUserID())return Oi(new Ei({code:Cr}));He.l("".concat(a," groupID:").concat(n," userID:").concat(o));var r=new li("setGroupMemberMuteTime");return r.setMessage("groupID:".concat(n," userID:").concat(o," muteTime:").concat(s)),this.modifyGroupMemberInfo({groupID:n,userID:o,muteTime:s}).then((function(e){r.setNetworkType(t.getNetworkType()).end(),He.l("".concat(a," ok"));var o=t.getModule(Fn);return Li({group:o.getLocalGroupProfile(n),member:e})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),He.e("".concat(a," failed. error:"),e),Oi(e)}))}},{key:"setGroupMemberRole",value:function(e){var t=this,n="".concat(this._n,".").concat("setGroupMemberRole"),o=e.groupID,s=e.userID,a=e.role,r=this.getModule(Fn).getLocalGroupProfile(o);if(r.selfInfo.role!==S.GRP_MBR_ROLE_OWNER)return Oi({code:mr});if([S.GRP_WORK,S.GRP_AVCHATROOM].includes(r.type))return Oi({code:Mr});var i=[S.GRP_MBR_ROLE_ADMIN,S.GRP_MBR_ROLE_MEMBER];if(Et({groupID:o})&&i.push(S.GRP_MBR_ROLE_CUSTOM),i.indexOf(a)<0)return Oi({code:yr});if(s===this.getMyUserID())return Oi({code:Ir});var u=new li("setGroupMemberRole");return u.setMessage("groupID:".concat(o," userID:").concat(s," role:").concat(a)),He.l("".concat(n," groupID:").concat(o," userID:").concat(s)),this.modifyGroupMemberInfo({groupID:o,userID:s,role:a}).then((function(e){return u.setNetworkType(t.getNetworkType()).end(),He.l("".concat(n," ok")),Li({group:r,member:e})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];u.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_filterProfanity",value:function(e,t){var n=this.getModule(io);if(!n)return!0;var o=n.filterText(t[e],J),s=o.isAllowedToSend,a=o.modifiedText;return!0===s&&(t[e]=a,!0)}},{key:"setGroupMemberNameCard",value:function(e){var t=this,n="".concat(this._n,".").concat("setGroupMemberNameCard");if(e.nameCard&&!1===this._filterProfanity("nameCard",e))return Oi({code:Wr});var o=e.groupID,s=e.userID,a=void 0===s?this.getMyUserID():s,r=e.nameCard;He.l("".concat(n," groupID:").concat(o," userID:").concat(a));var i=new li("setGroupMemberNameCard");return i.setMessage("groupID:".concat(o," userID:").concat(a," nameCard:").concat(r)),this.modifyGroupMemberInfo({groupID:o,userID:a,nameCard:r}).then((function(e){He.l("".concat(n," ok")),i.setNetworkType(t.getNetworkType()).end();var s=t.getModule(Fn).getLocalGroupProfile(o);return a===t.getMyUserID()&&s&&s.setSelfNameCard(r),Li({group:s,member:e})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];i.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"setGroupMemberCustomField",value:function(e){var t=this,n="".concat(this._n,".").concat("setGroupMemberCustomField"),o=e.groupID,s=e.userID,a=void 0===s?this.getMyUserID():s,r=e.memberCustomField;He.l("".concat(n," groupID:").concat(o," userID:").concat(a));var i=new li("setGroupMemberCustomField");return i.setMessage("groupID:".concat(o," userID:").concat(a," memberCustomField:").concat(JSON.stringify(r))),this.modifyGroupMemberInfo({groupID:o,userID:a,memberCustomField:r}).then((function(e){i.setNetworkType(t.getNetworkType()).end(),He.l("".concat(n," ok"));var s=t.getModule(Fn).getLocalGroupProfile(o);return Li({group:s,member:e})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];i.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"modifyGroupMemberInfo",value:function(e){var n=this,o=e.groupID,s=e.userID,a=void 0;return At(o)&&(o=Kt(a=o)),this.request({protocolName:xs,requestData:t(t({},e),{},{groupID:o,topicID:a})}).then((function(){if(n.hasLocalGroupMember(o,s)){var t=n.getLocalGroupMemberInfo(o,s);return ut(e.muteTime)||t.updateMuteUntil(e.muteTime),ut(e.role)||t.updateRole(e.role),ut(e.nameCard)||t.updateNameCard(e.nameCard),ut(e.memberCustomField)||t.updateMemberCustomField(e.memberCustomField),t}return n.getGroupMemberProfile({groupID:o,userIDList:[s]}).then((function(e){return v(e.data.memberList,1)[0]}))}))}},{key:"markGroupMemberList",value:function(e){var t=this,n="".concat(this._n,".").concat("markGroupMemberList"),o=e.groupID,s=e.markType,a=e.enableMark,r=e.userIDList,i=void 0===r?[]:r,u="groupID:".concat(o," markType:").concat(s," enableMark:").concat(a," userIDList count: ").concat(i.length);He.l("".concat(n," ").concat(u));var c=2,l=[];!0===a&&(c=1);var p=m(i);i.length>500&&(p=i.slice(0,500),He.w("".concat(n," ").concat(Jt(500)))),p.forEach((function(e){l.push({userID:e,markType:[s]})})),p=null;var d=new li("markGroupMemberList");return d.setMessage("".concat(u)),this.request({protocolName:Vs,requestData:{groupID:o,operationType:c,memberList:l}}).then((function(e){var o=e.data.memberList,s=void 0===o?[]:o,a=[],r=[];s.length===i.length?a.push.apply(a,m(i)):(s.forEach((function(e){a.push(e.userID)})),i.forEach((function(e){a.includes(e)||r.push(e)})));var u="success count:".concat(a.length," fail count:").concat(r.length);return d.setNetworkType(t.getNetworkType()).setMessage(u).end(),He.l("".concat(n," ok. ").concat(u)),Li({successUserIDList:a,failureUserIDList:r})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];d.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_getGroupMemberProfileAdvance",value:function(e){return this.request({protocolName:bs,requestData:t(t({},e),{},{memberInfoFilter:e.memberInfoFilter?e.memberInfoFilter:["Role","JoinTime","NameCard","ShutUpUntil"]})})}},{key:"_updateLocalGroupMemberMap",value:function(e,t){var n=this;return it(t)&&0!==t.length?t.map((function(t){return n.hasLocalGroupMember(e,t.userID)?n.getLocalGroupMemberInfo(e,t.userID).updateMember(t):n.setLocalGroupMember(e,new Iu(t)),n.getLocalGroupMemberInfo(e,t.userID)})):[]}},{key:"deleteLocalGroupMembers",value:function(e,t){var n=this.groupMemberListMap.get(e);n&&t.forEach((function(e){n.delete(e)}))}},{key:"getLocalGroupMemberInfo",value:function(e,t){return this.groupMemberListMap.has(e)?this.groupMemberListMap.get(e).get(t):null}},{key:"setLocalGroupMember",value:function(e,t){if(this.groupMemberListMap.has(e))this.groupMemberListMap.get(e).set(t.userID,t);else{var n=(new Map).set(t.userID,t);this.groupMemberListMap.set(e,n)}}},{key:"getLocalGroupMemberList",value:function(e){return this.groupMemberListMap.get(e)}},{key:"hasLocalGroupMember",value:function(e,t){return this.groupMemberListMap.has(e)&&this.groupMemberListMap.get(e).has(t)}},{key:"hasLocalGroupMemberMap",value:function(e){return this.groupMemberListMap.has(e)}},{key:"reset",value:function(){this.groupMemberListMap.clear()}}]),s}(po),Tu=["topicID","topicName","avatar","introduction","notification","unreadCount","muteAllMembers","customData","groupAtInfoList","nextMessageSeq","selfInfo"],Du=function(e,t){return Zt(e)?{lastTime:0,lastSequence:0,fromAccount:"",payload:null,type:"",messageForShow:"",nick:"",version:0,cloudCustomData:"",isRevoked:!1,revoker:null}:{lastTime:e.time||0,lastSequence:e.sequence||0,fromAccount:e.from||"",payload:e.payload||null,type:e.type||"",messageForShow:Wt(e.type,e.payload,t),nick:e.nick||"",version:e.version||0,cloudCustomData:e.cloudCustomData||"",isRevoked:e.isRevoked||!1,revoker:e.revoker||null}},ku=function(){function e(t,n){o(this,e),this.topicID="",this.topicName="",this.avatar="",this.introduction="",this.notification="",this.unreadCount=0,this.muteAllMembers=!1,this.customData="",this.groupAtInfoList=[],this.nextMessageSeq=0,this.lastMessage=Du(t.lastMessage,n),this.selfInfo={muteTime:0,readedSequence:0,messageRemindType:"",excludedUnreadSequenceList:void 0},this._initTopic(t)}return a(e,[{key:"_initTopic",value:function(e){for(var t in e)Tu.indexOf(t)<0||("selfInfo"===t?this.updateSelfInfo(e[t]):this[t]="muteAllMembers"===t?1===e[t]:e[t])}},{key:"updateUnreadCount",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.unreadCount=e}},{key:"updateNextMessageSeq",value:function(e){this.nextMessageSeq=e}},{key:"updateLastMessage",value:function(e){this.lastMessage=Du(e)}},{key:"updateGroupAtInfoList",value:function(e){this.groupAtInfoList=JSON.parse(JSON.stringify(e))}},{key:"updateTopic",value:function(e){ut(e.selfInfo)||this.updateSelfInfo(e.selfInfo),ut(e.muteAllMembers)||(this.muteAllMembers=1===e.muteAllMembers),ft(this,e,["groupID","lastMessageTime","selfInfo","muteAllMembers","lastMsg"])}},{key:"updateSelfInfo",value:function(e){return 0!==ft(this.selfInfo,e,[],[""])}},{key:"reduceUnreadCount",value:function(){return this.unreadCount>=1&&(this.unreadCount-=1,!0)}},{key:"isLastMessageRevoked",value:function(e){return e.sequence===this.lastMessage.lastSequence}},{key:"setLastMessageRevoked",value:function(e){this.lastMessage.isRevoked=e}},{key:"setLastMessageRevoker",value:function(e){this.lastMessage.revoker=e}}]),e}(),Su=function(e){i(s,e);var n=f(s);function s(e){var t;return o(this,s),(t=n.call(this,e))._n="TopicModule",t._topicMap=new Map,t._getTopicTimeMap=new Map,t.TOPIC_CACHE_TIME=300,t.TOPIC_LAST_ACTIVE_TIME=3600,t.getInnerEmitterInstance().on(bi,t._onCloudConfigUpdated,h(t)),t}return a(s,[{key:"_onCloudConfigUpdated",value:function(){var e=this.getCloudConfig("topic_cache_time"),t=this.getCloudConfig("topic_last_active_time");ut(e)||(this.TOPIC_CACHE_TIME=Number(e)),ut(t)||(this.TOPIC_LAST_ACTIVE_TIME=Number(t))}},{key:"onTopicCreated",value:function(e){var t=e.groupID;this.resetGetTopicTime(t),this.emitOuterEvent(k.TOPIC_CREATED,e)}},{key:"onTopicDeleted",value:function(e){var t=this,n=e.groupID,o=e.topicIDList;(void 0===o?[]:o).forEach((function(e){t._deleteLocalTopic(n,e)})),this.emitOuterEvent(k.TOPIC_DELETED,e)}},{key:"onTopicMessageRemindTypeUpdated",value:function(e){var t=e.groupID,n=e.topicID,o=e.messageRemindType,s=this.getLocalTopic(t,n);if(s){var a=s.updateSelfInfo({messageRemindType:o});a&&this.emitOuterEvent(k.TOPIC_UPDATED,{groupID:t,topic:s}),He.d("".concat(this._n,".onTopicMessageRemindTypeUpdated topicID:").concat(n)+" messageRemindType:".concat(o," isTopicUpdated:").concat(a))}}},{key:"onTopicProfileUpdated",value:function(e){var t=e.groupID,n=e.topicID,o=this.getLocalTopic(t,n);o&&(o.updateTopic(e),this.emitOuterEvent(k.TOPIC_UPDATED,{groupID:t,topic:o}))}},{key:"onConversationProxy",value:function(e){var t=e.topicID,n=e.unreadCount,o=e.groupAtInfoList,s=Kt(t),a=this.getLocalTopic(s,t),r=!1;a&&(ut(n)||a.unreadCount===n||(a.updateUnreadCount(n),r=!0),ut(o)||(a.updateGroupAtInfoList(o),r=!0)),r&&this.emitOuterEvent(k.TOPIC_UPDATED,{groupID:s,topic:a})}},{key:"onMessageSent",value:function(e){var t=e.groupID,n=e.topicID,o=e.lastMessage,s=this.getLocalTopic(t,n);s&&(s.nextMessageSeq+=1,s.updateLastMessage(o),this.emitOuterEvent(k.TOPIC_UPDATED,{groupID:t,topic:s}))}},{key:"onMessageModified",value:function(e){var t=e.to,n=e.time,o=e.sequence,s=e.elements,a=e.cloudCustomData,r=e.messageVersion,i=Kt(t),u=this.getLocalTopic(i,t);if(u){var c=u.lastMessage;He.d("".concat(this._n,".onMessageModified topicID:").concat(t," lastMessage:"),JSON.stringify(c),"options:",JSON.stringify(e)),c&&(null===c.payload||c.lastTime===n&&c.lastSequence===o&&c.version!==r)&&(c.type=s[0].type,c.payload=s[0].content,c.messageForShow=Wt(c.type,c.payload,this.isIntl()),c.cloudCustomData=a,c.version=r,c.lastSequence=o,c.lastTime=n,this.emitOuterEvent(k.TOPIC_UPDATED,{groupID:i,topic:u}))}}},{key:"onMessageRevoked",value:function(e){var t=this;if(0!==e.length){var n=null,o=null,s=!1;e.forEach((function(e){var a=e.to;o=Kt(a),(n=t.getLocalTopic(o,a))&&(n.reduceUnreadCount()&&(s=!0),n.isLastMessageRevoked(e)&&(n.setLastMessageRevoked(!0),n.setLastMessageRevoker(e.revoker),s=!0))})),s&&this.emitOuterEvent(k.TOPIC_UPDATED,{groupID:o,topic:n})}}},{key:"isLastMessageRevoked",value:function(e){var t=e.topicID,n=e.sequence,o=Kt(t),s=this.getLocalTopic(o,t),a=!1;return s&&(a=s.isLastMessageRevoked({sequence:n})),a}},{key:"getJoinedCommunityList",value:function(){return this.getModule(Fn).getGroupList({isGroupWithTopicOnly:!0}).then((function(e){var t=e.data.groupList;return Li({groupList:void 0===t?[]:t})})).catch((function(e){return Oi(e)}))}},{key:"createTopicInCommunity",value:function(e){var n=this,o="".concat(this._n,".").concat("createTopicInCommunity"),s=e.topicID;if(!ut(s)&&!At(s))return Oi({code:Hr});if(e.topicName&&!1===this._filterProfanity("topicName",e))return Oi({code:Wr});if(e.introduction&&!1===this._filterProfanity("introduction",e))return Oi({code:Wr});if(e.notification&&!1===this._filterProfanity("notification",e))return Oi({code:Wr});var a=new li("createTopicInCommunity");return this.request({protocolName:sa,requestData:t({},e)}).then((function(s){var r=s.data.topicID;return a.setMessage("topicID:".concat(r)).setNetworkType(n.getNetworkType()).end(),He.l("".concat(o," ok")),n._updateTopicMap([t(t({},e),{},{topicID:r})]),Li({topicID:r})})).catch((function(e){return n.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];a.setError(e,o,s).end()})),He.e("".concat(o," failed. error:"),e),Oi(e)}))}},{key:"deleteTopicFromCommunity",value:function(e){var t=this,n="".concat(this._n,".").concat("deleteTopicFromCommunity"),o=e.groupID,s=e.topicIDList,a=void 0===s?[]:s,r=new li("deleteTopicFromCommunity");return r.setMessage("groupID:".concat(o," topicIDList:").concat(a)),this.request({protocolName:aa,requestData:{groupID:o,topicIDList:a}}).then((function(e){var n=e.data.resultList,s=[],a=[];(void 0===n?[]:n).forEach((function(e){var t=e.topicID,n=e.errorCode,o=e.errorInfo;0===n?s.push({topicID:t}):a.push({topicID:t,code:n,message:o})}));var i="success count:".concat(s.length,", fail count:").concat(a.length);return r.setMoreMessage("".concat(i)).setNetworkType(t.getNetworkType()).end(),He.l("".concat(i)),s.forEach((function(e){t._deleteLocalTopic(o,e.topicID)})),Li({successTopicList:s,failureTopicList:a})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"updateTopicProfile",value:function(e){var n=this,o="".concat(this._n,".").concat("updateTopicProfile");if(He.l("".concat(o," options:"),e),e.topicName&&!1===this._filterProfanity("topicName",e))return Oi({code:Wr});if(e.introduction&&!1===this._filterProfanity("introduction",e))return Oi({code:Wr});if(e.notification&&!1===this._filterProfanity("notification",e))return Oi({code:Wr});var s=new li("updateTopicProfile");return s.setMessage("groupID:".concat(e.groupID," topicID:").concat(e.topicID)),ut(e.muteAllMembers)||(e.muteAllMembers=!0===e.muteAllMembers?"On":"Off"),this.request({protocolName:ra,requestData:t({},e)}).then((function(){return s.setNetworkType(n.getNetworkType()).end(),He.l("".concat(o," ok")),n._updateTopicMap([e]),Li({topic:n.getLocalTopic(e.groupID,e.topicID)})})).catch((function(e){return n.probeNetwork().then((function(t){var n=v(t,2),o=n[0],a=n[1];s.setError(e,o,a).end()})),He.e("".concat(o," failed. error:"),e),Oi(e)}))}},{key:"getTopicList",value:function(e){var n=this,o="".concat(this._n,".").concat("getTopicList"),s=e.groupID,a=e.topicIDList,r=void 0===a?[]:a,i=0===r.length,u=new li("getTopicList");if(u.setMessage("groupID:".concat(s)),this._getTopicTimeMap.has(s)){var c=this._getTopicTimeMap.get(s),l=c.isGetAll,p=c.time;if((l||!l&&!i)&&Date.now()-p<1e3*this.TOPIC_CACHE_TIME){var d=this._getLocalTopicList(s,r);if(i||d.length===r.length)return u.setNetworkType(this.getNetworkType()).setMoreMessage("from cache, topic count:".concat(d.length)).end(),He.l("".concat(o," groupID:").concat(s," from cache, topic count:").concat(d.length)),Ni({successTopicList:d,failureTopicList:[]})}}return this.request({protocolName:ia,requestData:{groupID:s,topicIDList:r}}).then((function(e){var a=e.data.topicInfoList,r=[],c=[],l=[];(void 0===a?[]:a).forEach((function(e){var n=e.topic,o=e.selfInfo,s=e.errorCode,a=e.errorInfo,i=n.topicID;0===s?(r.push(t(t({},n),{},{selfInfo:o})),c.push(i)):l.push({topicID:i,code:s,message:a})})),n._updateTopicMap(r),n._handleTopicAtInfo(r);var p="success count:".concat(c.length,", fail count:").concat(l.length);u.setNetworkType(n.getNetworkType()).setMoreMessage("".concat(p)).end(),He.l("".concat(o," groupID:").concat(s," from remote, ").concat(p));var d=[];return Zt(c)||(n._getTopicTimeMap.set(s,{time:Date.now(),isGetAll:i}),d=n._getLocalTopicList(s,c)),Li({successTopicList:d,failureTopicList:l})})).catch((function(e){return n.probeNetwork(e).then((function(t){var n=v(t,2),o=n[0],s=n[1];u.setError(e,o,s).end()})),He.e("".concat(o," failed. error:"),e),Oi(e)}))}},{key:"hasLocalTopic",value:function(e,t){return!!this._topicMap.has(e)&&this._topicMap.get(e).has(t)}},{key:"getLocalTopic",value:function(e,t){var n=null;return this._topicMap.has(e)&&(n=this._topicMap.get(e).get(t)),n}},{key:"_getLocalTopicList",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=this._topicMap.get(e),o=[];return n&&(o=m(n.values())),0===t.length?o:o.filter((function(e){return t.includes(e.topicID)}))}},{key:"_deleteLocalTopic",value:function(e,t){this._topicMap.has(e)&&(this._topicMap.get(e).delete(t),He.l("".concat(this._n,"._deleteLocalTopic groupID:").concat(e," topicID:").concat(t)))}},{key:"_updateTopicMap",value:function(e){var t=this,n=[];(e.forEach((function(e){var o=e.groupID,s=e.topicID,a=null;t._topicMap.has(o)||t._topicMap.set(o,new Map),t._topicMap.get(o).has(s)?(a=t._topicMap.get(o).get(s)).updateTopic(e):(t._getTopicLastMessage(e),a=new ku(e,t.isIntl()),t._topicMap.get(o).set(s,a));var r=t._computeUnreadCount(a);a.updateUnreadCount(r),n.push({conversationID:"".concat(S.CONV_GROUP).concat(s),type:S.CONV_TOPIC,unreadCount:r})})),n.length>0)&&this.getModule(Hn).updateTopicConversation(n)}},{key:"resetGetTopicTime",value:function(e){var t=this;ut(e)?m(this._getTopicTimeMap.keys()).forEach((function(e){t._getTopicTimeMap.set(e,0)})):this._getTopicTimeMap.set(e,0)}},{key:"getTopicListOnReconnected",value:function(){var e=this,t=m(this._topicMap.keys()),n=[];t.forEach((function(t){var o=[];e._getLocalTopicList(t).forEach((function(t){var n=t.lastMessage.lastTime,s=void 0===n?0:n;Date.now()-1e3*s<1e3*e.TOPIC_LAST_ACTIVE_TIME&&o.push(t.topicID)})),o.length>0&&n.push({groupID:t,topicIDList:o})})),He.l("".concat(this._n,".getTopicListOnReconnected. active community count:").concat(n.length)),this._relayGetTopicList(n)}},{key:"_relayGetTopicList",value:function(e){var t=this;if(0!==e.length){var n=e.shift(),o=n.topicIDList.length>5?"topicIDList.length:".concat(n.topicIDList.length):"topicIDList:".concat(n.topicIDList),s=new li("relayGetTopicList");s.setMessage(o),He.l("".concat(this._n,"._relayGetTopicList. ").concat(o)),this.getTopicList(n).then((function(){s.setNetworkType(t.getNetworkType()).end(),t._relayGetTopicList(e)})).catch((function(n){t.probeNetwork().then((function(e){var t=v(e,2),o=t[0],a=t[1];s.setError(n,o,a).end()})),t._relayGetTopicList(e)}))}}},{key:"_handleTopicAtInfo",value:function(e){var n=this;0!==e.length&&e.forEach((function(e){var o=e.groupID,s=e.topicID,a=e.groupAtInfoList,r=[];ut(a)||(a.forEach((function(e){r.push(t(t({},e),{},{groupID:o,topicID:s}))})),n.getModule(Hn).onNewGroupAtTips({dataList:r}))}))}},{key:"_getTopicLastMessage",value:function(e){if(!ut(e.lastMsg)){var t={time:e.lastMsg.time,sequence:e.lastMsg.sequence,from:e.lastMsg.from,payload:e.lastMsg.elements[0]?e.lastMsg.elements[0].content:null,type:e.lastMsg.elements[0]?e.lastMsg.elements[0].type:"",nick:e.lastMsg.nick,version:e.lastMsg.messageVersion,cloudCustomData:e.lastMsg.cloudCustomData,isRevoked:2===e.lastMsg.isPlaceMessage,revoker:Zt(e.lastMsg.revokerInfo)?null:e.lastMsg.revokerInfo.revoker};e.lastMessage=t}}},{key:"deleteTopicListInCommunity",value:function(e){var t=this,n=this._getLocalTopicList(e),o=this.getModule(Hn);n.forEach((function(n){var s=n.topicID;t._deleteLocalTopic(e,s),t._getTopicTimeMap.delete(e),o.deleteLocalConversation("".concat(S.CONV_GROUP).concat(s))}))}},{key:"_computeUnreadCount",value:function(e){var t=e.selfInfo,n=t.excludedUnreadSequenceList,o=t.readedSequence,s=e.nextMessageSeq-e.selfInfo.readedSequence-1;if(it(n)){var a=0;n.forEach((function(t){t>=o&&t<=e.nextMessageSeq-1&&(a+=1)})),a>=1&&(s-=a)}return s<0?0:s}},{key:"_filterProfanity",value:function(e,t){var n=this.getModule(io);if(!n)return!0;var o=n.filterText(t[e],z),s=o.isAllowedToSend,a=o.modifiedText;return!0===s&&(t[e]=a,!0)}},{key:"updateLastMessage",value:function(e,t){var n=Kt(e),o=this.getLocalTopic(n,e);if(o){var s=t.sequence+1;o.updateNextMessageSeq(s),o.updateLastMessage(t),this.emitOuterEvent(k.TOPIC_UPDATED,{groupID:n,topic:o})}}},{key:"getMessageExtensions",value:function(e,t){He.l("".concat(this._n,".getMessageExtensions startSequence:").concat(t));var n=Kt(e.to);return this.request({protocolName:Rs,requestData:{groupID:n,topicID:e.to,messageSequence:e.sequence,startSequence:t}})}},{key:"modifyMessageExtensions",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;He.l("".concat(this._n,".modifyMessageExtensions operateType:").concat(n));var o=Kt(e.to);return this.request({protocolName:As,requestData:{groupID:o,topicID:e.to,messageSequence:e.sequence,extensionList:t,operateType:n}})}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._topicMap.clear(),this._getTopicTimeMap.clear(),this.TOPIC_CACHE_TIME=300,this.TOPIC_LAST_ACTIVE_TIME=3600}}]),s}(po),Lu=function(){function e(t){o(this,e),this._userModule=t,this._n="ProfileHandler",this.TAG="profile",this.accountProfileMap=new Map,this.expirationTime=864e5}return a(e,[{key:"setExpirationTime",value:function(e){this.expirationTime=e}},{key:"getUserProfile",value:function(e){var t=this,n=e.userIDList;e.fromAccount=this._userModule.getMyAccount(),n.length>100&&(He.w("".concat(this._n,".getUserProfile ").concat(Jt(100))),n.length=100);for(var o,s=[],a=[],r=0,i=n.length;r5?"userIDList.length:".concat(n.length):"userIDList:".concat(n)),this._userModule.request({protocolName:Io,requestData:e}).then((function(e){l.setNetworkType(t._userModule.getNetworkType()).end(),He.i("".concat(t._n,".getUserProfile ok"));var n=t._handleResponse(e).concat(a);return Li(u?n[0]:n)})).catch((function(e){return t._userModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];l.setError(e,o,s).end()})),He.e("".concat(t._n,".getUserProfile failed. error:"),e),Oi(e)}))}},{key:"getMyProfile",value:function(){var e=this._userModule.getMyAccount();if(He.l("".concat(this._n,".getMyProfile myAccount:").concat(e)),this._fillMap(),this._containsAccount(e)){var t=this._getProfileFromMap(e);return He.d("".concat(this._n,".getMyProfile from cache, myProfile:")+JSON.stringify(t)),Ni(t)}return this.getUserProfile({fromAccount:e,userIDList:[e],bFromGetMyProfile:!0})}},{key:"_handleResponse",value:function(e){for(var t,n,o=_t(),s=e.data.userProfileItem,a=[],r=0,i=s.length;r-1)n.profileCustomField.push({key:t[o].tag,value:t[o].value});else switch(t[o].tag){case We.NICK:n.nick=t[o].value;break;case We.GENDER:n.gender=t[o].value;break;case We.BIRTHDAY:n.birthday=t[o].value;break;case We.LOCATION:n.location=t[o].value;break;case We.SELFSIGNATURE:n.selfSignature=t[o].value;break;case We.ALLOWTYPE:n.allowType=t[o].value;break;case We.LANGUAGE:n.language=t[o].value;break;case We.AVATAR:n.avatar=t[o].value;break;case We.MESSAGESETTINGS:n.messageSettings=t[o].value;break;case We.ADMINFORBIDTYPE:n.adminForbidType=t[o].value;break;case We.LEVEL:n.level=t[o].value;break;case We.ROLE:n.role=t[o].value;break;default:He.w("".concat(this._n,"._handleResponse unknown tag:"),t[o].tag,t[o].value)}return n}},{key:"updateMyProfile",value:function(e){var t=this,n="".concat(this._n,".updateMyProfile");if(e.nick&&!1===this._userModule.filterProfanity("nick",e))return Oi({code:Wr});if(e.selfSignature&&!1===this._userModule.filterProfanity("selfSignature",e))return Oi({code:Wr});var o=new li("updateMyProfile");o.setMessage(JSON.stringify(e));var s=(new Wi).validate(e);if(!s.valid)return o.setCode(Dr).setMoreMessage("updateMyProfile info:".concat(s.tips)).setNetworkType(this._userModule.getNetworkType()).end(),He.e("".concat(n," info:").concat(s.tips)),Oi({code:Dr});var a=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&("profileCustomField"===r?e.profileCustomField.forEach((function(e){a.push({tag:e.key,value:e.value})})):a.push({tag:We[r.toUpperCase()],value:e[r]}));if(0===a.length){var i=new Ei({code:kr});return o.setError(i,!0,this._userModule.getNetworkType()).end(),He.e("".concat(n," failed. error:"),i),Oi(i)}return this._userModule.request({protocolName:Co,requestData:{fromAccount:this._userModule.getMyAccount(),profileItem:a}}).then((function(s){o.setNetworkType(t._userModule.getNetworkType()).end(),He.i("".concat(n," ok"));var a=t._updateMap(t._userModule.getMyAccount(),e);return t._userModule.emitOuterEvent(k.PROFILE_UPDATED,[a]),Ni(a)})).catch((function(e){return t._userModule.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"onProfileModified",value:function(e){var t=e.dataList;if(!Zt(t)){var n,o,s=t.length;He.d("".concat(this._n,".onProfileModified count:").concat(s," dataList:"),e.dataList);for(var a=[],r=0;r0&&(this._userModule.emitInnerEvent(wi,a),this._userModule.emitOuterEvent(k.PROFILE_UPDATED,a))}}},{key:"_fillMap",value:function(){if(0===this.accountProfileMap.size){for(var e=this._getCachedProfiles(),t=Date.now(),n=0,o=e.length;n0&&s.push(n)):s.push(t.userID));0!==s.length&&(He.i("".concat(this._n,".onConversationsProfileUpdated toAccountList:").concat(s)),this.getUserProfile({userIDList:s}))}},{key:"getNickAndAvatarByUserID",value:function(e){if(this._containsAccount(e)){var t=this._getProfileFromMap(e);return{nick:t.nick,avatar:t.avatar}}return{nick:"",avatar:""}}},{key:"reset",value:function(){this._flushMap(!0),this.accountProfileMap.clear()}}]),e}(),Eu=a((function e(t){o(this,e),Zt||(this.userID=t.userID||"",this.timeStamp=t.timeStamp||0)})),Au=function(){function e(t){o(this,e),this._userModule=t,this._n="BlacklistHandler",this._blacklistMap=new Map,this.startIndex=0,this.maxLimited=100,this.currentSequence=0}return a(e,[{key:"getLocalBlacklist",value:function(){return m(this._blacklistMap.keys())}},{key:"getBlacklist",value:function(){var e=this,t="".concat(this._n,".getBlacklist"),n={fromAccount:this._userModule.getMyAccount(),maxLimited:this.maxLimited,startIndex:0,lastSequence:this.currentSequence},o=new li("getBlacklist");return this._userModule.request({protocolName:To,requestData:n}).then((function(n){var s=n.data,a=s.blackListItem,r=s.currentSequence,i=Zt(a)?0:a.length;o.setNetworkType(e._userModule.getNetworkType()).setMessage("count:".concat(i)).end(),He.i("".concat(t," ok")),e.currentSequence=r,e._handleResponse(a,!0),e._userModule.emitOuterEvent(k.BLACKLIST_UPDATED,m(e._blacklistMap.keys()))})).catch((function(n){return e._userModule.probeNetwork().then((function(e){var t=v(e,2),s=t[0],a=t[1];o.setError(n,s,a).end()})),He.e("".concat(t," failed. error:"),n),Oi(n)}))}},{key:"addBlacklist",value:function(e){var t=this,n=new li("addToBlacklist"),o="".concat(this._n,".addBlacklist"),s=this._userModule.getMyAccount();if(1===e.userIDList.length&&e.userIDList[0]===s){var a=Sr,r=this._userModule.getErrorMessage(a);n.setCode(a).setMessage(r).setNetworkType(this._userModule.getNetworkType()).end();var i=new Ei({code:a});return He.e("".concat(o," failed. error:"),i),Oi(i)}return e.userIDList.includes(s)&&(e.userIDList=e.userIDList.filter((function(e){return e!==s}))),e.fromAccount=this._userModule.getMyAccount(),e.toAccount=e.userIDList,this._userModule.request({protocolName:Do,requestData:e}).then((function(s){return n.setNetworkType(t._userModule.getNetworkType()).setMessage(e.userIDList.length>5?"userIDList.length:".concat(e.userIDList.length):"userIDList:".concat(e.userIDList)).end(),He.i("".concat(o," ok")),t._handleResponse(s.resultItem,!0),Li(m(t._blacklistMap.keys()))})).catch((function(e){return t._userModule.probeNetwork().then((function(t){var o=v(t,2),s=o[0],a=o[1];n.setError(e,s,a).end()})),He.e("".concat(o," failed. error:"),e),Oi(e)}))}},{key:"_handleResponse",value:function(e,t){if(!Zt(e))for(var n,o,s,a=0,r=e.length;a5?"userIDList.length:".concat(e.userIDList.length):"userIDList:".concat(e.userIDList)).end(),He.i("".concat(n," ok")),t._handleResponse(s.data.resultItem,!1),Li(m(t._blacklistMap.keys()))})).catch((function(e){return t._userModule.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"onAccountDeleted",value:function(e){for(var t,n=[],o=0,s=e.length;o0&&(He.l("".concat(this._n,".onAccountDeleted count:").concat(n.length," userIDList:"),n),this._userModule.emitOuterEvent(k.BLACKLIST_UPDATED,m(this._blacklistMap.keys())))}},{key:"onAccountAdded",value:function(e){for(var t,n=[],o=0,s=e.length;o0&&(He.l("".concat(this._n,".onAccountAdded count:").concat(n.length," userIDList:"),n),this._userModule.emitOuterEvent(k.BLACKLIST_UPDATED,m(this._blacklistMap.keys())))}},{key:"reset",value:function(){this._blacklistMap.clear(),this.startIndex=0,this.maxLimited=100,this.currentSequence=0}}]),e}(),Ru=function(e){var t=String(e).replace(/[=]+$/,""),n="";if(t.length%4==1)return"";for(var o,s,a=0,r=0;s=t.charAt(r++);~s&&(o=a%4?64*o+s:s,a++%4)?n+=String.fromCharCode(255&o>>(-2*a&6)):0)s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(s);try{return decodeURIComponent(escape(n))}catch(i){return""}},Nu=function(){function e(t){o(this,e),this._userModule=t,this._n="UserStatusHandler",this.MAX_QUERY_USER_COUNT=500,this.MAX_SUBSCRIBE_USER_COUNT=100,this.MAX_UNSUBSCRIBE_USER_COUNT=100,this._userModule.getInnerEmitterInstance().on(bi,this._onCloudConfigUpdated,this)}return a(e,[{key:"_onCloudConfigUpdated",value:function(){var e=this._userModule.getCloudConfig("status_query_count"),t=this._userModule.getCloudConfig("status_sub_count"),n=this._userModule.getCloudConfig("status_unsub_count");He.l("".concat(this._n,"._onCloudConfigUpdated statusQueryCount:").concat(e," statusSubscribeCount:").concat(t)+" statusUnsubscribeCount:".concat(n)),ut(e)||(this.MAX_QUERY_USER_COUNT=parseInt(e,10)),ut(e)||(this.MAX_SUBSCRIBE_USER_COUNT=parseInt(t,10)),ut(e)||(this.MAX_UNSUBSCRIBE_USER_COUNT=parseInt(n,10))}},{key:"onUserStatusUpdated",value:function(e){var t=e.dataList,n=this._userModule.getMyUserID(),o=this._userModule.getModule(Kn),s=t.map((function(e){var t=e.to,s=e.statusType,a=e.customStatus,r=Ru(a);return t===n&&o.setCustomStatus(r),{userID:t,statusType:s,customStatus:r}}));this._userModule.emitOuterEvent(k.USER_STATUS_UPDATED,s)}},{key:"setSelfStatus",value:function(e){var t=this,n="".concat(this._n,".setSelfStatus");if(!1===this._userModule.filterProfanity("customStatus",e))return Oi({code:Wr});var o=new li("setSelfStatus"),s=e.customStatus;return this._userModule.request({protocolName:ua,requestData:{customStatus:s}}).then((function(e){return o.setNetworkType(t._userModule.getNetworkType()).setMessage("customStatus:".concat(s)).end(),He.l("".concat(n," ok. customStatus:").concat(s)),t._userModule.getModule(Kn).setCustomStatus(s),Li({userID:t._userModule.getMyUserID(),statusType:1,customStatus:s})})).catch((function(e){return t._userModule.probeNetwork().then((function(t){var n=v(t,2),s=n[0],a=n[1];o.setError(e,s,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"getUserStatus",value:function(e){var t=this,n="".concat(this._n,".getUserStatus"),o=e.userIDList,s=void 0===o?[]:o,a=this._userModule.getMyUserID(),r=m(s),i=void 0,u=r.indexOf(a);if(u>-1){r.splice(u,1);var c=this._userModule.getModule(Kn).getCustomStatus();i={userID:a,statusType:1,customStatus:c}}if(0===r.length)return Ni({successUserList:[i],failureUserList:[]});if(!this._userModule.canIUse(B.USER_STATUS))return Oi({code:Kr});r.length>this.MAX_QUERY_USER_COUNT&&(He.w("".concat(n," ").concat(Jt(this.MAX_QUERY_USER_COUNT))),r=s.slice(0,this.MAX_QUERY_USER_COUNT));var l=new li("getUserStatus");return this._userModule.request({protocolName:ca,requestData:{userIDList:r}}).then((function(e){var o=e.data,a=o.successUserList,r=void 0===a?[]:a,u=o.failureUserList,c=void 0===u?[]:u,p=r.map((function(e){var t=e.userID,n=e.statusType,o=e.customStatus;return{userID:t,statusType:n,customStatus:Ru(o)}})),d=c.map((function(e){var t=e.userID,n=e.invalidUserID,o=e.errorCode,s=e.errorInfo;return{userID:Zt(n)?t:n,code:o,message:s}}));ut(i)||p.unshift(i);var g="userID count:".concat(s.length,", success count:").concat(p.length,", fail count:").concat(d.length);return l.setNetworkType(t._userModule.getNetworkType()).setMessage("".concat(g)).end(),He.l("".concat(n," ok. ").concat(g,".")),Li({successUserList:p,failureUserList:d})})).catch((function(e){return t._userModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],a=n[1];l.setMessage("userID count:".concat(s.length)).setError(e,o,a).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"subscribeUserStatus",value:function(e){var t=this;if(!this._userModule.canIUse(B.USER_STATUS))return Oi({code:Kr});var n="".concat(this._n,".subscribeUserStatus"),o=e.userIDList,s=void 0===o?[]:o,a=m(s);a.length>this.MAX_SUBSCRIBE_USER_COUNT&&(He.w("".concat(n," ").concat(Jt(this.MAX_SUBSCRIBE_USER_COUNT))),a=s.slice(0,this.MAX_SUBSCRIBE_USER_COUNT));var r=new li("subscribeUserStatus"),i="userID count:".concat(s.length);return He.l("".concat(n," ").concat(i)),this._userModule.request({protocolName:la,requestData:{userIDList:a}}).then((function(e){var o=e.data.failureUserList,s=(void 0===o?[]:o).map((function(e){var t=e.userID,n=e.invalidUserID,o=e.errorCode,s=e.errorInfo;return{userID:Zt(n)?t:n,code:o,message:s}}));return r.setNetworkType(t._userModule.getNetworkType()).setMessage("".concat(i," fail count:").concat(s.length)).end(),He.l("".concat(n," ok. fail count:").concat(s.length,".")),Li({failureUserList:s})})).catch((function(e){return t._userModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setMessage("".concat(i)).setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"unsubscribeUserStatus",value:function(e){var t=this;if(!this._userModule.canIUse(B.USER_STATUS))return Oi({code:Kr});var n="".concat(this._n,".unsubscribeUserStatus"),o=(e||{}).userIDList,s=void 0===o?[]:o,a=m(s);s.length>this.MAX_UNSUBSCRIBE_USER_COUNT&&(He.w("".concat(n," ").concat(Jt(this.MAX_UNSUBSCRIBE_USER_COUNT))),a=s.slice(0,this.MAX_UNSUBSCRIBE_USER_COUNT));var r=new li("unsubscribeUserStatus"),i="userID count:".concat(s.length);He.l("".concat(n," ").concat(i));var u={userIDList:a};return 0===a.length&&(u.userIDList=void 0,u.unsubscribeAll=1),this._userModule.request({protocolName:pa,requestData:u}).then((function(e){var o=e.data.failureUserList,s=(void 0===o?[]:o).map((function(e){var t=e.userID,n=e.invalidUserID,o=e.errorCode,s=e.errorInfo;return{userID:Zt(n)?t:n,code:o,message:s}}));return r.setNetworkType(t._userModule.getNetworkType()).setMessage("".concat(i," fail count:").concat(s.length)).end(),He.l("".concat(n," ok. fail count:").concat(s.length,".")),Li({failureUserList:s})})).catch((function(e){return t._userModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setMessage("".concat(i)).setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"reset",value:function(){this.MAX_QUERY_USER_COUNT=500,this.MAX_SUBSCRIBE_USER_COUNT=100,this.MAX_UNSUBSCRIBE_USER_COUNT=100}}]),e}(),Ou=function(e){i(n,e);var t=f(n);function n(e){var s;return o(this,n),(s=t.call(this,e))._n="UserModule",s._profileHandler=new Lu(h(s)),s._blacklistHandler=new Au(h(s)),s._userStatusHandler=new Nu(h(s)),s.getInnerEmitterInstance().on(Ui,s.onContextUpdated,h(s)),s}return a(n,[{key:"onContextUpdated",value:function(e){this._profileHandler.getMyProfile(),this._blacklistHandler.getBlacklist()}},{key:"onProfileModified",value:function(e){this._profileHandler.onProfileModified(e)}},{key:"onRelationChainModified",value:function(e){var t=e.dataList;if(!Zt(t)){var n=[];t.forEach((function(e){e.blackListDelAccount&&n.push.apply(n,m(e.blackListDelAccount))})),n.length>0&&this._blacklistHandler.onAccountDeleted(n);var o=[];t.forEach((function(e){e.blackListAddAccount&&o.push.apply(o,m(e.blackListAddAccount))})),o.length>0&&this._blacklistHandler.onAccountAdded(o)}}},{key:"onConversationsProfileUpdated",value:function(e){this._profileHandler.onConversationsProfileUpdated(e)}},{key:"getMyAccount",value:function(){return this.getMyUserID()}},{key:"getMyProfile",value:function(){return this._profileHandler.getMyProfile()}},{key:"getStorageModule",value:function(){return this.getModule(Wn)}},{key:"filterProfanity",value:function(e,t){var n=this.getModule(io);if(!n)return!0;var o=n.filterText(t[e],Y),s=o.isAllowedToSend,a=o.modifiedText;return!0===s&&(t[e]=a,!0)}},{key:"isMyFriend",value:function(e){var t=this.getModule(xn);return!!t&&t.isMyFriend(e)}},{key:"getUserProfile",value:function(e){return this._profileHandler.getUserProfile(e)}},{key:"updateMyProfile",value:function(e){return this._profileHandler.updateMyProfile(e)}},{key:"getNickAndAvatarByUserID",value:function(e){return this._profileHandler.getNickAndAvatarByUserID(e)}},{key:"getLocalBlacklist",value:function(){var e=this._blacklistHandler.getLocalBlacklist();return Ni(e)}},{key:"addBlacklist",value:function(e){return this._blacklistHandler.addBlacklist(e)}},{key:"deleteBlacklist",value:function(e){return this._blacklistHandler.deleteBlacklist(e)}},{key:"onUserStatusUpdated",value:function(e){this._userStatusHandler.onUserStatusUpdated(e)}},{key:"setSelfStatus",value:function(e){return this._userStatusHandler.setSelfStatus(e)}},{key:"getUserStatus",value:function(e){return this._userStatusHandler.getUserStatus(e)}},{key:"subscribeUserStatus",value:function(e){return this._userStatusHandler.subscribeUserStatus(e)}},{key:"unsubscribeUserStatus",value:function(e){return this._userStatusHandler.unsubscribeUserStatus(e)}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._profileHandler.reset(),this._blacklistHandler.reset(),this._userStatusHandler.reset()}}]),n}(po),Gu=function(){function e(t,n){o(this,e),this._m=t,this._isLoggedIn=!1,this._SDKAppID=n.SDKAppID,this._userID=n.userID||"",this._userSig=n.userSig||"",this._version="2.27.0",this._a2Key="",this._tinyID="",this._customStatus="",this._contentType="json",this._unlimitedAVChatRoom=n.unlimitedAVChatRoom,this._scene=n.scene||"",this._oversea=n.oversea,this._instanceID=n.instanceID,this._statusInstanceID=0,this._isDevMode=n.devMode,this._proxyServer=n.proxyServer,this._fileUploadProxy=n.fileUploadProxy,this._fileDownloadProxy=n.fileDownloadProxy}return a(e,[{key:"isLoggedIn",value:function(){return this._isLoggedIn}},{key:"isOversea",value:function(){return this._oversea}},{key:"isPrivateNetWork",value:function(){return this._proxyServer}},{key:"isDevMode",value:function(){return this._isDevMode}},{key:"isSingaporeSite",value:function(){return this._SDKAppID>=2e7&&this._SDKAppID<3e7||this._SDKAppID>=172e7&&this._SDKAppID<173e7}},{key:"isKoreaSite",value:function(){return this._SDKAppID>=3e7&&this._SDKAppID<4e7||this._SDKAppID>=173e7&&this._SDKAppID<174e7}},{key:"isGermanySite",value:function(){return this._SDKAppID>=4e7&&this._SDKAppID<5e7||this._SDKAppID>=174e7&&this._SDKAppID<175e7}},{key:"isIndiaSite",value:function(){return this._SDKAppID>=5e7&&this._SDKAppID<6e7||this._SDKAppID>=175e7&&this._SDKAppID<176e7}},{key:"isJapanSite",value:function(){return this._SDKAppID>=6e7&&this._SDKAppID<7e7||this._SDKAppID>=176e7&&this._SDKAppID<177e7}},{key:"isUSASite",value:function(){return this._SDKAppID>=7e7&&this._SDKAppID<8e7||this._SDKAppID>=177e7&&this._SDKAppID<178e7}},{key:"isIntl",value:function(){return 0===(e=this._SDKAppID)||e>=2e7&&e<8e7||e>=172e7&&e<178e7;var e}},{key:"isUnlimitedAVChatRoom",value:function(){return this._unlimitedAVChatRoom}},{key:"setUserID",value:function(e){this._userID=e}},{key:"getUserID",value:function(){return this._userID}},{key:"setUserSig",value:function(e){this._userSig=e}},{key:"getUserSig",value:function(){return this._userSig}},{key:"getSDKAppID",value:function(){return this._SDKAppID}},{key:"setTinyID",value:function(e){this._tinyID=e,this._isLoggedIn=!0}},{key:"getTinyID",value:function(){return this._tinyID}},{key:"setCustomStatus",value:function(e){this._customStatus=e}},{key:"getCustomStatus",value:function(){return this._customStatus}},{key:"getScene",value:function(){return Ne?window.tencent_cloud_im_csig_flutter_for_web_25F_cy:this._isTUIKit()?"tuikit":this._scene}},{key:"getInstanceID",value:function(){return this._instanceID}},{key:"getStatusInstanceID",value:function(){return this._statusInstanceID}},{key:"setStatusInstanceID",value:function(e){this._statusInstanceID=e}},{key:"getVersion",value:function(){return this._version}},{key:"getA2Key",value:function(){return this._a2Key}},{key:"setA2Key",value:function(e){this._a2Key=e}},{key:"getContentType",value:function(){return this._contentType}},{key:"getProxyServer",value:function(){return this._proxyServer}},{key:"getFileUploadProxy",value:function(){return this._fileUploadProxy}},{key:"getFileDownloadProxy",value:function(){return this._fileDownloadProxy}},{key:"_isTUIKit",value:function(){var e=!1,t=!1,n=!1,o=!1,s=[];ue&&(s=Object.keys(le)),ce&&(s=ie?Object.keys(uni):Object.keys(window));for(var a=0,r=s.length;a0){for(var c=0,l=u.length;c0&&void 0!==arguments[0]?arguments[0]:0;if(!this.isLoggedIn())return Oi({code:Ca});var n=new li("logout");n.setNetworkType(this.getNetworkType()).setMessage("identifier:".concat(this.getMyUserID())).end(!0);var o="".concat(this._n,".logout");return He.i("".concat(o," type:").concat(t)),0===t&&this._m.setNotReadyReason(Vr),this.request({protocolName:ho,requestData:{type:t}}).then((function(){return e.resetReady(),Ni({})})).catch((function(t){return He.e("".concat(o," error:"),t),e.resetReady(),Ni({})}))}},{key:"_fetchCloudControlConfig",value:function(){this.getModule(to).fetchConfig()}},{key:"_getStatusInstanceID",value:function(){return uni.getStorageSync("timUniAppInstanceID")}},{key:"_hello",value:function(){var e=this;this._lastWsHelloTs=Date.now(),this.request({protocolName:_o,requestData:{isWebUniapp:this._isWebUniapp}}).catch((function(t){He.w("".concat(e._n,"._hello error:"),t)}))}},{key:"getLastWsHelloTs",value:function(){return this._lastWsHelloTs}},{key:"_checkLoginInfo",value:function(e){var t=0;return Zt(this.getModule(Kn).getSDKAppID())?t=va:Zt(e.userID)?t=ma:Zt(e.userSig)&&(t=Ma),{code:t}}},{key:"_isReactUIKit",value:function(){return ce&&void 0!==window.tencent_cloud_im_csig_react_uikit_23F_xa}},{key:"onMultipleAccountKickedOut",value:function(e){var t=this;new li("kickedOut").setNetworkType(this.getNetworkType()).setMessage("type:".concat(S.KICKED_OUT_MULT_ACCOUNT," newInstanceInfo:").concat(JSON.stringify(e))).end(!0),He.w("".concat(this._n,".onMultipleAccountKickedOut userID:").concat(this.getMyUserID()," newInstanceInfo:"),e),this.logout(1).then((function(){t.emitOuterEvent(k.KICKED_OUT,{type:S.KICKED_OUT_MULT_ACCOUNT}),t._m.setNotReadyReason(Fr),t._m.reset()}))}},{key:"onMultipleDeviceKickedOut",value:function(e){var t=this;new li("kickedOut").setNetworkType(this.getNetworkType()).setMessage("type:".concat(S.KICKED_OUT_MULT_DEVICE," newInstanceInfo:").concat(JSON.stringify(e))).end(!0),He.w("".concat(this._n,".onMultipleDeviceKickedOut userID:").concat(this.getMyUserID()," newInstanceInfo:"),e),this.logout(1).then((function(){t.emitOuterEvent(k.KICKED_OUT,{type:S.KICKED_OUT_MULT_DEVICE}),t._m.setNotReadyReason(qr),t._m.reset()}))}},{key:"onUserSigExpired",value:function(){new li("kickedOut").setNetworkType(this.getNetworkType()).setMessage(S.KICKED_OUT_USERSIG_EXPIRED).end(!0),He.w("".concat(this._n,".onUserSigExpired: userSig expired")),0!==this.getModule(Kn).getStatusInstanceID()&&(this.emitOuterEvent(k.KICKED_OUT,{type:S.KICKED_OUT_USERSIG_EXPIRED}),this._m.setNotReadyReason(xr),this._m.reset())}},{key:"onRestApiKickedOut",value:function(e){(new li("kickedOut").setNetworkType(this.getNetworkType()).setMessage("type:".concat(S.KICKED_OUT_REST_API," newInstanceInfo:").concat(JSON.stringify(e))).end(!0),He.w("".concat(this._n,".onRestApiKickedOut userID:").concat(this.getMyUserID()," newInstanceInfo:"),e),0!==this.getModule(Kn).getStatusInstanceID())&&(this.emitOuterEvent(k.KICKED_OUT,{type:S.KICKED_OUT_REST_API}),this._m.setNotReadyReason(Br),this._m.reset(),this.getModule($n).onRestApiKickedOut())}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this.resetReady(),this._helloInterval=120,this._lastLoginTs=0,this._lastWsHelloTs=0,this._isWebUniapp=0}}]),n}(po);function Uu(){return null}var bu=function(){function e(t){o(this,e),this._m=t,this._n="StorageModule",this._storageQueue=new Map,this._errorTolerantHandle()}return a(e,[{key:"_errorTolerantHandle",value:function(){ue||!ut(window)&&this._canIUseCookies()||(this.getItem=Uu,this.setItem=Uu,this.removeItem=Uu,this.clear=Uu)}},{key:"onCheckTimer",value:function(e){if(e%20==0){if(0===this._storageQueue.size)return;this._doFlush()}}},{key:"_doFlush",value:function(){try{var e,t=D(this._storageQueue);try{for(t.s();!(e=t.n()).done;){var n=v(e.value,2),o=n[0],s=n[1];this._setStorageSync(this._getKey(o),s)}}catch(a){t.e(a)}finally{t.f()}this._storageQueue.clear()}catch(r){He.w("".concat(this._n,"._doFlush error:"),r)}}},{key:"_getPrefix",value:function(){var e=this._m.getModule(Kn);return"TIM_".concat(e.getSDKAppID(),"_").concat(e.getUserID(),"_")}},{key:"_getKey",value:function(e){return"".concat(this._getPrefix()).concat(e)}},{key:"getItem",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];try{var n=t?this._getKey(e):e;return this.getStorageSync(n)}catch(o){return He.w("".concat(this._n,".getItem error:"),o),{}}}},{key:"setItem",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(n){var s=o?this._getKey(e):e;this._setStorageSync(s,t)}else this._storageQueue.set(e,t)}},{key:"clear",value:function(){try{ue?le.clearStorageSync():this._canIUseCookies()&&localStorage.clear()}catch(e){He.w("".concat(this._n,".clear error:"),e)}}},{key:"removeItem",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];try{var n=t?this._getKey(e):e;this._removeStorageSync(n)}catch(o){He.w("".concat(this._n,".removeItem error:"),o)}}},{key:"getSize",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"b";try{var o={size:0,limitSize:5242880,unit:n};if(Object.defineProperty(o,"leftSize",{enumerable:!0,get:function(){return o.limitSize-o.size}}),ue&&(o.limitSize=1024*le.getStorageInfoSync().limitSize),e)o.size=JSON.stringify(this.getItem(e)).length+this._getKey(e).length;else if(ue){var s=le.getStorageInfoSync(),a=s.keys;a.forEach((function(e){o.size+=JSON.stringify(t.getStorageSync(e)).length+t._getKey(e).length}))}else if(this._canIUseCookies())for(var r in localStorage)localStorage.hasOwnProperty(r)&&(o.size+=localStorage.getItem(r).length+r.length);return this._convertUnit(o)}catch(i){He.w("".concat(this._n," error:"),i)}}},{key:"_convertUnit",value:function(e){var t={},n=e.unit;for(var o in t.unit=n,e)"number"==typeof e[o]&&("kb"===n.toLowerCase()?t[o]=Math.round(e[o]/1024):"mb"===n.toLowerCase()?t[o]=Math.round(e[o]/1024/1024):t[o]=e[o]);return t}},{key:"_setStorageSync",value:function(e,t){ue?se?my.setStorageSync({key:e,data:t}):le.setStorageSync(e,t):this._canIUseCookies()&&localStorage.setItem(e,JSON.stringify(t))}},{key:"getStorageSync",value:function(e){return ue?se?my.getStorageSync({key:e}).data:le.getStorageSync(e):this._canIUseCookies()?JSON.parse(localStorage.getItem(e)):{}}},{key:"_removeStorageSync",value:function(e){ue?se?my.removeStorageSync({key:e}):le.removeStorageSync(e):this._canIUseCookies()&&localStorage.removeItem(e)}},{key:"_canIUseCookies",value:function(){return navigator&&navigator.cookieEnabled&&localStorage}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._doFlush()}}]),e}(),wu=function(){function e(t){o(this,e),this._n="SSOLogBody",this._report=[]}return a(e,[{key:"pushIn",value:function(e){He.d("".concat(this._n,".pushIn"),this._report.length,e),this._report.push(e)}},{key:"backfill",value:function(e){var t;it(e)&&0!==e.length&&(He.d("".concat(this._n,".backfill"),this._report.length,e.length),(t=this._report).unshift.apply(t,m(e)))}},{key:"getLogsNumInMemory",value:function(){return this._report.length}},{key:"isEmpty",value:function(){return 0===this._report.length}},{key:"_reset",value:function(){this._report.length=0,this._report=[]}},{key:"getLogsInMemory",value:function(){var e=this._report.slice();return this._reset(),e}}]),e}(),qu=function(e){var t=e.getModule(Kn);return{SDKType:10,SDKAppID:t.getSDKAppID(),SDKVersion:t.getVersion(),tinyID:Number(t.getTinyID()),userID:t.getUserID(),platform:e.getPlatform(),instanceID:t.getInstanceID(),traceID:we()}},Fu=function(e){i(s,e);var n=f(s);function s(e){var t;o(this,s),(t=n.call(this,e))._n="EventStatModule",t.TAG="im-ssolog-event",t._reportBody=new wu,t.MIN_THRESHOLD=20,t.MAX_THRESHOLD=100,t.WAITING_TIME=6e4,t.REPORT_LEVEL=[4,5,6],t.REPORT_SDKAPPID_BLACKLIST=[],t.REPORT_TINYID_WHITELIST=[],t._lastReportTime=Date.now();var a=t.getInnerEmitterInstance();return a.on(Ui,t._onLoginSuccess,h(t)),a.on(bi,t._onCloudConfigUpdated,h(t)),t}return a(s,[{key:"reportAtOnce",value:function(){He.d("".concat(this._n,".reportAtOnce")),this._report()}},{key:"_onLoginSuccess",value:function(){var e=this,t=this.getModule(Wn),n=t.getItem(this.TAG,!1);!Zt(n)&<(n.forEach)&&(He.l("".concat(this._n,"._onLoginSuccess get ssolog in storage, count:").concat(n.length)),n.forEach((function(t){e._reportBody.pushIn(t)})),t.removeItem(this.TAG,!1))}},{key:"_onCloudConfigUpdated",value:function(){var e=this.getCloudConfig("evt_rpt_threshold"),t=this.getCloudConfig("evt_rpt_waiting"),n=this.getCloudConfig("evt_rpt_level"),o=this.getCloudConfig("evt_rpt_sdkappid_bl"),s=this.getCloudConfig("evt_rpt_tinyid_wl");ut(e)||(this.MIN_THRESHOLD=Number(e)),ut(t)||(this.WAITING_TIME=Number(t)),ut(n)||(this.REPORT_LEVEL=n.split(",").map((function(e){return Number(e)}))),ut(o)||(this.REPORT_SDKAPPID_BLACKLIST=o.split(",").map((function(e){return Number(e)}))),ut(s)||(this.REPORT_TINYID_WHITELIST=s.split(","))}},{key:"pushIn",value:function(e){e instanceof li&&(e.updateTimeStamp(),this._reportBody.pushIn(e),this._reportBody.getLogsNumInMemory()>=this.MIN_THRESHOLD&&this._report())}},{key:"onCheckTimer",value:function(){Date.now()e.MAX_THRESHOLD&&e._flushAtOnce()}))}else this._lastReportTime=Date.now()}}},{key:"_flushAtOnce",value:function(){var e=this.getModule(Wn),t=e.getItem(this.TAG,!1),n=this._reportBody.getLogsInMemory(),o="".concat(this._n,"._flushAtOnce");if(Zt(t))He.l("".concat(o," count:").concat(n.length)),e.setItem(this.TAG,n,!0,!1);else{var s=n.concat(t);s.length>this.MAX_THRESHOLD&&(s=s.slice(0,this.MAX_THRESHOLD)),He.l("".concat(o," count:").concat(s.length)),e.setItem(this.TAG,s,!0,!1)}}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._lastReportTime=0,this._report(),this.REPORT_SDKAPPID_BLACKLIST=[],this.REPORT_TINYID_WHITELIST=[]}}]),s}(po),xu="none",Vu="online",Bu=[Or,Jr],Hu=function(){function e(t){o(this,e),this._m=t,this._networkType="",this._n="NetMonitorModule",this.MAX_WAIT_TIME=3e3,this._mpNetworkStatusCallback=null,this._webOnlineCallback=null,this._webOfflineCallback=null}return a(e,[{key:"start",value:function(){var e=this;ue?(le.getNetworkType({success:function(t){e._networkType=t.networkType||t.subtype||"",t.networkType===xu?He.w("".concat(e._n,".start no network, please check!")):He.i("".concat(e._n,".start networkType:").concat(t.networkType))}}),this._mpNetworkStatusCallback=this._onNetworkStatusChange.bind(this),le.onNetworkStatusChange(this._mpNetworkStatusCallback)):(this._networkType=Vu,this._webOnlineCallback=this._onWebOnline.bind(this),this._webOfflineCallback=this._onWebOffline.bind(this),window&&(window.addEventListener("online",this._webOnlineCallback),window.addEventListener("offline",this._webOfflineCallback)))}},{key:"_onWebOnline",value:function(){this._onNetworkStatusChange({isConnected:!0,networkType:Vu})}},{key:"_onWebOffline",value:function(){this._onNetworkStatusChange({isConnected:!1,networkType:xu})}},{key:"_onNetworkStatusChange",value:function(e){var t=e.isConnected,n=e.networkType,o="".concat(this._n,"._onNetworkStatusChange"),s=!1;t?(He.i("".concat(o," previous:").concat(this._networkType," current:").concat(n)),this._networkType!==n&&(s=!0,this._m.getModule($n).reConnect(!0))):this._networkType!==n&&(s=!0,He.w("".concat(o," no network, please check!")),this._m.getModule($n).offline());s&&(new li("networkChange").setMessage("isConnected:".concat(t," previousNetworkType:").concat(this._networkType," networkType:").concat(n)).end(),this._networkType=n)}},{key:"probe",value:function(e){var t=this;if(!ut(e)&&Bu.includes(e.code))return Promise.resolve([!0,this._networkType]);var n="".concat(this._n,".probe");return new Promise((function(e,o){ue?le.getNetworkType({success:function(o){t._networkType=o.networkType,o.networkType===xu?(He.w("".concat(n," no network, please check!")),e([!1,o.networkType])):(He.i("".concat(n," networkType:").concat(o.networkType)),e([!0,o.networkType]))}}):t._networkType===xu?e([!1,xu]):e([!0,Vu])}))}},{key:"getNetworkType",value:function(){return this._networkType}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),ue?null!==this._mpNetworkStatusCallback&&(le.offNetworkStatusChange&&(re||ne?le.offNetworkStatusChange(this._mpNetworkStatusCallback):le.offNetworkStatusChange()),this._mpNetworkStatusCallback=null):window&&(null!==this._webOnlineCallback&&(window.removeEventListener("online",this._webOnlineCallback),this._webOnlineCallback=null),null!==this._onWebOffline&&(window.removeEventListener("offline",this._webOfflineCallback),this._webOfflineCallback=null))}}]),e}();var Ku=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t=Object.prototype.hasOwnProperty,n="~";function o(){}function s(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function a(e,t,o,a,r){if("function"!=typeof o)throw new TypeError("The listener must be a function");var i=new s(o,a||e,r),u=n?n+t:t;return e._events[u]?e._events[u].fn?e._events[u]=[e._events[u],i]:e._events[u].push(i):(e._events[u]=i,e._eventsCount++),e}function r(e,t){0==--e._eventsCount?e._events=new o:delete e._events[t]}function i(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),(new o).__proto__||(n=!1)),i.prototype.eventNames=function(){var e,o,s=[];if(0===this._eventsCount)return s;for(o in e=this._events)t.call(e,o)&&s.push(n?o.slice(1):o);return Object.getOwnPropertySymbols?s.concat(Object.getOwnPropertySymbols(e)):s},i.prototype.listeners=function(e){var t=n?n+e:e,o=this._events[t];if(!o)return[];if(o.fn)return[o.fn];for(var s=0,a=o.length,r=new Array(a);s=this.cosOptions.expiredTime-120&&this._getAuthorizationKey())}},{key:"_getAuthorization",value:function(e,t){t({TmpSecretId:this.cosOptions.secretId,TmpSecretKey:this.cosOptions.secretKey,XCosSecurityToken:this.cosOptions.sessionToken,ExpiredTime:this.cosOptions.expiredTime})}},{key:"upload",value:function(e){if(!0===e.getRelayFlag())return Promise.resolve();var t=this.getModule(so);switch(e.type){case S.MSG_IMAGE:return t.addTotalCount(ni),this._uploadImage(e);case S.MSG_FILE:return t.addTotalCount(ni),this._uploadFile(e);case S.MSG_AUDIO:return t.addTotalCount(ni),this._uploadAudio(e);case S.MSG_VIDEO:return t.addTotalCount(ni),this._uploadVideo(e);default:return Promise.resolve()}}},{key:"_uploadImage",value:function(e){var n=this,o=this.getModule(Un),s=e.getElements()[0],a=o.getMessageOption(e.clientSequence);return this.doUploadImage({file:a.payload.file,to:a.to,onProgress:function(e){if(s.updatePercent(e),lt(a.onProgress))try{a.onProgress(e)}catch(t){return Oi({code:Na})}}}).then((function(o){var a,r,i=o.location,u=o.fileType,c=o.fileSize,l=o.width,p=o.height,d=o.smallImageUrl,g=o.smallImageWidth,h=o.smallImageHeight,_=o.largeImageUrl,f=o.largeImageWidth,v=o.largeImageHeight,m=n.isPrivateNetWork()?i:Dt(i);return s.updateImageFormat(u),d&&_?(a={url:d,width:g,height:h},r={url:_,width:f,height:v}):(a=qt({originUrl:m,originWidth:l,originHeight:p,min:198}),r=qt({originUrl:m,originWidth:l,originHeight:p,min:720})),s.updateImageInfoArray([{size:c,url:m,width:l,height:p},t({},r),t({},a)]),e}))}},{key:"_uploadFile",value:function(e){var t=this,n=this.getModule(Un),o=e.getElements()[0],s=n.getMessageOption(e.clientSequence);return this.doUploadFile({file:s.payload.file,to:s.to,onProgress:function(e){if(o.updatePercent(e),lt(s.onProgress))try{s.onProgress(e)}catch(t){return Oi({code:Na})}}}).then((function(n){var s=n.location,a=t.isPrivateNetWork()?s:Dt(s);return o.updateFileUrl(a),e}))}},{key:"_uploadAudio",value:function(e){var t=this,n=this.getModule(Un),o=e.getElements()[0],s=n.getMessageOption(e.clientSequence);return this.doUploadAudio({file:s.payload.file,to:s.to,onProgress:function(e){if(o.updatePercent(e),lt(s.onProgress))try{s.onProgress(e)}catch(t){return Oi({code:Na})}}}).then((function(n){var s=n.location,a=t.isPrivateNetWork()?s:Dt(s);return o.updateAudioUrl(a),e}))}},{key:"_uploadVideo",value:function(e){var t=this,n=this.getModule(Un),o=e.getElements()[0],s=n.getMessageOption(e.clientSequence);return this.doUploadVideo({file:s.payload.file,to:s.to,onProgress:function(e){if(o.updatePercent(e),lt(s.onProgress))try{s.onProgress(e)}catch(t){return Oi({code:Na})}}}).then((function(n){var s=n.location,a=n.snapshotInfo,r=t.isPrivateNetWork()?s:Dt(s);return o.updateVideoUrl(r),Zt(a)||o.updateSnapshotInfo(a),e}))}},{key:"doUploadImage",value:function(e){var t=this;if(!e.file)return Oi({code:Fa});var n=this._checkImageType(e.file);if(!0!==n)return n;var o=this._checkImageSize(e.file);if(!0!==o)return o;var s=null;return this._setUploadFileType(Vi),this.uploadByCOS(e).then((function(e){return s=e,t.isPrivateNetWork()?Pt(e.location):Pt("https://".concat(e.location))})).then((function(e){return s.width=e.width,s.height=e.height,Promise.resolve(s)}))}},{key:"_checkImageType",value:function(e){var t="";return t=ue?e.url.slice(e.url.lastIndexOf(".")+1):e.files[0].name.slice(e.files[0].name.lastIndexOf(".")+1),Fi.indexOf(t.toLowerCase())>=0||Oi({code:xa})}},{key:"_checkImageSize",value:function(e){var t=0;return 0===(t=ue?e.size:e.files[0].size)?Oi({code:Ra}):t<20971520||Oi({code:Va})}},{key:"doUploadFile",value:function(e){return e.file?e.file.files[0].size>104857600?Oi({code:Ja}):0===e.file.files[0].size?Oi({code:Ra}):(this._setUploadFileType(Ki),this.uploadByCOS(e)):Oi({code:za})}},{key:"doUploadVideo",value:function(e){return e.file.videoFile.size>104857600?Oi({code:Wa}):0===e.file.videoFile.size?Oi({code:Ra}):-1===xi.indexOf(e.file.videoFile.type)?Oi({code:ja}):(this._setUploadFileType(Bi),ue?this.handleVideoUpload({file:e.file.videoFile,onProgress:e.onProgress}):ce?this.handleVideoUpload(e):void 0)}},{key:"handleVideoUpload",value:function(e){var t=this;return new Promise((function(n,o){t.uploadByCOS(e).then((function(e){n(e)})).catch((function(){t.uploadByCOS(e).then((function(e){n(e)})).catch((function(){o(new Ei({code:Ka}))}))}))}))}},{key:"doUploadAudio",value:function(e){return e.file?e.file.size>20971520?Oi({code:Ha}):0===e.file.size?Oi({code:Ra}):(this._setUploadFileType(Hi),this.uploadByCOS(e)):Oi({code:Ba})}},{key:"uploadByCOS",value:function(e){var t=this;if(!lt(this._cosUploadMethod))return this.outputWarning("PluginUndetected"),Oi({code:Da});if(this.timUploadPlugin)return this._uploadWithPreSigUrl(e);var n=new li("upload"),o="".concat(this._n,".uploadByCOS"),s=Date.now(),a=this._getFile(e);return new Promise((function(r,i){var u=ue?t._createCosOptionsWXMiniApp(e):t._createCosOptionsWeb(e),c=t;t._cosUploadMethod(u,(function(e,u){var l=Object.create(null);if(u){if(e||it(u.files)&&u.files[0].error){var p=new Ei({code:Ya});return n.setError(p,!0,t.getNetworkType()).end(),He.l("".concat(o," failed. error:"),u.files[0].error),403===u.files[0].error.statusCode&&(He.w("".concat(o," failed. cos AccessKeyId was invalid, regain auth key!")),t._getAuthorizationKey()),void i(p)}l.fileName=a.name,l.fileSize=a.size,l.fileType=a.type.slice(a.type.indexOf("/")+1).toLowerCase(),l.location=ue?u.Location:u.files[0].data.Location;var d=Date.now()-s,g=c._formatFileSize(a.size),h=c._formatSpeed(1e3*a.size/d),_="size:".concat(g," time:").concat(d,"ms speed:").concat(h);He.l("".concat(o," success. name:").concat(a.name," ").concat(_)),r(l);var f=t.getModule(so);return f.addCost(ni,d),f.addFileSize(ni,a.size),void n.setNetworkType(t.getNetworkType()).setMessage(_).end()}var v=new Ei({code:Ya});n.setError(v,!0,c.getNetworkType()).end(),He.w("".concat(o," failed. error:"),e),403===e.statusCode&&(He.w("".concat(o," failed. cos AccessKeyId was invalid, regain auth key!")),t._getAuthorizationKey()),i(v)}))}))}},{key:"_uploadWithPreSigUrl",value:function(e){var t=this,n="".concat(this._n,"._uploadWithPreSigUrl"),o=this._getFile(e);return this._createCosOptionsPreSigUrl(e).then((function(e){return new Promise((function(s,a){var r=new li("upload"),i=e.requestSnapshotUrl,u=void 0===i?void 0:i,c=g(e,ju),l=Date.now();t._cosUploadMethod(c,(function(e,i){if(e||403===i.statusCode)return r.setError(new Ei(e),!0,t.getNetworkType()).end(),He.l("".concat(n," failed, error:"),e),void a(new Ei({code:Ya}));var p=Object.create(null),d=i.data.location||"";t.isPrivateNetWork()||0!==d.indexOf("https://")&&0!==d.indexOf("http://")||(d=d.split("//")[1]),p.fileName=o.name,p.fileSize=o.size,p.fileType=o.type.slice(o.type.indexOf("/")+1).toLowerCase(),p.location=d;var g=Date.now()-l,h=t._formatFileSize(o.size),_=t._formatSpeed(1e3*o.size/g),f="size:".concat(h,",time:").concat(g,"ms,speed:").concat(_," res:").concat(JSON.stringify(i.data));He.l("".concat(n," success name:").concat(o.name,",").concat(f)),r.setNetworkType(t.getNetworkType()).setMessage(f).end();var v=t.getModule(so);v.addCost(ni,g),v.addFileSize(ni,o.size);var m=[];if(c.thumbUrl&&c.largeUrl&&(m=[t._getSmallImageInfoByUrl(c.thumbUrl,p),t._getLargeImageInfoByUrl(c.largeUrl,p)]),u&&m.push(t._getSnapshotInfoByUrl(u,p)),m.length>0)return Promise.all(m).then((function(){s(p)}));s(p)}))}))}))}},{key:"_getRawOrUploadProxyUrl",value:function(e){var t=this.getModule(Kn).getFileUploadProxy(),n=e;return t&&(n=e.replace(/^https:\/\/[^/]+/,t)),n}},{key:"_getFile",value:function(e){var t;return it(e.file.files)||(t=e.file.files,"filelist"===dt(t))?e.file.files[0]:e.file}},{key:"_formatFileSize",value:function(e){return e<1024?e+"B":e<1048576?Math.floor(e/1024)+"KB":Math.floor(e/1048576)+"MB"}},{key:"_formatSpeed",value:function(e){return e<=1048576?Vt(e/1024,1)+"KB/s":Vt(e/1048576,1)+"MB/s"}},{key:"_createCosOptionsWeb",value:function(e){var t=this._getFile(e),n=t.name,o=n.slice(n.lastIndexOf(".")),s=this._genFileName("".concat(Mt(999999)).concat(o));return{files:[{Bucket:"".concat(this.bucketName,"-").concat(this.appid),Region:this.region,Key:"".concat(this.directory,"/").concat(s),Body:t}],SliceSize:1048576,onProgress:function(t){if("function"==typeof e.onProgress)try{e.onProgress(t.percent)}catch(n){He.w("onProgress callback error:",n)}},onFileFinish:function(e,t,n){}}}},{key:"_createCosOptionsWXMiniApp",value:function(e){var t=this._getFile(e),n=this._genFileName(t.name),o=t.url;return{Bucket:"".concat(this.bucketName,"-").concat(this.appid),Region:this.region,Key:"".concat(this.directory,"/").concat(n),FilePath:o,onProgress:function(t){if(He.l(JSON.stringify(t)),"function"==typeof e.onProgress)try{e.onProgress(t.percent)}catch(n){He.w("onProgress callback error:",n)}}}}},{key:"_createCosOptionsPreSigUrl",value:function(e){var t=this,n="",o="",s=0,a=this._getFile(e);if(ue)n=this._genFileName(a.name),o=a.url,s=1;else{var r=a.name,i=r.slice(r.lastIndexOf("."));n=this._genFileName("".concat(Mt(999999)).concat(i)),o=a,s=0}return this._getCosPreSigUrl({fileType:this.uploadFileType,fileName:n,uploadMethod:s,duration:this.duration}).then((function(s){var a=s.uploadUrl,r=s.downloadUrl,i=s.requestSnapshotUrl,u=void 0===i?void 0:i,c=s.thumbUrl,l=s.largeUrl;return{url:t._getRawOrUploadProxyUrl(a),fileType:t.uploadFileType,fileName:n,resources:o,downloadUrl:r,requestSnapshotUrl:u,thumbUrl:c,largeUrl:l,onProgress:function(t){if("function"==typeof e.onProgress)try{e.onProgress(t.percent)}catch(n){He.w("onProgress callback error:",n),He.e(n)}}}}))}},{key:"_genFileName",value:function(e){return"".concat(Ut(),"-").concat(e)}},{key:"_setUploadFileType",value:function(e){this.uploadFileType=e}},{key:"_getSnapshotInfoByUrl",value:function(e,t){var n=this,o=new li("getSnapshotInfo");return this.request({protocolName:Ks,requestData:{platform:this.getPlatform(),coverName:this._genFileName(Mt(99999)),requestSnapshotUrl:e}}).then((function(e){var n=(e.data||{}).snapshotUrl;return o.setMessage("snapshotUrl:".concat(n)).end(),Zt(n)?{}:Pt(n).then((function(e){t.snapshotInfo={snapshotUrl:n,snapshotWidth:e.width,snapshotHeight:e.height}}))})).catch((function(e){return He.w("".concat(n._n,"._getSnapshotInfoByUrl failed. error:"),e),o.setCode(e.errorCode).setMessage(e.errorInfo).end(),{}}))}},{key:"_getSmallImageInfoByUrl",value:function(e,t){return Pt(e).then((function(n){t.smallImageUrl=e,t.smallImageWidth=n.width,t.smallImageHeight=n.height}))}},{key:"_getLargeImageInfoByUrl",value:function(e,t){return Pt(e).then((function(n){t.largeImageUrl=e,t.largeImageWidth=n.width,t.largeImageHeight=n.height}))}},{key:"reset",value:function(){He.l("".concat(this._n,".reset"))}}]),s}(po),zu=["downloadKey","pbDownloadKey","messageList"],Ju=function(){function e(t){o(this,e),this._n="MergerMessageHandler",this._messageModule=t}return a(e,[{key:"uploadMergerMessage",value:function(e,t){var n=this,o="".concat(this._n,".").concat("uploadMergerMessage");He.d("".concat(o," message:"),e,"messageBytes:".concat(t));var s=e.payload.messageList,a=s.length,r=new li("uploadMergerMessage");return this._messageModule.request({protocolName:Qs,requestData:{messageList:s}}).then((function(e){He.d("".concat(o," ok. response:"),e.data);var s=e.data,i=s.pbDownloadKey,u=s.downloadKey,c={pbDownloadKey:i,downloadKey:u,messageNumber:a};return r.setNetworkType(n._messageModule.getNetworkType()).setMessage("".concat(a,"-").concat(t,"-").concat(u)).end(),c})).catch((function(e){throw He.w("".concat(o," failed. error:"),e),n._messageModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),e}))}},{key:"downloadMergerMessage",value:function(e){var n=this,o="".concat(this._n,".").concat("downloadMergerMessage");He.d("".concat(o," message:"),e);var s=e.payload.downloadKey,a=this._messageModule.getFileDownloadProxy(),r=new li("downloadMergerMessage");return r.setMessage("downloadKey:".concat(s)),this._messageModule.request({protocolName:Zs,requestData:{downloadKey:s}}).then((function(s){if(He.d("".concat(o," ok. response:"),s.data),lt(e.clearElement)){var i=e.payload,u=(i.downloadKey,i.pbDownloadKey,i.messageList,g(i,zu));e.clearElement(),e.setElement({type:e.type,content:t({messageList:s.data.messageList},u)},a)}else{var c=[];s.data.messageList.forEach((function(e){if(!Zt(e)){var t=new Ti(e,a);c.push(t)}})),e.payload.messageList=c,e.payload.downloadKey="",e.payload.pbDownloadKey=""}return r.setNetworkType(n._messageModule.getNetworkType()).end(),e})).catch((function(e){throw He.w("".concat(o," failed. key:").concat(s," error:"),e),n._messageModule.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];r.setError(e,o,s).end()})),e}))}},{key:"createMergerMessagePack",value:function(e,t,n){return e.conversationType===S.CONV_C2C?this._createC2CMergerMessagePack(e,t,n):this._createGroupMergerMessagePack(e,t,n)}},{key:"_createC2CMergerMessagePack",value:function(e,t,n){var o=null;t&&(t.offlinePushInfo&&(o=t.offlinePushInfo),!0===t.onlineUserOnly&&(o?o.disablePush=!0:o={disablePush:!0}));var s=[];if(rt(t)&&rt(t.messageControlInfo)){var a=t.messageControlInfo,r=a.excludedFromUnreadCount,i=a.excludedFromLastMessage,u=a.excludedFromContentModeration;!0===r&&s.push("NoUnread"),!0===i&&s.push("NoLastMsg"),!0===u&&s.push("NoMsgCheck")}var c="";st(e.cloudCustomData)&&e.cloudCustomData.length>0&&(c=e.cloudCustomData);var l=n.pbDownloadKey,p=n.downloadKey,d=n.messageNumber,g=e.payload,h=g.title,_=g.abstractList,f=g.compatibleText,v=this._messageModule.getModule(qn),m=v&&v.isOnlineMessage(e,t)?0:void 0;return{protocolName:Mo,tjgID:this._messageModule.generateTjgID(e),requestData:{fromAccount:this._messageModule.getMyUserID(),toAccount:e.to,msgBody:[{msgType:e.type,msgContent:{pbDownloadKey:l,downloadKey:p,title:h,abstractList:_,compatibleText:f,messageNumber:d}}],cloudCustomData:c,clientTime:e.clientTime,msgSeq:e.sequence,msgRandom:e.random,msgLifeTime:m,offlinePushInfo:o?{pushFlag:!0===o.disablePush?1:0,title:o.title||"",desc:o.description||"",ext:o.extension||"",apnsInfo:{badgeMode:!0===o.ignoreIOSBadge?1:0},androidInfo:{OPPOChannelID:o.androidOPPOChannelID||""}}:void 0,messageControlInfo:0!==m?s:void 0,isSupportExtension:!0===e.isSupportExtension?1:0}}}},{key:"_createGroupMergerMessagePack",value:function(e,t,n){var o=null;t&&t.offlinePushInfo&&(o=t.offlinePushInfo);var s=[];if(rt(t)&&rt(t.messageControlInfo)){var a=t.messageControlInfo,r=a.excludedFromUnreadCount,i=a.excludedFromLastMessage,u=a.excludedFromContentModeration;!0===r&&s.push("NoUnread"),!0===i&&s.push("NoLastMsg"),!0===u&&s.push("NoMsgCheck")}var c="";st(e.cloudCustomData)&&e.cloudCustomData.length>0&&(c=e.cloudCustomData);var l=n.pbDownloadKey,p=n.downloadKey,d=n.messageNumber,g=e.payload,h=g.title,_=g.abstractList,f=g.compatibleText,v=this._messageModule.getModule(Fn),m=v&&v.isOnlineMessage(e,t)?1:0;return{protocolName:yo,tjgID:this._messageModule.generateTjgID(e),requestData:{fromAccount:this._messageModule.getMyUserID(),groupID:e.to,msgBody:[{msgType:e.type,msgContent:{pbDownloadKey:l,downloadKey:p,title:h,abstractList:_,compatibleText:f,messageNumber:d}}],random:e.random,priority:e.priority,clientSequence:e.clientSequence,groupAtInfo:void 0,cloudCustomData:c,onlineOnlyFlag:m,offlinePushInfo:o?{pushFlag:!0===o.disablePush?1:0,title:o.title||"",desc:o.description||"",ext:o.extension||"",apnsInfo:{badgeMode:!0===o.ignoreIOSBadge?1:0},androidInfo:{OPPOChannelID:o.androidOPPOChannelID||""}}:void 0,clientTime:e.clientTime,needReadReceipt:!0!==e.needReadReceipt||v.isMessageFromOrToAVChatroom(e.to)?0:1,messageControlInfo:0===m?s:void 0,isSupportExtension:!0===e.isSupportExtension?1:0}}}}]),e}(),Xu={ERR_SVR_COMM_SENSITIVE_TEXT:80001,ERR_SVR_COMM_BODY_SIZE_LIMIT:80002,OPEN_SERVICE_OVERLOAD_ERROR:60022,ERR_SVR_MSG_PKG_PARSE_FAILED:20001,ERR_SVR_MSG_INTERNAL_AUTH_FAILED:20002,ERR_SVR_MSG_INVALID_ID:20003,ERR_SVR_MSG_PUSH_DENY:20006,ERR_SVR_MSG_IN_PEER_BLACKLIST:20007,ERR_SVR_MSG_BOTH_NOT_FRIEND:20009,ERR_SVR_MSG_NOT_PEER_FRIEND:20010,ERR_SVR_MSG_NOT_SELF_FRIEND:20011,ERR_SVR_MSG_SHUTUP_DENY:20012,ERR_SVR_GROUP_INVALID_PARAMETERS:10004,ERR_SVR_GROUP_PERMISSION_DENY:10007,ERR_SVR_GROUP_NOT_FOUND:10010,ERR_SVR_GROUP_INVALID_GROUPID:10015,ERR_SVR_GROUP_REJECT_FROM_THIRDPARTY:10016,ERR_SVR_GROUP_SHUTUP_DENY:10017,MESSAGE_SEND_FAIL:2100,OVER_FREQUENCY_LIMIT:2996},Qu=[Na,Fa,xa,Ra,Va,za,Ja,Wa,ja,Ba,Ha,Da];function Zu(e){var t=!1;return Object.values(Xu).includes(e)&&(t=!0),(e>=120001&&e<=13e4||e>=10100&&e<=10200)&&(t=!0),t}var $u=function(e){i(s,e);var n=f(s);function s(e){var t;return o(this,s),(t=n.call(this,e))._n="MessageModule",t._messageOptionsMap=new Map,t._mergerMessageHandler=new Ju(h(t)),t}return a(s,[{key:"createTextMessage",value:function(e){var t=this.getMyUserID();e.currentUser=t,e.senderTinyID=this.getMyTinyID();var n=new Si(e),o="string"==typeof e.payload?e.payload:e.payload.text,s=new pi({text:o}),a=this._getNickAndAvatarByUserID(t);return n.setElement(s),n.setNickAndAvatar(a),n.setNameCard(this._getNameCardByGroupID(n)),n}},{key:"createImageMessage",value:function(e){var t=this.getMyUserID();e.currentUser=t,e.senderTinyID=this.getMyTinyID();var n=new Si(e);if(ue){var o=e.payload.file;if(nt(o))return void this.outputWarning("FileUnsupportedInMP","createImageMessage");var s=o.tempFiles[0].path||o.tempFiles[0].tempFilePath,a={url:s,name:s.slice(s.lastIndexOf("/")+1),size:o.tempFiles&&o.tempFiles[0].size||1,type:s.slice(s.lastIndexOf(".")+1).toLowerCase()};e.payload.file=a}else if(ce)if(nt(e.payload.file)){var r=e.payload.file;e.payload.file={files:[r]}}else if(rt(e.payload.file)&&"undefined"!=typeof uni){var i=e.payload.file.tempFiles[0];e.payload.file={files:[i]}}var u=new di({imageFormat:Ke.UNKNOWN,uuid:this._generateUUID(e.payload.file),file:e.payload.file}),c=this._getNickAndAvatarByUserID(t);return n.setElement(u),n.setNickAndAvatar(c),n.setNameCard(this._getNameCardByGroupID(n)),this._messageOptionsMap.set(n.clientSequence,e),n}},{key:"createAudioMessage",value:function(e){var t=e.payload.file;if(ue){var n={url:t.tempFilePath,name:t.tempFilePath.slice(t.tempFilePath.lastIndexOf("/")+1),size:t.fileSize,second:parseInt(t.duration)/1e3,type:t.tempFilePath.slice(t.tempFilePath.lastIndexOf(".")+1).toLowerCase()};e.payload.file=n}var o=this.getMyUserID();e.currentUser=o,e.senderTinyID=this.getMyTinyID();var s=new Si(e),a=new hi({second:Math.floor(t.duration/1e3),size:t.fileSize||t.size,url:t.tempFilePath,uuid:this._generateUUID(e.payload.file)}),r=this._getNickAndAvatarByUserID(o);return s.setElement(a),s.setNickAndAvatar(r),s.setNameCard(this._getNameCardByGroupID(s)),this._messageOptionsMap.set(s.clientSequence,e),s}},{key:"createVideoMessage",value:function(e){var t=this.getMyUserID();e.currentUser=t,e.senderTinyID=this.getMyTinyID(),e.payload.file.thumbUrl="",e.payload.file.thumbSize=0;var n={};if(ue){if(se)return void this.outputWarning("VideoUnsupportedInAlipay");if(nt(e.payload.file))return void this.outputWarning("FileUnsupportedInMP","createVideoMessage");var o=e.payload.file;it(o.tempFiles)&&(o=o.tempFiles[0]),n.url=o.tempFilePath,n.name=o.tempFilePath.slice(o.tempFilePath.lastIndexOf("/")+1),n.size=o.size||1,n.second=o.duration||0,n.type=o.tempFilePath.slice(o.tempFilePath.lastIndexOf(".")+1).toLowerCase()}else if(ce){if(nt(e.payload.file)){var s=e.payload.file;e.payload.file.files=[s]}else if(rt(e.payload.file)&&"undefined"!=typeof uni){var a=e.payload.file.tempFile;e.payload.file.files=[a]}var r=e.payload.file;n.url=window.URL.createObjectURL(r.files[0]),n.name=r.files[0].name,n.size=r.files[0].size||1,n.second=r.files[0].duration||0,n.type=r.files[0].type.split("/")[1]}e.payload.file.videoFile=n;var i=new Si(e),u=new Ii({videoFormat:n.type,videoSecond:Vt(n.second,0),videoSize:n.size,remoteVideoUrl:"",videoUrl:n.url,videoUUID:this._generateUUID(e.payload.file.videoFile),thumbUUID:this._generateUUID(e.payload.file.videoFile),thumbWidth:e.payload.file.width||200,thumbHeight:e.payload.file.height||200,thumbUrl:e.payload.file.thumbUrl,thumbSize:e.payload.file.thumbSize,thumbFormat:e.payload.file.thumbUrl.slice(e.payload.file.thumbUrl.lastIndexOf(".")+1).toLowerCase()}),c=this._getNickAndAvatarByUserID(t);return i.setElement(u),i.setNickAndAvatar(c),i.setNameCard(this._getNameCardByGroupID(i)),this._messageOptionsMap.set(i.clientSequence,e),i}},{key:"createCustomMessage",value:function(e){var t=this.getMyUserID();e.currentUser=t,e.senderTinyID=this.getMyTinyID();var n=new Si(e),o=new yi({data:e.payload.data,description:e.payload.description,extension:e.payload.extension}),s=this._getNickAndAvatarByUserID(t);return n.setElement(o),n.setNickAndAvatar(s),n.setNameCard(this._getNameCardByGroupID(n)),n}},{key:"createFaceMessage",value:function(e){var t=this.getMyUserID();e.currentUser=t,e.senderTinyID=this.getMyTinyID();var n=new Si(e),o=new gi(e.payload),s=this._getNickAndAvatarByUserID(t);return n.setElement(o),n.setNickAndAvatar(s),n.setNameCard(this._getNameCardByGroupID(n)),n}},{key:"createMergerMessage",value:function(e){var t=this.getMyUserID();e.currentUser=t,e.senderTinyID=this.getMyTinyID();var n=this._getNickAndAvatarByUserID(t),o=new Si(e),s=new Di(e.payload);return o.setElement(s),o.setNickAndAvatar(n),o.setNameCard(this._getNameCardByGroupID(o)),o.setRelayFlag(!0),o}},{key:"createForwardMessage",value:function(e){var t=e.to,n=e.conversationType,o=e.priority,s=e.payload,a=e.needReadReceipt,r=e.receiverList,i=this.getMyUserID(),u=this._getNickAndAvatarByUserID(i);if(s.type===S.MSG_GRP_TIP)return Oi({code:er});var c={to:t,conversationType:n,conversationID:"".concat(n).concat(t),priority:o,isPlaceMessage:0,status:nn.UNSEND,currentUser:i,senderTinyID:this.getMyTinyID(),cloudCustomData:e.cloudCustomData||s.cloudCustomData||"",needReadReceipt:a,receiverList:r,isSupportExtension:e.isSupportExtension||!1},l=new Si(c);return l.setElement(s.getElements()[0]),l.setNickAndAvatar(u),l.setNameCard(this._getNameCardByGroupID(s)),l.setRelayFlag(!0),l}},{key:"downloadMergerMessage",value:function(e){return this._mergerMessageHandler.downloadMergerMessage(e)}},{key:"createFileMessage",value:function(e){if(ue){if(!ee&&!te&&!re)return;var n=le.getSystemInfoSync().SDKVersion;if(ee&&wt(n,"2.5.0")<0)return void this.outputWarning("WXChooseMessageFile");if(te&&wt(n,"1.18.0")<0)return void this.outputWarning("QQChooseMessageFile")}if(ce||re){if(nt(e.payload.file)){var o=e.payload.file;e.payload.file={files:[o]}}else if(rt(e.payload.file)&&"undefined"!=typeof uni){var s=e.payload.file,a=s.tempFiles,r=s.files,i=null;it(a)?i=a[0]:it(r)&&(i=r[0]),e.payload.file={files:[i]}}}else if(ee||te){var u=e.payload.file.tempFiles,c=t(t({},u[0]),{},{url:u[0].path});e.payload.file={files:[c]}}var l=this.getMyUserID();e.currentUser=l,e.senderTinyID=this.getMyTinyID();var p=new Si(e),d=new Mi({uuid:this._generateUUID(e.payload.file),file:e.payload.file}),g=this._getNickAndAvatarByUserID(l);return p.setElement(d),p.setNickAndAvatar(g),p.setNameCard(this._getNameCardByGroupID(p)),this._messageOptionsMap.set(p.clientSequence,e),p}},{key:"createLocationMessage",value:function(e){var t=this.getMyUserID();e.currentUser=t,e.senderTinyID=this.getMyTinyID();var n=new Si(e),o=new Ci(e.payload),s=this._getNickAndAvatarByUserID(t);return n.setElement(o),n.setNickAndAvatar(s),n.setNameCard(this._getNameCardByGroupID(n)),n}},{key:"_onCannotFindModule",value:function(){return Oi({code:Pr})}},{key:"sendMessageInstance",value:function(e,t){var n=this;if(!1===this.getModule(io).filterMessage(e,t))return this._onSendMessageFailed(e,new Ei({code:Wr}));var o,s=null;switch(e.conversationType){case S.CONV_C2C:if(!(s=this.getModule(qn)))return this._onCannotFindModule();break;case S.CONV_GROUP:if(!(s=this.getModule(Fn)))return this._onCannotFindModule();if(Et({groupID:e.to})){var a=s.getLocalGroupProfile(e.to);if(a&&a.isSupportTopic)return Oi({code:ba})}break;default:return Oi({code:Aa})}var r=this.getModule(Jn),i=this.getModule(Fn);return r.upload(e).then((function(){n._getSendMessageSpecifiedKey(e)===ti&&n.getModule(so).addSuccessCount(ni);return i.guardForAVChatRoom(e).then((function(){if(!e.isSendable())return Oi({code:Xa});n._addSendMessageTotalCount(e),o=Date.now();var a=function(e){var t="utf-8";ce&&document&&(t=document.charset.toLowerCase());var n,o,s=0;if(o=e.length,"utf-8"===t||"utf8"===t)for(var a=0;a11264?n._mergerMessageHandler.uploadMergerMessage(e,a).then((function(o){var s=n._mergerMessageHandler.createMergerMessagePack(e,t,o);return n.request(s)})):(n.getModule(Hn).setMessageRandom(e),e.conversationType===S.CONV_C2C||e.conversationType===S.CONV_GROUP?s.sendMessage(e,t):void 0)})).then((function(a){var r=a.data,i=r.time,u=r.sequence,c=r.readReceiptCode;ot(c)&&0!==c&&(new li("sendMessageWithReceipt").setMessage("from:".concat(e.from," to:").concat(e.to," sequence:").concat(u," readReceiptCode:").concat(c)).end(),He.w("".concat(n._n,".sendMessageInstance readReceiptCode:").concat(c," message:").concat(n.getErrorMessage(c))));n._addSendMessageSuccessCount(e,o),n._messageOptionsMap.delete(e.clientSequence);var l=n.getModule(Hn);e.status=nn.SUCCESS,e.time=i;var p=!1;if(e.conversationType===S.CONV_GROUP)e.sequence=u;else if(e.conversationType===S.CONV_C2C){var d=l.getLatestMessageSentByMe(e.conversationID);if(d){var g=d.nick,h=d.avatar;g===e.nick&&h===e.avatar||(p=!0)}}if(p&&l.modifyMessageSentByMe({conversationID:e.conversationID,latestNick:e.nick,latestAvatar:e.avatar}),s.isOnlineMessage(e,t))e._onlineOnlyFlag=!0;else{l.appendToMessageList(e);var _=e;rt(t)&&rt(t.messageControlInfo)&&(!0===t.messageControlInfo.excludedFromLastMessage&&(e._isExcludedFromLastMessage=!0,_=""),!0===t.messageControlInfo.excludedFromUnreadCount&&(e._isExcludedFromUnreadCount=!0));var f=e.conversationType;if(At(e.to))f=S.CONV_TOPIC,n.getModule(Bn).onMessageSent({groupID:Kt(e.to),topicID:e.to,lastMessage:_});l.onMessageSent({conversationOptionsList:[{conversationID:e.conversationID,unreadCount:0,type:f,subType:e.conversationSubType,lastMessage:_}]})}return e.getRelayFlag()||"TIMImageElem"!==e.type||Ft(e.payload.imageInfoArray),Li({message:e})}))})).catch((function(t){return n._onSendMessageFailed(e,t)}))}},{key:"_onSendMessageFailed",value:function(e,t){e.status=nn.FAIL,this.getModule(Hn).deleteMessageRandom(e),this._addSendMessageFailCountOnUser(e,t);var n=new li("sendMessage");return n.setMessage("tjg_id:".concat(this.generateTjgID(e)," type:").concat(e.type," from:").concat(e.from," to:").concat(e.to)),this.probeNetwork().then((function(e){var o=v(e,2),s=o[0],a=o[1];n.setError(t,s,a).end()})),He.e("".concat(this._n,"._onSendMessageFailed error:"),t),Oi(new Ei({code:t&&t.code?t.code:Sa,message:t&&t.message?t.message:void 0,data:{message:e}}))}},{key:"_getSendMessageSpecifiedKey",value:function(e){if([S.MSG_IMAGE,S.MSG_AUDIO,S.MSG_VIDEO,S.MSG_FILE].includes(e.type))return ti;if(e.conversationType===S.CONV_C2C)return Zr;if(e.conversationType===S.CONV_GROUP){var t=this.getModule(Fn).getLocalGroupProfile(e.to);if(!t)return;var n=t.type;return Lt(n)?ei:$r}}},{key:"_addSendMessageTotalCount",value:function(e){var t=this._getSendMessageSpecifiedKey(e);t&&this.getModule(so).addTotalCount(t)}},{key:"_addSendMessageSuccessCount",value:function(e,t){var n=Math.abs(Date.now()-t),o=this._getSendMessageSpecifiedKey(e);if(o){var s=this.getModule(so);s.addSuccessCount(o),s.addCost(o,n)}}},{key:"_addSendMessageFailCountOnUser",value:function(e,t){var n,o,s=t.code,a=void 0===s?-1:s,r=this.getModule(so),i=this._getSendMessageSpecifiedKey(e);i===ti&&(n=a,o=!1,Qu.includes(n)&&(o=!0),o)?r.addFailedCountOfUserSide(ni):Zu(a)&&i&&r.addFailedCountOfUserSide(i)}},{key:"resendMessage",value:function(e){return e.isResend=!0,e.status=nn.UNSEND,this.sendMessageInstance(e)}},{key:"revokeMessage",value:function(e){var t=this,n=null;if(e.conversationType===S.CONV_C2C?n=this.getModule(qn):e.conversationType===S.CONV_GROUP&&(n=this.getModule(Fn)),!n)return this._onCannotFindModule();var o=new li("revokeMessage");o.setMessage("tjg_id:".concat(this.generateTjgID(e)," type:").concat(e.type," from:").concat(e.from," to:").concat(e.to));var s="".concat(this._n,".").concat("revokeMessage");return n.revokeMessage(e).then((function(n){var a=n.data.recallRetList;if(!Zt(a)&&0!==a[0].retCode){var r=new Ei({code:a[0].retCode,data:{message:e}});return o.setCode(r.code).setMoreMessage(r.message).end(),Oi(r)}return He.i("".concat(s," ok. ID:").concat(e.ID)),e.isRevoked=!0,o.end(),t.getModule(Hn).onMessageRevoked([e]),Li({message:e})})).catch((function(n){t.probeNetwork().then((function(e){var t=v(e,2),s=t[0],a=t[1];o.setError(n,s,a).end()}));var a=new Ei({code:n&&n.code?n.code:Oa,message:n&&n.message?n.message:void 0,data:{message:e}});return He.w("".concat(s," failed. error:"),n),Oi(a)}))}},{key:"deleteMessage",value:function(e){var t=this,n=null,o=e[0],s=o.conversationID,a="",r=[],i=[];if(o.conversationType===S.CONV_C2C)n=this.getModule(qn),a=s.replace(S.CONV_C2C,""),e.forEach((function(e){e&&e.status===nn.SUCCESS&&e.conversationID===s&&(e._onlineOnlyFlag||r.push("".concat(e.sequence,"_").concat(e.random,"_").concat(e.time)),i.push(e))}));else if(o.conversationType===S.CONV_GROUP)n=this.getModule(Fn),a=s.replace(S.CONV_GROUP,""),e.forEach((function(e){e&&e.status===nn.SUCCESS&&e.conversationID===s&&(e._onlineOnlyFlag||r.push("".concat(e.sequence)),i.push(e))}));else if(o.conversationType===S.CONV_SYSTEM)return Oi({code:wa});if(!n)return this._onCannotFindModule();if(0===r.length)return this._onMessageDeleted(i);r.length>30&&(r=r.slice(0,30),i=i.slice(0,30));var u=new li("deleteMessage");u.setMessage("to:".concat(a," count:").concat(r.length));var c="".concat(this._n,".").concat("deleteMessage");return n.deleteMessage({to:a,keyList:r}).then((function(e){return u.end(),He.i("".concat(c," ok")),t._onMessageDeleted(i)})).catch((function(e){t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];u.setError(e,o,s).end()})),He.w("".concat(c," failed. error:"),e);var n=new Ei({code:e&&e.code?e.code:Ga,message:e&&e.message?e.message:void 0});return Oi(n)}))}},{key:"_onMessageDeleted",value:function(e){return this.getModule(Hn).onMessageDeleted(e),Ni({messageList:e})}},{key:"translateText",value:function(e){var n="".concat(this._n,".").concat("translateText"),o=e.sourceTextList,s=e.sourceLanguage,a=e.targetLanguage,r=new li("translateText");return r.setMessage("sourceLanguage:".concat(s," targetLanguage:").concat(a)),this.request({protocolName:fa,requestData:{sourceTextList:o,source:s||"auto",target:a,from:this.getMyTinyID(),SDKAppID:this.getSDKAppID()}}).then((function(e){var o=e.data,s=o.error,a=o.requestID,i=o.translatedTextList;if(0===s.code)return r.end(),He.i("".concat(n," ok. requestID:").concat(a)),Li({translatedTextList:i});throw t(t({},s),{},{requestID:a})})).catch((function(e){return r.setCode(e.code).setMoreMessage(e.requestID).end(),He.w("".concat(n," failed. error:"),e),Oi({code:qa})}))}},{key:"modifyRemoteMessage",value:function(e){var t=this,n=null,o=e.conversationType,s=e.to;if(this.getModule(Fn).isMessageFromOrToAVChatroom(s))return Oi({code:nr,data:{message:e}});if(!1===this.getModule(io).filterMessage(e))return Oi({code:Wr,data:{message:e}});o===S.CONV_C2C?n=this.getModule(qn):o===S.CONV_GROUP&&(n=this.getModule(Fn));var a=new li("modifyMessage");a.setMessage("to:".concat(s));var r="".concat(this._n,".modifyRemoteMessage");return n.modifyRemoteMessage(e).then((function(n){a.end(),He.i("".concat(r," ok"));var o=t._onModifyRemoteMessageResp(e,n.data);return Li({message:o})})).catch((function(n){if(a.setCode(n.code).setMoreMessage(n.message).end(),He.w("".concat(r," failed. error:"),n),20027===n.code){var o=t._onModifyRemoteMessageResp(e,n.data);return Oi({code:tr,data:{message:o}})}return Oi({code:n.code,message:n.message,data:{message:e}})}))}},{key:"_onModifyRemoteMessageResp",value:function(e,t){He.d("".concat(this._n,"._onModifyRemoteMessageResp options:"),t);var n=e.conversationType,o=e.from,s=e.to,a=e.random,r=e.sequence,i=e.time,u=t.elements,c=t.messageVersion,l=t.cloudCustomData,p=void 0===l?"":l;return this.getModule(Hn).onMessageModified({conversationType:n,from:o,to:s,time:i,random:a,sequence:r,elements:u,cloudCustomData:p,messageVersion:c})}},{key:"_generateUUID",value:function(e){var t=this.getModule(Kn),n="".concat(t.getSDKAppID(),"-").concat(t.getUserID(),"-").concat(function(){for(var e="",t=32;t>0;--t)e+=yt[Math.floor(Math.random()*It)];return e}()),o=e.name||e.value||e.url||e.tempFilePath,s=o&&o.slice(o.lastIndexOf(".")+1);return s&&(n="".concat(n,".").concat(s)),n}},{key:"getMessageOption",value:function(e){return this._messageOptionsMap.get(e)}},{key:"_getNickAndAvatarByUserID",value:function(e){return this.getModule(wn).getNickAndAvatarByUserID(e)}},{key:"_getNameCardByGroupID",value:function(e){if(e.conversationType===S.CONV_GROUP){var t=this.getModule(Fn);if(t)return t.getMyNameCardByGroupID(e.to)}return""}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._messageOptionsMap.clear()}}]),s}(po),ec=function(e){i(n,e);var t=f(n);function n(e){var s;return o(this,n),(s=t.call(this,e))._n="MessageExtensionModule",s.messageExtensionMap=new Map,s.globalSeqMap=new Map,s.getMessageExtensionsMap=new Map,s}return a(n,[{key:"onMessageExtensionNotify",value:function(e){var t=this,n=e.dataList,o=n.messageInfo,s=n.operateType,a=n.operateResultList,r=n.tinyID,i=n.globalSequence,u=o.clientTime,c=o.random,l="".concat(r,"-").concat(u,"-").concat(c),p=[],d=[];He.l("".concat(this._n,".onMessageExtensionNotify messageID:").concat(l," operateType:").concat(s," globalSequence:").concat(i)),this._updateGlobalSequence(l,i);var g=!1,h=!1;a.forEach((function(e){var n=e.extensions,o=void 0===n?[]:n,a=e.clearSequence;if(1===s)g=!0,o.forEach((function(e){p.push({key:e.key,value:e.value})})),t._updateLocalExtension(l,o);else if(2===s)h=!0,o.forEach((function(e){d.push(e.key)})),t._updateLocalExtension(l,o);else if(3===s){if(h=!0,t._hasLocalExtension(l))t._getLocalExtension(l).forEach((function(e,t){e.seq<=a&&!Zt(e.value)&&d.push(t)}));t._clearLocalExtension(l,a)}})),g&&this.emitOuterEvent(k.MESSAGE_EXTENSIONS_UPDATED,{messageID:l,extensions:p}),h&&this.emitOuterEvent(k.MESSAGE_EXTENSIONS_DELETED,{messageID:l,keyList:d})}},{key:"setMessageExtensions",value:function(e,t){var n=this;if(!this.canIUse(B.MSG_EXT))return Oi({code:Kr});var o="".concat(this._n,".").concat("setMessageExtensions"),s=e.ID,a=e.conversationID,r=e.sequence,i=e.time,u=m(t);t.length>20&&(u=t.slice(0,20),He.w("".concat(o,". the length of extensions cannot exceed 20.")));var c="conversationID:".concat(a," messageID:").concat(s," sequence:").concat(r," time:").concat(i," count:").concat(u.length),l=new li("setMessageExtensions");return l.setMessage(c),He.l("".concat(o," ").concat(c)),this._modifyMessageExtensions(e,u).then((function(e){var t=e.resultList,n=e.successCount,s=e.failureCount,a="success count:".concat(n," fail count:").concat(s);return l.setMoreMessage(a).end(),He.l("".concat(o," ok. ").concat(a)),Li({extensions:t})})).catch((function(e){return n.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];l.setError(e,o,s).end()})),He.e("".concat(o," failed. error:"),e),Oi(e)}))}},{key:"getMessageExtensions",value:function(e){var t=this;if(!this.canIUse(B.MSG_EXT))return Oi({code:Kr});var n="".concat(this._n,".").concat("getMessageExtensions"),o=e.ID,s=e.conversationID,a=e.sequence,r=e.time,i="conversationID:".concat(s," messageID:").concat(o," sequence:").concat(a," time:").concat(r),u=new li("getMessageExtensions");u.setMessage(i),He.l("".concat(n," ").concat(i));var c=void 0;return this.getMessageExtensionsMap.has(o)&&(c=this._getGlobalSequence(o)),this._getMessageExtensions(e,c).then((function(e){return u.end(),He.l("".concat(n," ok. total count:").concat(e.length)),ut(c)&&e.length>0&&t.getMessageExtensionsMap.set(o,1),Li({extensions:e})})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];u.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"deleteMessageExtensions",value:function(e,t){var n=this;if(!this.canIUse(B.MSG_EXT))return Oi({code:Kr});var o="".concat(this._n,".").concat("deleteMessageExtensions"),s=[],a=3;Zt(t)||(a=2,t.forEach((function(e){s.push({key:e,value:"",seq:0})})));var r=e.ID,i=e.conversationID,u=e.sequence,c=e.time,l="conversationID:".concat(i," messageID:").concat(r," sequence:").concat(u," time:").concat(c," operateType:").concat(a),p=new li("deleteMessageExtensions");return p.setMessage(l),He.l("".concat(o," ").concat(l)),this._modifyMessageExtensions(e,s,a).then((function(e){var t=e.resultList,n=e.successCount,s=e.failureCount,r="";return 2===a&&(r="success count:".concat(n," fail count:").concat(s)),p.setMoreMessage("".concat(r)).end(),He.l("".concat(o," ok. ").concat(r)),Li({extensions:t})})).catch((function(e){return n.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];p.setError(e,o,s).end()})),He.e("".concat(o," failed. error:"),e),Oi(e)}))}},{key:"_modifyMessageExtensions",value:function(e,t){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,s=At(e.to)?S.CONV_TOPIC:e.conversationType,a=void 0;3!==o&&(a=this._getRequestExtensions(e,t));var r=null;switch(s){case S.CONV_C2C:r=this.getModule(qn);break;case S.CONV_GROUP:r=this.getModule(Fn);break;case S.CONV_TOPIC:r=this.getModule(Bn);break;default:return Oi({code:Pr})}return r.modifyMessageExtensions(e,a,o).then((function(t){var o=t.data,s=o.extensions,a=o.seq,r=[],i=0,u=0,c=[];return(s=Zt(s)?[]:s).forEach((function(e){var t=e.errorCode,n=e.extension,o=n.key,s=n.value,a=n.seq;r.push({code:t,key:o,value:s}),0===t?i++:u++,c.push({key:o,value:s,seq:a})})),n._updateGlobalSequence(e.ID,a),c.length>0&&(n._updateLocalExtension(e.ID,c),c=null),{resultList:r,successCount:i,failureCount:u}})).catch((function(e){return Oi(e)}))}},{key:"_getRequestExtensions",value:function(e,t){var n=[];if(this._hasLocalExtension(e.ID)){var o=this._getLocalExtension(e.ID);return t.forEach((function(e){var t=e.key,s=e.value,a=0;o.has(t)&&(a=o.get(t).seq),n.push({key:t,value:s,seq:a})})),n}return t.forEach((function(e){var t=e.key,o=e.value;n.push({key:t,value:o,seq:0})})),n}},{key:"_getMessageExtensions",value:function(e,t){var n=this,o="".concat(this._n,"._getMessageExtensions"),s=e.ID,a=e.to,r=null;switch(At(a)?S.CONV_TOPIC:e.conversationType){case S.CONV_C2C:r=this.getModule(qn);break;case S.CONV_GROUP:r=this.getModule(Fn);break;case S.CONV_TOPIC:r=this.getModule(Bn);break;default:return Oi({code:Pr})}return r.getMessageExtensions(e,t).then((function(t){var a=t.data,r=a.extensions,i=a.completeFlag,u=a.globalSequence,c=a.clearSequence;if(r=Zt(r)?[]:r,He.l("".concat(o," ok. completeFlag:").concat(i," globalSequence:").concat(u," clearSequence:").concat(c," count:").concat(r.length)),n._updateLocalExtension(s,r),n._clearLocalExtension(s,c),n._updateGlobalSequence(s,u),1!==i){var l=r.slice(-1)[0].seq+1;return n._getMessageExtensions(e,l)}return n._getLocalExtensions(s)})).catch((function(e){return Oi(e)}))}},{key:"_hasLocalExtension",value:function(e){return this.messageExtensionMap.has(e)}},{key:"_getLocalExtension",value:function(e){return this.messageExtensionMap.get(e)}},{key:"_updateLocalExtension",value:function(e,t){this._hasLocalExtension(e)||this.messageExtensionMap.set(e,new Map);var n=this._getLocalExtension(e);t.forEach((function(e){var t=e.key,o=e.value,s=void 0===o?"":o,a=e.seq;n.set(t,{value:s,seq:a})}))}},{key:"_clearLocalExtension",value:function(e,t){if(!(t<=0)&&this._hasLocalExtension(e)){var n=this._getLocalExtension(e);n.forEach((function(e,o){e.seq<=t&&n.delete(o)}))}}},{key:"_getLocalExtensions",value:function(e){var t=[];this._hasLocalExtension(e)&&this._getLocalExtension(e).forEach((function(e,n){var o=e.value;Zt(o)||t.push({key:n,value:o})}));return t}},{key:"_getGlobalSequence",value:function(e){return this.globalSeqMap.get(e)}},{key:"_updateGlobalSequence",value:function(e,t){this.globalSeqMap.set(e,t)}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this.messageExtensionMap.clear(),this.globalSeqMap.clear(),this.getMessageExtensionsMap.clear()}}]),n}(po),tc=function(e){i(n,e);var t=f(n);function n(e){var s;return o(this,n),(s=t.call(this,e))._n="ComboMessageModule",s}return a(n,[{key:"sendMessage",value:function(e){var t=this,n=this._constructMessageInstance(e);if(null===n)return Oi({code:Sa});this._addSendMessageTotalCount(n);var o=Date.now();return this.getModule(Hn).setMessageRandom(n),this._sendComboMessage(n,e).then((function(e){var s=e.data,a=s.time,r=s.sequence,i=s.readReceiptCode;ot(i)&&0!==i&&(new li("sendMessageWithReceipt").setMessage("from:".concat(n.from," to:").concat(n.to," sequence:").concat(r," readReceiptCode:").concat(i)).end(),He.w("".concat(t._n,".sendMessage readReceiptCode:").concat(i," message:").concat(t.getErrorMessage(i))));t._addSendMessageSuccessCount(n,o);var u=t.getModule(Hn);n.status=nn.SUCCESS,n.time=a,n.conversationType===S.CONV_GROUP&&(n.sequence=r),u.appendToMessageList(n);var c=n;return!0===n._isExcludedFromLastMessage&&(c=""),u.onMessageSent({conversationOptionsList:[{conversationID:n.conversationID,unreadCount:0,type:n.conversationType,subType:n.conversationSubType,lastMessage:c}]}),Li({message:n})})).catch((function(e){return t._onSendMessageFailed(n,e)}))}},{key:"_sendComboMessage",value:function(e,t){var n=this._m.getModule(Zn),o="";return e.conversationType===S.CONV_C2C&&(o="".concat(V.NAME.OPEN_IM,".").concat(V.CMD.SEND_MESSAGE)),e.conversationType===S.CONV_GROUP&&(o="".concat(V.NAME.GROUP,".").concat(V.CMD.SEND_GROUP_MESSAGE)),n.sendComboMessage({servcmd:o,data:t})}},{key:"_constructMessageInstance",value:function(e){var t="".concat(this._n,"._constructMessageInstance"),n=null;try{var o=this.getMyUserID(),s={};if(s.senderTinyID=this.getMyTinyID(),s.currentUser=o,s.from=e.From_Account||o,e.GroupId?(s.conversationID="".concat(S.CONV_GROUP).concat(e.GroupId),s.conversationType=S.CONV_GROUP,s.to=e.GroupId):e.To_Account&&(s.conversationID="".concat(S.CONV_C2C).concat(e.To_Account),s.conversationType=S.CONV_C2C,s.to=e.To_Account),s.time=e.MsgTimeStamp||0,s.random=e.Random||e.MsgRandom||0,s.priority=e.MsgPriority,st(e.CloudCustomData)&&e.CloudCustomData.length>0&&(s.cloudCustomData=e.CloudCustomData),it(e.SendMsgControl)&&(s.messageControlInfo={},e.SendMsgControl.includes("NoUnread")&&(s.messageControlInfo.excludedFromUnreadCount=1),e.SendMsgControl.includes("NoLastMsg")&&(s.messageControlInfo.excludedFromLastMessage=1)),s.conversationType===S.CONV_GROUP&&it(e.To_Account)&&e.To_Account.length>0){var a=e.To_Account;e.To_Account.length>50&&(a=e.To_Account.slice(0,50),He.w("".concat(t," To_Account must be less than or equal to 50."))),s.receiverList=m(a),e.To_Account=m(a)}1!==e.IsNeedReadReceipt&&1!==e.NeedReadReceipt||(s.needReadReceipt=!0),1===e.SupportMessageExtension&&(s.isSupportExtension=!0),(n=new Si(s)).status=nn.UNSEND,e.MsgClientTime=n.clientTime,n.conversationType===S.CONV_C2C&&(e.MsgSeq=n.sequence);for(var r,i=e.MsgBody.length,u=0;u100)return n--,t;if(it(t)){var s=t.map((function(t){return at(t)?e(t,o):t}));return n--,s}if(at(t)){var a=(r=t,i=function(e,t){if(!gt(t))return!1;if((s=t)!==ac(s))for(var n=0;n65535)return cc(240|t>>>18,128|t>>>12&63,128|t>>>6&63,128|63&t)}else t=65533}else t<=57343&&(t=65533);return t<=2047?cc(192|t>>>6,128|63&t):cc(224|t>>>12,128|t>>>6&63,128|63&t)},pc=function(e){for(var t=void 0===e?"":(""+e).replace(/[\x80-\uD7ff\uDC00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,lc),n=0|t.length,o=new Uint8Array(n),s=0;s0)for(var u=0;u=a&&(He.l("".concat(e._n,"._checkPromiseMap request timeout, delete requestID:").concat(n)),e._promiseMap.delete(n),o(new Ei({code:Er})),e._channelModule.onRequestTimeout(n))}))}},{key:"onOpen",value:function(e){if(""!==this._readyState){this._onOpenTs=Date.now();var t=e.id;this._socketID=t;var n=Date.now()-this._startTs;He.l("".concat(this._n,"._onOpen cost ").concat(n," ms. socketID:").concat(t)),new li("wsOnOpen").setMessage(n).setCostTime(n).setMoreMessage("socketID:".concat(t)).end(),e.id===this._socketID&&(this._readyState=mc,this._reConnectCount=0,this._resend(),!0===this._reConnectFlag&&(this._channelModule.onReconnected(),this._reConnectFlag=!1),this._channelModule.onOpen())}}},{key:"onClose",value:function(e){var t=new li("wsOnClose"),n=e.id,o=e.e,s="sourceSocketID:".concat(n," currentSocketID:").concat(this._socketID," code:").concat(o.code," reason:").concat(o.reason),a=0;0!==this._onOpenTs&&(a=Date.now()-this._onOpenTs),t.setMessage(a).setCostTime(a).setMoreMessage(s).setCode(o.code).end(),He.l("".concat(this._n,"._onClose ").concat(s," onlineTime:").concat(a)),n===this._socketID&&(this._readyState=yc,a<1e3?this._channelModule.onReconnectFailed():this._channelModule.onClose())}},{key:"onError",value:function(e){var t=e.id,n=e.e,o="sourceSocketID:".concat(t," currentSocketID:").concat(this._socketID);new li("wsOnError").setMessage(n.errMsg||vt(n)).setMoreMessage(o).setLevel("error").end(),He.w("".concat(this._n,"._onError"),n,o),t===this._socketID&&(this._readyState="",this._channelModule.onError())}},{key:"onMessage",value:function(e){var t;try{t=JSON.parse(e.data)}catch(c){new li("jsonParseError").setMessage(e.data).end()}if(t&&t.head){var n=this._getRequestIDFromHead(t.head),o=t.body;if(!n.startsWith(V.NAME.TUIROOM_SVR)){var s=xt(t.head);o=uc(t.body,this._getResponseKeyMap(s))}if(He.d("".concat(this._n,".onMessage ret:").concat(JSON.stringify(o)," requestID:").concat(n," has:").concat(this._promiseMap.has(n))),this._setNextPingTs(),this._promiseMap.has(n)){var a=this._promiseMap.get(n),r=a.resolve,i=a.reject,u=a.timestamp;return this._promiseMap.delete(n),this._calcRTT(u),void(o.errorCode&&0!==o.errorCode?(this._channelModule.onErrorCodeNotZero(o),i(new Ei({code:o.errorCode,message:o.errorInfo||"",data:n.includes(Go)||n.includes(Ts)?{elements:o.elements,messageVersion:o.messageVersion,cloudCustomData:o.cloudCustomData}:void 0}))):r(Li(o)))}this._channelModule.onMessage({head:t.head,body:o})}}},{key:"_calcRTT",value:function(e){var t=Date.now()-e;this._channelModule.getModule(so).addRTT(t)}},{key:"_connect",value:function(){this._startTs=Date.now(),this._onOpenTs=0,this._socket=new gc(this),this._socketID=this._socket.getID(),this._readyState=Mc,He.l("".concat(this._n,"._connect isWorkerEnabled:").concat(this.getIsWorkerEnabled()," socketID:").concat(this._socketID," url:").concat(this.getURL())),new li("wsConnect").setMessage("socketID:".concat(this._socketID," url:").concat(this.getURL())).end()}},{key:"getURL",value:function(){this._channelModule.isDevMode()&&(this._canIUseBinaryFrame=!1);var e=bt();(se||ee&&"windows"===e||re)&&(this._canIUseBinaryFrame=!1);var t=-1;"ios"===e?t=Me||-1:"android"===e&&(t=Ie||-1);var n=this._channelModule.getModule(Kn),o=this._channelModule.getPlatform(),s=n.getSDKAppID(),a=n.getInstanceID(),r="sdkappid=".concat(s,"&instanceid=").concat(a,"&random=").concat(this._getRandom(),"&platform=").concat(o,"&host=").concat(e,"&version=").concat(t);return this._canIUseBinaryFrame?"".concat(this._url,"/binfo?").concat(r):"".concat(this._url,"/info?").concat(r)}},{key:"_closeConnection",value:function(e){He.l("".concat(this._n,"._closeConnection socketID:").concat(this._socketID)),this._socket&&(this._socket.close(e),this._socketID=-1,this._socket=null,this._readyState=yc)}},{key:"_resend",value:function(){var e=this;if(He.l("".concat(this._n,"._resend reConnectFlag:").concat(this._reConnectFlag),"promiseMap.size:".concat(this._promiseMap.size," simpleRequestMap.size:").concat(this._simpleRequestMap.size)),this._promiseMap.size>0&&this._promiseMap.forEach((function(t,n){var o=t.uplinkData,s=t.resolve,a=t.reject;e._promiseMap.set(n,{resolve:s,reject:a,timestamp:Date.now(),uplinkData:o}),e._execute(n,o)})),this._simpleRequestMap.size>0){var t,n=D(this._simpleRequestMap);try{for(n.s();!(t=n.n()).done;){var o=v(t.value,2),s=o[0],a=o[1];this._execute(s,a)}}catch(r){n.e(r)}finally{n.f()}this._simpleRequestMap.clear()}}},{key:"send",value:function(e){var t=this;e.head.seq=this._getSequence(),e.head.reqtime=Math.floor(Date.now()/1e3);e.keyMap;var n=g(e,fc),o=this._getRequestIDFromHead(e.head),s=JSON.stringify(n);return new Promise((function(e,a){(t._promiseMap.set(o,{resolve:e,reject:a,timestamp:Date.now(),uplinkData:s}),He.d("".concat(t._n,".send uplinkData:").concat(JSON.stringify(n)," requestID:").concat(o," readyState:").concat(t._readyState)),t._readyState!==mc)?t._reConnect():(t._execute(o,s),t._channelModule.getModule(so).addRequestCount())}))}},{key:"simplySend",value:function(e){e.head.seq=this._getSequence(),e.head.reqtime=Math.floor(Date.now()/1e3);e.keyMap;var t=g(e,vc),n=this._getRequestIDFromHead(e.head),o=JSON.stringify(t);this._readyState!==mc?(this._simpleRequestMap.size0&&(clearInterval(this._timerForNotLoggedIn),this._timerForNotLoggedIn=-1),this._socketHandler.onCheckTimer(e)):this._socketHandler.onCheckTimer(1),this._checkNextPing())}},{key:"onErrorCodeNotZero",value:function(e){this.getModule(Zn).onErrorCodeNotZero(e)}},{key:"onMessage",value:function(e){this.getModule(Zn).onMessage(e)}},{key:"send",value:function(e){return this._socketHandler?this._previousState!==S.NET_STATE_CONNECTED&&e.head.servcmd.includes(Ws)?(this.reConnect(),this._sendLogViaHTTP(e)):this._socketHandler.send(e):Promise.reject()}},{key:"_sendLogViaHTTP",value:function(e){var t=V.HOST.CURRENT.STAT;return new Promise((function(n,o){var s="".concat(t,"/v4/imopenstat/tim_web_report_v2?sdkappid=").concat(e.head.sdkappid,"&reqtime=").concat(Date.now()),a=JSON.stringify(e.body),r="application/x-www-form-urlencoded;charset=UTF-8";if(ue)le.request({url:s,data:a,method:"POST",timeout:3e3,header:{"content-type":r},success:function(){n()},fail:function(){o(new Ei({code:Lr}))}});else{var i=new XMLHttpRequest,u=setTimeout((function(){i.abort(),o(new Ei({code:Er}))}),3e3);i.onreadystatechange=function(){4===i.readyState&&(clearTimeout(u),200===i.status||304===i.status?n():o(new Ei({code:Lr})))},i.open("POST",s,!0),i.setRequestHeader("Content-type",r),i.send(a)}}))}},{key:"simplySend",value:function(e){return this._socketHandler?this._socketHandler.simplySend(e):Promise.reject()}},{key:"onOpen",value:function(){this._ping()}},{key:"onClose",value:function(){this._socketHandler&&(this._socketHandler.getReconnectFlag()&&this._emitNetStateChangeEvent(S.NET_STATE_DISCONNECTED));this.reConnect()}},{key:"onError",value:function(){ue&&!re&&this.outputWarning("DomainNameInMP"),this._emitNetStateChangeEvent(S.NET_STATE_DISCONNECTED)}},{key:"getKeyMap",value:function(e){return this.getModule(Zn).getKeyMap(e)}},{key:"_onAppHide",value:function(){this._isAppShowing=!1}},{key:"_onAppShow",value:function(){this._isAppShowing=!0}},{key:"onRequestTimeout",value:function(e){}},{key:"onReconnected",value:function(){He.l("".concat(this._n,".onReconnected")),this._m.restartTimer(),this.getModule(Zn).onReconnected(),this._emitNetStateChangeEvent(S.NET_STATE_CONNECTED)}},{key:"onReconnectFailed",value:function(){He.l("".concat(this._n,".onReconnectFailed")),this._emitNetStateChangeEvent(S.NET_STATE_DISCONNECTED)}},{key:"setIsWorkerEnabled",value:function(e){this._socketHandler&&this._socketHandler.setIsWorkerEnabled(!1)}},{key:"offline",value:function(){this._emitNetStateChangeEvent(S.NET_STATE_DISCONNECTED)}},{key:"reConnect",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=!1;this._socketHandler&&(t=this._socketHandler.getReconnectFlag());var n="forcedFlag:".concat(e," fatalErrorFlag:").concat(this._fatalErrorFlag," previousState:").concat(this._previousState," reconnectFlag:").concat(t);if(He.l("".concat(this._n,".reConnect ").concat(n)),!this._fatalErrorFlag&&this._socketHandler){if(!0===e)this._socketHandler.forcedReconnect();else{if(this._previousState===S.NET_STATE_CONNECTING&&t)return;this._socketHandler.forcedReconnect()}this._emitNetStateChangeEvent(S.NET_STATE_CONNECTING)}}},{key:"_emitNetStateChangeEvent",value:function(e){this._previousState!==e&&(He.l("".concat(this._n,"._emitNetStateChangeEvent from ").concat(this._previousState," to ").concat(e)),this._previousState=e,this.emitOuterEvent(k.NET_STATE_CHANGE,{state:e}))}},{key:"_ping",value:function(){var e=this;if(!0!==this._probing){this._probing=!0;var t=this.getModule(Zn).getProtocolData({protocolName:js});this.send(t).then((function(){e._probing=!1})).catch((function(t){if(He.w("".concat(e._n,"._ping failed. error:"),t),e._probing=!1,t&&60002===t.code)return new li("error").setMessage("code:".concat(t.code," message:").concat(t.message)).setNetworkType(e.getModule(Yn).getNetworkType()).end(),e._fatalErrorFlag=!0,void e._emitNetStateChangeEvent(S.NET_STATE_DISCONNECTED);e.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];He.l("".concat(e._n,"._ping failed. probe network, isAppShowing:").concat(e._isAppShowing," online:").concat(o," networkType:").concat(s)),o?e.reConnect():e._emitNetStateChangeEvent(S.NET_STATE_DISCONNECTED)}))}))}}},{key:"_checkNextPing",value:function(){this._socketHandler&&(this._socketHandler.isConnected()&&Date.now()>=this._socketHandler.getNextPingTs()&&this._ping())}},{key:"dealloc",value:function(){this._socketHandler&&(this._socketHandler.close(),this._socketHandler=null),this._timerForNotLoggedIn>-1&&clearInterval(this._timerForNotLoggedIn)}},{key:"onRestApiKickedOut",value:function(){this._socketHandler&&(this._socketHandler.close(),this.reConnect(!0))}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._previousState=S.NET_STATE_CONNECTED,this._probing=!1,this._fatalErrorFlag=!1,this._timerForNotLoggedIn=setInterval(this.onCheckTimer.bind(this),1e3)}}]),n}(po),Tc=["a2","tinyid"],Dc=["a2","tinyid"],kc=function(){function e(t){o(this,e),this._n="ProtocolHandler",this._sessionModule=t,this._configMap=new Map,this._fillConfigMap()}return a(e,[{key:"_fillConfigMap",value:function(){this._configMap.clear();var e=this._sessionModule.genCommonHead(),n=this._sessionModule.genCosSpecifiedHead(),o=this._sessionModule.genSSOReportHead(),s=this._sessionModule.isIntl();this._configMap.set(go,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.LOGIN)}),body:{state:"Online",isWebUniapp:0,deviceBrand:0},keyMap:{request:{deviceBrand:"InstType"},response:{InstId:"instanceID",HelloInterval:"helloInterval"}}}}(e)),this._configMap.set(ho,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.LOGOUT)}),body:{type:0},keyMap:{request:{type:"wslogout_type"}}}}(e)),this._configMap.set(_o,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.HELLO)}),body:{isWebUniapp:0},keyMap:{response:{NewInstInfo:"newInstanceInfo"}}}}(e)),this._configMap.set(fo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.STAT_SERVICE,".").concat(V.CMD.KICK_OTHER)}),body:{}}}(e)),this._configMap.set(Bs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_COS_SIGN,".").concat(V.CMD.COS_SIGN)}),body:{cmd:"open_im_cos_svc",subCmd:"get_cos_token",duration:300,version:2},keyMap:{request:{userSig:"usersig",subCmd:"sub_cmd",cmd:"cmd",duration:"duration",version:"version"},response:{expired_time:"expiredTime",bucket_name:"bucketName",session_token:"sessionToken",tmp_secret_id:"secretId",tmp_secret_key:"secretKey"}}}}(n)),this._configMap.set(Hs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.CUSTOM_UPLOAD,".").concat(V.CMD.COS_PRE_SIG)}),body:{fileType:void 0,fileName:void 0,uploadMethod:0,duration:900},keyMap:{request:{userSig:"usersig",fileType:"file_type",fileName:"file_name",uploadMethod:"upload_method"},response:{expired_time:"expiredTime",request_id:"requestId",head_url:"headUrl",upload_url:"uploadUrl",download_url:"downloadUrl",ci_url:"ciUrl",snapshot_url:"requestSnapshotUrl"}}}}(n)),this._configMap.set(Ks,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.CUSTOM_UPLOAD,".").concat(V.CMD.VIDEO_COVER)}),body:{version:1,platform:void 0,coverName:void 0,requestSnapshotUrl:void 0},keyMap:{request:{version:"version",platform:"platform",coverName:"cover_name",requestSnapshotUrl:"snapshot_url"},response:{error_code:"errorCode",error_msg:"errorInfo",download_url:"snapshotUrl"}}}}(n)),this._configMap.set(ta,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_CONFIG_MANAGER,".").concat(V.CMD.FETCH_COMMERCIAL_CONFIG)}),body:{SDKAppID:0},keyMap:{request:{SDKAppID:"uint32_sdkappid"},response:{int32_error_code:"errorCode",str_error_message:"errorMessage",str_purchase_bits:"purchaseBits",uint32_expired_time:"expiredTime"}}}}(e)),this._configMap.set(na,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_CONFIG_MANAGER,".").concat(V.CMD.PUSHED_COMMERCIAL_CONFIG)}),body:{},keyMap:{response:{int32_error_code:"errorCode",str_error_message:"errorMessage",str_purchase_bits:"purchaseBits",uint32_expired_time:"expiredTime"}}}}(e)),this._configMap.set($s,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_CONFIG_MANAGER,".").concat(V.CMD.FETCH_CLOUD_CONTROL_CONFIG)}),body:{SDKAppID:0,version:0},keyMap:{request:{SDKAppID:"uint32_sdkappid",version:"uint64_version"},response:{int32_error_code:"errorCode",str_error_message:"errorMessage",str_json_config:"cloudControlConfig",uint32_expired_time:"expiredTime",uint32_sdkappid:"SDKAppID",uint64_version:"version"}}}}(e)),this._configMap.set(ea,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_CONFIG_MANAGER,".").concat(V.CMD.PUSHED_CLOUD_CONTROL_CONFIG)}),body:{},keyMap:{response:{int32_error_code:"errorCode",str_error_message:"errorMessage",str_json_config:"cloudControlConfig",uint32_expired_time:"expiredTime",uint32_sdkappid:"SDKAppID",uint64_version:"version"}}}}(e)),this._configMap.set(oa,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OVERLOAD_PUSH,".").concat(V.CMD.OVERLOAD_NOTIFY)}),body:{},keyMap:{response:{OverLoadServCmd:"overloadCommand",DelaySecs:"waitingTime"}}}}(e)),this._configMap.set(vo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.GET_MESSAGES)}),body:{cookie:"",syncFlag:0,needAbstract:1,isOnlineSync:0,needSignaling:1},keyMap:{request:{fromAccount:"From_Account",toAccount:"To_Account",from:"From_Account",to:"To_Account",time:"MsgTimeStamp",sequence:"MsgSeq",random:"MsgRandom",elements:"MsgBody"},response:{MsgList:"messageList",SyncFlag:"syncFlag",To_Account:"to",From_Account:"from",ClientSeq:"clientSequence",MsgSeq:"sequence",NoticeSeq:"noticeSequence",NotifySeq:"notifySequence",MsgRandom:"random",MsgTimeStamp:"time",MsgContent:"content",ToGroupId:"to",MsgKey:"messageKey",GroupTips:"groupTips",MsgBody:"elements",MsgType:"type",C2CRemainingUnreadCount:"C2CRemainingUnreadList",C2CPairUnreadCount:"C2CPairUnreadList"}}}}(e)),s||(this._configMap.set(mo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.BIG_DATA_HALLWAY_AUTH_KEY)}),body:{}}}(e)),this._configMap.set(_a,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_MSG_AUDIT_MGR,".").concat(V.CMD.GET_RPOFANITY_LIST)}),body:{version:0,deviceID:"",startIndex:void 0},keyMap:{request:{version:"uint64_version",deviceID:"str_device_id",startIndex:"uint64_start_index"},response:{msg_cmd_error_code:"errorInfo",str_err_msg:"errorMessage",uint32_code:"errorCode",msg_scene_ctl_config:"filterConfig",uint64_c2c_custom_msg_flag:"c2c_custom_message",uint64_c2c_text_msg_flag:"c2c_text_message",uint64_group_custom_msg_flag:"group_custom_message",uint64_group_text_msg_flag:"group_text_message",uint64_group_info_flag:"group_profile",uint64_group_member_info_flag:"group_member_profile",uint64_relation_chain_flag:"sns",uint64_user_info_flag:"user_profile",rpt_msg_dirty_word:"lexicon",str_dirty_word:"profanity",str_replaced_content:"replacement",uint64_filter_type:"filterType",uint64_id:"id",uint64_word_type:"profanityType",uint64_complete_flag:"completeFlag",uint64_next_start_index:"nextStartIndex",uint64_version:"version",uint64_expired_time:"expiredTime"}}}}(e))),this._configMap.set(Mo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.SEND_MESSAGE)}),body:{fromAccount:"",toAccount:"",msgSeq:0,msgRandom:0,msgBody:[],cloudCustomData:void 0,nick:"",avatar:"",msgLifeTime:void 0,offlinePushInfo:{pushFlag:0,title:"",desc:"",ext:"",apnsInfo:{badgeMode:0,isVoipPush:void 0},androidInfo:{OPPOChannelID:""}},messageControlInfo:void 0,clientTime:void 0,needReadReceipt:0,isSupportExtension:0},keyMap:{request:{fromAccount:"From_Account",toAccount:"To_Account",msgTimeStamp:"MsgTimeStamp",msgSeq:"MsgSeq",msgRandom:"MsgRandom",msgBody:"MsgBody",count:"MaxCnt",lastMessageTime:"LastMsgTime",messageKey:"MsgKey",peerAccount:"Peer_Account",data:"Data",description:"Desc",extension:"Ext",type:"MsgType",content:"MsgContent",sizeType:"Type",uuid:"UUID",url:"",imageUrl:"URL",fileUrl:"Url",remoteAudioUrl:"Url",remoteVideoUrl:"VideoUrl",thumbUUID:"ThumbUUID",videoUUID:"VideoUUID",videoUrl:"",downloadFlag:"Download_Flag",nick:"From_AccountNick",avatar:"From_AccountHeadurl",from:"From_Account",time:"MsgTimeStamp",messageRandom:"MsgRandom",messageSequence:"MsgSeq",elements:"MsgBody",clientSequence:"ClientSeq",payload:"MsgContent",messageList:"MsgList",messageNumber:"MsgNum",abstractList:"AbstractList",messageBody:"MsgBody",needReadReceipt:"IsNeedReadReceipt"}}}}(e)),this._configMap.set(yo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.SEND_GROUP_MESSAGE)}),body:{fromAccount:"",groupID:"",random:0,clientSequence:0,priority:"",msgBody:[],cloudCustomData:void 0,onlineOnlyFlag:0,offlinePushInfo:{pushFlag:0,title:"",desc:"",ext:"",apnsInfo:{badgeMode:0,isVoipPush:void 0},androidInfo:{OPPOChannelID:""}},groupAtInfo:[],messageControlInfo:void 0,clientTime:void 0,needReadReceipt:0,topicID:void 0,receiverList:void 0,isSupportExtension:0},keyMap:{request:{to:"GroupId",extension:"Ext",data:"Data",description:"Desc",random:"Random",sequence:"ReqMsgSeq",count:"ReqMsgNumber",type:"MsgType",priority:"MsgPriority",content:"MsgContent",elements:"MsgBody",sizeType:"Type",uuid:"UUID",url:"",imageUrl:"URL",fileUrl:"Url",remoteAudioUrl:"Url",remoteVideoUrl:"VideoUrl",thumbUUID:"ThumbUUID",videoUUID:"VideoUUID",videoUrl:"",downloadFlag:"Download_Flag",clientSequence:"ClientSeq",from:"From_Account",time:"MsgTimeStamp",messageRandom:"MsgRandom",messageSequence:"MsgSeq",payload:"MsgContent",messageList:"MsgList",messageNumber:"MsgNum",abstractList:"AbstractList",messageBody:"MsgBody",needReadReceipt:"NeedReadReceipt",receiverList:"To_Account"},response:{MsgTime:"time",MsgSeq:"sequence"}}}}(e)),this._configMap.set(So,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.REVOKE_C2C_MESSAGE)}),body:{msgInfo:{fromAccount:"",toAccount:"",msgTimeStamp:0,msgSeq:0,msgRandom:0}},keyMap:{request:{msgInfo:"MsgInfo",msgTimeStamp:"MsgTimeStamp",msgSeq:"MsgSeq",msgRandom:"MsgRandom"}}}}(e)),this._configMap.set(cs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.REVOKE_GROUP_MESSAGE)}),body:{groupID:"",msgSeqList:void 0,topicID:""},keyMap:{request:{msgSeqList:"MsgSeqList",msgSeq:"MsgSeq"}}}}(e)),this._configMap.set(Ro,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.GET_C2C_ROAM_MESSAGES)}),body:{peerAccount:"",count:15,lastMessageTime:0,messageKey:"",withRecalledMessage:1,direction:0},keyMap:{request:{messageKey:"MsgKey",peerAccount:"Peer_Account",count:"MaxCnt",lastMessageTime:"LastMsgTime",withRecalledMessage:"WithRecalledMsg",direction:"GetDirection"},response:{LastMsgTime:"lastMessageTime",IsNeedReadReceipt:"needReadReceipt",IsPeerRead:"readReceiptSentByPeer"}}}}(e)),this._configMap.set(Go,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.MODIFY_C2C_MESSAGE)}),body:{from:"",to:"",sequence:0,random:0,time:0,version:0,elements:void 0,cloudCustomData:void 0},keyMap:{request:{sequence:"MsgSeq",random:"MsgRandom",time:"MsgTime",version:"MsgVersion",type:"MsgType",content:"MsgContent"}}}}(e)),this._configMap.set(ds,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_GROUP_ROAM_MESSAGES)}),body:{withRecalledMsg:1,groupID:"",count:15,sequence:"",topicID:void 0},keyMap:{request:{sequence:"ReqMsgSeq",count:"ReqMsgNumber",withRecalledMessage:"WithRecalledMsg"},response:{Random:"random",MsgTime:"time",MsgSeq:"sequence",ReqMsgSeq:"sequence",RspMsgList:"messageList",IsPlaceMsg:"isPlaceMessage",IsSystemMsg:"isSystemMessage",ToGroupId:"to",EnumFrom_AccountType:"fromAccountType",EnumTo_AccountType:"toAccountType",GroupCode:"groupCode",MsgPriority:"priority",MsgBody:"elements",MsgType:"type",MsgContent:"content",IsFinished:"complete",Download_Flag:"downloadFlag",ClientSeq:"clientSequence",ThumbUUID:"thumbUUID",VideoUUID:"videoUUID",ToTopicId:"topicID",InvisibleMsgSeq:"invisibleSequenceList"}}}}(e)),this._configMap.set(Lo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.SET_C2C_MESSAGE_READ)}),body:{C2CMsgReaded:void 0},keyMap:{request:{lastMessageTime:"LastedMsgTime"}}}}(e)),this._configMap.set(Eo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.SET_C2C_PEER_MUTE_NOTIFICATIONS)}),body:{userIDList:void 0,muteFlag:0},keyMap:{request:{userIDList:"Peer_Account",muteFlag:"Mute_Notifications"}}}}(e)),this._configMap.set(Ao,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.GET_C2C_PEER_MUTE_NOTIFICATIONS)}),body:{updateSequence:0},keyMap:{response:{MuteNotificationsList:"muteFlagList"}}}}(e)),this._configMap.set(ls,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.SET_GROUP_MESSAGE_READ)}),body:{groupID:void 0,messageReadSeq:void 0,topicID:void 0},keyMap:{request:{messageReadSeq:"MsgReadedSeq"}}}}(e)),this._configMap.set(ps,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.SET_ALL_MESSAGE_READ)}),body:{readAllC2CMessage:0,groupMessageReadInfoList:[]},keyMap:{request:{readAllC2CMessage:"C2CReadAllMsg",groupMessageReadInfoList:"GroupReadInfo",messageSequence:"MsgSeq"},response:{C2CReadAllMsg:"readAllC2CMessage",GroupReadInfoArray:"groupMessageReadInfoList"}}}}(e)),this._configMap.set(Oo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.DELETE_C2C_MESSAGE)}),body:{fromAccount:"",to:"",keyList:void 0},keyMap:{request:{keyList:"MsgKeyList"}}}}(e)),this._configMap.set(Cs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.DELETE_GROUP_MESSAGE)}),body:{groupID:"",deleter:"",keyList:void 0,topicID:void 0},keyMap:{request:{deleter:"Deleter_Account",keyList:"Seqs"}}}}(e)),this._configMap.set(fa,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_TRANSLATE,".").concat(V.CMD.TRANSLATE_TEXT)}),body:{sourceTextList:void 0,SDKAppID:0,from:0,source:"",target:""},keyMap:{request:{sourceTextList:"SourceText",SDKAppID:"SdkAppId",from:"FromAccount"},response:{TargetText:"translatedTextList",RequestId:"requestID",CmdErrorCode:"error",ErrorCode:"code",ErrorInfo:"message"}}}}(e)),this._configMap.set(Ts,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.MODIFY_GROUP_MESSAGE)}),body:{groupID:"",topicID:void 0,sequence:0,version:0,elements:void 0,cloudCustomData:void 0},keyMap:{request:{sequence:"MsgSeq",version:"MsgVersion",type:"MsgType",content:"MsgContent"}}}}(e)),this._configMap.set(gs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_READ_RECEIPT)}),body:{groupID:"",sequenceList:void 0},keyMap:{request:{sequence:"MsgSeq"}}}}(e)),this._configMap.set(_s,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.SEND_C2C_READ_RECEIPT)}),body:{peerAccount:"",messageInfoList:void 0},keyMap:{request:{peerAccount:"Peer_Account",messageInfoList:"C2CMsgInfo",fromAccount:"From_Account",toAccount:"To_Account",sequence:"MsgSeq",random:"MsgRandom",time:"MsgTime",clientTime:"MsgClientTime"}}}}(e)),this._configMap.set(hs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.SEND_READ_RECEIPT)}),body:{groupID:"",sequenceList:void 0},keyMap:{request:{sequenceList:"MsgSeqList",sequence:"MsgSeq"}}}}(e)),this._configMap.set(fs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_READ_RECEIPT_DETAIL)}),body:{groupID:"",sequence:void 0,flag:0,cursor:0,count:0},keyMap:{request:{sequence:"MsgSeq",count:"Num"},response:{ReadList:"readUserIDList",Read_Account:"userID",UnreadList:"unreadUserIDList",Unread_Account:"userID",IsFinish:"isCompleted"}}}}(e)),this._configMap.set(Po,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM_MSG_EXT,".").concat(V.CMD.MODIFY_C2C_MESSAGE_EXTENSIONS)}),body:{from:void 0,to:void 0,messageKey:void 0,operateType:void 0,extensionList:void 0}}}(e)),this._configMap.set(Uo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM_MSG_EXT,".").concat(V.CMD.GET_C2C_MESSAGE_EXTENSIONS)}),body:{from:void 0,to:void 0,messageKey:void 0,startSequence:void 0}}}(e)),this._configMap.set(As,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM_MSG_EXT,".").concat(V.CMD.MODIFY_GROUP_MESSAGE_EXTENSIONS)}),body:{groupID:void 0,topicID:void 0,messageSequence:void 0,operateType:void 0,extensionList:void 0}}}(e)),this._configMap.set(Rs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM_MSG_EXT,".").concat(V.CMD.GET_GROUP_MESSAGE_EXTENSIONS)}),body:{groupID:void 0,topicID:void 0,messageSequence:void 0,startSequence:void 0}}}(e)),this._configMap.set(No,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.GET_PEER_READ_TIME)}),body:{userIDList:void 0},keyMap:{request:{userIDList:"To_Account"},response:{ReadTime:"peerReadTimeList"}}}}(e)),this._configMap.set(wo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.GET_CONVERSATION_LIST)}),body:{fromAccount:void 0,count:0},keyMap:{request:{},response:{SessionItem:"conversations",ToAccount:"groupID",To_Account:"userID",UnreadMsgCount:"unreadCount",MsgGroupReadedSeq:"messageReadSeq",C2cPeerReadTime:"c2cPeerReadTime"}}}}(e)),this._configMap.set(bo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.PAGING_GET_CONVERSATION_LIST)}),body:{fromAccount:void 0,timeStamp:void 0,startIndex:void 0,pinnedTimeStamp:void 0,pinnedStartIndex:void 0,orderType:void 0,messageAssistFlag:4,assistFlag:15},keyMap:{request:{messageAssistFlag:"MsgAssistFlags",assistFlag:"AssistFlags",pinnedTimeStamp:"TopTimeStamp",pinnedStartIndex:"TopStartIndex"},response:{SessionItem:"conversations",ToAccount:"groupID",To_Account:"userID",UnreadMsgCount:"unreadCount",MsgGroupReadedSeq:"messageReadSeq",C2cPeerReadTime:"c2cPeerReadTime",LastMsgFlags:"lastMessageFlag",TopFlags:"isPinned",TopTimeStamp:"pinnedTimeStamp",TopStartIndex:"pinnedStartIndex",GroupId:"convGroupID"}}}}(e)),this._configMap.set(qo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.DELETE_CONVERSATION)}),body:{fromAccount:"",conversationList:void 0,clearHistoryMessage:void 0},keyMap:{request:{toGroupID:"ToGroupid",clearHistoryMessage:"ClearRamble",conversationList:"ContactItem"},response:{ResultItem:"resultList",ToGroupid:"toGroupID",ResultCode:"code",ResultInfo:"info"}}}}(e)),this._configMap.set(Fo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.CLEAR_HISTORY_MESSAGE)}),body:{fromAccount:"",toAccount:void 0,type:1,toGroupID:void 0},keyMap:{request:{toGroupID:"ToGroupid"}}}}(e)),this._configMap.set(xo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.PIN_CONVERSATION)}),body:{fromAccount:"",operationType:1,itemList:void 0},keyMap:{request:{itemList:"RecentContactItem"}}}}(e)),this._configMap.set(Vo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.DELETE_GROUP_AT_TIPS)}),body:{messageListToDelete:void 0},keyMap:{request:{messageListToDelete:"DelMsgList",messageSeq:"MsgSeq",messageRandom:"MsgRandom"}}}}(e)),this._configMap.set(Bo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.MARK_CONVERSATION)}),body:{fromAccount:"",itemList:void 0},keyMap:{request:{itemList:"MarkItem",operationType:"OptType",groupID:"ToGroupId"},response:{ToGroupId:"groupID",OptType:"operationType"}}}}(e)),this._configMap.set(Ho,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.MARK_CONVERSATION)}),body:{fromAccount:"",itemList:void 0},keyMap:{request:{itemList:"MarkItem",operationType:"OptType",groupID:"ToGroupId"},response:{ToGroupId:"groupID",OptType:"operationType"}}}}(e)),this._configMap.set(Ko,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.CREATE_CONVERSATION_GROUP)}),body:{fromAccount:"",itemList:void 0},keyMap:{request:{itemList:"GroupContactItem",groupID:"ToGroupId"},response:{GroupId:"convGroupID",ToGroupId:"groupID",OptType:"operationType"}}}}(e)),this._configMap.set(Wo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.DELETE_CONVERSATION_GROUP)}),body:{fromAccount:"",groupName:void 0},keyMap:{request:{},response:{GroupId:"convGroupID"}}}}(e)),this._configMap.set(jo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.UPDATE_CONVERSATION_GROUP)}),body:{fromAccount:"",updateType:void 0,updateGroup:void 0},keyMap:{request:{oldName:"OldGroupName",newName:"NewGroupName",groupID:"ToGroupId",operationType:"ContactOptType",groupName:"OldGroupName",updateItem:"ContactUpdateItem"},response:{ContactOptType:"operationType",ToGroupId:"groupID",GroupId:"convGroupID"}}}}(e)),this._configMap.set(Yo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.UPDATE_CONVERSATION_GROUP)}),body:{fromAccount:"",updateType:void 0,updateGroup:{groupName:void 0,updateGroupType:void 0,updateItem:void 0}},keyMap:{request:{},response:{}}}}(e)),this._configMap.set(zo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.UPDATE_CONVERSATION_GROUP)}),body:{fromAccount:"",updateType:void 0,updateGroup:void 0},keyMap:{request:{},response:{}}}}(e)),this._configMap.set(Jo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.RECENT_CONTACT,".").concat(V.CMD.GET_CONVERSATION_GROUP_LIST)}),body:{fromAccount:"",startTime:void 0,startIndex:void 0},keyMap:{request:{},response:{GroupId:"convGroupID",ToGroupId:"groupID",OptType:"operationType",CustomMark:"customData",ContactGroupId:"convGroupIDList"}}}}(e)),this._configMap.set(Io,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.PROFILE,".").concat(V.CMD.PORTRAIT_GET)}),body:{fromAccount:"",userItem:[]},keyMap:{request:{toAccount:"To_Account",standardSequence:"StandardSequence",customSequence:"CustomSequence"}}}}(e)),this._configMap.set(Co,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.PROFILE,".").concat(V.CMD.PORTRAIT_SET)}),body:{fromAccount:"",profileItem:[{tag:We.NICK,value:""},{tag:We.GENDER,value:""},{tag:We.ALLOWTYPE,value:""},{tag:We.AVATAR,value:""}]},keyMap:{request:{toAccount:"To_Account",standardSequence:"StandardSequence",customSequence:"CustomSequence"}}}}(e)),this._configMap.set(To,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.FRIEND,".").concat(V.CMD.GET_BLACKLIST)}),body:{fromAccount:"",startIndex:0,maxLimited:30,lastSequence:0},keyMap:{response:{CurruentSequence:"currentSequence"}}}}(e)),this._configMap.set(Do,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.FRIEND,".").concat(V.CMD.ADD_BLACKLIST)}),body:{fromAccount:"",toAccount:[]}}}(e)),this._configMap.set(ko,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.FRIEND,".").concat(V.CMD.DELETE_BLACKLIST)}),body:{fromAccount:"",toAccount:[]}}}(e)),this._configMap.set(ua,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.SET_SELF_STATUS)}),body:{customStatus:""},keyMap:{}}}(e)),this._configMap.set(ca,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.GET_USER_STATUS)}),body:{userIDList:void 0},keyMap:{response:{UserStatusList:"successUserList",ErrorList:"failureUserList",To_Account:"userID",Invalid_Account:"invalidUserID",Status:"statusType"}}}}(e)),this._configMap.set(la,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.SUBSCRIBE_USER_STATUS)}),body:{userIDList:void 0},keyMap:{response:{ErrorList:"failureUserList",To_Account:"userID",Invalid_Account:"invalidUserID"}}}}(e)),this._configMap.set(pa,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.UNSUBSCRIBE_USER_STATUS)}),body:{userIDList:void 0,unsubscribeAll:void 0},keyMap:{response:{ErrorList:"failureUserList",To_Account:"userID",Invalid_Account:"invalidUserID"}}}}(e)),this._configMap.set(Xo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_JOINED_GROUPS)}),body:{memberAccount:"",limit:void 0,offset:void 0,groupType:void 0,responseFilter:{groupBaseInfoFilter:void 0,selfInfoFilter:void 0},isSupportTopic:0},keyMap:{request:{memberAccount:"Member_Account"},response:{GroupIdList:"groups",NoUnreadSeqList:"excludedUnreadSequenceList",MsgSeq:"readedSequence",LastRecallTime:"_lastRevokedTime"}}}}(e)),this._configMap.set(Qo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_GROUP_INFO)}),body:{groupIDList:void 0,responseFilter:{groupBaseInfoFilter:["Type","Name","Introduction","Notification","FaceUrl","Owner_Account","CreateTime","InfoSeq","LastInfoTime","LastMsgTime","MemberNum","MaxMemberNum","ApplyJoinOption","NextMsgSeq","ShutUpAllMember"],groupCustomFieldFilter:void 0,memberInfoFilter:void 0,memberCustomFieldFilter:void 0}},keyMap:{request:{groupIDList:"GroupIdList",groupCustomField:"AppDefinedData",memberCustomField:"AppMemberDefinedData",groupCustomFieldFilter:"AppDefinedDataFilter_Group",memberCustomFieldFilter:"AppDefinedDataFilter_GroupMember"},response:{GroupIdList:"groups",AppDefinedData:"groupCustomField",AppMemberDefinedData:"memberCustomField",AppDefinedDataFilter_Group:"groupCustomFieldFilter",AppDefinedDataFilter_GroupMember:"memberCustomFieldFilter",InfoSeq:"infoSequence",MemberList:"members",GroupInfo:"groups",ShutUpUntil:"muteUntil",ShutUpAllMember:"muteAllMembers"}}}}(e)),this._configMap.set(Zo,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.CREATE_GROUP)}),body:{type:void 0,name:void 0,groupID:void 0,ownerID:void 0,introduction:void 0,notification:void 0,maxMemberNum:void 0,joinOption:void 0,memberList:void 0,groupCustomField:void 0,memberCustomField:void 0,webPushFlag:1,avatar:"",isSupportTopic:void 0,inviteOption:void 0},keyMap:{request:{ownerID:"Owner_Account",userID:"Member_Account",avatar:"FaceUrl",maxMemberNum:"MaxMemberCount",joinOption:"ApplyJoinOption",groupCustomField:"AppDefinedData",memberCustomField:"AppMemberDefinedData",inviteOption:"InviteJoinOption"},response:{HugeGroupFlag:"avChatRoomFlag",OverJoinedGroupLimit_Account:"overLimitUserIDList"}}}}(e)),this._configMap.set($o,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.DESTROY_GROUP)}),body:{groupID:void 0}}}(e)),this._configMap.set(es,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.MODIFY_GROUP_INFO)}),body:{groupID:void 0,name:void 0,introduction:void 0,notification:void 0,avatar:void 0,joinOption:void 0,groupCustomField:void 0,muteAllMembers:void 0,inviteOption:void 0},keyMap:{request:{groupCustomField:"AppDefinedData",muteAllMembers:"ShutUpAllMember",joinOption:"ApplyJoinOption",avatar:"FaceUrl",inviteOption:"InviteJoinOption"},response:{AppDefinedData:"groupCustomField",ShutUpAllMember:"muteAllMembers"}}}}(e)),this._configMap.set(ts,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.APPLY_JOIN_GROUP)}),body:{groupID:void 0,applyMessage:void 0,userDefinedField:void 0,webPushFlag:1,historyMessageFlag:void 0},keyMap:{request:{applyMessage:"ApplyMsg",historyMessageFlag:"HugeGroupHistoryMsgFlag"},response:{HugeGroupFlag:"avChatRoomFlag",AVChatRoomKey:"avChatRoomKey",RspMsgList:"messageList",ToGroupId:"to"}}}}(e)),this._configMap.set(ns,function(e){e.a2,e.tinyid;return{head:t(t({},g(e,Tc)),{},{servcmd:"".concat(V.NAME.BIG_GROUP_NO_AUTH,".").concat(V.CMD.APPLY_JOIN_GROUP)}),body:{groupID:void 0,applyMessage:void 0,userDefinedField:void 0,webPushFlag:1},keyMap:{request:{applyMessage:"ApplyMsg"},response:{HugeGroupFlag:"avChatRoomFlag"}}}}(e)),this._configMap.set(os,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.QUIT_GROUP)}),body:{groupID:void 0}}}(e)),this._configMap.set(ss,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.SEARCH_GROUP_BY_ID)}),body:{groupIDList:void 0,responseFilter:{groupBasePublicInfoFilter:["Type","Name","Introduction","Notification","FaceUrl","CreateTime","Owner_Account","LastInfoTime","LastMsgTime","NextMsgSeq","MemberNum","MaxMemberNum","ApplyJoinOption","InviteJoinOption"]}},keyMap:{response:{}}}}(e)),this._configMap.set(as,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.CHANGE_GROUP_OWNER)}),body:{groupID:void 0,newOwnerID:void 0},keyMap:{request:{newOwnerID:"NewOwner_Account"}}}}(e)),this._configMap.set(rs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.HANDLE_APPLY_JOIN_GROUP)}),body:{groupID:void 0,applicant:void 0,handleAction:void 0,handleMessage:void 0,authentication:void 0,messageKey:void 0,userDefinedField:void 0},keyMap:{request:{applicant:"Applicant_Account",handleAction:"HandleMsg",handleMessage:"ApprovalMsg",messageKey:"MsgKey"}}}}(e)),this._configMap.set(is,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.HANDLE_INVITE_JOIN_GROUP)}),body:{groupID:void 0,applicant:void 0,invitee:void 0,handleAction:void 0,handleMessage:void 0,authentication:void 0,userDefinedField:void 0},keyMap:{request:{applicant:"Applicant_Account",invitee:"Invited_Account",handleAction:"HandleMsg",handleMessage:"ApprovalMsg"}}}}(e)),this._configMap.set(us,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.HANDLE_GROUP_INVITATION)}),body:{groupID:void 0,inviter:void 0,handleAction:void 0,handleMessage:void 0,authentication:void 0,messageKey:void 0,userDefinedField:void 0},keyMap:{request:{inviter:"Inviter_Account",handleAction:"HandleMsg",handleMessage:"ApprovalMsg",messageKey:"MsgKey"}}}}(e)),this._configMap.set(vs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_GROUP_APPLICATION)}),body:{startTime:void 0,limit:void 0,handleAccount:void 0},keyMap:{request:{handleAccount:"Handle_Account"},response:{To_Account:"userID"}}}}(e)),this._configMap.set(ms,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.DELETE_GROUP_SYSTEM_MESSAGE)}),body:{messageListToDelete:void 0},keyMap:{request:{messageListToDelete:"DelMsgList",messageSeq:"MsgSeq",messageRandom:"MsgRandom"}}}}(e)),this._configMap.set(Ms,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.BIG_GROUP_LONG_POLLING,".").concat(V.CMD.AVCHATROOM_LONG_POLL)}),body:{USP:1,startSeq:1,startBroadcastSeq:void 0,holdTime:90,key:void 0,simplifiedMessage:void 0},keyMap:{request:{USP:"USP"},response:{ToGroupId:"groupID",RspBroadcastMsgList:"broadcastMessageList",IsSystemMsg:"isSystemMessage"}}}}(e)),this._configMap.set(ys,function(e){e.a2,e.tinyid;return{head:t(t({},g(e,Dc)),{},{servcmd:"".concat(V.NAME.BIG_GROUP_LONG_POLLING_NO_AUTH,".").concat(V.CMD.AVCHATROOM_LONG_POLL)}),body:{USP:1,startSeq:1,holdTime:90,key:void 0,simplifiedMessage:void 0},keyMap:{request:{USP:"USP"},response:{ToGroupId:"groupID",RspBroadcastMsgList:"broadcastMessageList",IsSystemMsg:"isSystemMessage"}}}}(e)),this._configMap.set(Is,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_ONLINE_MEMBER_NUM)}),body:{groupID:void 0}}}(e)),this._configMap.set(Ds,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.SET_GROUP_ATTRIBUTES)}),body:{groupID:void 0,groupAttributeList:void 0,mainSequence:void 0,avChatRoomKey:void 0,attributeControl:["RaceConflict"]},keyMap:{request:{key:"key",value:"value"}}}}(e)),this._configMap.set(ks,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.MODIFY_GROUP_ATTRIBUTES)}),body:{groupID:void 0,groupAttributeList:void 0,mainSequence:void 0,avChatRoomKey:void 0,attributeControl:["RaceConflict"]},keyMap:{request:{key:"key",value:"value"}}}}(e)),this._configMap.set(Ss,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.DELETE_GROUP_ATTRIBUTES)}),body:{groupID:void 0,groupAttributeList:void 0,mainSequence:void 0,avChatRoomKey:void 0,attributeControl:["RaceConflict"]},keyMap:{request:{key:"key"}}}}(e)),this._configMap.set(Ls,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.CLEAR_GROUP_ATTRIBUTES)}),body:{groupID:void 0,mainSequence:void 0,avChatRoomKey:void 0,attributeControl:["RaceConflict"]}}}(e)),this._configMap.set(Es,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP_ATTR,".").concat(V.CMD.GET_GROUP_ATTRIBUTES)}),body:{groupID:void 0,avChatRoomKey:void 0,groupType:1},keyMap:{request:{avChatRoomKey:"Key",groupType:"GroupType"}}}}(e)),this._configMap.set(Ns,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_GROUP_NOTIFY)}),body:{notifyType:1,groupID:"",beginTime:0,endTime:0,limit:20},keyMap:{request:{},response:{NextMsgTime:"nextRevokedTime",NotifyMsgList:"notifyList"}}}}(e)),this._configMap.set(Os,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.UPDATE_GROUP_COUNTER)}),body:{groupID:void 0,counterList:void 0,avChatRoomKey:void 0,mode:void 0},keyMap:{request:{counterList:"GroupCounter"}}}}(e)),this._configMap.set(Gs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_GROUP_COUNTER)}),body:{groupID:void 0,keyList:[],avChatRoomKey:void 0},keyMap:{request:{keyList:"GroupCounterKeys"}}}}(e)),this._configMap.set(sa,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP_COMMUNITY,".").concat(V.CMD.CREATE_TOPIC)}),body:{groupID:void 0,topicName:void 0,avatar:void 0,customData:void 0,topicID:void 0,notification:void 0,introduction:void 0},keyMap:{request:{avatar:"FaceUrl"}}}}(e)),this._configMap.set(aa,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP_COMMUNITY,".").concat(V.CMD.DELETE_TOPIC)}),body:{groupID:void 0,topicIDList:void 0},keyMap:{request:{topicIDList:"TopicIdList"},response:{DestroyResultItem:"resultList"}}}}(e)),this._configMap.set(ra,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP_COMMUNITY,".").concat(V.CMD.UPDATE_TOPIC_PROFILE)}),body:{groupID:void 0,topicID:void 0,avatar:void 0,customData:void 0,notification:void 0,introduction:void 0,muteAllMembers:void 0,topicName:void 0},keyMap:{request:{avatar:"FaceUrl",muteAllMembers:"ShutUpAllMember"}}}}(e)),this._configMap.set(ia,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP_COMMUNITY,".").concat(V.CMD.GET_TOPIC_LIST)}),body:{groupID:void 0,topicIDList:void 0,MemberInfoFilter:["NoUnreadSeqList"]},keyMap:{request:{topicIDList:"TopicIdList"},response:{TopicAndSelfInfo:"topicInfoList",TopicInfo:"topic",GroupID:"groupID",ShutUpTime:"muteTime",ShutUpAllFlag:"muteAllMembers",LastMsgTime:"lastMessageTime",MsgSeq:"readedSequence",LastMsgSeq:"sequence",NoUnreadSeqList:"excludedUnreadSequenceList"}}}}(e)),this._configMap.set(Ps,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_GROUP_MEMBER_LIST)}),body:{groupID:void 0,limit:0,offset:void 0,next:void 0,memberRoleFilter:void 0,memberInfoFilter:["Role","NameCard","ShutUpUntil","JoinTime"],memberCustomFieldFilter:void 0},keyMap:{request:{memberCustomFieldFilter:"AppDefinedDataFilter_GroupMember"},response:{AppMemberDefinedData:"memberCustomField",AppDefinedDataFilter_GroupMember:"memberCustomFieldFilter",MemberList:"members",ShutUpUntil:"muteUntil"}}}}(e)),this._configMap.set(Us,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP_AVCHATROOM,".").concat(V.CMD.GET_AVCHATROOM_MEMBER_LIST)}),body:{groupID:void 0,offset:void 0,filter:void 0},keyMap:{request:{offset:"Timestamp",filter:"Mark"},response:{NextTimestamp:"offset"}}}}(e)),this._configMap.set(bs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.GET_GROUP_MEMBER_INFO)}),body:{groupID:void 0,userIDList:void 0,memberInfoFilter:void 0,memberCustomFieldFilter:void 0},keyMap:{request:{userIDList:"Member_List_Account",memberCustomFieldFilter:"AppDefinedDataFilter_GroupMember"},response:{MemberList:"members",ShutUpUntil:"muteUntil",AppDefinedDataFilter_GroupMember:"memberCustomFieldFilter",AppMemberDefinedData:"memberCustomField"}}}}(e)),this._configMap.set(ws,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.ADD_GROUP_MEMBER)}),body:{groupID:void 0,silence:void 0,userIDList:void 0},keyMap:{request:{userID:"Member_Account",userIDList:"MemberList"},response:{MemberList:"members"}}}}(e)),this._configMap.set(qs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.DELETE_GROUP_MEMBER)}),body:{groupID:void 0,userIDList:void 0,reason:void 0},keyMap:{request:{userIDList:"MemberToDel_Account"}}}}(e)),this._configMap.set(Fs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.BAN_AVCHATROOM_MEMBER)}),body:{groupID:void 0,userIDList:void 0,duration:void 0,reason:""},keyMap:{request:{userIDList:"Members_Account",duration:"Duration",reason:"Description"}}}}(e)),this._configMap.set(xs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP,".").concat(V.CMD.MODIFY_GROUP_MEMBER_INFO)}),body:{groupID:void 0,topicID:void 0,userID:void 0,messageRemindType:void 0,nameCard:void 0,role:void 0,memberCustomField:void 0,muteTime:void 0},keyMap:{request:{userID:"Member_Account",memberCustomField:"AppMemberDefinedData",muteTime:"ShutUpTime",messageRemindType:"MsgFlag"}}}}(e)),this._configMap.set(Vs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.GROUP_AVCHATROOM,".").concat(V.CMD.MARK_AVCHATROOM_MEMBER_INFO)}),body:{groupID:void 0,operationType:1,memberList:[]},keyMap:{request:{operationType:"CommandType",memberList:"MemberList",markType:"Marks",userID:"Member_Account"},response:{CommandType:"operationType",Marks:"markType",Member_Account:"userID"}}}}(e)),this._configMap.set(Ws,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STAT,".").concat(V.CMD.TIM_WEB_REPORT_V2)}),body:{header:{},event:[],quality:[]},keyMap:{request:{SDKType:"sdk_type",SDKVersion:"sdk_version",deviceType:"device_type",platform:"platform",instanceID:"instance_id",traceID:"trace_id",SDKAppID:"sdk_app_id",userID:"user_id",tinyID:"tiny_id",extension:"extension",timestamp:"timestamp",networkType:"network_type",eventType:"event_type",code:"error_code",message:"error_message",moreMessage:"more_message",duplicate:"duplicate",costTime:"cost_time",level:"level",qualityType:"quality_type",reportIndex:"report_index",wholePeriod:"whole_period",totalCount:"total_count",rttCount:"success_count_business",successRateOfRequest:"percent_business",countLessThan1Second:"success_count_business",percentOfCountLessThan1Second:"percent_business",countLessThan3Second:"success_count_platform",percentOfCountLessThan3Second:"percent_platform",successCountOfBusiness:"success_count_business",successRateOfBusiness:"percent_business",successCountOfPlatform:"success_count_platform",successRateOfPlatform:"percent_platform",successCountOfMessageReceived:"success_count_business",successRateOfMessageReceived:"percent_business",avgRTT:"average_value",avgDelay:"average_value",avgValue:"average_value",uiPlatform:"ui_platform"}}}}(o)),this._configMap.set(js,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.HEARTBEAT,".").concat(V.CMD.ALIVE)}),body:{}}}(e)),this._configMap.set(Ys,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_PUSH,".").concat(V.CMD.MESSAGE_PUSH)}),body:{},keyMap:{response:{C2cMsgArray:"C2CMessageArray",GroupMsgArray:"groupMessageArray",GroupTips:"groupTips",C2cNotifyMsgArray:"C2CNotifyMessageArray",C2cMsgInfo:"C2CReadReceiptArray",ClientSeq:"clientSequence",MsgPriority:"priority",NoticeSeq:"noticeSequence",MsgContent:"content",MsgType:"type",MsgBody:"elements",ToGroupId:"to",Desc:"description",Ext:"extension",IsSyncMsg:"isSyncMessage",Flag:"needSync",NeedAck:"needAck",PendencyAdd_Account:"userID",ProfileImNick:"nick",PendencyType:"applicationType",C2CReadAllMsg:"readAllC2CMessage",IsNeedReadReceipt:"needReadReceipt",Status:"statusType"}}}}(e)),this._configMap.set(zs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_PUSH,".").concat(V.CMD.MULTI_MESSAGE_PUSH)}),body:{},keyMap:{response:{GroupMsgArray:"groupMessageArray",GroupTips:"groupTips",ClientSeq:"clientSequence",MsgPriority:"priority",NoticeSeq:"noticeSequence",MsgContent:"content",MsgType:"type",MsgBody:"elements",ToGroupId:"to",Desc:"description",Ext:"extension",IsSyncMsg:"isSyncMessage",Flag:"needSync",NeedAck:"needAck",PendencyType:"applicationType"}}}}(e)),this._configMap.set(Js,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.OPEN_IM,".").concat(V.CMD.MESSAGE_PUSH_ACK)}),body:{sessionData:void 0},keyMap:{request:{sessionData:"SessionData"}}}}(e)),this._configMap.set(Xs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.STATUS_FORCE_OFFLINE)}),body:{},keyMap:{response:{C2cNotifyMsgArray:"C2CNotifyMessageArray",NoticeSeq:"noticeSequence",KickoutMsgNotify:"kickoutMsgNotify",NewInstInfo:"newInstanceInfo"}}}}(e)),this._configMap.set(Zs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_LONG_MESSAGE,".").concat(V.CMD.DOWNLOAD_MERGER_MESSAGE)}),body:{downloadKey:""},keyMap:{response:{Data:"data",Desc:"description",Ext:"extension",Download_Flag:"downloadFlag",ThumbUUID:"thumbUUID",VideoUUID:"videoUUID"}}}}(e)),this._configMap.set(Qs,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_LONG_MESSAGE,".").concat(V.CMD.UPLOAD_MERGER_MESSAGE)}),body:{messageList:[]},keyMap:{request:{fromAccount:"From_Account",toAccount:"To_Account",msgTimeStamp:"MsgTimeStamp",msgSeq:"MsgSeq",msgRandom:"MsgRandom",msgBody:"MsgBody",type:"MsgType",content:"MsgContent",data:"Data",description:"Desc",extension:"Ext",sizeType:"Type",uuid:"UUID",url:"",imageUrl:"URL",fileUrl:"Url",remoteAudioUrl:"Url",remoteVideoUrl:"VideoUrl",thumbUUID:"ThumbUUID",videoUUID:"VideoUUID",videoUrl:"",downloadFlag:"Download_Flag",from:"From_Account",time:"MsgTimeStamp",messageRandom:"MsgRandom",messageSequence:"MsgSeq",elements:"MsgBody",clientSequence:"ClientSeq",payload:"MsgContent",messageList:"MsgList",messageNumber:"MsgNum",abstractList:"AbstractList",messageBody:"MsgBody"}}}}(e)),this._configMap.set(ha,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.SET_TOKEN)}),body:{tokenID:"",pushMsg:0,sdkAppID:0,businessID:"",deviceBrand:"",deviceToken:"",isTpns:0,isWebUniapp:0},keyMap:{request:{tokenID:"TokenID",pushMsg:"PushMsg",sdkAppID:"EnterVersion",businessID:"BusiID",deviceBrand:"InstType",deviceToken:"VarToken",isTpns:"IsTpns"}}}}(e)),this._configMap.set(ga,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.STAT_FOREGROUND)}),body:{isWebUniapp:0}}}(e)),this._configMap.set(da,function(e){return{head:t(t({},e),{},{servcmd:"".concat(V.NAME.IM_OPEN_STATUS,".").concat(V.CMD.STAT_BACKGROUND)}),body:{C2CUnread:0,GroupUnread:0,isWebUniapp:0},keyMap:{request:{c2cUnreadCount:"C2cUnread",groupUnreadCount:"GrpUnread"}}}}(e))}},{key:"has",value:function(e){return this._configMap.has(e)}},{key:"get",value:function(e){return this._configMap.get(e)}},{key:"update",value:function(){this._fillConfigMap()}},{key:"getKeyMap",value:function(e){return this.has(e)?this.get(e).keyMap||{}:(He.w("".concat(this._n,".getKeyMap unknown protocolName:").concat(e)),{})}},{key:"getProtocolData",value:function(e){var t=e.protocolName,n=e.requestData,o=this.get(t),s=null;if(n){var a=this._simpleDeepCopy(o),r=this._updateService(n,a),i=r.body,u=Object.create(null);for(var c in i)if(Object.prototype.hasOwnProperty.call(i,c)){if(u[c]=i[c],void 0===n[c])continue;u[c]=n[c]}r.body=u,s=this._getUplinkData(r)}else s=this._getUplinkData(o);return s}},{key:"_getUplinkData",value:function(e){var t=this._requestDataCleaner(e),n=xt(t.head),o=ic(t.body,this._getRequestKeyMap(n));return t.body=o,t}},{key:"_updateService",value:function(e,t){var n=xt(t.head);if(this._isFromGroupRequest(t)){var o=e.type,s=e.groupID,a=void 0===s?void 0:s,r=e.groupIDList,i=void 0===r?[]:r;ut(a)&&(a=i[0]||""),Et({type:o,groupID:a})&&(t.head.servcmd="".concat(V.NAME.GROUP_COMMUNITY,".").concat(n))}return t}},{key:"_isFromGroupRequest",value:function(e){return e.head.servcmd.includes(V.NAME.GROUP)||e.head.servcmd.includes(V.NAME.GROUP_ATTR)}},{key:"_getRequestKeyMap",value:function(e){var n=this.getKeyMap(e);return t(t({},sc.request),n.request)}},{key:"_requestDataCleaner",value:function(e){var t=Array.isArray(e)?[]:Object.create(null);for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&>(o)&&null!==e[o]&&void 0!==e[o]&&("object"!==n(e[o])?t[o]=e[o]:t[o]=this._requestDataCleaner.bind(this)(e[o]));return t}},{key:"_simpleDeepCopy",value:function(e){for(var t,n=Object.keys(e),o={},s=0,a=n.length;s1e3*s)return this._commandRequestInfoMap.set(t,{startTime:Date.now(),requestCount:1}),!1;i+=1,this._commandRequestInfoMap.set(t,{startTime:r,requestCount:i});var u=!1;return i>o&&(u=!0),u}},{key:"_isServerOverload",value:function(e){if(!this._serverOverloadInfoMap.has(e))return!1;var t=this._serverOverloadInfoMap.get(e),n=t.overloadTime,o=t.waitingTime,s=!1;return Date.now()-n<=1e3*o?s=!0:(this._serverOverloadInfoMap.delete(e),s=!1),s}},{key:"onPushedServerOverload",value:function(e){var t=e.overloadCommand,n=e.waitingTime;this._serverOverloadInfoMap.set(t,{overloadTime:Date.now(),waitingTime:n}),He.w("".concat(this._n,".onPushedServerOverload waitingTime:").concat(n,"s"))}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._updateCommandFrequencyLimitMap(Ec),this._commandRequestInfoMap.clear(),this._serverOverloadInfoMap.clear()}}]),s}(po),Rc=function(e){i(n,e);var t=f(n);function n(e){var s;return o(this,n),(s=t.call(this,e))._n="MessageLossDetectionModule",s._maybeLostSequencesMap=new Map,s._firstRoundRet=[],s}return a(n,[{key:"onMessageMaybeLost",value:function(e,t,n){this._maybeLostSequencesMap.has(e)||this._maybeLostSequencesMap.set(e,[]);for(var o=this._maybeLostSequencesMap.get(e),s=0;s=this._expiredTime}},{key:"fetchConfig",value:function(){var e=this,t=this._canFetchConfig();if(He.l("".concat(this._n,".fetchConfig canFetchConfig:").concat(t)),t){var n=new li("fetchCloudControlConfig"),o=this.getModule(Kn).getSDKAppID();this._isFetching=!0,this.request({protocolName:$s,requestData:{SDKAppID:o,version:this._version}}).then((function(t){e._isFetching=!1,n.setMessage("version:".concat(e._version," newVersion:").concat(t.data.version," config:").concat(t.data.cloudControlConfig)).setNetworkType(e.getNetworkType()).end(),He.l("".concat(e._n,".fetchConfig ok")),e._parseCloudControlConfig(t.data)})).catch((function(t){e._isFetching=!1,e.probeNetwork().then((function(e){var o=v(e,2),s=o[0],a=o[1];n.setError(t,s,a).end()})),He.l("".concat(e._n,".fetchConfig failed. error:"),t),e._setExpiredTimeOnResponseError(12e4)}))}}},{key:"onPushedCloudControlConfig",value:function(e){He.l("".concat(this._n,".onPushedCloudControlConfig")),new li("pushedCloudControlConfig").setNetworkType(this.getNetworkType()).setMessage("newVersion:".concat(e.version," config:").concat(e.cloudControlConfig)).end(),this._parseCloudControlConfig(e)}},{key:"onCheckTimer",value:function(e){this._canFetchConfig()&&this.fetchConfig()}},{key:"_parseCloudControlConfig",value:function(e){var t=this,n="".concat(this._n,"._parseCloudControlConfig"),o=e.errorCode,s=e.errorMessage,a=e.cloudControlConfig,r=e.version,i=e.expiredTime;if(0===o){if(this._version!==r){var u=null;try{u=JSON.parse(a)}catch(c){this.isPrivateNetWork()||He.e("".concat(n," JSON parse error. cloudControlConfig:"),a)}u&&(this._cloudConfig.clear(),Object.keys(u).forEach((function(e){t._cloudConfig.set(e,u[e])})),this._version=r,this.emitInnerEvent(bi))}this._expiredTime=Date.now()+1e3*i}else ut(o)?(He.l("".concat(n," failed. Invalid message format:"),e),this._setExpiredTimeOnResponseError(36e5)):(He.e("".concat(n," errorCode:").concat(o," errorMessage:").concat(s)),this._setExpiredTimeOnResponseError(12e4))}},{key:"_setExpiredTimeOnResponseError",value:function(e){this._expiredTime=Date.now()+e}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._cloudConfig.clear(),this._expiredTime=0,this._version=0,this._isFetching=!1}}]),n}(po),Oc=function(e){i(n,e);var t=f(n);function n(e){var s;return o(this,n),(s=t.call(this,e))._n="RecoverMessageModule",s.PULL_LIMIT_COUNT=15,s}return a(n,[{key:"start",value:function(){this._recoverGroupChat(),this._recoverC2CChat()}},{key:"_recoverGroupChat",value:function(){var e,t,n=this,o=this._getLocalConversationList().filter((function(e){return e.type===S.CONV_GROUP&&e.groupProfile.type!==S.GRP_AVCHATROOM})),s=this.getModule(Hn),a=0,r=0,i=0;o.forEach((function(o){var u=o.conversationID,c=o.lastMessage;t=u.replace(S.CONV_GROUP,""),e=s.getLocalLastMessage(u),c&&0!==c.lastSequence&&e?(r=c.lastSequence,a=e.sequence,i=r-a,a>0&&i>=1&&i<300?n._recoverGroupMessage({groupID:t,localLastMessageSequence:a,remoteLastMessageSequence:r}):n._getGroupNotify(t)):n._getGroupNotify(t)}))}},{key:"_recoverC2CChat",value:function(){var e,t=this,n=this._getLocalConversationList().filter((function(e){return e.type===S.CONV_C2C})),o=this.getModule(Hn),s=0,a=0,r=0,i=[Promise.resolve()];n.forEach((function(n){var u=n.conversationID,c=n.lastMessage;e=o.getLocalLastMessage(u),c&&0!==c.lastTime&&e&&(a=c.lastTime,s=e.time,r=a-s,s>0&&r>=1&&r<=600&&i.push(t._recoverC2CMessage({conversationID:u,localLastMessageTime:s,remoteLastMessageTime:a})))})),Promise.all(i).then((function(){He.l("".concat(t._n,"._recoverC2CChat all promise fulfilled, start to sync unread messages")),t.getModule(Qn).startSyncOnReconnected()}))}},{key:"_getLocalConversationList",value:function(){return this.getModule(Hn).getLocalConversationList()}},{key:"_recoverGroupMessage",value:function(e){var t=this,n="".concat(this._n,"._recoverGroupMessage");He.l("".concat(n," options:"),e);var o=e.groupID,s=e.localLastMessageSequence,a=e.remoteLastMessageSequence;this._getGroupRomaingMessage({groupID:o,sequence:s}).then((function(e){var s=e.data,r=s.complete,i=s.messageList;if(!ut(i)){var u=i[0].sequence;He.l("".concat(n," pkgLastMessageSequence:").concat(u," complete:").concat(r)),u=0&&this._e2eDelayArray.push(t)}},{key:"_calcAvg",value:function(e,t){if(0===t)return 0;var n=0;return e.forEach((function(e){n+=e})),Vt(n/t,1)}},{key:"_calcCountWithLimit",value:function(e){var t=e.e2eDelayArray,n=e.min,o=e.max;return t.filter((function(e){return n<=e&&e100&&(n=100),n}},{key:"_checkE2EDelayException",value:function(e,t){var n=e.filter((function(e){return e>t}));if(n.length>0){var o=n.length,s=Math.min.apply(Math,m(n)),a=Math.max.apply(Math,m(n)),r=this._calcAvg(n,o),i=Vt(o/e.length*100,2);if(i>50)new li("messageE2EDelayException").setMessage("count:".concat(o," min:").concat(s," max:").concat(a," avg:").concat(r," percent:").concat(i)).setLevel("warning").end()}}},{key:"getStatResult",value:function(){var e=this._e2eDelayArray.length;if(0===e)return null;var t=m(this._e2eDelayArray),n=this._calcCountWithLimit({e2eDelayArray:t,min:0,max:1}),o=this._calcCountWithLimit({e2eDelayArray:t,min:1,max:3}),s=this._calcPercent(n,e),a=this._calcPercent(o,e),r=this._calcAvg(t,e);return this._checkE2EDelayException(t,3),t.length=0,this.reset(),{totalCount:e,countLessThan1Second:n,percentOfCountLessThan1Second:s,countLessThan3Second:o,percentOfCountLessThan3Second:a,avgDelay:r}}},{key:"reset",value:function(){this._e2eDelayArray.length=0}}]),e}(),Pc=function(){function e(){o(this,e),this._n="AvgRTT",this._requestCount=0,this._rttArray=[]}return a(e,[{key:"addRequestCount",value:function(){this._requestCount+=1}},{key:"addRTT",value:function(e){this._rttArray.push(e)}},{key:"_calcTotalCount",value:function(){return this._requestCount}},{key:"_calcRTTCount",value:function(e){return e.length}},{key:"_calcSuccessRateOfRequest",value:function(e,t){if(0===t)return 0;var n=Vt(e/t*100,2);return n>100&&(n=100),n}},{key:"_calcAvg",value:function(e,t){if(0===t)return 0;var n=0;return e.forEach((function(e){n+=e})),parseInt(n/t)}},{key:"_calcMax",value:function(){return Math.max.apply(Math,m(this._rttArray))}},{key:"_calcMin",value:function(){return Math.min.apply(Math,m(this._rttArray))}},{key:"getStatResult",value:function(){var e=this._calcTotalCount(),t=m(this._rttArray);if(0===e)return null;var n=this._calcRTTCount(t),o=this._calcSuccessRateOfRequest(n,e),s=this._calcAvg(t,n);return He.l("".concat(this._n,".getStatResult max:").concat(this._calcMax()," min:").concat(this._calcMin()," avg:").concat(s)),this.reset(),{totalCount:e,rttCount:n,successRateOfRequest:o,avgRTT:s}}},{key:"reset",value:function(){this._requestCount=0,this._rttArray.length=0}}]),e}(),Uc=function(){function e(){o(this,e),this._map=new Map}return a(e,[{key:"initMap",value:function(e){var t=this;e.forEach((function(e){t._map.set(e,{totalCount:0,successCount:0,failedCountOfUserSide:0,costArray:[],fileSizeArray:[]})}))}},{key:"addTotalCount",value:function(e){return!(ut(e)||!this._map.has(e))&&(this._map.get(e).totalCount+=1,!0)}},{key:"addSuccessCount",value:function(e){return!(ut(e)||!this._map.has(e))&&(this._map.get(e).successCount+=1,!0)}},{key:"addFailedCountOfUserSide",value:function(e){return!(ut(e)||!this._map.has(e))&&(this._map.get(e).failedCountOfUserSide+=1,!0)}},{key:"addCost",value:function(e,t){return!(ut(e)||!this._map.has(e))&&(this._map.get(e).costArray.push(t),!0)}},{key:"addFileSize",value:function(e,t){return!(ut(e)||!this._map.has(e))&&(this._map.get(e).fileSizeArray.push(t),!0)}},{key:"_calcSuccessRateOfBusiness",value:function(e){if(ut(e)||!this._map.has(e))return-1;var t=this._map.get(e),n=Vt(t.successCount/t.totalCount*100,2);return n>100&&(n=100),n}},{key:"_calcSuccessRateOfPlatform",value:function(e){if(ut(e)||!this._map.has(e))return-1;var t=this._map.get(e),n=this._calcSuccessCountOfPlatform(e)/t.totalCount*100;return(n=Vt(n,2))>100&&(n=100),n}},{key:"_calcTotalCount",value:function(e){return ut(e)||!this._map.has(e)?-1:this._map.get(e).totalCount}},{key:"_calcSuccessCountOfBusiness",value:function(e){return ut(e)||!this._map.has(e)?-1:this._map.get(e).successCount}},{key:"_calcSuccessCountOfPlatform",value:function(e){if(ut(e)||!this._map.has(e))return-1;var t=this._map.get(e);return t.successCount+t.failedCountOfUserSide}},{key:"_calcAvg",value:function(e){return ut(e)||!this._map.has(e)?-1:e===ni?this._calcAvgSpeed(e):this._calcAvgCost(e)}},{key:"_calcAvgCost",value:function(e){var t=this._map.get(e).costArray.length;if(0===t)return 0;var n=0;return this._map.get(e).costArray.forEach((function(e){n+=e})),parseInt(n/t)}},{key:"_calcAvgSpeed",value:function(e){var t=0,n=0;return this._map.get(e).costArray.forEach((function(e){t+=e})),this._map.get(e).fileSizeArray.forEach((function(e){n+=e})),parseInt(1e3*n/t)}},{key:"getStatResult",value:function(e){var t=this._calcTotalCount(e);if(0===t)return null;var n=this._calcSuccessCountOfBusiness(e),o=this._calcSuccessRateOfBusiness(e),s=this._calcSuccessCountOfPlatform(e),a=this._calcSuccessRateOfPlatform(e),r=this._calcAvg(e);return this.reset(e),{totalCount:t,successCountOfBusiness:n,successRateOfBusiness:o,successCountOfPlatform:s,successRateOfPlatform:a,avgValue:r}}},{key:"reset",value:function(e){ut(e)?this._map.clear():this._map.set(e,{totalCount:0,successCount:0,failedCountOfUserSide:0,costArray:[],fileSizeArray:[]})}}]),e}(),bc=function(){function e(){o(this,e),this._lastMap=new Map,this._currentMap=new Map}return a(e,[{key:"initMap",value:function(e){var t=this;e.forEach((function(e){t._lastMap.set(e,new Map),t._currentMap.set(e,new Map)}))}},{key:"addMessageSequence",value:function(e){var t=e.key,n=e.message;if(ut(t)||!this._lastMap.has(t)||!this._currentMap.has(t))return!1;var o=n.conversationID,s=n.sequence,a=o.replace(S.CONV_GROUP,"");if(0===this._lastMap.get(t).size)this._addCurrentMap(e);else if(this._lastMap.get(t).has(a)){var r=this._lastMap.get(t).get(a),i=r.length-1;s>r[0]&&s100&&(o=100),this._copyData(e),{totalCount:t,successCountOfMessageReceived:n,successRateOfMessageReceived:o}}},{key:"reset",value:function(){this._currentMap.clear(),this._lastMap.clear()}}]),e}(),wc=function(e){i(s,e);var n=f(s);function s(e){var t;o(this,s),(t=n.call(this,e))._n="QualityStatModule",t.TAG="im-ssolog-quality-stat",t.reportIndex=0,t.wholePeriod=!1,t._qualityItems=[Xr,Qr,Zr,$r,ei,ti,ni,oi,si,ai],t._messageSentItems=[Zr,$r,ei,ti,ni],t._messageReceivedItems=[oi,si,ai],t.REPORT_INTERVAL=120,t.REPORT_SDKAPPID_BLACKLIST=[],t.REPORT_TINYID_WHITELIST=[],t._statInfoArr=[],t._avgRTT=new Pc,t._avgE2EDelay=new Gc,t._rateMessageSent=new Uc,t._rateMessageReceived=new bc;var a=t.getInnerEmitterInstance();return a.on(Ui,t._onLoginSuccess,h(t)),a.on(bi,t._onCloudConfigUpdated,h(t)),t}return a(s,[{key:"_onLoginSuccess",value:function(){var e=this;this._rateMessageSent.initMap(this._messageSentItems),this._rateMessageReceived.initMap(this._messageReceivedItems);var t=this.getModule(Wn),n=t.getItem(this.TAG,!1);!Zt(n)&<(n.forEach)&&(He.l("".concat(this._n,"._onLoginSuccess get quality stat logs from local storage, count:").concat(n.length)),n.forEach((function(t){e._statInfoArr.push(t)})),t.removeItem(this.TAG,!1))}},{key:"_onCloudConfigUpdated",value:function(){var e=this.getCloudConfig("q_rpt_interval"),t=this.getCloudConfig("q_rpt_sdkappid_bl"),n=this.getCloudConfig("q_rpt_tinyid_wl");ut(e)||(this.REPORT_INTERVAL=Number(e)),ut(t)||(this.REPORT_SDKAPPID_BLACKLIST=t.split(",").map((function(e){return Number(e)}))),ut(n)||(this.REPORT_TINYID_WHITELIST=n.split(","))}},{key:"onCheckTimer",value:function(e){this.isLoggedIn()&&e%this.REPORT_INTERVAL==0&&(this.wholePeriod=!0,this._report())}},{key:"addRequestCount",value:function(){this._avgRTT.addRequestCount()}},{key:"addRTT",value:function(e){this._avgRTT.addRTT(e)}},{key:"addMessageDelay",value:function(e){this._avgE2EDelay.addMessageDelay(e)}},{key:"addTotalCount",value:function(e){this._rateMessageSent.addTotalCount(e)||He.w("".concat(this._n,".addTotalCount invalid key:"),e)}},{key:"addSuccessCount",value:function(e){this._rateMessageSent.addSuccessCount(e)||He.w("".concat(this._n,".addSuccessCount invalid key:"),e)}},{key:"addFailedCountOfUserSide",value:function(e){this._rateMessageSent.addFailedCountOfUserSide(e)||He.w("".concat(this._n,".addFailedCountOfUserSide invalid key:"),e)}},{key:"addCost",value:function(e,t){this._rateMessageSent.addCost(e,t)||He.w("".concat(this._n,".addCost invalid key or cost:"),e,t)}},{key:"addFileSize",value:function(e,t){this._rateMessageSent.addFileSize(e,t)||He.w("".concat(this._n,".addFileSize invalid key or size:"),e,t)}},{key:"addMessageSequence",value:function(e){this._rateMessageReceived.addMessageSequence(e)||He.w("".concat(this._n,".addMessageSequence invalid key:"),e.key)}},{key:"_getQualityItem",value:function(e){var n={},o=ui[this.getNetworkType()];ut(o)&&(o=8);var s={qualityType:ri[e],timestamp:we(),networkType:o,extension:""};switch(e){case Xr:n=this._avgRTT.getStatResult();break;case Qr:n=this._avgE2EDelay.getStatResult();break;case Zr:case $r:case ei:case ti:case ni:n=this._rateMessageSent.getStatResult(e);break;case oi:case si:case ai:n=this._rateMessageReceived.getStatResult(e)}return null===n?null:t(t({},s),n)}},{key:"_report",value:function(e){var t=this,n=[],o=null;ut(e)?this._qualityItems.forEach((function(e){null!==(o=t._getQualityItem(e))&&(o.reportIndex=t.reportIndex,o.wholePeriod=t.wholePeriod,n.push(o))})):null!==(o=this._getQualityItem(e))&&(o.reportIndex=this.reportIndex,o.wholePeriod=this.wholePeriod,n.push(o)),He.d("".concat(this._n,"._report"),n),this._statInfoArr.length>0&&(n=n.concat(this._statInfoArr),this._statInfoArr=[]);var s=this.getModule(Kn),a=s.getSDKAppID(),r=s.getTinyID();Bt(this.REPORT_SDKAPPID_BLACKLIST,a)&&!Ht(this.REPORT_TINYID_WHITELIST,r)&&(n=[]),n.length>0&&this._doReport(n)}},{key:"_doReport",value:function(e){var n=this,o={header:qu(this),quality:e};this.request({protocolName:Ws,requestData:t({},o)}).then((function(){n.reportIndex++,n.wholePeriod=!1})).catch((function(t){He.w("".concat(n._n,"._doReport, online:").concat(n.getNetworkType()," error:"),t),n._statInfoArr=n._statInfoArr.concat(e),n._flushAtOnce()}))}},{key:"_flushAtOnce",value:function(){var e=this.getModule(Wn),t=e.getItem(this.TAG,!1),n=this._statInfoArr,o="".concat(this._n,"._flushAtOnce");if(Zt(t))He.l("".concat(o," count:").concat(n.length)),e.setItem(this.TAG,n,!0,!1);else{var s=n.concat(t);s.length>10&&(s=s.slice(0,10)),He.l("".concat(o," count:").concat(s.length)),e.setItem(this.TAG,s,!0,!1)}this._statInfoArr=[]}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._report(),this.reportIndex=0,this.wholePeriod=!1,this.REPORT_SDKAPPID_BLACKLIST=[],this.REPORT_TINYID_WHITELIST=[],this._avgRTT.reset(),this._avgE2EDelay.reset(),this._rateMessageSent.reset(),this._rateMessageReceived.reset()}}]),s}(po),qc=function(e){i(n,e);var t=f(n);function n(e){var s;return o(this,n),(s=t.call(this,e))._n="WorkerTimerModule",s._isWorkerEnabled=!0,s._workerTimer=null,s._timerID=-1,s._init(),s.getInnerEmitterInstance().on(bi,s._onCloudConfigUpdated,h(s)),s}return a(n,[{key:"isWorkerEnabled",value:function(){return this._isWorkerEnabled&&Ae}},{key:"startWorkerTimer",value:function(){He.l("".concat(this._n,".startWorkerTimer")),this._workerTimer&&this._workerTimer.postMessage("start")}},{key:"stopWorkerTimer",value:function(){He.l("".concat(this._n,".stopWorkerTimer")),this._workerTimer&&this._workerTimer.postMessage("stop")}},{key:"_init",value:function(){if(Ae){var e=URL.createObjectURL(new Blob(['let interval = -1;onmessage = function(event) { if (event.data === "start") { if (interval > 0) { clearInterval(interval); } interval = setInterval(() => { postMessage(""); }, 1000); postMessage(interval); } else if (event.data === "stop") { clearInterval(interval); interval = -1; }};'],{type:"application/javascript; charset=utf-8"}));this._workerTimer=new Worker(e);var t=this;this._workerTimer.onmessage=function(e){e.data?(t._timerID=e.data,He.l("".concat(t._n,"._init seed:").concat(t._timerID))):t._m.onCheckTimer()}}}},{key:"_onCloudConfigUpdated",value:function(){var e=this.getCloudConfig("enable_worker");He.l("".concat(this._n,"._onCloudConfigUpdated enableWorker:").concat(e)),ut(e)||"1"===e?!this._isWorkerEnabled&&Ae&&(this._isWorkerEnabled=!0,this.startWorkerTimer(),this._m.onWorkerTimerEnabled()):this._isWorkerEnabled&&Ae&&(this._isWorkerEnabled=!1,this.stopWorkerTimer(),this._m.onWorkerTimerDisabled())}},{key:"terminate",value:function(){He.l("".concat(this._n,".terminate")),this._workerTimer&&(this._workerTimer.terminate(),this._workerTimer=null,this._timerID=-1)}},{key:"getTimerID",value:function(){return this._timerID}},{key:"reset",value:function(){He.l("".concat(this._n,".reset"))}}]),n}(po),Fc=function(){function e(){o(this,e),this._n="PurchasedFeatureHandler",this._purchasedFeatureMap=new Map}return a(e,[{key:"isValidPurchaseBits",value:function(e){return e&&"string"==typeof e&&e.length>=1&&e.length<=64&&/[01]{1,64}/.test(e)}},{key:"parsePurchaseBits",value:function(e){var t="".concat(this._n,".parsePurchaseBits");if(this.isValidPurchaseBits(e)){this._purchasedFeatureMap.clear();for(var n=null,o=e.length-1,s=0;o>=0;o--,s++)n=s<32?new E(0,Math.pow(2,s)).toString():new E(Math.pow(2,s-32),0).toString(),"1"===e[o]?this._purchasedFeatureMap.set(n,!0):this._purchasedFeatureMap.set(n,!1)}else He.w("".concat(t," invalid purchase bits:").concat(e))}},{key:"hasPurchasedFeature",value:function(e){return!!this._purchasedFeatureMap.get(e)}},{key:"isFeatureEnabled",value:function(e){for(var t=parseInt(e).toString(2),n=void 0,o=!0,s=t.length-1,a=0;s>=0;s--,a++)if("1"===t.charAt(s)&&(n=a<32?new E(0,Math.pow(2,a)).toString():new E(Math.pow(2,a-32),0).toString(),!this._purchasedFeatureMap.get(n))){o=!1;break}return He.l("".concat(this._n,".isFeatureEnabled decimalNumber:").concat(e," binaryString:").concat(t," ret:").concat(o)),Ni({enabled:o})}},{key:"clear",value:function(){this._purchasedFeatureMap.clear()}}]),e}(),xc=function(){function e(t){o(this,e),this._m=t,this._n="CommercialConfigModule",this._expiredTime=0,this._isFetching=!1,this._purchasedFeatureHandler=new Fc}return a(e,[{key:"_canFetch",value:function(){return this._getModule(Kn).isLoggedIn()?!this._isFetching&&Date.now()>=this._expiredTime:(this._expiredTime=Date.now()+2e3,!1)}},{key:"onCheckTimer",value:function(e){this._canFetch()&&this.fetchConfig()}},{key:"fetchConfig",value:function(){var e=this,t=this._canFetch(),n="".concat(this._n,".fetchConfig");if(He.l("".concat(n," canFetch:").concat(t)),t){var o=this._getModule(Yn),s=new li("fetchCommercialConfig");s.setNetworkType(o.getNetworkType());var a=this._getModule(Kn).getSDKAppID(),r=this._getModule(Zn);this._isFetching=!0,r.request({protocolName:ta,requestData:{SDKAppID:a}}).then((function(t){s.setMessage("purchaseBits:".concat(t.data.purchaseBits)).end(),He.l("".concat(n," ok.")),e._parseConfig(t.data),e._isFetching=!1})).catch((function(t){o.probe().then((function(e){var n=v(e,2),o=n[0],a=n[1];s.setError(t,o,a).end()})),e._isFetching=!1}))}}},{key:"onPushedConfig",value:function(e){var t="".concat(this._n,".onPushedConfig");He.l("".concat(t)),new li("pushedCommercialConfig").setNetworkType(this._getModule(Yn).getNetworkType()).setMessage("purchaseBits:".concat(e.purchaseBits)).end(),this._parseConfig(e)}},{key:"_parseConfig",value:function(e){var t="".concat(this._n,"._parseConfig"),n=e.errorCode,o=e.errorMessage,s=e.purchaseBits,a=e.expiredTime;0===n?(this._purchasedFeatureHandler.parsePurchaseBits(s),this._expiredTime=Date.now()+1e3*a):ut(n)?(He.l("".concat(t," failed. Invalid message format:"),e),this._setExpiredTimeOnResponseError(36e5)):(He.e("".concat(t," errorCode:").concat(n," errorMessage:").concat(o)),this._setExpiredTimeOnResponseError(12e4))}},{key:"_setExpiredTimeOnResponseError",value:function(e){this._expiredTime=Date.now()+e}},{key:"canIUse",value:function(e){return this._purchasedFeatureHandler.hasPurchasedFeature(e)}},{key:"isFeatureEnabled",value:function(e){return this._purchasedFeatureHandler.isFeatureEnabled(e)}},{key:"_getModule",value:function(e){return this._m.getModule(e)}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),this._expiredTime=0,this._isFetching=!1,this._purchasedFeatureHandler.clear()}}]),e}(),Vc=function(e){i(n,e);var t=f(n);function n(e){var s;return o(this,n),(s=t.call(this,e))._m=e,s._n="OfflinePushModule",s._offlinePushPlugin=void 0,s._androidPushConfig={huaweiPushBussinessId:"",xiaomiPushBussinessId:"",xiaomiPushAppId:"",xiaomiPushAppKey:"",meizuPushBussinessId:"",meizuPushAppId:"",meizuPushAppKey:"",vivoPushBussinessId:"",fcmPushBussinessId:"",oppoPushBussinessId:"",oppoPushAppKey:"",oppoPushAppSecret:"",honorPushBussinessId:""},s._deviceToken="",s._businessID=0,s._iosBusinessID=0,s._c2cUnreadCount=0,s._groupUnreadCount=0,s._isWebUniapp=0,s}return a(n,[{key:"registerPlugin",value:function(e){if(re){this._offlinePushPlugin=e["tim-offline-push-plugin"];var t=e.offlinePushConfig||{},n=t.huaweiBusinessID,o=t.xiaomiBusinessID,s=t.xiaomiAppID,a=t.xiaomiAppKey,r=t.meizuBusinessID,i=t.meizuAppID,u=t.meizuAppKey,c=t.vivoBusinessID,l=t.oppoBusinessID,p=t.oppoAppKey,d=t.oppoAppSecret,g=t.honorBusinessID,h=t.iosBusinessID;this._androidPushConfig.huaweiPushBussinessId=n,this._androidPushConfig.xiaomiPushBussinessId=o,this._androidPushConfig.xiaomiPushAppId=s,this._androidPushConfig.xiaomiPushAppKey=a,this._androidPushConfig.meizuPushBussinessId=r,this._androidPushConfig.meizuPushAppId=i,this._androidPushConfig.meizuPushAppKey=u,this._androidPushConfig.vivoPushBussinessId=c,this._androidPushConfig.oppoPushBussinessId=l,this._androidPushConfig.oppoPushAppKey=p,this._androidPushConfig.oppoPushAppSecret=d,this._androidPushConfig.honorPushBussinessId=g,new li("registerPlugin").setMessage("tim-offline-push-plugin").setMoreMessage("isExist:".concat(!ut(this._offlinePushPlugin))).end(!0),He.l("".concat(this._n,".").concat("registerPlugin"," ok. offlinePushConfig:").concat(JSON.stringify(e.offlinePushConfig))),this._iosBusinessID=h,this._setAppShowListener()}else this.outputWarning("OfflinePushInUniapp")}},{key:"init",value:function(){this._isWebUniapp=this.getUniAppPlatform(),this._getDeviceToken()}},{key:"_getDeviceToken",value:function(){var e=this,t="".concat(this._n,".").concat("_getDeviceToken");if(lt(this._offlinePushPlugin.getDeviceToken)){var n="androidPushConfig:".concat(JSON.stringify(this._androidPushConfig),", iosBusinessID:").concat(this._iosBusinessID);He.l("".concat(t," start. ").concat(n)),new li("_getDeviceToken").setMessage("".concat(n)).end(!0),this._offlinePushPlugin.getDeviceToken(this._androidPushConfig,(function(o){var s=new li("getDeviceTokenRes"),a=o.code,r=o.msg;if(0===a){var i=o.data,u=i.deviceToken,c=i.deviceBrand,l=i.deviceType,p=i.bussinessId;e._deviceToken=u,e._businessID=p||e._iosBusinessID,n="deviceToken:".concat(u,", deviceBrand:").concat(c||l,", businessID:").concat(e._businessID),He.l("".concat(t," ok. ").concat(n)),s.setMessage(n).end(!0),e._setToken()}else s.setMessage("code:".concat(a,", msg:").concat(r)).end(!0),He.e("".concat(t," failed. error:"),o)}))}else He.e("".concat(t," getDeviceToken is not a function"))}},{key:"canIUseOfflinePush",value:function(){return re&&!ut(this._offlinePushPlugin)}},{key:"_setAppShowListener",value:function(){var e=this,t="".concat(this._n,".").concat("_setAppShowListener");ut(this._offlinePushPlugin)?He.e("".concat(t," offlinePushPlugin is undefined")):lt(this._offlinePushPlugin.setAppShowListener)?(new li("_setAppShowListener").end(!0),He.l("".concat(t," start")),this._offlinePushPlugin.setAppShowListener((function(n){var o=(n||{}).appShow;new li("setAppShowListenerRes").setMessage("appShow:".concat(o)).end(!0),He.l("".concat(t," ok. appShow:").concat(o)),e._m.isReady()&&(0===o?(e._getConvUnreadCount(),e._onBackground()):1===o&&e._onForeground())}))):He.e("".concat(t," setAppShowListener is not a function"))}},{key:"getDeviceBrand",value:function(){if(!ut(this._offlinePushPlugin)&<(this._offlinePushPlugin.getDeviceType)){var e=(this._offlinePushPlugin.getDeviceType()||{}).deviceType;return He.l("".concat(this._n,".getDeviceBrand ok. deviceType:").concat(e)),e}}},{key:"_setToken",value:function(){var e,t=this,n="".concat(this._n,"._setToken"),o=this.getModule(Kn),s=1,a="",r="";Zt(this._deviceToken)&&(s=0);var i=this.getUniAppPlatform(),u=this.getDeviceBrand();i===R.IOS||i===R.IPAD||i===R.MAC?r=this._deviceToken:i===R.ANDROID&&(a=this._deviceToken);var c=new li("offlinePushSetToken");return e="deviceToken:".concat(r||a,", businessID:").concat(this._businessID,", ")+"deviceBrand:".concat(u,", isWebUniapp:").concat(this._isWebUniapp,", pushMsg:").concat(s,", platform:").concat(i),c.setMessage("".concat(e)),He.l("".concat(n," ").concat(e)),this.request({protocolName:ha,requestData:{tokenID:a,pushMsg:s,sdkAppID:o.getSDKAppID(),businessID:parseInt(this._businessID),deviceBrand:u,deviceToken:r,isWebUniapp:this._isWebUniapp}}).then((function(e){return c.end(),He.l("".concat(n," ok")),e})).catch((function(e){return t.probeNetwork().then((function(t){var n=v(t,2),o=n[0],s=n[1];c.setError(e,o,s).end()})),He.e("".concat(n," failed. error:"),e),Oi(e)}))}},{key:"_getConvUnreadCount",value:function(){var e=this;this._c2cUnreadCount=0,this._groupUnreadCount=0,this.getModule(Hn).getLocalConversationList().forEach((function(t){t.type===S.CONV_C2C&&(e._c2cUnreadCount+=t.unreadCount),t.type===S.CONV_GROUP&&(e._groupUnreadCount+=t.unreadCount)}))}},{key:"_onBackground",value:function(){var e=this,t="".concat(this._n,".").concat("_onBackground"),n=new li("_onBackground");this.request({protocolName:da,requestData:{c2cUnreadCount:this._c2cUnreadCount,groupUnreadCount:this._groupUnreadCount,isWebUniapp:this._isWebUniapp}}).then((function(o){return n.setMessage("c2cUnreadCount: ".concat(e._c2cUnreadCount,", groupUnreadCount: ").concat(e._groupUnreadCount)).end(),He.l("".concat(t," ok")),o})).catch((function(o){e.probeNetwork().then((function(e){var t=v(e,2),s=t[0],a=t[1];n.setError(o,s,a).end()})),He.e("".concat(t," failed. error:"),o)}))}},{key:"_onForeground",value:function(){var e=this,t="".concat(this._n,".").concat("_onForeground"),n=new li("_onForeground");this.request({protocolName:ga,requestData:{isWebUniapp:this._isWebUniapp}}).then((function(e){return n.end(),He.l("".concat(t," ok")),e})).catch((function(o){e.probeNetwork().then((function(e){var t=v(e,2),s=t[0],a=t[1];n.setError(o,s,a).end()})),He.e("".concat(t," failed. error:"),o)}))}},{key:"getUniAppPlatform",value:function(){var e=uni.getSystemInfoSync().platform,t=this.getDeviceBrand();return"ios"===e?R.IOS:"android"===e?R.ANDROID:1002===t?R.IPAD:1001===t?R.MAC:void 0}},{key:"reset",value:function(){this._deviceToken="",this._businessID=0,this._c2cUnreadCount=0,this._groupUnreadCount=0,this._isWebUniapp=0,He.l("".concat(this._n,".reset"))}}]),n}(po),Bc=function(e){i(n,e);var t=f(n);function n(e){var s;return o(this,n),(s=t.call(this,e))._n="ProfanityFilterModule",s._plugin=null,s._filterConfigMap=new Map,s._startIndex=0,s._version=0,s._canIUseLexicon=!1,s._isFetching=!1,s._expiredTime=0,s}return a(n,[{key:"init",value:function(){var e=this.getModule(Xn).getPlugin("tim-profanity-filter-plugin");e?(this._plugin=new e({logger:He,isArray:it,isMap:et,isDevMode:this.isDevMode()}),this._getLexicon()):this.outputWarning("ProfanityPluginNotFound")}},{key:"onCheckTimer",value:function(){this._plugin&&this._canIUseLexicon&&this.isLoggedIn()&&!this._isFetching&&Date.now()>=this._expiredTime&&this._getLexicon()}},{key:"filterMessage",value:function(e,t){var n=!0;if(!this._plugin||!this._canIUseLexicon)return n;if(t&&t.messageControlInfo&&!0===t.messageControlInfo.excludedFromContentModeration)return n;var o=e.type,s=e.conversationType;if(o!==S.MSG_TEXT&&o!==S.MSG_CUSTOM)return n;var a,r="".concat(this._n,".filterMessage");if(He.l("".concat(r)),o===S.MSG_TEXT){if(s===S.CONV_C2C?a=H:s===S.CONV_GROUP&&(a=W),!this._isConfigOn(a))return n;var i=this._plugin.filter(e.payload.text),u=i.type,c=i.modifiedText;1===u?n=!1:2===u&&(e.payload.text=c)}else if(o===S.MSG_CUSTOM){if(s===S.CONV_C2C?a=K:s===S.CONV_GROUP&&(a=j),!this._isConfigOn(a))return n;var l=this._plugin.filter(e.payload.data),p=this._plugin.filter(e.payload.description),d=this._plugin.filter(e.payload.extension);1===l.type||1===p.type||1===d.type?n=!1:(2===l.type&&(e.payload.data=l.modifiedText),2===p.type&&(e.payload.description=p.modifiedText),2===d.type&&(e.payload.extension=d.modifiedText))}return He.l("".concat(r," done. isAllowedToSend:").concat(n)),n}},{key:"filterText",value:function(e,t){var n="".concat(this._n,".filterText"),o={isAllowedToSend:!0,modifiedText:e};if(!this._plugin||!this._canIUseLexicon)return o;if(!this._isConfigOn(t))return o;He.l("".concat(n));var s=this._plugin.filter(e),a=s.type,r=s.modifiedText;return 1===a?o.isAllowedToSend=!1:2===a&&(o.modifiedText=r),He.l("".concat(n," done. ret:"),o),o}},{key:"_getLexicon",value:function(){var e=this,t=new li("profanityFilter"),n="".concat(this._n,"._getLexicon");this._isFetching=!0,this.request({protocolName:_a,requestData:{startIndex:this._startIndex,version:this._version}}).then((function(o){var s=o.data,a=s.errorInfo,r=s.filterConfig,i=s.lexicon,u=s.strToken,c=s.completeFlag,l=s.nextStartIndex,p=s.version,d=s.expiredTime,g=a.errorCode,h=a.errorMessage;return 0!==g?(e._isFetching=!1,He.w("".concat(n," failed. error:"),a),void t.setCode(g).setMessage(h).end()):(e._onFilterConfig(r),e._getToken(u),1===c?(He.l("".concat(n," done. version:").concat(p," expiredTime:").concat(d)),e._version=p,e._canIUseLexicon=!0,e._isFetching=!1,e._expiredTime=Date.now()+1e3*d,void e._plugin.onLexiconCompleted(i)):(e._startIndex=l,e._plugin.onLexiconSliced(i),void e._getLexicon()))})).catch((function(o){e.probeNetwork().then((function(e){var n=v(e,2),s=n[0],a=n[1];t.setError(o,s,a).end()})),e._isFetching=!1,He.l("".concat(n," failed. error:"),o)}))}},{key:"_onFilterConfig",value:function(e){var t=this;Zt(e)||(this._filterConfigMap.clear(),Object.keys(e).forEach((function(n){t._filterConfigMap.set(n,e[n])})),He.l("".concat(this._n,"._onFilterConfig. keys:").concat(Array.from(this._filterConfigMap.keys())," values:").concat(Array.from(this._filterConfigMap.values()))))}},{key:"_isConfigOn",value:function(e){return 1===this._filterConfigMap.get(e)}},{key:"_getToken",value:function(e){if(st(e)){var t=e.length,n="";if(t%2==0)for(var o=0;o<=t-1;o+=2)n+=e[o+1],n+=e[o];else{for(var s=0;s=this.STORAGE_EXPIRES_TIME,s=!n||"2.27.0"!==n;return He.l("".concat(this._n,"._needToUpdate isTimeout:").concat(o," isDifferentVersion:").concat(s)),o||s}},{key:"_fetch",value:function(){if(!this._m.getModule(Kn).isPrivateNetWork()){var e="https://web.sdk.qcloud.com/im/download/error-message/0.0.1/tim-error-message.txt",t="application/x-www-form-urlencoded;charset=UTF-8",n="".concat(this._n,"._fetch ok in"),o=this;if(ue)le.request({url:e,method:"GET",timeout:3e3,header:{"content-type":t},dataType:"text",success:function(e){o._fillAndSave(e.data),He.l("".concat(n," mini program"))},fail:function(){}});else{var s=new XMLHttpRequest,a=setTimeout((function(){s.abort()}),3e3);s.onreadystatechange=function(){4===s.readyState&&(clearTimeout(a),200!==s.status&&304!==s.status||(He.l("".concat(n," browser")),o._fillAndSave(s.responseText)))},s.open("GET",e,!0),s.setRequestHeader("Content-type",t),s.send()}}}},{key:"_fillAndSave",value:function(e){this._fillMap(e),this._getStorageModule().setItem(this.TIM_ERROR_ASSISTANCE,JSON.stringify({message:e,localSavedTime:(new Date).getTime(),localSavedVersion:"2.27.0"}),!0,!1)}},{key:"_getStorageModule",value:function(){return this._m.getModule(Wn)}},{key:"_fillMap",value:function(e){this._map.clear();for(var t,n,o,s=e.split(";\n"),a=s.length,r=new RegExp(/'/g),i=0;i0&&(clearInterval(this._checkTimer),this._checkTimer=-1,this._checkCount=0)}},{key:"_stopMainThreadSocket",value:function(){He.l("".concat(this._n,"._stopMainThreadSocket"));var e=this._moduleMap.get($n);e.setIsWorkerEnabled(!0),e.reConnect()}},{key:"_startMainThreadSocket",value:function(){He.l("".concat(this._n,"._startMainThreadSocket"));var e=this._moduleMap.get($n);e.setIsWorkerEnabled(!1),e.reConnect()}},{key:"onWorkerTimerEnabled",value:function(){He.l("".concat(this._n,".onWorkerTimerEnabled, disable main thread timer and socket")),this._stopMainThreadTimer(),this._stopMainThreadSocket()}},{key:"onWorkerTimerDisabled",value:function(){He.l("".concat(this._n,".onWorkerTimerDisabled, enable main thread timer and socket")),this._startMainThreadTimer(),this._startMainThreadSocket()}},{key:"onCheckTimer",value:function(){this._checkCount+=1;var e,t=D(this._moduleMap);try{for(t.s();!(e=t.n()).done;){var n=v(e.value,2)[1];n.onCheckTimer&&n.onCheckTimer(this._checkCount)}}catch(o){t.e(o)}finally{t.f()}}},{key:"_initReadyList",value:function(){var e=this;this._readyList=[this._moduleMap.get(Pn),this._moduleMap.get(Hn)],this._readyList.forEach((function(t){t.ready((function(){return e._onModuleReady()}))}))}},{key:"_onModuleReady",value:function(){var e=!0;if(this._readyList.forEach((function(t){t.isReady()||(e=!1)})),e&&!this._isReady){this._isReady=!0,this._outerEmitter.emit(k.SDK_READY);var t=Date.now()-this._startLoginTs;He.w("SDK is ready. cost ".concat(t," ms")),this._startLoginTs=Date.now();var n=this._moduleMap.get(Yn).getNetworkType(),o=this._ssoLogForReady.getStartTs()+be;this._ssoLogForReady.setNetworkType(n).setMessage(t).start(o).end()}}},{key:"login",value:function(){0===this._startLoginTs&&(qe(),this._startLoginTs=Date.now(),this._startTimer(),this._moduleMap.get(Yn).start(),this._ssoLogForReady=new li("sdkReady"),this._reason=br)}},{key:"onLoginFailed",value:function(){this._startLoginTs=0}},{key:"getOuterEmitterInstance",value:function(){return null===this._outerEmitter&&(this._outerEmitter=new Ku,Ri(this._outerEmitter),this._outerEmitter._emit=this._outerEmitter.emit,this._outerEmitter.emit=function(e,t){var n=this;if(e===k.CONVERSATION_LIST_UPDATED||e===k.FRIEND_LIST_UPDATED||e===k.GROUP_LIST_UPDATED||e===k.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED)if(this._eventThrottleMap.has(e)){var o=Date.now(),s=this._eventThrottleMap.get(e);o-s.last<1e3?(s.timeoutID&&clearTimeout(s.timeoutID),s.timeoutID=setTimeout((function(){s.last=o,n._outerEmitter._emit.apply(n._outerEmitter,[e,{name:e,data:n._getEventData(e)}])}),500)):(s.last=o,this._outerEmitter._emit.apply(this._outerEmitter,[e,{name:e,data:this._getEventData(e)}]))}else this._eventThrottleMap.set(e,{last:Date.now(),timeoutID:-1}),this._outerEmitter._emit.apply(this._outerEmitter,[e,{name:e,data:this._getEventData(e)}]);else this._outerEmitter._emit.apply(this._outerEmitter,[e,{name:e,data:arguments[1]}])}.bind(this)),this._outerEmitter}},{key:"_getEventData",value:function(e){return e===k.CONVERSATION_LIST_UPDATED?this._moduleMap.get(Hn).getLocalConversationList():e===k.FRIEND_LIST_UPDATED?this._moduleMap.get(xn).getLocalFriendList(!1):e===k.GROUP_LIST_UPDATED?this._moduleMap.get(Fn).getLocalGroupList():e===k.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED?this._moduleMap.get(Hn).getTotalUnreadMessageCount():void 0}},{key:"getInnerEmitterInstance",value:function(){return null===this._innerEmitter&&(this._innerEmitter=new Ku,this._innerEmitter._emit=this._innerEmitter.emit,this._innerEmitter.emit=function(e,t){var n;n=rt(arguments[1])&&arguments[1].data?[e,{name:arguments[0],data:arguments[1].data}]:[e,{name:arguments[0],data:arguments[1]}],this._innerEmitter._emit.apply(this._innerEmitter,n)}.bind(this)),this._innerEmitter}},{key:"hasModule",value:function(e){return this._moduleMap.has(e)}},{key:"getModule",value:function(e){return this._moduleMap.get(e)}},{key:"isReady",value:function(){return this._isReady}},{key:"isIntl",value:function(){return this.getModule(Kn).isIntl()}},{key:"getNotReadyReason",value:function(){return this._reason}},{key:"setNotReadyReason",value:function(e){this._reason=e}},{key:"getErrorMessage",value:function(e,t,n){return this._moduleMap.get(lo).get({key:e,replacement1:t,replacement2:n,isIntl:this.isIntl()})}},{key:"outputWarning",value:function(e,t,n){var o=this.getErrorMessage(e,t,n);o&&He.w(o)}},{key:"onError",value:function(e){var t="code:".concat(e.code," message:").concat(e.message);He.w("Oops! ".concat(t)),new li("error").setMessage(t).setNetworkType(this.getModule(Yn).getNetworkType()).setLevel("error").end(),this.getOuterEmitterInstance().emit(k.ERROR,e)}},{key:"restartTimer",value:function(){He.l("".concat(this._n,".restartTimer")),this.stopTimer(),this._startTimer(),this.getModule(Fn).restartPolling()}},{key:"getTimerID",value:function(){var e=this._moduleMap.get(no);return e.isWorkerEnabled()?e.getTimerID():this._checkTimer}},{key:"reset",value:function(){He.l("".concat(this._n,".reset")),qe();var e,t=D(this._moduleMap);try{for(t.s();!(e=t.n()).done;){var n=v(e.value,2)[1];n.reset&&n.reset()}}catch(r){t.e(r)}finally{t.f()}this._startLoginTs=0,this._initReadyList(),this._isReady=!1,this.stopTimer(),this._outerEmitter.emit(k.SDK_NOT_READY);var o,s=D(this._eventThrottleMap);try{for(s.s();!(o=s.n()).done;){var a=v(o.value,2)[1];a.timeoutID&&clearTimeout(a.timeoutID)}}catch(r){s.e(r)}finally{s.f()}this._eventThrottleMap.clear()}}]),e}(),jc=function(){function e(t){o(this,e),this._funcMap=new Map,this._m=t}return a(e,[{key:"defense",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;if("string"!=typeof e)return null;if(0===e.length)return null;if("function"!=typeof t)return null;if(this._funcMap.has(e)&&this._funcMap.get(e).has(t))return this._funcMap.get(e).get(t);this._funcMap.has(e)||this._funcMap.set(e,new Map);var o=null;return this._funcMap.get(e).has(t)?o=this._funcMap.get(e).get(t):(o=this._pack(e,t,n),this._funcMap.get(e).set(t,o)),o}},{key:"defenseOnce",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;return"function"!=typeof t?null:this._pack(e,t,n)}},{key:"find",value:function(e,t){return"string"!=typeof e||0===e.length||"function"!=typeof t?null:this._funcMap.has(e)&&this._funcMap.get(e).has(t)?this._funcMap.get(e).get(t):(this._m.outputWarning("ListenerFnNotFound",e),null)}},{key:"delete",value:function(e,t){return"function"==typeof t&&(!!this._funcMap.has(e)&&(!!this._funcMap.get(e).has(t)&&(this._funcMap.get(e).delete(t),0===this._funcMap.get(e).size&&this._funcMap.delete(e),!0)))}},{key:"_pack",value:function(e,t,n){var o=this;return function(){try{t.apply(n,Array.from(arguments))}catch(u){var s=Object.values(k).indexOf(e),a="CallbackError";if(-1!==s){var r=Object.keys(k)[s];o._m.outputWarning(a,r,u)}var i=new li(a);i.setMessage("eventName:".concat(e)).setMoreMessage(u.message).end()}}}}]),e}(),Yc=function(){function e(t){o(this,e);var n={SDKAppID:t.SDKAppID,unlimitedAVChatRoom:t.unlimitedAVChatRoom||!1,scene:t.scene||"",oversea:t.oversea||!1,instanceID:Ut(),devMode:t.devMode||!1,proxyServer:t.proxyServer||void 0,fileUploadProxy:t.fileUploadProxy||void 0,fileDownloadProxy:t.fileDownloadProxy||t.fileUploadProxy||void 0};this._m=new Wc(n),this._safetyCallbackFactory=new jc(this._m)}return a(e,[{key:"onError",value:function(e){this._m.onError(e)}},{key:"login",value:function(e){return this._m.login(),this._getModule(Pn).login(e)}},{key:"logout",value:function(){var e=this;return this._getModule(Pn).logout().then((function(t){return e._m.reset(),t}))}},{key:"isReady",value:function(){return this._m.isReady()}},{key:"isIntl",value:function(){return this._m.isIntl()}},{key:"getNotReadyReason",value:function(){return this._m.getNotReadyReason()}},{key:"getErrorMessage",value:function(e,t,n){return this._m.getErrorMessage(e,t,n)}},{key:"_getModule",value:function(e){return this._m.getModule(e)}},{key:"destroy",value:function(){var e=this;return this.logout().finally((function(){e._m.stopTimer(),e._getModule(no).terminate(),e._getModule($n).dealloc();var t=e._m.getOuterEmitterInstance(),n=e._getModule(Kn);t.emit(k.SDK_DESTROY,{SDKAppID:n.getSDKAppID()})}))}},{key:"on",value:function(e,t,n){He.d("on","eventName:".concat(e)),this._m.getOuterEmitterInstance().on(e,this._safetyCallbackFactory.defense(e,t,n),n)}},{key:"once",value:function(e,t,n){He.d("once","eventName:".concat(e)),this._m.getOuterEmitterInstance().once(e,this._safetyCallbackFactory.defenseOnce(e,t,n),n||this)}},{key:"off",value:function(e,t,n,o){He.d("off","eventName:".concat(e));var s=this._safetyCallbackFactory.find(e,t);null!==s&&(this._m.getOuterEmitterInstance().off(e,s,n,o),this._safetyCallbackFactory.delete(e,t))}},{key:"registerPlugin",value:function(e){ut(e["tim-offline-push-plugin"])?this._getModule(Xn).registerPlugin(e):this._getModule(ro).registerPlugin(e)}},{key:"setLogLevel",value:function(e){if(e<=0){var t=this.getErrorMessage("TIM_ASCII_ART");t&&console.log(t);var n=this.getErrorMessage("API_REFER");if(n){zt()?console.log("%c ".concat("IM SDK API ->"," %c"),"background:#ff9d00; padding:1px; border-radius:3px; color: #fff","background:transparent",n):console.log("IM SDK API ->",n)}var o=this.getErrorMessage("DOCS_GUIDE");o&&console.log(o)}He.setLevel(e)}},{key:"createTextMessage",value:function(e){return this._getModule(Un).createTextMessage(e)}},{key:"createTextAtMessage",value:function(e){return this._getModule(Un).createTextMessage(e)}},{key:"createImageMessage",value:function(e){return this._getModule(Un).createImageMessage(e)}},{key:"createAudioMessage",value:function(e){return this._getModule(Un).createAudioMessage(e)}},{key:"createVideoMessage",value:function(e){return this._getModule(Un).createVideoMessage(e)}},{key:"createCustomMessage",value:function(e){return this._getModule(Un).createCustomMessage(e)}},{key:"createFaceMessage",value:function(e){return this._getModule(Un).createFaceMessage(e)}},{key:"createFileMessage",value:function(e){return this._getModule(Un).createFileMessage(e)}},{key:"createLocationMessage",value:function(e){return this._getModule(Un).createLocationMessage(e)}},{key:"createMergerMessage",value:function(e){return this._getModule(Un).createMergerMessage(e)}},{key:"downloadMergerMessage",value:function(e){return e.type!==S.MSG_MERGER?Oi({code:Qa}):Zt(e.payload.downloadKey)?Oi({code:Za}):this._getModule(Un).downloadMergerMessage(e).catch((function(e){return Oi({code:$a})}))}},{key:"createForwardMessage",value:function(e){return this._getModule(Un).createForwardMessage(e)}},{key:"sendMessage",value:function(e,t){return e instanceof Si?this._getModule(Un).sendMessageInstance(e,t):Oi({code:Ea})}},{key:"callExperimentalAPI",value:function(e,t){return"sendComboMessage"===e?this._getModule(co).sendMessage(t):"handleGroupInvitation"===e?this._getModule(Fn).handleGroupInvitation(t):"isCommercialAbilityEnabled"===e?this._getModule(ao).isFeatureEnabled(t):"isIntl"===e?this.isIntl():"sendTRTCCustomData"===e?this._getModule(uo).sendTRTCCustomData(t):"getTimerID"===e?this._m.getTimerID():Oi({code:Nr})}},{key:"revokeMessage",value:function(e){return this._getModule(Un).revokeMessage(e)}},{key:"resendMessage",value:function(e){return this._getModule(Un).resendMessage(e)}},{key:"deleteMessage",value:function(e){return this._getModule(Un).deleteMessage(e)}},{key:"translateText",value:function(e){return this._getModule(Un).translateText(e)}},{key:"setMessageExtensions",value:function(e,t){return this._getModule(bn).setMessageExtensions(e,t)}},{key:"getMessageExtensions",value:function(e){return this._getModule(bn).getMessageExtensions(e)}},{key:"deleteMessageExtensions",value:function(e,t){return this._getModule(bn).deleteMessageExtensions(e,t)}},{key:"modifyMessage",value:function(e){return this._getModule(Un).modifyRemoteMessage(e)}},{key:"getMessageList",value:function(e){return this._getModule(Hn).getMessageList(e)}},{key:"getMessageListHopping",value:function(e){return this._getModule(Hn).getMessageListHopping(e)}},{key:"sendMessageReadReceipt",value:function(e){return this._getModule(Hn).sendReadReceipt(e)}},{key:"getMessageReadReceiptList",value:function(e){return this._getModule(Hn).getReadReceiptList(e)}},{key:"getGroupMessageReadMemberList",value:function(e){return this._getModule(Fn).getReadReceiptDetail(e)}},{key:"findMessage",value:function(e){return this._getModule(Hn).findMessage(e)}},{key:"setMessageRead",value:function(e){return this._getModule(Hn).setMessageRead(e)}},{key:"getConversationList",value:function(e){return this._getModule(Hn).getConversationList(e)}},{key:"getConversationProfile",value:function(e){return this._getModule(Hn).getConversationProfile(e)}},{key:"deleteConversation",value:function(e){return this._getModule(Hn).deleteConversation(e)}},{key:"clearHistoryMessage",value:function(e){return this._getModule(Hn).clearHistoryMessage(e)}},{key:"pinConversation",value:function(e){return this._getModule(Hn).pinConversation(e)}},{key:"setAllMessageRead",value:function(e){return this._getModule(Hn).setAllMessageRead(e)}},{key:"setMessageRemindType",value:function(e){return this._getModule(Hn).setMessageRemindType(e)}},{key:"getTotalUnreadMessageCount",value:function(){return this._getModule(Hn).getTotalUnreadMessageCount()}},{key:"setConversationCustomData",value:function(e){return this._getModule(Hn).setConversationCustomData(e)}},{key:"markConversation",value:function(e){return this._getModule(Hn).markConversation(e)}},{key:"getConversationGroupList",value:function(){return this._getModule(Hn).getConversationGroupList()}},{key:"createConversationGroup",value:function(e){return this._getModule(Hn).createConversationGroup(e)}},{key:"deleteConversationGroup",value:function(e){return this._getModule(Hn).deleteConversationGroup(e)}},{key:"renameConversationGroup",value:function(e){return this._getModule(Hn).renameConversationGroup(e)}},{key:"addConversationsToGroup",value:function(e){return this._getModule(Hn).addConversationsToGroup(e)}},{key:"deleteConversationsFromGroup",value:function(e){return this._getModule(Hn).deleteConversationsFromGroup(e)}},{key:"getMyProfile",value:function(){return this._getModule(wn).getMyProfile()}},{key:"getUserProfile",value:function(e){return this._getModule(wn).getUserProfile(e)}},{key:"updateMyProfile",value:function(e){return this._getModule(wn).updateMyProfile(e)}},{key:"getBlacklist",value:function(){return this._getModule(wn).getLocalBlacklist()}},{key:"addToBlacklist",value:function(e){return this._getModule(wn).addBlacklist(e)}},{key:"removeFromBlacklist",value:function(e){return this._getModule(wn).deleteBlacklist(e)}},{key:"setSelfStatus",value:function(e){return this._getModule(wn).setSelfStatus(e)}},{key:"getUserStatus",value:function(e){return this._getModule(wn).getUserStatus(e)}},{key:"subscribeUserStatus",value:function(e){return this._getModule(wn).subscribeUserStatus(e)}},{key:"unsubscribeUserStatus",value:function(e){return this._getModule(wn).unsubscribeUserStatus(e)}},{key:"getFriendList",value:function(){var e=this._getModule(xn);return e?e.getLocalFriendList():Oi({code:Pr})}},{key:"addFriend",value:function(e){var t=this._getModule(xn);return t?t.addFriend(e):Oi({code:Pr})}},{key:"deleteFriend",value:function(e){var t=this._getModule(xn);return t?t.deleteFriend(e):Oi({code:Pr})}},{key:"checkFriend",value:function(e){var t=this._getModule(xn);return t?t.checkFriend(e):Oi({code:Pr})}},{key:"getFriendProfile",value:function(e){var t=this._getModule(xn);return t?t.getFriendProfile(e):Oi({code:Pr})}},{key:"updateFriend",value:function(e){var t=this._getModule(xn);return t?t.updateFriend(e):Oi({code:Pr})}},{key:"getFriendApplicationList",value:function(){var e=this._getModule(xn);return e?e.getLocalFriendApplicationList():Oi({code:Pr})}},{key:"acceptFriendApplication",value:function(e){var t=this._getModule(xn);return t?t.acceptFriendApplication(e):Oi({code:Pr})}},{key:"refuseFriendApplication",value:function(e){var t=this._getModule(xn);return t?t.refuseFriendApplication(e):Oi({code:Pr})}},{key:"deleteFriendApplication",value:function(e){var t=this._getModule(xn);return t?t.deleteFriendApplication(e):Oi({code:Pr})}},{key:"setFriendApplicationRead",value:function(){var e=this._getModule(xn);return e?e.setFriendApplicationRead():Oi({code:Pr})}},{key:"getFriendGroupList",value:function(){var e=this._getModule(xn);return e?e.getLocalFriendGroupList():Oi({code:Pr})}},{key:"createFriendGroup",value:function(e){var t=this._getModule(xn);return t?t.createFriendGroup(e):Oi({code:Pr})}},{key:"deleteFriendGroup",value:function(e){var t=this._getModule(xn);return t?t.deleteFriendGroup(e):Oi({code:Pr})}},{key:"addToFriendGroup",value:function(e){var t=this._getModule(xn);return t?t.addToFriendGroup(e):Oi({code:Pr})}},{key:"removeFromFriendGroup",value:function(e){var t=this._getModule(xn);return t?t.removeFromFriendGroup(e):Oi({code:Pr})}},{key:"renameFriendGroup",value:function(e){var t=this._getModule(xn);return t?t.renameFriendGroup(e):Oi({code:Pr})}},{key:"getGroupList",value:function(e){return this._getModule(Fn).getGroupList(e)}},{key:"getGroupProfile",value:function(e){return this._getModule(Fn).getGroupProfile(e)}},{key:"createGroup",value:function(e){return this._getModule(Fn).createGroup(e)}},{key:"dismissGroup",value:function(e){return this._getModule(Fn).dismissGroup(e)}},{key:"updateGroupProfile",value:function(e){return this._getModule(Fn).updateGroupProfile(e)}},{key:"joinGroup",value:function(e){return this._getModule(Fn).joinGroup(e)}},{key:"quitGroup",value:function(e){return this._getModule(Fn).quitGroup(e)}},{key:"searchGroupByID",value:function(e){return this._getModule(Fn).searchGroupByID(e)}},{key:"getGroupOnlineMemberCount",value:function(e){return this._getModule(Fn).getGroupOnlineMemberCount(e)}},{key:"changeGroupOwner",value:function(e){return this._getModule(Fn).changeGroupOwner(e)}},{key:"getGroupApplicationList",value:function(){return this._getModule(Fn).getGroupApplicationList()}},{key:"handleGroupApplication",value:function(e){return this._getModule(Fn).handleGroupApplication(e)}},{key:"initGroupAttributes",value:function(e){return this._getModule(Fn).initGroupAttributes(e)}},{key:"setGroupAttributes",value:function(e){return this._getModule(Fn).setGroupAttributes(e)}},{key:"deleteGroupAttributes",value:function(e){return this._getModule(Fn).deleteGroupAttributes(e)}},{key:"getGroupAttributes",value:function(e){return this._getModule(Fn).getGroupAttributes(e)}},{key:"setGroupCounters",value:function(e){return this._getModule(Fn).setGroupCounters(e)}},{key:"increaseGroupCounter",value:function(e){return this._getModule(Fn).increaseGroupCounter(e)}},{key:"decreaseGroupCounter",value:function(e){return this._getModule(Fn).decreaseGroupCounter(e)}},{key:"getGroupCounters",value:function(e){return this._getModule(Fn).getGroupCounters(e)}},{key:"getGroupMemberList",value:function(e){return this._getModule(Vn).getGroupMemberList(e)}},{key:"getGroupMemberProfile",value:function(e){return this._getModule(Vn).getGroupMemberProfile(e)}},{key:"addGroupMember",value:function(e){return this._getModule(Vn).addGroupMember(e)}},{key:"deleteGroupMember",value:function(e){return this._getModule(Vn).deleteGroupMember(e)}},{key:"setGroupMemberMuteTime",value:function(e){return this._getModule(Vn).setGroupMemberMuteTime(e)}},{key:"setGroupMemberRole",value:function(e){return this._getModule(Vn).setGroupMemberRole(e)}},{key:"setGroupMemberNameCard",value:function(e){return this._getModule(Vn).setGroupMemberNameCard(e)}},{key:"setGroupMemberCustomField",value:function(e){return this._getModule(Vn).setGroupMemberCustomField(e)}},{key:"markGroupMemberList",value:function(e){return this._getModule(Vn).markGroupMemberList(e)}},{key:"getJoinedCommunityList",value:function(){return this._getModule(Bn).getJoinedCommunityList()}},{key:"createTopicInCommunity",value:function(e){return this._getModule(Bn).createTopicInCommunity(e)}},{key:"deleteTopicFromCommunity",value:function(e){return this._getModule(Bn).deleteTopicFromCommunity(e)}},{key:"updateTopicProfile",value:function(e){return this._getModule(Bn).updateTopicProfile(e)}},{key:"getTopicList",value:function(e){return this._getModule(Bn).getTopicList(e)}}]),e}(),zc={login:1,logout:1,destroy:1,on:1,off:1,ready:1,setLogLevel:1,joinGroup:1,quitGroup:1,registerPlugin:1,getGroupOnlineMemberCount:1};function Jc(e,t){if(e.isReady()||1===zc[t])return!0;var n=e.getNotReadyReason(),o={code:n,message:"".concat(e.getErrorMessage(n)," | ").concat(t," | ").concat(e.getErrorMessage(Ur))};return e.onError(o),o}var Xc={},Qc={};return Qc.create=function(e){var n=0,o=e.SDKAppID;if(ot(o))n=o;else if(n=parseInt(o),isNaN(o))return He.e("".concat("TIM.create"," failed. Failed to parse the SDKAppID, please check the arguments")),null;if(n&&Xc[n])return Xc[n];He.l("".concat("TIM.create"));var s=new Yc(t(t({},e),{},{SDKAppID:n}));s.on(k.SDK_DESTROY,(function(e){Xc[e.data.SDKAppID]=null,delete Xc[e.data.SDKAppID]}));var a=function(e){var t=Object.create(null);return Object.keys(Gn).forEach((function(n){if(e[n]){var o=new L;t[n]=function(){var t=Array.from(arguments);return o.use((function(t,o){var s=Jc(e,n);return!0===s?o():Oi(s)})).use((function(e,t){if(!0===$t(e,On[n],n))return t()})).use((function(t,o){return e[n].apply(e,t)})),o.run(t)}}})),t}(s);return Xc[n]=a,On.hookGetAPITips(s.getErrorMessage.bind(s)),He.l("".concat("TIM.create"," ok")),a},Qc.TYPES=S,Qc.EVENT=k,Qc.VERSION="2.27.0",He.l("TIM.VERSION:".concat(Qc.VERSION)),Qc})); diff --git a/miniprogram_npm/@vant/weapp/action-sheet/index.d.ts b/miniprogram_npm/@vant/weapp/action-sheet/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/action-sheet/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/action-sheet/index.js b/miniprogram_npm/@vant/weapp/action-sheet/index.js new file mode 100644 index 0000000..a39818a --- /dev/null +++ b/miniprogram_npm/@vant/weapp/action-sheet/index.js @@ -0,0 +1,74 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var button_1 = require("../mixins/button"); +(0, component_1.VantComponent)({ + classes: ['list-class'], + mixins: [button_1.button], + props: { + show: Boolean, + title: String, + cancelText: String, + description: String, + round: { + type: Boolean, + value: true, + }, + zIndex: { + type: Number, + value: 100, + }, + actions: { + type: Array, + value: [], + }, + overlay: { + type: Boolean, + value: true, + }, + closeOnClickOverlay: { + type: Boolean, + value: true, + }, + closeOnClickAction: { + type: Boolean, + value: true, + }, + safeAreaInsetBottom: { + type: Boolean, + value: true, + }, + }, + methods: { + onSelect: function (event) { + var _this = this; + var index = event.currentTarget.dataset.index; + var _a = this.data, actions = _a.actions, closeOnClickAction = _a.closeOnClickAction, canIUseGetUserProfile = _a.canIUseGetUserProfile; + var item = actions[index]; + if (item) { + this.$emit('select', item); + if (closeOnClickAction) { + this.onClose(); + } + if (item.openType === 'getUserInfo' && canIUseGetUserProfile) { + wx.getUserProfile({ + desc: item.getUserProfileDesc || ' ', + complete: function (userProfile) { + _this.$emit('getuserinfo', userProfile); + }, + }); + } + } + }, + onCancel: function () { + this.$emit('cancel'); + }, + onClose: function () { + this.$emit('close'); + }, + onClickOverlay: function () { + this.$emit('click-overlay'); + this.onClose(); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/action-sheet/index.json b/miniprogram_npm/@vant/weapp/action-sheet/index.json new file mode 100644 index 0000000..19bf989 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/action-sheet/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-popup": "../popup/index", + "van-loading": "../loading/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/action-sheet/index.wxml b/miniprogram_npm/@vant/weapp/action-sheet/index.wxml new file mode 100644 index 0000000..d59a45d --- /dev/null +++ b/miniprogram_npm/@vant/weapp/action-sheet/index.wxml @@ -0,0 +1,69 @@ + + + + + {{ title }} + + + + {{ description }} + + + + + + + + + + {{ cancelText }} + + + diff --git a/miniprogram_npm/@vant/weapp/action-sheet/index.wxss b/miniprogram_npm/@vant/weapp/action-sheet/index.wxss new file mode 100644 index 0000000..eedd361 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/action-sheet/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-action-sheet{color:var(--action-sheet-item-text-color,#323233);max-height:var(--action-sheet-max-height,90%)!important}.van-action-sheet__cancel,.van-action-sheet__item{background-color:var(--action-sheet-item-background,#fff);font-size:var(--action-sheet-item-font-size,16px);line-height:var(--action-sheet-item-line-height,22px);padding:14px 16px;text-align:center}.van-action-sheet__cancel--hover,.van-action-sheet__item--hover{background-color:#f2f3f5}.van-action-sheet__cancel:after,.van-action-sheet__item:after{border-width:0}.van-action-sheet__cancel{color:var(--action-sheet-cancel-text-color,#646566)}.van-action-sheet__gap{background-color:var(--action-sheet-cancel-padding-color,#f7f8fa);display:block;height:var(--action-sheet-cancel-padding-top,8px)}.van-action-sheet__item--disabled{color:var(--action-sheet-item-disabled-text-color,#c8c9cc)}.van-action-sheet__item--disabled.van-action-sheet__item--hover{background-color:var(--action-sheet-item-background,#fff)}.van-action-sheet__subname{color:var(--action-sheet-subname-color,#969799);font-size:var(--action-sheet-subname-font-size,12px);line-height:var(--action-sheet-subname-line-height,20px);margin-top:var(--padding-xs,8px)}.van-action-sheet__header{font-size:var(--action-sheet-header-font-size,16px);font-weight:var(--font-weight-bold,500);line-height:var(--action-sheet-header-height,48px);text-align:center}.van-action-sheet__description{color:var(--action-sheet-description-color,#969799);font-size:var(--action-sheet-description-font-size,14px);line-height:var(--action-sheet-description-line-height,20px);padding:20px var(--padding-md,16px);text-align:center}.van-action-sheet__close{color:var(--action-sheet-close-icon-color,#c8c9cc);font-size:var(--action-sheet-close-icon-size,22px)!important;line-height:inherit!important;padding:var(--action-sheet-close-icon-padding,0 16px);position:absolute!important;right:0;top:0}.van-action-sheet__loading{display:flex!important} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/area/index.d.ts b/miniprogram_npm/@vant/weapp/area/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/area/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/area/index.js b/miniprogram_npm/@vant/weapp/area/index.js new file mode 100644 index 0000000..73de66d --- /dev/null +++ b/miniprogram_npm/@vant/weapp/area/index.js @@ -0,0 +1,235 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var shared_1 = require("../picker/shared"); +var utils_1 = require("../common/utils"); +var EMPTY_CODE = '000000'; +(0, component_1.VantComponent)({ + classes: ['active-class', 'toolbar-class', 'column-class'], + props: __assign(__assign({}, shared_1.pickerProps), { showToolbar: { + type: Boolean, + value: true, + }, value: { + type: String, + observer: function (value) { + this.code = value; + this.setValues(); + }, + }, areaList: { + type: Object, + value: {}, + observer: 'setValues', + }, columnsNum: { + type: null, + value: 3, + }, columnsPlaceholder: { + type: Array, + observer: function (val) { + this.setData({ + typeToColumnsPlaceholder: { + province: val[0] || '', + city: val[1] || '', + county: val[2] || '', + }, + }); + }, + } }), + data: { + columns: [{ values: [] }, { values: [] }, { values: [] }], + typeToColumnsPlaceholder: {}, + }, + mounted: function () { + var _this = this; + (0, utils_1.requestAnimationFrame)(function () { + _this.setValues(); + }); + }, + methods: { + getPicker: function () { + if (this.picker == null) { + this.picker = this.selectComponent('.van-area__picker'); + } + return this.picker; + }, + onCancel: function (event) { + this.emit('cancel', event.detail); + }, + onConfirm: function (event) { + var index = event.detail.index; + var value = event.detail.value; + value = this.parseValues(value); + this.emit('confirm', { value: value, index: index }); + }, + emit: function (type, detail) { + detail.values = detail.value; + delete detail.value; + this.$emit(type, detail); + }, + parseValues: function (values) { + var columnsPlaceholder = this.data.columnsPlaceholder; + return values.map(function (value, index) { + if (value && + (!value.code || value.name === columnsPlaceholder[index])) { + return __assign(__assign({}, value), { code: '', name: '' }); + } + return value; + }); + }, + onChange: function (event) { + var _this = this; + var _a; + var _b = event.detail, index = _b.index, picker = _b.picker, value = _b.value; + this.code = value[index].code; + (_a = this.setValues()) === null || _a === void 0 ? void 0 : _a.then(function () { + _this.$emit('change', { + picker: picker, + values: _this.parseValues(picker.getValues()), + index: index, + }); + }); + }, + getConfig: function (type) { + var areaList = this.data.areaList; + return (areaList && areaList["".concat(type, "_list")]) || {}; + }, + getList: function (type, code) { + if (type !== 'province' && !code) { + return []; + } + var typeToColumnsPlaceholder = this.data.typeToColumnsPlaceholder; + var list = this.getConfig(type); + var result = Object.keys(list).map(function (code) { return ({ + code: code, + name: list[code], + }); }); + if (code != null) { + // oversea code + if (code[0] === '9' && type === 'city') { + code = '9'; + } + result = result.filter(function (item) { return item.code.indexOf(code) === 0; }); + } + if (typeToColumnsPlaceholder[type] && result.length) { + // set columns placeholder + var codeFill = type === 'province' + ? '' + : type === 'city' + ? EMPTY_CODE.slice(2, 4) + : EMPTY_CODE.slice(4, 6); + result.unshift({ + code: "".concat(code).concat(codeFill), + name: typeToColumnsPlaceholder[type], + }); + } + return result; + }, + getIndex: function (type, code) { + var compareNum = type === 'province' ? 2 : type === 'city' ? 4 : 6; + var list = this.getList(type, code.slice(0, compareNum - 2)); + // oversea code + if (code[0] === '9' && type === 'province') { + compareNum = 1; + } + code = code.slice(0, compareNum); + for (var i = 0; i < list.length; i++) { + if (list[i].code.slice(0, compareNum) === code) { + return i; + } + } + return 0; + }, + setValues: function () { + var picker = this.getPicker(); + if (!picker) { + return; + } + var code = this.code || this.getDefaultCode(); + var provinceList = this.getList('province'); + var cityList = this.getList('city', code.slice(0, 2)); + var stack = []; + var indexes = []; + var columnsNum = this.data.columnsNum; + if (columnsNum >= 1) { + stack.push(picker.setColumnValues(0, provinceList, false)); + indexes.push(this.getIndex('province', code)); + } + if (columnsNum >= 2) { + stack.push(picker.setColumnValues(1, cityList, false)); + indexes.push(this.getIndex('city', code)); + if (cityList.length && code.slice(2, 4) === '00') { + code = cityList[0].code; + } + } + if (columnsNum === 3) { + stack.push(picker.setColumnValues(2, this.getList('county', code.slice(0, 4)), false)); + indexes.push(this.getIndex('county', code)); + } + return Promise.all(stack) + .catch(function () { }) + .then(function () { return picker.setIndexes(indexes); }) + .catch(function () { }); + }, + getDefaultCode: function () { + var columnsPlaceholder = this.data.columnsPlaceholder; + if (columnsPlaceholder.length) { + return EMPTY_CODE; + } + var countyCodes = Object.keys(this.getConfig('county')); + if (countyCodes[0]) { + return countyCodes[0]; + } + var cityCodes = Object.keys(this.getConfig('city')); + if (cityCodes[0]) { + return cityCodes[0]; + } + return ''; + }, + getValues: function () { + var picker = this.getPicker(); + if (!picker) { + return []; + } + return this.parseValues(picker.getValues().filter(function (value) { return !!value; })); + }, + getDetail: function () { + var values = this.getValues(); + var area = { + code: '', + country: '', + province: '', + city: '', + county: '', + }; + if (!values.length) { + return area; + } + var names = values.map(function (item) { return item.name; }); + area.code = values[values.length - 1].code; + if (area.code[0] === '9') { + area.country = names[1] || ''; + area.province = names[2] || ''; + } + else { + area.province = names[0] || ''; + area.city = names[1] || ''; + area.county = names[2] || ''; + } + return area; + }, + reset: function (code) { + this.code = code || ''; + return this.setValues(); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/area/index.json b/miniprogram_npm/@vant/weapp/area/index.json new file mode 100644 index 0000000..a778e91 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/area/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-picker": "../picker/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/area/index.wxml b/miniprogram_npm/@vant/weapp/area/index.wxml new file mode 100644 index 0000000..3a437b7 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/area/index.wxml @@ -0,0 +1,20 @@ + + + diff --git a/miniprogram_npm/@vant/weapp/area/index.wxs b/miniprogram_npm/@vant/weapp/area/index.wxs new file mode 100644 index 0000000..07723c1 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/area/index.wxs @@ -0,0 +1,8 @@ +/* eslint-disable */ +function displayColumns(columns, columnsNum) { + return columns.slice(0, +columnsNum); +} + +module.exports = { + displayColumns: displayColumns, +}; diff --git a/miniprogram_npm/@vant/weapp/area/index.wxss b/miniprogram_npm/@vant/weapp/area/index.wxss new file mode 100644 index 0000000..99694d6 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/area/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss'; \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/button/index.d.ts b/miniprogram_npm/@vant/weapp/button/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/button/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/button/index.js b/miniprogram_npm/@vant/weapp/button/index.js new file mode 100644 index 0000000..984135c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/button/index.js @@ -0,0 +1,67 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var button_1 = require("../mixins/button"); +var version_1 = require("../common/version"); +var mixins = [button_1.button]; +if ((0, version_1.canIUseFormFieldButton)()) { + mixins.push('wx://form-field-button'); +} +(0, component_1.VantComponent)({ + mixins: mixins, + classes: ['hover-class', 'loading-class'], + data: { + baseStyle: '', + }, + props: { + formType: String, + icon: String, + classPrefix: { + type: String, + value: 'van-icon', + }, + plain: Boolean, + block: Boolean, + round: Boolean, + square: Boolean, + loading: Boolean, + hairline: Boolean, + disabled: Boolean, + loadingText: String, + customStyle: String, + loadingType: { + type: String, + value: 'circular', + }, + type: { + type: String, + value: 'default', + }, + dataset: null, + size: { + type: String, + value: 'normal', + }, + loadingSize: { + type: String, + value: '20px', + }, + color: String, + }, + methods: { + onClick: function (event) { + var _this = this; + this.$emit('click', event); + var _a = this.data, canIUseGetUserProfile = _a.canIUseGetUserProfile, openType = _a.openType, getUserProfileDesc = _a.getUserProfileDesc, lang = _a.lang; + if (openType === 'getUserInfo' && canIUseGetUserProfile) { + wx.getUserProfile({ + desc: getUserProfileDesc || ' ', + lang: lang || 'en', + complete: function (userProfile) { + _this.$emit('getuserinfo', userProfile); + }, + }); + } + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/button/index.json b/miniprogram_npm/@vant/weapp/button/index.json new file mode 100644 index 0000000..e00a588 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/button/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-loading": "../loading/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/button/index.wxml b/miniprogram_npm/@vant/weapp/button/index.wxml new file mode 100644 index 0000000..b5abebb --- /dev/null +++ b/miniprogram_npm/@vant/weapp/button/index.wxml @@ -0,0 +1,54 @@ + + + + diff --git a/miniprogram_npm/@vant/weapp/button/index.wxs b/miniprogram_npm/@vant/weapp/button/index.wxs new file mode 100644 index 0000000..8b649fe --- /dev/null +++ b/miniprogram_npm/@vant/weapp/button/index.wxs @@ -0,0 +1,39 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); + +function rootStyle(data) { + if (!data.color) { + return data.customStyle; + } + + var properties = { + color: data.plain ? data.color : '#fff', + background: data.plain ? null : data.color, + }; + + // hide border when color is linear-gradient + if (data.color.indexOf('gradient') !== -1) { + properties.border = 0; + } else { + properties['border-color'] = data.color; + } + + return style([properties, data.customStyle]); +} + +function loadingColor(data) { + if (data.plain) { + return data.color ? data.color : '#c9c9c9'; + } + + if (data.type === 'default') { + return '#c9c9c9'; + } + + return '#fff'; +} + +module.exports = { + rootStyle: rootStyle, + loadingColor: loadingColor, +}; diff --git a/miniprogram_npm/@vant/weapp/button/index.wxss b/miniprogram_npm/@vant/weapp/button/index.wxss new file mode 100644 index 0000000..bd8bb5a --- /dev/null +++ b/miniprogram_npm/@vant/weapp/button/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-button{-webkit-text-size-adjust:100%;align-items:center;-webkit-appearance:none;border-radius:var(--button-border-radius,2px);box-sizing:border-box;display:inline-flex;font-size:var(--button-default-font-size,16px);height:var(--button-default-height,44px);justify-content:center;line-height:var(--button-line-height,20px);padding:0;position:relative;text-align:center;transition:opacity .2s;vertical-align:middle}.van-button:before{background-color:#000;border:inherit;border-color:#000;border-radius:inherit;content:" ";height:100%;left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:100%}.van-button:after{border-width:0}.van-button--active:before{opacity:.15}.van-button--unclickable:after{display:none}.van-button--default{background:var(--button-default-background-color,#fff);border:var(--button-border-width,1px) solid var(--button-default-border-color,#ebedf0);color:var(--button-default-color,#323233)}.van-button--primary{background:var(--button-primary-background-color,#07c160);border:var(--button-border-width,1px) solid var(--button-primary-border-color,#07c160);color:var(--button-primary-color,#fff)}.van-button--info{background:var(--button-info-background-color,#1989fa);border:var(--button-border-width,1px) solid var(--button-info-border-color,#1989fa);color:var(--button-info-color,#fff)}.van-button--danger{background:var(--button-danger-background-color,#ee0a24);border:var(--button-border-width,1px) solid var(--button-danger-border-color,#ee0a24);color:var(--button-danger-color,#fff)}.van-button--warning{background:var(--button-warning-background-color,#ff976a);border:var(--button-border-width,1px) solid var(--button-warning-border-color,#ff976a);color:var(--button-warning-color,#fff)}.van-button--plain{background:var(--button-plain-background-color,#fff)}.van-button--plain.van-button--primary{color:var(--button-primary-background-color,#07c160)}.van-button--plain.van-button--info{color:var(--button-info-background-color,#1989fa)}.van-button--plain.van-button--danger{color:var(--button-danger-background-color,#ee0a24)}.van-button--plain.van-button--warning{color:var(--button-warning-background-color,#ff976a)}.van-button--large{height:var(--button-large-height,50px);width:100%}.van-button--normal{font-size:var(--button-normal-font-size,14px);padding:0 15px}.van-button--small{font-size:var(--button-small-font-size,12px);height:var(--button-small-height,30px);min-width:var(--button-small-min-width,60px);padding:0 var(--padding-xs,8px)}.van-button--mini{display:inline-block;font-size:var(--button-mini-font-size,10px);height:var(--button-mini-height,22px);min-width:var(--button-mini-min-width,50px)}.van-button--mini+.van-button--mini{margin-left:5px}.van-button--block{display:flex;width:100%}.van-button--round{border-radius:var(--button-round-border-radius,999px)}.van-button--square{border-radius:0}.van-button--disabled{opacity:var(--button-disabled-opacity,.5)}.van-button__text{display:inline}.van-button__icon+.van-button__text:not(:empty),.van-button__loading-text{margin-left:4px}.van-button__icon{line-height:inherit!important;min-width:1em;vertical-align:top}.van-button--hairline{border-width:0;padding-top:1px}.van-button--hairline:after{border-color:inherit;border-radius:calc(var(--button-border-radius, 2px)*2);border-width:1px}.van-button--hairline.van-button--round:after{border-radius:var(--button-round-border-radius,999px)}.van-button--hairline.van-button--square:after{border-radius:0} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/calendar/calendar.wxml b/miniprogram_npm/@vant/weapp/calendar/calendar.wxml new file mode 100644 index 0000000..808f739 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/calendar.wxml @@ -0,0 +1,68 @@ + +
+ +
+ + + + + + + + + + + + {{ + computed.getButtonDisabled(type, currentDate) + ? confirmDisabledText + : confirmText + }} + + +
diff --git a/miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts b/miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/calendar/components/header/index.js b/miniprogram_npm/@vant/weapp/calendar/components/header/index.js new file mode 100644 index 0000000..544b3a4 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/header/index.js @@ -0,0 +1,45 @@ +"use strict"; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../../../common/component"); +(0, component_1.VantComponent)({ + props: { + title: { + type: String, + value: '日期选择', + }, + subtitle: String, + showTitle: Boolean, + showSubtitle: Boolean, + firstDayOfWeek: { + type: Number, + observer: 'initWeekDay', + }, + }, + data: { + weekdays: [], + }, + created: function () { + this.initWeekDay(); + }, + methods: { + initWeekDay: function () { + var defaultWeeks = ['日', '一', '二', '三', '四', '五', '六']; + var firstDayOfWeek = this.data.firstDayOfWeek || 0; + this.setData({ + weekdays: __spreadArray(__spreadArray([], defaultWeeks.slice(firstDayOfWeek, 7), true), defaultWeeks.slice(0, firstDayOfWeek), true), + }); + }, + onClickSubtitle: function (event) { + this.$emit('click-subtitle', event); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/calendar/components/header/index.json b/miniprogram_npm/@vant/weapp/calendar/components/header/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/header/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml b/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml new file mode 100644 index 0000000..7e56c83 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml @@ -0,0 +1,16 @@ + + + + {{ title }} + + + + {{ subtitle }} + + + + + {{ item }} + + + diff --git a/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss b/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss new file mode 100644 index 0000000..272537e --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss @@ -0,0 +1 @@ +@import '../../../common/index.wxss';.van-calendar__header{box-shadow:var(--calendar-header-box-shadow,0 2px 10px hsla(220,1%,50%,.16));flex-shrink:0}.van-calendar__header-subtitle,.van-calendar__header-title{font-weight:var(--font-weight-bold,500);height:var(--calendar-header-title-height,44px);line-height:var(--calendar-header-title-height,44px);text-align:center}.van-calendar__header-title+.van-calendar__header-title,.van-calendar__header-title:empty{display:none}.van-calendar__header-title:empty+.van-calendar__header-title{display:block!important}.van-calendar__weekdays{display:flex}.van-calendar__weekday{flex:1;font-size:var(--calendar-weekdays-font-size,12px);line-height:var(--calendar-weekdays-height,30px);text-align:center} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts b/miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts new file mode 100644 index 0000000..3ccf85a --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts @@ -0,0 +1,6 @@ +export interface Day { + date: Date; + type: string; + text: number; + bottomInfo?: string; +} diff --git a/miniprogram_npm/@vant/weapp/calendar/components/month/index.js b/miniprogram_npm/@vant/weapp/calendar/components/month/index.js new file mode 100644 index 0000000..4d137f5 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/month/index.js @@ -0,0 +1,158 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../../../common/component"); +var utils_1 = require("../../utils"); +(0, component_1.VantComponent)({ + props: { + date: { + type: null, + observer: 'setDays', + }, + type: { + type: String, + observer: 'setDays', + }, + color: String, + minDate: { + type: null, + observer: 'setDays', + }, + maxDate: { + type: null, + observer: 'setDays', + }, + showMark: Boolean, + rowHeight: null, + formatter: { + type: null, + observer: 'setDays', + }, + currentDate: { + type: null, + observer: 'setDays', + }, + firstDayOfWeek: { + type: Number, + observer: 'setDays', + }, + allowSameDay: Boolean, + showSubtitle: Boolean, + showMonthTitle: Boolean, + }, + data: { + visible: true, + days: [], + }, + methods: { + onClick: function (event) { + var index = event.currentTarget.dataset.index; + var item = this.data.days[index]; + if (item.type !== 'disabled') { + this.$emit('click', item); + } + }, + setDays: function () { + var days = []; + var startDate = new Date(this.data.date); + var year = startDate.getFullYear(); + var month = startDate.getMonth(); + var totalDay = (0, utils_1.getMonthEndDay)(startDate.getFullYear(), startDate.getMonth() + 1); + for (var day = 1; day <= totalDay; day++) { + var date = new Date(year, month, day); + var type = this.getDayType(date); + var config = { + date: date, + type: type, + text: day, + bottomInfo: this.getBottomInfo(type), + }; + if (this.data.formatter) { + config = this.data.formatter(config); + } + days.push(config); + } + this.setData({ days: days }); + }, + getMultipleDayType: function (day) { + var currentDate = this.data.currentDate; + if (!Array.isArray(currentDate)) { + return ''; + } + var isSelected = function (date) { + return currentDate.some(function (item) { return (0, utils_1.compareDay)(item, date) === 0; }); + }; + if (isSelected(day)) { + var prevDay = (0, utils_1.getPrevDay)(day); + var nextDay = (0, utils_1.getNextDay)(day); + var prevSelected = isSelected(prevDay); + var nextSelected = isSelected(nextDay); + if (prevSelected && nextSelected) { + return 'multiple-middle'; + } + if (prevSelected) { + return 'end'; + } + return nextSelected ? 'start' : 'multiple-selected'; + } + return ''; + }, + getRangeDayType: function (day) { + var _a = this.data, currentDate = _a.currentDate, allowSameDay = _a.allowSameDay; + if (!Array.isArray(currentDate)) { + return ''; + } + var startDay = currentDate[0], endDay = currentDate[1]; + if (!startDay) { + return ''; + } + var compareToStart = (0, utils_1.compareDay)(day, startDay); + if (!endDay) { + return compareToStart === 0 ? 'start' : ''; + } + var compareToEnd = (0, utils_1.compareDay)(day, endDay); + if (compareToStart === 0 && compareToEnd === 0 && allowSameDay) { + return 'start-end'; + } + if (compareToStart === 0) { + return 'start'; + } + if (compareToEnd === 0) { + return 'end'; + } + if (compareToStart > 0 && compareToEnd < 0) { + return 'middle'; + } + return ''; + }, + getDayType: function (day) { + var _a = this.data, type = _a.type, minDate = _a.minDate, maxDate = _a.maxDate, currentDate = _a.currentDate; + if ((0, utils_1.compareDay)(day, minDate) < 0 || (0, utils_1.compareDay)(day, maxDate) > 0) { + return 'disabled'; + } + if (type === 'single') { + return (0, utils_1.compareDay)(day, currentDate) === 0 ? 'selected' : ''; + } + if (type === 'multiple') { + return this.getMultipleDayType(day); + } + /* istanbul ignore else */ + if (type === 'range') { + return this.getRangeDayType(day); + } + return ''; + }, + getBottomInfo: function (type) { + if (this.data.type === 'range') { + if (type === 'start') { + return '开始'; + } + if (type === 'end') { + return '结束'; + } + if (type === 'start-end') { + return '开始/结束'; + } + } + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/calendar/components/month/index.json b/miniprogram_npm/@vant/weapp/calendar/components/month/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/month/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml b/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml new file mode 100644 index 0000000..0c73b2f --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml @@ -0,0 +1,39 @@ + + + + + + {{ computed.formatMonthTitle(date) }} + + + + + {{ computed.getMark(date) }} + + + + + {{ item.topInfo }} + {{ item.text }} + + {{ item.bottomInfo }} + + + + + {{ item.topInfo }} + {{ item.text }} + + {{ item.bottomInfo }} + + + + + diff --git a/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs b/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs new file mode 100644 index 0000000..55e45a5 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs @@ -0,0 +1,71 @@ +/* eslint-disable */ +var utils = require('../../utils.wxs'); + +function getMark(date) { + return getDate(date).getMonth() + 1; +} + +var ROW_HEIGHT = 64; + +function getDayStyle(type, index, date, rowHeight, color, firstDayOfWeek) { + var style = []; + var current = getDate(date).getDay() || 7; + var offset = current < firstDayOfWeek ? (7 - firstDayOfWeek + current) : + current === 7 && firstDayOfWeek === 0 ? 0 : + (current - firstDayOfWeek); + + if (index === 0) { + style.push(['margin-left', (100 * offset) / 7 + '%']); + } + + if (rowHeight !== ROW_HEIGHT) { + style.push(['height', rowHeight + 'px']); + } + + if (color) { + if ( + type === 'start' || + type === 'end' || + type === 'start-end' || + type === 'multiple-selected' || + type === 'multiple-middle' + ) { + style.push(['background', color]); + } else if (type === 'middle') { + style.push(['color', color]); + } + } + + return style + .map(function(item) { + return item.join(':'); + }) + .join(';'); +} + +function formatMonthTitle(date) { + date = getDate(date); + return date.getFullYear() + '年' + (date.getMonth() + 1) + '月'; +} + +function getMonthStyle(visible, date, rowHeight) { + if (!visible) { + date = getDate(date); + + var totalDay = utils.getMonthEndDay( + date.getFullYear(), + date.getMonth() + 1 + ); + var offset = getDate(date).getDay(); + var padding = Math.ceil((totalDay + offset) / 7) * rowHeight; + + return 'padding-bottom:' + padding + 'px'; + } +} + +module.exports = { + getMark: getMark, + getDayStyle: getDayStyle, + formatMonthTitle: formatMonthTitle, + getMonthStyle: getMonthStyle +}; diff --git a/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss b/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss new file mode 100644 index 0000000..9aee73d --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss @@ -0,0 +1 @@ +@import '../../../common/index.wxss';.van-calendar{background-color:var(--calendar-background-color,#fff);display:flex;flex-direction:column;height:100%}.van-calendar__month-title{font-size:var(--calendar-month-title-font-size,14px);font-weight:var(--font-weight-bold,500);height:var(--calendar-header-title-height,44px);line-height:var(--calendar-header-title-height,44px);text-align:center}.van-calendar__days{display:flex;flex-wrap:wrap;position:relative;-webkit-user-select:none;user-select:none}.van-calendar__month-mark{color:var(--calendar-month-mark-color,rgba(242,243,245,.8));font-size:var(--calendar-month-mark-font-size,160px);left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:0}.van-calendar__day,.van-calendar__selected-day{align-items:center;display:flex;justify-content:center;text-align:center}.van-calendar__day{font-size:var(--calendar-day-font-size,16px);height:var(--calendar-day-height,64px);position:relative;width:14.285%}.van-calendar__day--end,.van-calendar__day--multiple-middle,.van-calendar__day--multiple-selected,.van-calendar__day--start,.van-calendar__day--start-end{background-color:var(--calendar-range-edge-background-color,#ee0a24);color:var(--calendar-range-edge-color,#fff)}.van-calendar__day--start{border-radius:4px 0 0 4px}.van-calendar__day--end{border-radius:0 4px 4px 0}.van-calendar__day--multiple-selected,.van-calendar__day--start-end{border-radius:4px}.van-calendar__day--middle{color:var(--calendar-range-middle-color,#ee0a24)}.van-calendar__day--middle:after{background-color:currentColor;bottom:0;content:"";left:0;opacity:var(--calendar-range-middle-background-opacity,.1);position:absolute;right:0;top:0}.van-calendar__day--disabled{color:var(--calendar-day-disabled-color,#c8c9cc);cursor:default}.van-calendar__bottom-info,.van-calendar__top-info{font-size:var(--calendar-info-font-size,10px);left:0;line-height:var(--calendar-info-line-height,14px);position:absolute;right:0}@media (max-width:350px){.van-calendar__bottom-info,.van-calendar__top-info{font-size:9px}}.van-calendar__top-info{top:6px}.van-calendar__bottom-info{bottom:6px}.van-calendar__selected-day{background-color:var(--calendar-selected-day-background-color,#ee0a24);border-radius:4px;color:var(--calendar-selected-day-color,#fff);height:var(--calendar-selected-day-size,54px);width:var(--calendar-selected-day-size,54px)} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/calendar/index.d.ts b/miniprogram_npm/@vant/weapp/calendar/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/calendar/index.js b/miniprogram_npm/@vant/weapp/calendar/index.js new file mode 100644 index 0000000..3baa5f0 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/index.js @@ -0,0 +1,361 @@ +"use strict"; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var utils_1 = require("./utils"); +var toast_1 = __importDefault(require("../toast/toast")); +var utils_2 = require("../common/utils"); +var initialMinDate = (0, utils_1.getToday)().getTime(); +var initialMaxDate = (function () { + var now = (0, utils_1.getToday)(); + return new Date(now.getFullYear(), now.getMonth() + 6, now.getDate()).getTime(); +})(); +var getTime = function (date) { + return date instanceof Date ? date.getTime() : date; +}; +(0, component_1.VantComponent)({ + props: { + title: { + type: String, + value: '日期选择', + }, + color: String, + show: { + type: Boolean, + observer: function (val) { + if (val) { + this.initRect(); + this.scrollIntoView(); + } + }, + }, + formatter: null, + confirmText: { + type: String, + value: '确定', + }, + confirmDisabledText: { + type: String, + value: '确定', + }, + rangePrompt: String, + showRangePrompt: { + type: Boolean, + value: true, + }, + defaultDate: { + type: null, + observer: function (val) { + this.setData({ currentDate: val }); + this.scrollIntoView(); + }, + }, + allowSameDay: Boolean, + type: { + type: String, + value: 'single', + observer: 'reset', + }, + minDate: { + type: Number, + value: initialMinDate, + }, + maxDate: { + type: Number, + value: initialMaxDate, + }, + position: { + type: String, + value: 'bottom', + }, + rowHeight: { + type: null, + value: utils_1.ROW_HEIGHT, + }, + round: { + type: Boolean, + value: true, + }, + poppable: { + type: Boolean, + value: true, + }, + showMark: { + type: Boolean, + value: true, + }, + showTitle: { + type: Boolean, + value: true, + }, + showConfirm: { + type: Boolean, + value: true, + }, + showSubtitle: { + type: Boolean, + value: true, + }, + safeAreaInsetBottom: { + type: Boolean, + value: true, + }, + closeOnClickOverlay: { + type: Boolean, + value: true, + }, + maxRange: { + type: null, + value: null, + }, + firstDayOfWeek: { + type: Number, + value: 0, + }, + readonly: Boolean, + }, + data: { + subtitle: '', + currentDate: null, + scrollIntoView: '', + }, + created: function () { + this.setData({ + currentDate: this.getInitialDate(this.data.defaultDate), + }); + }, + mounted: function () { + if (this.data.show || !this.data.poppable) { + this.initRect(); + this.scrollIntoView(); + } + }, + methods: { + reset: function () { + this.setData({ currentDate: this.getInitialDate() }); + this.scrollIntoView(); + }, + initRect: function () { + var _this = this; + if (this.contentObserver != null) { + this.contentObserver.disconnect(); + } + var contentObserver = this.createIntersectionObserver({ + thresholds: [0, 0.1, 0.9, 1], + observeAll: true, + }); + this.contentObserver = contentObserver; + contentObserver.relativeTo('.van-calendar__body'); + contentObserver.observe('.month', function (res) { + if (res.boundingClientRect.top <= res.relativeRect.top) { + // @ts-ignore + _this.setData({ subtitle: (0, utils_1.formatMonthTitle)(res.dataset.date) }); + } + }); + }, + limitDateRange: function (date, minDate, maxDate) { + if (minDate === void 0) { minDate = null; } + if (maxDate === void 0) { maxDate = null; } + minDate = minDate || this.data.minDate; + maxDate = maxDate || this.data.maxDate; + if ((0, utils_1.compareDay)(date, minDate) === -1) { + return minDate; + } + if ((0, utils_1.compareDay)(date, maxDate) === 1) { + return maxDate; + } + return date; + }, + getInitialDate: function (defaultDate) { + var _this = this; + if (defaultDate === void 0) { defaultDate = null; } + var _a = this.data, type = _a.type, minDate = _a.minDate, maxDate = _a.maxDate, allowSameDay = _a.allowSameDay; + var now = (0, utils_1.getToday)().getTime(); + if (type === 'range') { + if (!Array.isArray(defaultDate)) { + defaultDate = []; + } + var _b = defaultDate || [], startDay = _b[0], endDay = _b[1]; + var start = this.limitDateRange(startDay || now, minDate, (0, utils_1.getPrevDay)(new Date(maxDate)).getTime()); + var date = getTime(endDay || now); + var end = this.limitDateRange(date, allowSameDay ? date : (0, utils_1.getNextDay)(new Date(minDate)).getTime()); + return [start, end]; + } + if (type === 'multiple') { + if (Array.isArray(defaultDate)) { + return defaultDate.map(function (date) { return _this.limitDateRange(date); }); + } + return [this.limitDateRange(now)]; + } + if (!defaultDate || Array.isArray(defaultDate)) { + defaultDate = now; + } + return this.limitDateRange(defaultDate); + }, + scrollIntoView: function () { + var _this = this; + (0, utils_2.requestAnimationFrame)(function () { + var _a = _this.data, currentDate = _a.currentDate, type = _a.type, show = _a.show, poppable = _a.poppable, minDate = _a.minDate, maxDate = _a.maxDate; + // @ts-ignore + var targetDate = type === 'single' ? currentDate : currentDate[0]; + var displayed = show || !poppable; + if (!targetDate || !displayed) { + return; + } + var months = (0, utils_1.getMonths)(minDate, maxDate); + months.some(function (month, index) { + if ((0, utils_1.compareMonth)(month, targetDate) === 0) { + _this.setData({ scrollIntoView: "month".concat(index) }); + return true; + } + return false; + }); + }); + }, + onOpen: function () { + this.$emit('open'); + }, + onOpened: function () { + this.$emit('opened'); + }, + onClose: function () { + this.$emit('close'); + }, + onClosed: function () { + this.$emit('closed'); + }, + onClickDay: function (event) { + if (this.data.readonly) { + return; + } + var date = event.detail.date; + var _a = this.data, type = _a.type, currentDate = _a.currentDate, allowSameDay = _a.allowSameDay; + if (type === 'range') { + // @ts-ignore + var startDay_1 = currentDate[0], endDay = currentDate[1]; + if (startDay_1 && !endDay) { + var compareToStart = (0, utils_1.compareDay)(date, startDay_1); + if (compareToStart === 1) { + var days_1 = this.selectComponent('.month').data.days; + days_1.some(function (day, index) { + var isDisabled = day.type === 'disabled' && + getTime(startDay_1) < getTime(day.date) && + getTime(day.date) < getTime(date); + if (isDisabled) { + (date = days_1[index - 1].date); + } + return isDisabled; + }); + this.select([startDay_1, date], true); + } + else if (compareToStart === -1) { + this.select([date, null]); + } + else if (allowSameDay) { + this.select([date, date]); + } + } + else { + this.select([date, null]); + } + } + else if (type === 'multiple') { + var selectedIndex_1; + // @ts-ignore + var selected = currentDate.some(function (dateItem, index) { + var equal = (0, utils_1.compareDay)(dateItem, date) === 0; + if (equal) { + selectedIndex_1 = index; + } + return equal; + }); + if (selected) { + // @ts-ignore + var cancelDate = currentDate.splice(selectedIndex_1, 1); + this.setData({ currentDate: currentDate }); + this.unselect(cancelDate); + } + else { + // @ts-ignore + this.select(__spreadArray(__spreadArray([], currentDate, true), [date], false)); + } + } + else { + this.select(date, true); + } + }, + unselect: function (dateArray) { + var date = dateArray[0]; + if (date) { + this.$emit('unselect', (0, utils_1.copyDates)(date)); + } + }, + select: function (date, complete) { + if (complete && this.data.type === 'range') { + var valid = this.checkRange(date); + if (!valid) { + // auto selected to max range if showConfirm + if (this.data.showConfirm) { + this.emit([ + date[0], + (0, utils_1.getDayByOffset)(date[0], this.data.maxRange - 1), + ]); + } + else { + this.emit(date); + } + return; + } + } + this.emit(date); + if (complete && !this.data.showConfirm) { + this.onConfirm(); + } + }, + emit: function (date) { + this.setData({ + currentDate: Array.isArray(date) ? date.map(getTime) : getTime(date), + }); + this.$emit('select', (0, utils_1.copyDates)(date)); + }, + checkRange: function (date) { + var _a = this.data, maxRange = _a.maxRange, rangePrompt = _a.rangePrompt, showRangePrompt = _a.showRangePrompt; + if (maxRange && (0, utils_1.calcDateNum)(date) > maxRange) { + if (showRangePrompt) { + (0, toast_1.default)({ + context: this, + message: rangePrompt || "\u9009\u62E9\u5929\u6570\u4E0D\u80FD\u8D85\u8FC7 ".concat(maxRange, " \u5929"), + }); + } + this.$emit('over-range'); + return false; + } + return true; + }, + onConfirm: function () { + var _this = this; + if (this.data.type === 'range' && + !this.checkRange(this.data.currentDate)) { + return; + } + wx.nextTick(function () { + // @ts-ignore + _this.$emit('confirm', (0, utils_1.copyDates)(_this.data.currentDate)); + }); + }, + onClickSubtitle: function (event) { + this.$emit('click-subtitle', event); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/calendar/index.json b/miniprogram_npm/@vant/weapp/calendar/index.json new file mode 100644 index 0000000..397d5ae --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/index.json @@ -0,0 +1,10 @@ +{ + "component": true, + "usingComponents": { + "header": "./components/header/index", + "month": "./components/month/index", + "van-button": "../button/index", + "van-popup": "../popup/index", + "van-toast": "../toast/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/calendar/index.wxml b/miniprogram_npm/@vant/weapp/calendar/index.wxml new file mode 100644 index 0000000..bc8bcfd --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/index.wxml @@ -0,0 +1,25 @@ + + + + + + + + + + + + diff --git a/miniprogram_npm/@vant/weapp/calendar/index.wxs b/miniprogram_npm/@vant/weapp/calendar/index.wxs new file mode 100644 index 0000000..2c04be1 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/index.wxs @@ -0,0 +1,37 @@ +/* eslint-disable */ +var utils = require('./utils.wxs'); + +function getMonths(minDate, maxDate) { + var months = []; + var cursor = getDate(minDate); + + cursor.setDate(1); + + do { + months.push(cursor.getTime()); + cursor.setMonth(cursor.getMonth() + 1); + } while (utils.compareMonth(cursor, getDate(maxDate)) !== 1); + + return months; +} + +function getButtonDisabled(type, currentDate) { + if (currentDate == null) { + return true; + } + + if (type === 'range') { + return !currentDate[0] || !currentDate[1]; + } + + if (type === 'multiple') { + return !currentDate.length; + } + + return !currentDate; +} + +module.exports = { + getMonths: getMonths, + getButtonDisabled: getButtonDisabled +}; diff --git a/miniprogram_npm/@vant/weapp/calendar/index.wxss b/miniprogram_npm/@vant/weapp/calendar/index.wxss new file mode 100644 index 0000000..05df518 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-calendar{background-color:var(--calendar-background-color,#fff);display:flex;flex-direction:column;height:var(--calendar-height,100%)}.van-calendar__close-icon{top:11px}.van-calendar__popup--bottom,.van-calendar__popup--top{height:var(--calendar-popup-height,80%)}.van-calendar__popup--left,.van-calendar__popup--right{height:100%}.van-calendar__body{-webkit-overflow-scrolling:touch;flex:1;overflow:auto}.van-calendar__footer{flex-shrink:0;padding:0 var(--padding-md,16px)}.van-calendar__footer--safe-area-inset-bottom{padding-bottom:env(safe-area-inset-bottom)}.van-calendar__footer+.van-calendar__footer,.van-calendar__footer:empty{display:none}.van-calendar__footer:empty+.van-calendar__footer{display:block!important}.van-calendar__confirm{height:var(--calendar-confirm-button-height,36px)!important;line-height:var(--calendar-confirm-button-line-height,34px)!important;margin:var(--calendar-confirm-button-margin,7px 0)!important} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/calendar/utils.d.ts b/miniprogram_npm/@vant/weapp/calendar/utils.d.ts new file mode 100644 index 0000000..889e6e7 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/utils.d.ts @@ -0,0 +1,12 @@ +export declare const ROW_HEIGHT = 64; +export declare function formatMonthTitle(date: Date): string; +export declare function compareMonth(date1: Date | number, date2: Date | number): 0 | 1 | -1; +export declare function compareDay(day1: Date | number, day2: Date | number): 0 | 1 | -1; +export declare function getDayByOffset(date: Date, offset: number): Date; +export declare function getPrevDay(date: Date): Date; +export declare function getNextDay(date: Date): Date; +export declare function getToday(): Date; +export declare function calcDateNum(date: [Date, Date]): number; +export declare function copyDates(dates: Date | Date[]): Date | Date[]; +export declare function getMonthEndDay(year: number, month: number): number; +export declare function getMonths(minDate: number, maxDate: number): number[]; diff --git a/miniprogram_npm/@vant/weapp/calendar/utils.js b/miniprogram_npm/@vant/weapp/calendar/utils.js new file mode 100644 index 0000000..c9e5df7 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/utils.js @@ -0,0 +1,97 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getMonths = exports.getMonthEndDay = exports.copyDates = exports.calcDateNum = exports.getToday = exports.getNextDay = exports.getPrevDay = exports.getDayByOffset = exports.compareDay = exports.compareMonth = exports.formatMonthTitle = exports.ROW_HEIGHT = void 0; +exports.ROW_HEIGHT = 64; +function formatMonthTitle(date) { + if (!(date instanceof Date)) { + date = new Date(date); + } + return "".concat(date.getFullYear(), "\u5E74").concat(date.getMonth() + 1, "\u6708"); +} +exports.formatMonthTitle = formatMonthTitle; +function compareMonth(date1, date2) { + if (!(date1 instanceof Date)) { + date1 = new Date(date1); + } + if (!(date2 instanceof Date)) { + date2 = new Date(date2); + } + var year1 = date1.getFullYear(); + var year2 = date2.getFullYear(); + var month1 = date1.getMonth(); + var month2 = date2.getMonth(); + if (year1 === year2) { + return month1 === month2 ? 0 : month1 > month2 ? 1 : -1; + } + return year1 > year2 ? 1 : -1; +} +exports.compareMonth = compareMonth; +function compareDay(day1, day2) { + if (!(day1 instanceof Date)) { + day1 = new Date(day1); + } + if (!(day2 instanceof Date)) { + day2 = new Date(day2); + } + var compareMonthResult = compareMonth(day1, day2); + if (compareMonthResult === 0) { + var date1 = day1.getDate(); + var date2 = day2.getDate(); + return date1 === date2 ? 0 : date1 > date2 ? 1 : -1; + } + return compareMonthResult; +} +exports.compareDay = compareDay; +function getDayByOffset(date, offset) { + date = new Date(date); + date.setDate(date.getDate() + offset); + return date; +} +exports.getDayByOffset = getDayByOffset; +function getPrevDay(date) { + return getDayByOffset(date, -1); +} +exports.getPrevDay = getPrevDay; +function getNextDay(date) { + return getDayByOffset(date, 1); +} +exports.getNextDay = getNextDay; +function getToday() { + var today = new Date(); + today.setHours(0, 0, 0, 0); + return today; +} +exports.getToday = getToday; +function calcDateNum(date) { + var day1 = new Date(date[0]).getTime(); + var day2 = new Date(date[1]).getTime(); + return (day2 - day1) / (1000 * 60 * 60 * 24) + 1; +} +exports.calcDateNum = calcDateNum; +function copyDates(dates) { + if (Array.isArray(dates)) { + return dates.map(function (date) { + if (date === null) { + return date; + } + return new Date(date); + }); + } + return new Date(dates); +} +exports.copyDates = copyDates; +function getMonthEndDay(year, month) { + return 32 - new Date(year, month - 1, 32).getDate(); +} +exports.getMonthEndDay = getMonthEndDay; +function getMonths(minDate, maxDate) { + var months = []; + var cursor = new Date(minDate); + cursor.setDate(1); + do { + months.push(cursor.getTime()); + cursor.setMonth(cursor.getMonth() + 1); + } while (compareMonth(cursor, maxDate) !== 1); + return months; +} +exports.getMonths = getMonths; diff --git a/miniprogram_npm/@vant/weapp/calendar/utils.wxs b/miniprogram_npm/@vant/weapp/calendar/utils.wxs new file mode 100644 index 0000000..e57f6b3 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/utils.wxs @@ -0,0 +1,25 @@ +/* eslint-disable */ +function getMonthEndDay(year, month) { + return 32 - getDate(year, month - 1, 32).getDate(); +} + +function compareMonth(date1, date2) { + date1 = getDate(date1); + date2 = getDate(date2); + + var year1 = date1.getFullYear(); + var year2 = date2.getFullYear(); + var month1 = date1.getMonth(); + var month2 = date2.getMonth(); + + if (year1 === year2) { + return month1 === month2 ? 0 : month1 > month2 ? 1 : -1; + } + + return year1 > year2 ? 1 : -1; +} + +module.exports = { + getMonthEndDay: getMonthEndDay, + compareMonth: compareMonth +}; diff --git a/miniprogram_npm/@vant/weapp/card/index.d.ts b/miniprogram_npm/@vant/weapp/card/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/card/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/card/index.js b/miniprogram_npm/@vant/weapp/card/index.js new file mode 100644 index 0000000..2815655 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/card/index.js @@ -0,0 +1,51 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var link_1 = require("../mixins/link"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + classes: [ + 'num-class', + 'desc-class', + 'thumb-class', + 'title-class', + 'price-class', + 'origin-price-class', + ], + mixins: [link_1.link], + props: { + tag: String, + num: String, + desc: String, + thumb: String, + title: String, + price: { + type: String, + observer: 'updatePrice', + }, + centered: Boolean, + lazyLoad: Boolean, + thumbLink: String, + originPrice: String, + thumbMode: { + type: String, + value: 'aspectFit', + }, + currency: { + type: String, + value: '¥', + }, + }, + methods: { + updatePrice: function () { + var price = this.data.price; + var priceArr = price.toString().split('.'); + this.setData({ + integerStr: priceArr[0], + decimalStr: priceArr[1] ? ".".concat(priceArr[1]) : '', + }); + }, + onClickThumb: function () { + this.jumpLink('thumbLink'); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/card/index.json b/miniprogram_npm/@vant/weapp/card/index.json new file mode 100644 index 0000000..e917407 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/card/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-tag": "../tag/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/card/index.wxml b/miniprogram_npm/@vant/weapp/card/index.wxml new file mode 100644 index 0000000..62173e4 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/card/index.wxml @@ -0,0 +1,56 @@ + + + + + + + + + {{ tag }} + + + + + + + {{ title }} + + + {{ desc }} + + + + + + + + + {{ currency }} + {{ integerStr }} + {{ decimalStr }} + + + {{ currency }} {{ originPrice }} + + x {{ num }} + + + + + + + + + + diff --git a/miniprogram_npm/@vant/weapp/card/index.wxss b/miniprogram_npm/@vant/weapp/card/index.wxss new file mode 100644 index 0000000..0f4d7c5 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/card/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-card{background-color:var(--card-background-color,#fafafa);box-sizing:border-box;color:var(--card-text-color,#323233);font-size:var(--card-font-size,12px);padding:var(--card-padding,8px 16px);position:relative}.van-card__header{display:flex}.van-card__header--center{align-items:center;justify-content:center}.van-card__thumb{flex:none;height:var(--card-thumb-size,88px);margin-right:var(--padding-xs,8px);position:relative;width:var(--card-thumb-size,88px)}.van-card__thumb:empty{display:none}.van-card__img{border-radius:8px;height:100%;width:100%}.van-card__content{display:flex;flex:1;flex-direction:column;justify-content:space-between;min-height:var(--card-thumb-size,88px);min-width:0;position:relative}.van-card__content--center{justify-content:center}.van-card__desc,.van-card__title{word-wrap:break-word}.van-card__title{font-weight:700;line-height:var(--card-title-line-height,16px)}.van-card__desc{color:var(--card-desc-color,#646566);line-height:var(--card-desc-line-height,20px)}.van-card__bottom{line-height:20px}.van-card__price{color:var(--card-price-color,#ee0a24);display:inline-block;font-size:var(--card-price-font-size,12px);font-weight:700}.van-card__price-integer{font-size:var(--card-price-integer-font-size,16px)}.van-card__price-decimal,.van-card__price-integer{font-family:var(--card-price-font-family,Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif)}.van-card__origin-price{color:var(--card-origin-price-color,#646566);display:inline-block;font-size:var(--card-origin-price-font-size,10px);margin-left:5px;text-decoration:line-through}.van-card__num{float:right}.van-card__tag{left:0;position:absolute!important;top:2px}.van-card__footer{flex:none;text-align:right;width:100%} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/cascader/index.d.ts b/miniprogram_npm/@vant/weapp/cascader/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cascader/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/cascader/index.js b/miniprogram_npm/@vant/weapp/cascader/index.js new file mode 100644 index 0000000..a3662ba --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cascader/index.js @@ -0,0 +1,220 @@ +"use strict"; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var FieldName; +(function (FieldName) { + FieldName["TEXT"] = "text"; + FieldName["VALUE"] = "value"; + FieldName["CHILDREN"] = "children"; +})(FieldName || (FieldName = {})); +var defaultFieldNames = { + text: FieldName.TEXT, + value: FieldName.VALUE, + children: FieldName.CHILDREN, +}; +(0, component_1.VantComponent)({ + props: { + title: String, + value: { + type: String, + observer: 'updateValue', + }, + placeholder: { + type: String, + value: '请选择', + }, + activeColor: { + type: String, + value: '#1989fa', + }, + options: { + type: Array, + value: [], + observer: 'updateOptions', + }, + swipeable: { + type: Boolean, + value: false, + }, + closeable: { + type: Boolean, + value: true, + }, + showHeader: { + type: Boolean, + value: true, + }, + closeIcon: { + type: String, + value: 'cross', + }, + fieldNames: { + type: Object, + value: defaultFieldNames, + observer: 'updateFieldNames', + }, + }, + data: { + tabs: [], + activeTab: 0, + textKey: FieldName.TEXT, + valueKey: FieldName.VALUE, + childrenKey: FieldName.CHILDREN, + }, + created: function () { + this.updateTabs(); + }, + methods: { + updateOptions: function (val, oldVal) { + var isAsync = !!(val.length && oldVal.length); + this.updateTabs(isAsync); + }, + updateValue: function (val) { + var _this = this; + if (val !== undefined) { + var values = this.data.tabs.map(function (tab) { return tab.selected && tab.selected[_this.data.valueKey]; }); + if (values.indexOf(val) > -1) { + return; + } + } + this.updateTabs(); + }, + updateFieldNames: function () { + var _a = this.data.fieldNames || defaultFieldNames, _b = _a.text, text = _b === void 0 ? 'text' : _b, _c = _a.value, value = _c === void 0 ? 'value' : _c, _d = _a.children, children = _d === void 0 ? 'children' : _d; + this.setData({ + textKey: text, + valueKey: value, + childrenKey: children, + }); + }, + getSelectedOptionsByValue: function (options, value) { + for (var i = 0; i < options.length; i++) { + var option = options[i]; + if (option[this.data.valueKey] === value) { + return [option]; + } + if (option[this.data.childrenKey]) { + var selectedOptions = this.getSelectedOptionsByValue(option[this.data.childrenKey], value); + if (selectedOptions) { + return __spreadArray([option], selectedOptions, true); + } + } + } + }, + updateTabs: function (isAsync) { + var _this = this; + if (isAsync === void 0) { isAsync = false; } + var _a = this.data, options = _a.options, value = _a.value; + if (value !== undefined) { + var selectedOptions = this.getSelectedOptionsByValue(options, value); + if (selectedOptions) { + var optionsCursor_1 = options; + var tabs_1 = selectedOptions.map(function (option) { + var tab = { + options: optionsCursor_1, + selected: option, + }; + var next = optionsCursor_1.find(function (item) { return item[_this.data.valueKey] === option[_this.data.valueKey]; }); + if (next) { + optionsCursor_1 = next[_this.data.childrenKey]; + } + return tab; + }); + if (optionsCursor_1) { + tabs_1.push({ + options: optionsCursor_1, + selected: null, + }); + } + this.setData({ + tabs: tabs_1, + }); + wx.nextTick(function () { + _this.setData({ + activeTab: tabs_1.length - 1, + }); + }); + return; + } + } + // 异步更新 + if (isAsync) { + var tabs = this.data.tabs; + tabs[tabs.length - 1].options = + options[options.length - 1][this.data.childrenKey]; + this.setData({ + tabs: tabs, + }); + return; + } + this.setData({ + tabs: [ + { + options: options, + selected: null, + }, + ], + }); + }, + onClose: function () { + this.$emit('close'); + }, + onClickTab: function (e) { + var _a = e.detail, tabIndex = _a.index, title = _a.title; + this.$emit('click-tab', { title: title, tabIndex: tabIndex }); + }, + // 选中 + onSelect: function (e) { + var _this = this; + var _a = e.currentTarget.dataset, option = _a.option, tabIndex = _a.tabIndex; + if (option && option.disabled) { + return; + } + var _b = this.data, valueKey = _b.valueKey, childrenKey = _b.childrenKey; + var tabs = this.data.tabs; + tabs[tabIndex].selected = option; + if (tabs.length > tabIndex + 1) { + tabs = tabs.slice(0, tabIndex + 1); + } + if (option[childrenKey]) { + var nextTab = { + options: option[childrenKey], + selected: null, + }; + if (tabs[tabIndex + 1]) { + tabs[tabIndex + 1] = nextTab; + } + else { + tabs.push(nextTab); + } + wx.nextTick(function () { + _this.setData({ + activeTab: tabIndex + 1, + }); + }); + } + this.setData({ + tabs: tabs, + }); + var selectedOptions = tabs.map(function (tab) { return tab.selected; }).filter(Boolean); + var params = { + value: option[valueKey], + tabIndex: tabIndex, + selectedOptions: selectedOptions, + }; + this.$emit('change', params); + if (!option[childrenKey]) { + this.$emit('finish', params); + } + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/cascader/index.json b/miniprogram_npm/@vant/weapp/cascader/index.json new file mode 100644 index 0000000..d0f75eb --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cascader/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-tab": "../tab/index", + "van-tabs": "../tabs/index" + } +} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/cascader/index.wxml b/miniprogram_npm/@vant/weapp/cascader/index.wxml new file mode 100644 index 0000000..b1d724b --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cascader/index.wxml @@ -0,0 +1,53 @@ + + + + {{ title }} + + + + + + + + + + + {{ option[textKey] }} + + + + + + + diff --git a/miniprogram_npm/@vant/weapp/cascader/index.wxs b/miniprogram_npm/@vant/weapp/cascader/index.wxs new file mode 100644 index 0000000..cba6465 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cascader/index.wxs @@ -0,0 +1,24 @@ +var utils = require('../wxs/utils.wxs'); +var style = require('../wxs/style.wxs'); + +function isSelected(tab, textKey, option) { + return tab.selected && tab.selected[textKey] === option[textKey] +} + +function optionClass(tab, textKey, option) { + return utils.bem('cascader__option', { selected: isSelected({ tab, textKey, option }), disabled: option.disabled }) +} + +function optionStyle(data) { + var color = data.option.color || (isSelected(data.tab, data.textKey, data.option) ? data.activeColor : undefined); + return style({ + color + }); +} + + +module.exports = { + isSelected: isSelected, + optionClass: optionClass, + optionStyle: optionStyle, +}; \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/cascader/index.wxss b/miniprogram_npm/@vant/weapp/cascader/index.wxss new file mode 100644 index 0000000..7062486 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cascader/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-cascader__header{align-items:center;display:flex;height:48px;justify-content:space-between;padding:0 16px}.van-cascader__title{font-size:16px;font-weight:600;line-height:20px}.van-cascader__close-icon{color:#c8c9cc;font-size:22px;height:22px}.van-cascader__tabs-wrap{height:48px!important;padding:0 8px}.van-cascader__tab{color:#323233!important;flex:none!important;font-weight:600!important;padding:0 8px!important}.van-cascader__tab--unselected{color:#969799!important;font-weight:400!important}.van-cascader__option{align-items:center;cursor:pointer;display:flex;font-size:14px;justify-content:space-between;line-height:20px;padding:10px 16px}.van-cascader__option:active{background-color:#f2f3f5}.van-cascader__option--selected{color:#1989fa;font-weight:600}.van-cascader__option--disabled{color:#c8c9cc;cursor:not-allowed}.van-cascader__option--disabled:active{background-color:initial}.van-cascader__options{-webkit-overflow-scrolling:touch;box-sizing:border-box;height:384px;overflow-y:auto;padding-top:6px} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/cell-group/index.d.ts b/miniprogram_npm/@vant/weapp/cell-group/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell-group/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/cell-group/index.js b/miniprogram_npm/@vant/weapp/cell-group/index.js new file mode 100644 index 0000000..34a93a6 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell-group/index.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + title: String, + border: { + type: Boolean, + value: true, + }, + inset: Boolean, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/cell-group/index.json b/miniprogram_npm/@vant/weapp/cell-group/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell-group/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/cell-group/index.wxml b/miniprogram_npm/@vant/weapp/cell-group/index.wxml new file mode 100644 index 0000000..311e064 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell-group/index.wxml @@ -0,0 +1,11 @@ + + + + {{ title }} + + + + diff --git a/miniprogram_npm/@vant/weapp/cell-group/index.wxss b/miniprogram_npm/@vant/weapp/cell-group/index.wxss new file mode 100644 index 0000000..08b252f --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell-group/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-cell-group--inset{border-radius:var(--cell-group-inset-border-radius,8px);margin:var(--cell-group-inset-padding,0 16px);overflow:hidden}.van-cell-group__title{color:var(--cell-group-title-color,#969799);font-size:var(--cell-group-title-font-size,14px);line-height:var(--cell-group-title-line-height,16px);padding:var(--cell-group-title-padding,16px 16px 8px)}.van-cell-group__title--inset{padding:var(--cell-group-inset-title-padding,16px 16px 8px 32px)} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/cell/index.d.ts b/miniprogram_npm/@vant/weapp/cell/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/cell/index.js b/miniprogram_npm/@vant/weapp/cell/index.js new file mode 100644 index 0000000..80f3039 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell/index.js @@ -0,0 +1,40 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var link_1 = require("../mixins/link"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + classes: [ + 'title-class', + 'label-class', + 'value-class', + 'right-icon-class', + 'hover-class', + ], + mixins: [link_1.link], + props: { + title: null, + value: null, + icon: String, + size: String, + label: String, + center: Boolean, + isLink: Boolean, + required: Boolean, + clickable: Boolean, + titleWidth: String, + customStyle: String, + arrowDirection: String, + useLabelSlot: Boolean, + border: { + type: Boolean, + value: true, + }, + titleStyle: String, + }, + methods: { + onClick: function (event) { + this.$emit('click', event.detail); + this.jumpLink(); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/cell/index.json b/miniprogram_npm/@vant/weapp/cell/index.json new file mode 100644 index 0000000..0a336c0 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/cell/index.wxml b/miniprogram_npm/@vant/weapp/cell/index.wxml new file mode 100644 index 0000000..8387c3c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell/index.wxml @@ -0,0 +1,47 @@ + + + + + + + + + + {{ title }} + + + + + {{ label }} + + + + + {{ value }} + + + + + + + + diff --git a/miniprogram_npm/@vant/weapp/cell/index.wxs b/miniprogram_npm/@vant/weapp/cell/index.wxs new file mode 100644 index 0000000..e3500c4 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell/index.wxs @@ -0,0 +1,17 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function titleStyle(data) { + return style([ + { + 'max-width': addUnit(data.titleWidth), + 'min-width': addUnit(data.titleWidth), + }, + data.titleStyle, + ]); +} + +module.exports = { + titleStyle: titleStyle, +}; diff --git a/miniprogram_npm/@vant/weapp/cell/index.wxss b/miniprogram_npm/@vant/weapp/cell/index.wxss new file mode 100644 index 0000000..1802f8e --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-cell{background-color:var(--cell-background-color,#fff);box-sizing:border-box;color:var(--cell-text-color,#323233);display:flex;font-size:var(--cell-font-size,14px);line-height:var(--cell-line-height,24px);padding:var(--cell-vertical-padding,10px) var(--cell-horizontal-padding,16px);position:relative;width:100%}.van-cell:after{border-bottom:1px solid #ebedf0;bottom:0;box-sizing:border-box;content:" ";left:16px;pointer-events:none;position:absolute;right:16px;transform:scaleY(.5);transform-origin:center}.van-cell--borderless:after{display:none}.van-cell-group{background-color:var(--cell-background-color,#fff)}.van-cell__label{color:var(--cell-label-color,#969799);font-size:var(--cell-label-font-size,12px);line-height:var(--cell-label-line-height,18px);margin-top:var(--cell-label-margin-top,3px)}.van-cell__value{color:var(--cell-value-color,#969799);overflow:hidden;text-align:right;vertical-align:middle}.van-cell__title,.van-cell__value{flex:1}.van-cell__title:empty,.van-cell__value:empty{display:none}.van-cell__left-icon-wrap,.van-cell__right-icon-wrap{align-items:center;display:flex;font-size:var(--cell-icon-size,16px);height:var(--cell-line-height,24px)}.van-cell__left-icon-wrap{margin-right:var(--padding-base,4px)}.van-cell__right-icon-wrap{color:var(--cell-right-icon-color,#969799);margin-left:var(--padding-base,4px)}.van-cell__left-icon{vertical-align:middle}.van-cell__left-icon,.van-cell__right-icon{line-height:var(--cell-line-height,24px)}.van-cell--clickable.van-cell--hover{background-color:var(--cell-active-color,#f2f3f5)}.van-cell--required{overflow:visible}.van-cell--required:before{color:var(--cell-required-color,#ee0a24);content:"*";font-size:var(--cell-font-size,14px);left:var(--padding-xs,8px);position:absolute}.van-cell--center{align-items:center}.van-cell--large{padding-bottom:var(--cell-large-vertical-padding,12px);padding-top:var(--cell-large-vertical-padding,12px)}.van-cell--large .van-cell__title{font-size:var(--cell-large-title-font-size,16px)}.van-cell--large .van-cell__value{font-size:var(--cell-large-value-font-size,16px)}.van-cell--large .van-cell__label{font-size:var(--cell-large-label-font-size,14px)} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts b/miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/checkbox-group/index.js b/miniprogram_npm/@vant/weapp/checkbox-group/index.js new file mode 100644 index 0000000..80c93a1 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox-group/index.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var relation_1 = require("../common/relation"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + field: true, + relation: (0, relation_1.useChildren)('checkbox', function (target) { + this.updateChild(target); + }), + props: { + max: Number, + value: { + type: Array, + observer: 'updateChildren', + }, + disabled: { + type: Boolean, + observer: 'updateChildren', + }, + direction: { + type: String, + value: 'vertical', + }, + }, + methods: { + updateChildren: function () { + var _this = this; + this.children.forEach(function (child) { return _this.updateChild(child); }); + }, + updateChild: function (child) { + var _a = this.data, value = _a.value, disabled = _a.disabled, direction = _a.direction; + child.setData({ + value: value.indexOf(child.data.name) !== -1, + parentDisabled: disabled, + direction: direction, + }); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/checkbox-group/index.json b/miniprogram_npm/@vant/weapp/checkbox-group/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox-group/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/checkbox-group/index.wxml b/miniprogram_npm/@vant/weapp/checkbox-group/index.wxml new file mode 100644 index 0000000..638bf9d --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox-group/index.wxml @@ -0,0 +1,5 @@ + + + + + diff --git a/miniprogram_npm/@vant/weapp/checkbox-group/index.wxss b/miniprogram_npm/@vant/weapp/checkbox-group/index.wxss new file mode 100644 index 0000000..c5666d7 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox-group/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-checkbox-group--horizontal{display:flex;flex-wrap:wrap} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/checkbox/index.d.ts b/miniprogram_npm/@vant/weapp/checkbox/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/checkbox/index.js b/miniprogram_npm/@vant/weapp/checkbox/index.js new file mode 100644 index 0000000..6247365 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox/index.js @@ -0,0 +1,79 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var relation_1 = require("../common/relation"); +var component_1 = require("../common/component"); +function emit(target, value) { + target.$emit('input', value); + target.$emit('change', value); +} +(0, component_1.VantComponent)({ + field: true, + relation: (0, relation_1.useParent)('checkbox-group'), + classes: ['icon-class', 'label-class'], + props: { + value: Boolean, + disabled: Boolean, + useIconSlot: Boolean, + checkedColor: String, + labelPosition: { + type: String, + value: 'right', + }, + labelDisabled: Boolean, + shape: { + type: String, + value: 'round', + }, + iconSize: { + type: null, + value: 20, + }, + }, + data: { + parentDisabled: false, + direction: 'vertical', + }, + methods: { + emitChange: function (value) { + if (this.parent) { + this.setParentValue(this.parent, value); + } + else { + emit(this, value); + } + }, + toggle: function () { + var _a = this.data, parentDisabled = _a.parentDisabled, disabled = _a.disabled, value = _a.value; + if (!disabled && !parentDisabled) { + this.emitChange(!value); + } + }, + onClickLabel: function () { + var _a = this.data, labelDisabled = _a.labelDisabled, parentDisabled = _a.parentDisabled, disabled = _a.disabled, value = _a.value; + if (!disabled && !labelDisabled && !parentDisabled) { + this.emitChange(!value); + } + }, + setParentValue: function (parent, value) { + var parentValue = parent.data.value.slice(); + var name = this.data.name; + var max = parent.data.max; + if (value) { + if (max && parentValue.length >= max) { + return; + } + if (parentValue.indexOf(name) === -1) { + parentValue.push(name); + emit(parent, parentValue); + } + } + else { + var index = parentValue.indexOf(name); + if (index !== -1) { + parentValue.splice(index, 1); + emit(parent, parentValue); + } + } + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/checkbox/index.json b/miniprogram_npm/@vant/weapp/checkbox/index.json new file mode 100644 index 0000000..0a336c0 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/checkbox/index.wxml b/miniprogram_npm/@vant/weapp/checkbox/index.wxml new file mode 100644 index 0000000..39a7bb0 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox/index.wxml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + diff --git a/miniprogram_npm/@vant/weapp/checkbox/index.wxs b/miniprogram_npm/@vant/weapp/checkbox/index.wxs new file mode 100644 index 0000000..eb9c772 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox/index.wxs @@ -0,0 +1,20 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function iconStyle(checkedColor, value, disabled, parentDisabled, iconSize) { + var styles = { + 'font-size': addUnit(iconSize), + }; + + if (checkedColor && value && !disabled && !parentDisabled) { + styles['border-color'] = checkedColor; + styles['background-color'] = checkedColor; + } + + return style(styles); +} + +module.exports = { + iconStyle: iconStyle, +}; diff --git a/miniprogram_npm/@vant/weapp/checkbox/index.wxss b/miniprogram_npm/@vant/weapp/checkbox/index.wxss new file mode 100644 index 0000000..da2272a --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-checkbox{align-items:center;display:flex;overflow:hidden;-webkit-user-select:none;user-select:none}.van-checkbox--horizontal{margin-right:12px}.van-checkbox__icon-wrap,.van-checkbox__label{line-height:var(--checkbox-size,20px)}.van-checkbox__icon-wrap{flex:none}.van-checkbox__icon{align-items:center;border:1px solid var(--checkbox-border-color,#c8c9cc);box-sizing:border-box;color:transparent;display:flex;font-size:var(--checkbox-size,20px);height:1em;justify-content:center;text-align:center;transition-duration:var(--checkbox-transition-duration,.2s);transition-property:color,border-color,background-color;width:1em}.van-checkbox__icon--round{border-radius:100%}.van-checkbox__icon--checked{background-color:var(--checkbox-checked-icon-color,#1989fa);border-color:var(--checkbox-checked-icon-color,#1989fa);color:#fff}.van-checkbox__icon--disabled{background-color:var(--checkbox-disabled-background-color,#ebedf0);border-color:var(--checkbox-disabled-icon-color,#c8c9cc)}.van-checkbox__icon--disabled.van-checkbox__icon--checked{color:var(--checkbox-disabled-icon-color,#c8c9cc)}.van-checkbox__label{word-wrap:break-word;color:var(--checkbox-label-color,#323233);padding-left:var(--checkbox-label-margin,10px)}.van-checkbox__label--left{float:left;margin:0 var(--checkbox-label-margin,10px) 0 0}.van-checkbox__label--disabled{color:var(--checkbox-disabled-label-color,#c8c9cc)}.van-checkbox__label:empty{margin:0} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/circle/canvas.d.ts b/miniprogram_npm/@vant/weapp/circle/canvas.d.ts new file mode 100644 index 0000000..15268c9 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/circle/canvas.d.ts @@ -0,0 +1,4 @@ +/// +declare type CanvasContext = WechatMiniprogram.CanvasContext; +export declare function adaptor(ctx: CanvasContext & Record): CanvasContext; +export {}; diff --git a/miniprogram_npm/@vant/weapp/circle/canvas.js b/miniprogram_npm/@vant/weapp/circle/canvas.js new file mode 100644 index 0000000..d81df74 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/circle/canvas.js @@ -0,0 +1,47 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.adaptor = void 0; +function adaptor(ctx) { + // @ts-ignore + return Object.assign(ctx, { + setStrokeStyle: function (val) { + ctx.strokeStyle = val; + }, + setLineWidth: function (val) { + ctx.lineWidth = val; + }, + setLineCap: function (val) { + ctx.lineCap = val; + }, + setFillStyle: function (val) { + ctx.fillStyle = val; + }, + setFontSize: function (val) { + ctx.font = String(val); + }, + setGlobalAlpha: function (val) { + ctx.globalAlpha = val; + }, + setLineJoin: function (val) { + ctx.lineJoin = val; + }, + setTextAlign: function (val) { + ctx.textAlign = val; + }, + setMiterLimit: function (val) { + ctx.miterLimit = val; + }, + setShadow: function (offsetX, offsetY, blur, color) { + ctx.shadowOffsetX = offsetX; + ctx.shadowOffsetY = offsetY; + ctx.shadowBlur = blur; + ctx.shadowColor = color; + }, + setTextBaseline: function (val) { + ctx.textBaseline = val; + }, + createCircularGradient: function () { }, + draw: function () { }, + }); +} +exports.adaptor = adaptor; diff --git a/miniprogram_npm/@vant/weapp/circle/index.d.ts b/miniprogram_npm/@vant/weapp/circle/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/circle/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/circle/index.js b/miniprogram_npm/@vant/weapp/circle/index.js new file mode 100644 index 0000000..9037e1c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/circle/index.js @@ -0,0 +1,203 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var color_1 = require("../common/color"); +var component_1 = require("../common/component"); +var utils_1 = require("../common/utils"); +var validator_1 = require("../common/validator"); +var version_1 = require("../common/version"); +var canvas_1 = require("./canvas"); +function format(rate) { + return Math.min(Math.max(rate, 0), 100); +} +var PERIMETER = 2 * Math.PI; +var BEGIN_ANGLE = -Math.PI / 2; +var STEP = 1; +(0, component_1.VantComponent)({ + props: { + text: String, + lineCap: { + type: String, + value: 'round', + }, + value: { + type: Number, + value: 0, + observer: 'reRender', + }, + speed: { + type: Number, + value: 50, + }, + size: { + type: Number, + value: 100, + observer: function () { + this.drawCircle(this.currentValue); + }, + }, + fill: String, + layerColor: { + type: String, + value: color_1.WHITE, + }, + color: { + type: null, + value: color_1.BLUE, + observer: function () { + var _this = this; + this.setHoverColor().then(function () { + _this.drawCircle(_this.currentValue); + }); + }, + }, + type: { + type: String, + value: '', + }, + strokeWidth: { + type: Number, + value: 4, + }, + clockwise: { + type: Boolean, + value: true, + }, + }, + data: { + hoverColor: color_1.BLUE, + }, + methods: { + getContext: function () { + var _this = this; + var _a = this.data, type = _a.type, size = _a.size; + if (type === '' || !(0, version_1.canIUseCanvas2d)()) { + var ctx = wx.createCanvasContext('van-circle', this); + return Promise.resolve(ctx); + } + var dpr = (0, utils_1.getSystemInfoSync)().pixelRatio; + return new Promise(function (resolve) { + wx.createSelectorQuery() + .in(_this) + .select('#van-circle') + .node() + .exec(function (res) { + var canvas = res[0].node; + var ctx = canvas.getContext(type); + if (!_this.inited) { + _this.inited = true; + canvas.width = size * dpr; + canvas.height = size * dpr; + ctx.scale(dpr, dpr); + } + resolve((0, canvas_1.adaptor)(ctx)); + }); + }); + }, + setHoverColor: function () { + var _this = this; + var _a = this.data, color = _a.color, size = _a.size; + if ((0, validator_1.isObj)(color)) { + return this.getContext().then(function (context) { + var LinearColor = context.createLinearGradient(size, 0, 0, 0); + Object.keys(color) + .sort(function (a, b) { return parseFloat(a) - parseFloat(b); }) + .map(function (key) { + return LinearColor.addColorStop(parseFloat(key) / 100, color[key]); + }); + _this.hoverColor = LinearColor; + }); + } + this.hoverColor = color; + return Promise.resolve(); + }, + presetCanvas: function (context, strokeStyle, beginAngle, endAngle, fill) { + var _a = this.data, strokeWidth = _a.strokeWidth, lineCap = _a.lineCap, clockwise = _a.clockwise, size = _a.size; + var position = size / 2; + var radius = position - strokeWidth / 2; + context.setStrokeStyle(strokeStyle); + context.setLineWidth(strokeWidth); + context.setLineCap(lineCap); + context.beginPath(); + context.arc(position, position, radius, beginAngle, endAngle, !clockwise); + context.stroke(); + if (fill) { + context.setFillStyle(fill); + context.fill(); + } + }, + renderLayerCircle: function (context) { + var _a = this.data, layerColor = _a.layerColor, fill = _a.fill; + this.presetCanvas(context, layerColor, 0, PERIMETER, fill); + }, + renderHoverCircle: function (context, formatValue) { + var clockwise = this.data.clockwise; + // 结束角度 + var progress = PERIMETER * (formatValue / 100); + var endAngle = clockwise + ? BEGIN_ANGLE + progress + : 3 * Math.PI - (BEGIN_ANGLE + progress); + this.presetCanvas(context, this.hoverColor, BEGIN_ANGLE, endAngle); + }, + drawCircle: function (currentValue) { + var _this = this; + var size = this.data.size; + this.getContext().then(function (context) { + context.clearRect(0, 0, size, size); + _this.renderLayerCircle(context); + var formatValue = format(currentValue); + if (formatValue !== 0) { + _this.renderHoverCircle(context, formatValue); + } + context.draw(); + }); + }, + reRender: function () { + var _this = this; + // tofector 动画暂时没有想到好的解决方案 + var _a = this.data, value = _a.value, speed = _a.speed; + if (speed <= 0 || speed > 1000) { + this.drawCircle(value); + return; + } + this.clearMockInterval(); + this.currentValue = this.currentValue || 0; + var run = function () { + _this.interval = setTimeout(function () { + if (_this.currentValue !== value) { + if (Math.abs(_this.currentValue - value) < STEP) { + _this.currentValue = value; + } + else if (_this.currentValue < value) { + _this.currentValue += STEP; + } + else { + _this.currentValue -= STEP; + } + _this.drawCircle(_this.currentValue); + run(); + } + else { + _this.clearMockInterval(); + } + }, 1000 / speed); + }; + run(); + }, + clearMockInterval: function () { + if (this.interval) { + clearTimeout(this.interval); + this.interval = null; + } + }, + }, + mounted: function () { + var _this = this; + this.currentValue = this.data.value; + this.setHoverColor().then(function () { + _this.drawCircle(_this.currentValue); + }); + }, + destroyed: function () { + this.clearMockInterval(); + }, +}); diff --git a/miniprogram_npm/@vant/weapp/circle/index.json b/miniprogram_npm/@vant/weapp/circle/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/circle/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/circle/index.wxml b/miniprogram_npm/@vant/weapp/circle/index.wxml new file mode 100644 index 0000000..52bc59f --- /dev/null +++ b/miniprogram_npm/@vant/weapp/circle/index.wxml @@ -0,0 +1,9 @@ + + + + + + + + {{ text }} + diff --git a/miniprogram_npm/@vant/weapp/circle/index.wxss b/miniprogram_npm/@vant/weapp/circle/index.wxss new file mode 100644 index 0000000..2200751 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/circle/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-circle{display:inline-block;position:relative;text-align:center}.van-circle__text{color:var(--circle-text-color,#323233);left:0;position:absolute;top:50%;transform:translateY(-50%);width:100%} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/col/index.d.ts b/miniprogram_npm/@vant/weapp/col/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/col/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/col/index.js b/miniprogram_npm/@vant/weapp/col/index.js new file mode 100644 index 0000000..63c56eb --- /dev/null +++ b/miniprogram_npm/@vant/weapp/col/index.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var relation_1 = require("../common/relation"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + relation: (0, relation_1.useParent)('row'), + props: { + span: Number, + offset: Number, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/col/index.json b/miniprogram_npm/@vant/weapp/col/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/col/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/col/index.wxml b/miniprogram_npm/@vant/weapp/col/index.wxml new file mode 100644 index 0000000..975348b --- /dev/null +++ b/miniprogram_npm/@vant/weapp/col/index.wxml @@ -0,0 +1,9 @@ + + + + + + diff --git a/miniprogram_npm/@vant/weapp/col/index.wxs b/miniprogram_npm/@vant/weapp/col/index.wxs new file mode 100644 index 0000000..507c1cb --- /dev/null +++ b/miniprogram_npm/@vant/weapp/col/index.wxs @@ -0,0 +1,18 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function rootStyle(data) { + if (!data.gutter) { + return ''; + } + + return style({ + 'padding-right': addUnit(data.gutter / 2), + 'padding-left': addUnit(data.gutter / 2), + }); +} + +module.exports = { + rootStyle: rootStyle, +}; diff --git a/miniprogram_npm/@vant/weapp/col/index.wxss b/miniprogram_npm/@vant/weapp/col/index.wxss new file mode 100644 index 0000000..2fa265e --- /dev/null +++ b/miniprogram_npm/@vant/weapp/col/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-col{box-sizing:border-box;float:left}.van-col--1{width:4.16666667%}.van-col--offset-1{margin-left:4.16666667%}.van-col--2{width:8.33333333%}.van-col--offset-2{margin-left:8.33333333%}.van-col--3{width:12.5%}.van-col--offset-3{margin-left:12.5%}.van-col--4{width:16.66666667%}.van-col--offset-4{margin-left:16.66666667%}.van-col--5{width:20.83333333%}.van-col--offset-5{margin-left:20.83333333%}.van-col--6{width:25%}.van-col--offset-6{margin-left:25%}.van-col--7{width:29.16666667%}.van-col--offset-7{margin-left:29.16666667%}.van-col--8{width:33.33333333%}.van-col--offset-8{margin-left:33.33333333%}.van-col--9{width:37.5%}.van-col--offset-9{margin-left:37.5%}.van-col--10{width:41.66666667%}.van-col--offset-10{margin-left:41.66666667%}.van-col--11{width:45.83333333%}.van-col--offset-11{margin-left:45.83333333%}.van-col--12{width:50%}.van-col--offset-12{margin-left:50%}.van-col--13{width:54.16666667%}.van-col--offset-13{margin-left:54.16666667%}.van-col--14{width:58.33333333%}.van-col--offset-14{margin-left:58.33333333%}.van-col--15{width:62.5%}.van-col--offset-15{margin-left:62.5%}.van-col--16{width:66.66666667%}.van-col--offset-16{margin-left:66.66666667%}.van-col--17{width:70.83333333%}.van-col--offset-17{margin-left:70.83333333%}.van-col--18{width:75%}.van-col--offset-18{margin-left:75%}.van-col--19{width:79.16666667%}.van-col--offset-19{margin-left:79.16666667%}.van-col--20{width:83.33333333%}.van-col--offset-20{margin-left:83.33333333%}.van-col--21{width:87.5%}.van-col--offset-21{margin-left:87.5%}.van-col--22{width:91.66666667%}.van-col--offset-22{margin-left:91.66666667%}.van-col--23{width:95.83333333%}.van-col--offset-23{margin-left:95.83333333%}.van-col--24{width:100%}.van-col--offset-24{margin-left:100%} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts b/miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts new file mode 100644 index 0000000..32157b6 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts @@ -0,0 +1,2 @@ +/// +export declare function setContentAnimate(context: WechatMiniprogram.Component.TrivialInstance, expanded: boolean, mounted: boolean): void; diff --git a/miniprogram_npm/@vant/weapp/collapse-item/animate.js b/miniprogram_npm/@vant/weapp/collapse-item/animate.js new file mode 100644 index 0000000..5734087 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse-item/animate.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.setContentAnimate = void 0; +var utils_1 = require("../common/utils"); +function useAnimation(context, expanded, mounted, height) { + var animation = wx.createAnimation({ + duration: 0, + timingFunction: 'ease-in-out', + }); + if (expanded) { + if (height === 0) { + animation.height('auto').top(1).step(); + } + else { + animation + .height(height) + .top(1) + .step({ + duration: mounted ? 300 : 1, + }) + .height('auto') + .step(); + } + context.setData({ + animation: animation.export(), + }); + return; + } + animation.height(height).top(0).step({ duration: 1 }).height(0).step({ + duration: 300, + }); + context.setData({ + animation: animation.export(), + }); +} +function setContentAnimate(context, expanded, mounted) { + (0, utils_1.getRect)(context, '.van-collapse-item__content') + .then(function (rect) { return rect.height; }) + .then(function (height) { + useAnimation(context, expanded, mounted, height); + }); +} +exports.setContentAnimate = setContentAnimate; diff --git a/miniprogram_npm/@vant/weapp/collapse-item/index.d.ts b/miniprogram_npm/@vant/weapp/collapse-item/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse-item/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/collapse-item/index.js b/miniprogram_npm/@vant/weapp/collapse-item/index.js new file mode 100644 index 0000000..982490e --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse-item/index.js @@ -0,0 +1,62 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +var animate_1 = require("./animate"); +(0, component_1.VantComponent)({ + classes: ['title-class', 'content-class'], + relation: (0, relation_1.useParent)('collapse'), + props: { + size: String, + name: null, + title: null, + value: null, + icon: String, + label: String, + disabled: Boolean, + clickable: Boolean, + border: { + type: Boolean, + value: true, + }, + isLink: { + type: Boolean, + value: true, + }, + }, + data: { + expanded: false, + }, + mounted: function () { + this.updateExpanded(); + this.mounted = true; + }, + methods: { + updateExpanded: function () { + if (!this.parent) { + return; + } + var _a = this.parent.data, value = _a.value, accordion = _a.accordion; + var _b = this.parent.children, children = _b === void 0 ? [] : _b; + var name = this.data.name; + var index = children.indexOf(this); + var currentName = name == null ? index : name; + var expanded = accordion + ? value === currentName + : (value || []).some(function (name) { return name === currentName; }); + if (expanded !== this.data.expanded) { + (0, animate_1.setContentAnimate)(this, expanded, this.mounted); + } + this.setData({ index: index, expanded: expanded }); + }, + onClick: function () { + if (this.data.disabled) { + return; + } + var _a = this.data, name = _a.name, expanded = _a.expanded; + var index = this.parent.children.indexOf(this); + var currentName = name == null ? index : name; + this.parent.switch(currentName, !expanded); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/collapse-item/index.json b/miniprogram_npm/@vant/weapp/collapse-item/index.json new file mode 100644 index 0000000..0e5425c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse-item/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-cell": "../cell/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/collapse-item/index.wxml b/miniprogram_npm/@vant/weapp/collapse-item/index.wxml new file mode 100644 index 0000000..f11d0d4 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse-item/index.wxml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + diff --git a/miniprogram_npm/@vant/weapp/collapse-item/index.wxss b/miniprogram_npm/@vant/weapp/collapse-item/index.wxss new file mode 100644 index 0000000..4a65b5a --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse-item/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-collapse-item__title .van-cell__right-icon{transform:rotate(90deg);transition:transform var(--collapse-item-transition-duration,.3s)}.van-collapse-item__title--expanded .van-cell__right-icon{transform:rotate(-90deg)}.van-collapse-item__title--disabled .van-cell,.van-collapse-item__title--disabled .van-cell__right-icon{color:var(--collapse-item-title-disabled-color,#c8c9cc)!important}.van-collapse-item__title--disabled .van-cell--hover{background-color:#fff!important}.van-collapse-item__wrapper{overflow:hidden}.van-collapse-item__content{background-color:var(--collapse-item-content-background-color,#fff);color:var(--collapse-item-content-text-color,#969799);font-size:var(--collapse-item-content-font-size,13px);line-height:var(--collapse-item-content-line-height,1.5);padding:var(--collapse-item-content-padding,15px)} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/collapse/index.d.ts b/miniprogram_npm/@vant/weapp/collapse/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/collapse/index.js b/miniprogram_npm/@vant/weapp/collapse/index.js new file mode 100644 index 0000000..943d542 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse/index.js @@ -0,0 +1,48 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +(0, component_1.VantComponent)({ + relation: (0, relation_1.useChildren)('collapse-item'), + props: { + value: { + type: null, + observer: 'updateExpanded', + }, + accordion: { + type: Boolean, + observer: 'updateExpanded', + }, + border: { + type: Boolean, + value: true, + }, + }, + methods: { + updateExpanded: function () { + this.children.forEach(function (child) { + child.updateExpanded(); + }); + }, + switch: function (name, expanded) { + var _a = this.data, accordion = _a.accordion, value = _a.value; + var changeItem = name; + if (!accordion) { + name = expanded + ? (value || []).concat(name) + : (value || []).filter(function (activeName) { return activeName !== name; }); + } + else { + name = expanded ? name : ''; + } + if (expanded) { + this.$emit('open', changeItem); + } + else { + this.$emit('close', changeItem); + } + this.$emit('change', name); + this.$emit('input', name); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/collapse/index.json b/miniprogram_npm/@vant/weapp/collapse/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/collapse/index.wxml b/miniprogram_npm/@vant/weapp/collapse/index.wxml new file mode 100644 index 0000000..fd4e171 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/miniprogram_npm/@vant/weapp/collapse/index.wxss b/miniprogram_npm/@vant/weapp/collapse/index.wxss new file mode 100644 index 0000000..99694d6 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss'; \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/common/color.d.ts b/miniprogram_npm/@vant/weapp/common/color.d.ts new file mode 100644 index 0000000..386f307 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/color.d.ts @@ -0,0 +1,7 @@ +export declare const RED = "#ee0a24"; +export declare const BLUE = "#1989fa"; +export declare const WHITE = "#fff"; +export declare const GREEN = "#07c160"; +export declare const ORANGE = "#ff976a"; +export declare const GRAY = "#323233"; +export declare const GRAY_DARK = "#969799"; diff --git a/miniprogram_npm/@vant/weapp/common/color.js b/miniprogram_npm/@vant/weapp/common/color.js new file mode 100644 index 0000000..008a45a --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/color.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GRAY_DARK = exports.GRAY = exports.ORANGE = exports.GREEN = exports.WHITE = exports.BLUE = exports.RED = void 0; +exports.RED = '#ee0a24'; +exports.BLUE = '#1989fa'; +exports.WHITE = '#fff'; +exports.GREEN = '#07c160'; +exports.ORANGE = '#ff976a'; +exports.GRAY = '#323233'; +exports.GRAY_DARK = '#969799'; diff --git a/miniprogram_npm/@vant/weapp/common/component.d.ts b/miniprogram_npm/@vant/weapp/common/component.d.ts new file mode 100644 index 0000000..1d0fd27 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/component.d.ts @@ -0,0 +1,4 @@ +/// +import { VantComponentOptions } from 'definitions/index'; +declare function VantComponent(vantOptions: VantComponentOptions): void; +export { VantComponent }; diff --git a/miniprogram_npm/@vant/weapp/common/component.js b/miniprogram_npm/@vant/weapp/common/component.js new file mode 100644 index 0000000..66da00e --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/component.js @@ -0,0 +1,49 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.VantComponent = void 0; +var basic_1 = require("../mixins/basic"); +function mapKeys(source, target, map) { + Object.keys(map).forEach(function (key) { + if (source[key]) { + target[map[key]] = source[key]; + } + }); +} +function VantComponent(vantOptions) { + var options = {}; + mapKeys(vantOptions, options, { + data: 'data', + props: 'properties', + watch: 'observers', + mixins: 'behaviors', + methods: 'methods', + beforeCreate: 'created', + created: 'attached', + mounted: 'ready', + destroyed: 'detached', + classes: 'externalClasses', + }); + // add default externalClasses + options.externalClasses = options.externalClasses || []; + options.externalClasses.push('custom-class'); + // add default behaviors + options.behaviors = options.behaviors || []; + options.behaviors.push(basic_1.basic); + // add relations + var relation = vantOptions.relation; + if (relation) { + options.relations = relation.relations; + options.behaviors.push(relation.mixin); + } + // map field to form-field behavior + if (vantOptions.field) { + options.behaviors.push('wx://form-field'); + } + // add default options + options.options = { + multipleSlots: true, + addGlobalClass: true, + }; + Component(options); +} +exports.VantComponent = VantComponent; diff --git a/miniprogram_npm/@vant/weapp/common/index.wxss b/miniprogram_npm/@vant/weapp/common/index.wxss new file mode 100644 index 0000000..a73bb7a --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/index.wxss @@ -0,0 +1 @@ +.van-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.van-multi-ellipsis--l3{-webkit-line-clamp:3}.van-clearfix:after{clear:both;content:"";display:table}.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{border:0 solid #ebedf0;bottom:-50%;box-sizing:border-box;content:" ";left:-50%;pointer-events:none;position:absolute;right:-50%;top:-50%;transform:scale(.5);transform-origin:center}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/common/relation.d.ts b/miniprogram_npm/@vant/weapp/common/relation.d.ts new file mode 100644 index 0000000..4b5af00 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/relation.d.ts @@ -0,0 +1,15 @@ +/// +declare type TrivialInstance = WechatMiniprogram.Component.TrivialInstance; +export declare function useParent(name: string, onEffect?: (this: TrivialInstance) => void): { + relations: { + [x: string]: WechatMiniprogram.Component.RelationOption; + }; + mixin: string; +}; +export declare function useChildren(name: string, onEffect?: (this: TrivialInstance, target: TrivialInstance) => void): { + relations: { + [x: string]: WechatMiniprogram.Component.RelationOption; + }; + mixin: string; +}; +export {}; diff --git a/miniprogram_npm/@vant/weapp/common/relation.js b/miniprogram_npm/@vant/weapp/common/relation.js new file mode 100644 index 0000000..008256c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/relation.js @@ -0,0 +1,65 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.useChildren = exports.useParent = void 0; +function useParent(name, onEffect) { + var _a; + var path = "../".concat(name, "/index"); + return { + relations: (_a = {}, + _a[path] = { + type: 'ancestor', + linked: function () { + onEffect && onEffect.call(this); + }, + linkChanged: function () { + onEffect && onEffect.call(this); + }, + unlinked: function () { + onEffect && onEffect.call(this); + }, + }, + _a), + mixin: Behavior({ + created: function () { + var _this = this; + Object.defineProperty(this, 'parent', { + get: function () { return _this.getRelationNodes(path)[0]; }, + }); + Object.defineProperty(this, 'index', { + // @ts-ignore + get: function () { var _a, _b; return (_b = (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b.indexOf(_this); }, + }); + }, + }), + }; +} +exports.useParent = useParent; +function useChildren(name, onEffect) { + var _a; + var path = "../".concat(name, "/index"); + return { + relations: (_a = {}, + _a[path] = { + type: 'descendant', + linked: function (target) { + onEffect && onEffect.call(this, target); + }, + linkChanged: function (target) { + onEffect && onEffect.call(this, target); + }, + unlinked: function (target) { + onEffect && onEffect.call(this, target); + }, + }, + _a), + mixin: Behavior({ + created: function () { + var _this = this; + Object.defineProperty(this, 'children', { + get: function () { return _this.getRelationNodes(path) || []; }, + }); + }, + }), + }; +} +exports.useChildren = useChildren; diff --git a/miniprogram_npm/@vant/weapp/common/style/clearfix.wxss b/miniprogram_npm/@vant/weapp/common/style/clearfix.wxss new file mode 100644 index 0000000..442246f --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/style/clearfix.wxss @@ -0,0 +1 @@ +.van-clearfix:after{clear:both;content:"";display:table} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss b/miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss new file mode 100644 index 0000000..ee701df --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss @@ -0,0 +1 @@ +.van-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.van-multi-ellipsis--l3{-webkit-line-clamp:3} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/common/style/hairline.wxss b/miniprogram_npm/@vant/weapp/common/style/hairline.wxss new file mode 100644 index 0000000..f7c6260 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/style/hairline.wxss @@ -0,0 +1 @@ +.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{border:0 solid #ebedf0;bottom:-50%;box-sizing:border-box;content:" ";left:-50%;pointer-events:none;position:absolute;right:-50%;top:-50%;transform:scale(.5);transform-origin:center}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/common/style/mixins/clearfix.wxss b/miniprogram_npm/@vant/weapp/common/style/mixins/clearfix.wxss new file mode 100644 index 0000000..e69de29 diff --git a/miniprogram_npm/@vant/weapp/common/style/mixins/ellipsis.wxss b/miniprogram_npm/@vant/weapp/common/style/mixins/ellipsis.wxss new file mode 100644 index 0000000..e69de29 diff --git a/miniprogram_npm/@vant/weapp/common/style/mixins/hairline.wxss b/miniprogram_npm/@vant/weapp/common/style/mixins/hairline.wxss new file mode 100644 index 0000000..e69de29 diff --git a/miniprogram_npm/@vant/weapp/common/style/var.wxss b/miniprogram_npm/@vant/weapp/common/style/var.wxss new file mode 100644 index 0000000..e69de29 diff --git a/miniprogram_npm/@vant/weapp/common/utils.d.ts b/miniprogram_npm/@vant/weapp/common/utils.d.ts new file mode 100644 index 0000000..719f2ed --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/utils.d.ts @@ -0,0 +1,17 @@ +/// +/// +/// +/// +/// +export { isDef } from './validator'; +export { getSystemInfoSync } from './version'; +export declare function range(num: number, min: number, max: number): number; +export declare function nextTick(cb: (...args: any[]) => void): void; +export declare function addUnit(value?: string | number): string | undefined; +export declare function requestAnimationFrame(cb: () => void): NodeJS.Timeout; +export declare function pickExclude(obj: unknown, keys: string[]): {}; +export declare function getRect(context: WechatMiniprogram.Component.TrivialInstance, selector: string): Promise; +export declare function getAllRect(context: WechatMiniprogram.Component.TrivialInstance, selector: string): Promise; +export declare function groupSetData(context: WechatMiniprogram.Component.TrivialInstance, cb: () => void): void; +export declare function toPromise(promiseLike: Promise | unknown): Promise; +export declare function getCurrentPage(): T & WechatMiniprogram.OptionalInterface & WechatMiniprogram.Page.InstanceProperties & WechatMiniprogram.Page.InstanceMethods & WechatMiniprogram.Page.Data & WechatMiniprogram.IAnyObject; diff --git a/miniprogram_npm/@vant/weapp/common/utils.js b/miniprogram_npm/@vant/weapp/common/utils.js new file mode 100644 index 0000000..1e35ad2 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/utils.js @@ -0,0 +1,97 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getCurrentPage = exports.toPromise = exports.groupSetData = exports.getAllRect = exports.getRect = exports.pickExclude = exports.requestAnimationFrame = exports.addUnit = exports.nextTick = exports.range = exports.getSystemInfoSync = exports.isDef = void 0; +var validator_1 = require("./validator"); +var version_1 = require("./version"); +var validator_2 = require("./validator"); +Object.defineProperty(exports, "isDef", { enumerable: true, get: function () { return validator_2.isDef; } }); +var version_2 = require("./version"); +Object.defineProperty(exports, "getSystemInfoSync", { enumerable: true, get: function () { return version_2.getSystemInfoSync; } }); +function range(num, min, max) { + return Math.min(Math.max(num, min), max); +} +exports.range = range; +function nextTick(cb) { + if ((0, version_1.canIUseNextTick)()) { + wx.nextTick(cb); + } + else { + setTimeout(function () { + cb(); + }, 1000 / 30); + } +} +exports.nextTick = nextTick; +function addUnit(value) { + if (!(0, validator_1.isDef)(value)) { + return undefined; + } + value = String(value); + return (0, validator_1.isNumber)(value) ? "".concat(value, "px") : value; +} +exports.addUnit = addUnit; +function requestAnimationFrame(cb) { + return setTimeout(function () { + cb(); + }, 1000 / 30); +} +exports.requestAnimationFrame = requestAnimationFrame; +function pickExclude(obj, keys) { + if (!(0, validator_1.isPlainObject)(obj)) { + return {}; + } + return Object.keys(obj).reduce(function (prev, key) { + if (!keys.includes(key)) { + prev[key] = obj[key]; + } + return prev; + }, {}); +} +exports.pickExclude = pickExclude; +function getRect(context, selector) { + return new Promise(function (resolve) { + wx.createSelectorQuery() + .in(context) + .select(selector) + .boundingClientRect() + .exec(function (rect) { + if (rect === void 0) { rect = []; } + return resolve(rect[0]); + }); + }); +} +exports.getRect = getRect; +function getAllRect(context, selector) { + return new Promise(function (resolve) { + wx.createSelectorQuery() + .in(context) + .selectAll(selector) + .boundingClientRect() + .exec(function (rect) { + if (rect === void 0) { rect = []; } + return resolve(rect[0]); + }); + }); +} +exports.getAllRect = getAllRect; +function groupSetData(context, cb) { + if ((0, version_1.canIUseGroupSetData)()) { + context.groupSetData(cb); + } + else { + cb(); + } +} +exports.groupSetData = groupSetData; +function toPromise(promiseLike) { + if ((0, validator_1.isPromise)(promiseLike)) { + return promiseLike; + } + return Promise.resolve(promiseLike); +} +exports.toPromise = toPromise; +function getCurrentPage() { + var pages = getCurrentPages(); + return pages[pages.length - 1]; +} +exports.getCurrentPage = getCurrentPage; diff --git a/miniprogram_npm/@vant/weapp/common/validator.d.ts b/miniprogram_npm/@vant/weapp/common/validator.d.ts new file mode 100644 index 0000000..152894a --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/validator.d.ts @@ -0,0 +1,9 @@ +export declare function isFunction(val: unknown): val is Function; +export declare function isPlainObject(val: unknown): val is Record; +export declare function isPromise(val: unknown): val is Promise; +export declare function isDef(value: unknown): boolean; +export declare function isObj(x: unknown): x is Record; +export declare function isNumber(value: string): boolean; +export declare function isBoolean(value: unknown): value is boolean; +export declare function isImageUrl(url: string): boolean; +export declare function isVideoUrl(url: string): boolean; diff --git a/miniprogram_npm/@vant/weapp/common/validator.js b/miniprogram_npm/@vant/weapp/common/validator.js new file mode 100644 index 0000000..169e796 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/validator.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isVideoUrl = exports.isImageUrl = exports.isBoolean = exports.isNumber = exports.isObj = exports.isDef = exports.isPromise = exports.isPlainObject = exports.isFunction = void 0; +// eslint-disable-next-line @typescript-eslint/ban-types +function isFunction(val) { + return typeof val === 'function'; +} +exports.isFunction = isFunction; +function isPlainObject(val) { + return val !== null && typeof val === 'object' && !Array.isArray(val); +} +exports.isPlainObject = isPlainObject; +function isPromise(val) { + return isPlainObject(val) && isFunction(val.then) && isFunction(val.catch); +} +exports.isPromise = isPromise; +function isDef(value) { + return value !== undefined && value !== null; +} +exports.isDef = isDef; +function isObj(x) { + var type = typeof x; + return x !== null && (type === 'object' || type === 'function'); +} +exports.isObj = isObj; +function isNumber(value) { + return /^\d+(\.\d+)?$/.test(value); +} +exports.isNumber = isNumber; +function isBoolean(value) { + return typeof value === 'boolean'; +} +exports.isBoolean = isBoolean; +var IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i; +var VIDEO_REGEXP = /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv)/i; +function isImageUrl(url) { + return IMAGE_REGEXP.test(url); +} +exports.isImageUrl = isImageUrl; +function isVideoUrl(url) { + return VIDEO_REGEXP.test(url); +} +exports.isVideoUrl = isVideoUrl; diff --git a/miniprogram_npm/@vant/weapp/common/version.d.ts b/miniprogram_npm/@vant/weapp/common/version.d.ts new file mode 100644 index 0000000..7142201 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/version.d.ts @@ -0,0 +1,9 @@ +/// +export declare function getSystemInfoSync(): WechatMiniprogram.SystemInfo; +export declare function canIUseModel(): boolean; +export declare function canIUseFormFieldButton(): boolean; +export declare function canIUseAnimate(): boolean; +export declare function canIUseGroupSetData(): boolean; +export declare function canIUseNextTick(): boolean; +export declare function canIUseCanvas2d(): boolean; +export declare function canIUseGetUserProfile(): boolean; diff --git a/miniprogram_npm/@vant/weapp/common/version.js b/miniprogram_npm/@vant/weapp/common/version.js new file mode 100644 index 0000000..5937008 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/version.js @@ -0,0 +1,70 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.canIUseGetUserProfile = exports.canIUseCanvas2d = exports.canIUseNextTick = exports.canIUseGroupSetData = exports.canIUseAnimate = exports.canIUseFormFieldButton = exports.canIUseModel = exports.getSystemInfoSync = void 0; +var systemInfo; +function getSystemInfoSync() { + if (systemInfo == null) { + systemInfo = wx.getSystemInfoSync(); + } + return systemInfo; +} +exports.getSystemInfoSync = getSystemInfoSync; +function compareVersion(v1, v2) { + v1 = v1.split('.'); + v2 = v2.split('.'); + var len = Math.max(v1.length, v2.length); + while (v1.length < len) { + v1.push('0'); + } + while (v2.length < len) { + v2.push('0'); + } + for (var i = 0; i < len; i++) { + var num1 = parseInt(v1[i], 10); + var num2 = parseInt(v2[i], 10); + if (num1 > num2) { + return 1; + } + if (num1 < num2) { + return -1; + } + } + return 0; +} +function gte(version) { + var system = getSystemInfoSync(); + return compareVersion(system.SDKVersion, version) >= 0; +} +function canIUseModel() { + return gte('2.9.3'); +} +exports.canIUseModel = canIUseModel; +function canIUseFormFieldButton() { + return gte('2.10.3'); +} +exports.canIUseFormFieldButton = canIUseFormFieldButton; +function canIUseAnimate() { + return gte('2.9.0'); +} +exports.canIUseAnimate = canIUseAnimate; +function canIUseGroupSetData() { + return gte('2.4.0'); +} +exports.canIUseGroupSetData = canIUseGroupSetData; +function canIUseNextTick() { + try { + return wx.canIUse('nextTick'); + } + catch (e) { + return gte('2.7.1'); + } +} +exports.canIUseNextTick = canIUseNextTick; +function canIUseCanvas2d() { + return gte('2.9.0'); +} +exports.canIUseCanvas2d = canIUseCanvas2d; +function canIUseGetUserProfile() { + return !!wx.getUserProfile; +} +exports.canIUseGetUserProfile = canIUseGetUserProfile; diff --git a/miniprogram_npm/@vant/weapp/config-provider/index.d.ts b/miniprogram_npm/@vant/weapp/config-provider/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/config-provider/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/config-provider/index.js b/miniprogram_npm/@vant/weapp/config-provider/index.js new file mode 100644 index 0000000..21fb1c4 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/config-provider/index.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + themeVars: { + type: Object, + value: {}, + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/config-provider/index.json b/miniprogram_npm/@vant/weapp/config-provider/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/config-provider/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/config-provider/index.wxml b/miniprogram_npm/@vant/weapp/config-provider/index.wxml new file mode 100644 index 0000000..3cfb461 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/config-provider/index.wxml @@ -0,0 +1,5 @@ + + + + + diff --git a/miniprogram_npm/@vant/weapp/config-provider/index.wxs b/miniprogram_npm/@vant/weapp/config-provider/index.wxs new file mode 100644 index 0000000..7ca0203 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/config-provider/index.wxs @@ -0,0 +1,29 @@ +/* eslint-disable */ +var object = require('../wxs/object.wxs'); +var style = require('../wxs/style.wxs'); + +function kebabCase(word) { + var newWord = word + .replace(getRegExp("[A-Z]", 'g'), function (i) { + return '-' + i; + }) + .toLowerCase() + .replace(getRegExp("^-"), ''); + + return newWord; +} + +function mapThemeVarsToCSSVars(themeVars) { + var cssVars = {}; + object.keys(themeVars).forEach(function (key) { + var cssVarsKey = '--' + kebabCase(key); + cssVars[cssVarsKey] = themeVars[key]; + }); + + return style(cssVars); +} + +module.exports = { + kebabCase: kebabCase, + mapThemeVarsToCSSVars: mapThemeVarsToCSSVars, +}; diff --git a/miniprogram_npm/@vant/weapp/count-down/index.d.ts b/miniprogram_npm/@vant/weapp/count-down/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/count-down/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/count-down/index.js b/miniprogram_npm/@vant/weapp/count-down/index.js new file mode 100644 index 0000000..afc780b --- /dev/null +++ b/miniprogram_npm/@vant/weapp/count-down/index.js @@ -0,0 +1,104 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var utils_1 = require("./utils"); +function simpleTick(fn) { + return setTimeout(fn, 30); +} +(0, component_1.VantComponent)({ + props: { + useSlot: Boolean, + millisecond: Boolean, + time: { + type: Number, + observer: 'reset', + }, + format: { + type: String, + value: 'HH:mm:ss', + }, + autoStart: { + type: Boolean, + value: true, + }, + }, + data: { + timeData: (0, utils_1.parseTimeData)(0), + formattedTime: '0', + }, + destroyed: function () { + clearTimeout(this.tid); + this.tid = null; + }, + methods: { + // 开始 + start: function () { + if (this.counting) { + return; + } + this.counting = true; + this.endTime = Date.now() + this.remain; + this.tick(); + }, + // 暂停 + pause: function () { + this.counting = false; + clearTimeout(this.tid); + }, + // 重置 + reset: function () { + this.pause(); + this.remain = this.data.time; + this.setRemain(this.remain); + if (this.data.autoStart) { + this.start(); + } + }, + tick: function () { + if (this.data.millisecond) { + this.microTick(); + } + else { + this.macroTick(); + } + }, + microTick: function () { + var _this = this; + this.tid = simpleTick(function () { + _this.setRemain(_this.getRemain()); + if (_this.remain !== 0) { + _this.microTick(); + } + }); + }, + macroTick: function () { + var _this = this; + this.tid = simpleTick(function () { + var remain = _this.getRemain(); + if (!(0, utils_1.isSameSecond)(remain, _this.remain) || remain === 0) { + _this.setRemain(remain); + } + if (_this.remain !== 0) { + _this.macroTick(); + } + }); + }, + getRemain: function () { + return Math.max(this.endTime - Date.now(), 0); + }, + setRemain: function (remain) { + this.remain = remain; + var timeData = (0, utils_1.parseTimeData)(remain); + if (this.data.useSlot) { + this.$emit('change', timeData); + } + this.setData({ + formattedTime: (0, utils_1.parseFormat)(this.data.format, timeData), + }); + if (remain === 0) { + this.pause(); + this.$emit('finish'); + } + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/count-down/index.json b/miniprogram_npm/@vant/weapp/count-down/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/count-down/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/count-down/index.wxml b/miniprogram_npm/@vant/weapp/count-down/index.wxml new file mode 100644 index 0000000..e206e16 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/count-down/index.wxml @@ -0,0 +1,4 @@ + + + {{ formattedTime }} + diff --git a/miniprogram_npm/@vant/weapp/count-down/index.wxss b/miniprogram_npm/@vant/weapp/count-down/index.wxss new file mode 100644 index 0000000..8b957f7 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/count-down/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-count-down{color:var(--count-down-text-color,#323233);font-size:var(--count-down-font-size,14px);line-height:var(--count-down-line-height,20px)} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/count-down/utils.d.ts b/miniprogram_npm/@vant/weapp/count-down/utils.d.ts new file mode 100644 index 0000000..e4a58dd --- /dev/null +++ b/miniprogram_npm/@vant/weapp/count-down/utils.d.ts @@ -0,0 +1,10 @@ +export declare type TimeData = { + days: number; + hours: number; + minutes: number; + seconds: number; + milliseconds: number; +}; +export declare function parseTimeData(time: number): TimeData; +export declare function parseFormat(format: string, timeData: TimeData): string; +export declare function isSameSecond(time1: number, time2: number): boolean; diff --git a/miniprogram_npm/@vant/weapp/count-down/utils.js b/miniprogram_npm/@vant/weapp/count-down/utils.js new file mode 100644 index 0000000..a7cfa5f --- /dev/null +++ b/miniprogram_npm/@vant/weapp/count-down/utils.js @@ -0,0 +1,64 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isSameSecond = exports.parseFormat = exports.parseTimeData = void 0; +function padZero(num, targetLength) { + if (targetLength === void 0) { targetLength = 2; } + var str = num + ''; + while (str.length < targetLength) { + str = '0' + str; + } + return str; +} +var SECOND = 1000; +var MINUTE = 60 * SECOND; +var HOUR = 60 * MINUTE; +var DAY = 24 * HOUR; +function parseTimeData(time) { + var days = Math.floor(time / DAY); + var hours = Math.floor((time % DAY) / HOUR); + var minutes = Math.floor((time % HOUR) / MINUTE); + var seconds = Math.floor((time % MINUTE) / SECOND); + var milliseconds = Math.floor(time % SECOND); + return { + days: days, + hours: hours, + minutes: minutes, + seconds: seconds, + milliseconds: milliseconds, + }; +} +exports.parseTimeData = parseTimeData; +function parseFormat(format, timeData) { + var days = timeData.days; + var hours = timeData.hours, minutes = timeData.minutes, seconds = timeData.seconds, milliseconds = timeData.milliseconds; + if (format.indexOf('DD') === -1) { + hours += days * 24; + } + else { + format = format.replace('DD', padZero(days)); + } + if (format.indexOf('HH') === -1) { + minutes += hours * 60; + } + else { + format = format.replace('HH', padZero(hours)); + } + if (format.indexOf('mm') === -1) { + seconds += minutes * 60; + } + else { + format = format.replace('mm', padZero(minutes)); + } + if (format.indexOf('ss') === -1) { + milliseconds += seconds * 1000; + } + else { + format = format.replace('ss', padZero(seconds)); + } + return format.replace('SSS', padZero(milliseconds, 3)); +} +exports.parseFormat = parseFormat; +function isSameSecond(time1, time2) { + return Math.floor(time1 / 1000) === Math.floor(time2 / 1000); +} +exports.isSameSecond = isSameSecond; diff --git a/miniprogram_npm/@vant/weapp/datetime-picker/index.d.ts b/miniprogram_npm/@vant/weapp/datetime-picker/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/datetime-picker/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/datetime-picker/index.js b/miniprogram_npm/@vant/weapp/datetime-picker/index.js new file mode 100644 index 0000000..e30afef --- /dev/null +++ b/miniprogram_npm/@vant/weapp/datetime-picker/index.js @@ -0,0 +1,329 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var validator_1 = require("../common/validator"); +var shared_1 = require("../picker/shared"); +var currentYear = new Date().getFullYear(); +function isValidDate(date) { + return (0, validator_1.isDef)(date) && !isNaN(new Date(date).getTime()); +} +function range(num, min, max) { + return Math.min(Math.max(num, min), max); +} +function padZero(val) { + return "00".concat(val).slice(-2); +} +function times(n, iteratee) { + var index = -1; + var result = Array(n < 0 ? 0 : n); + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} +function getTrueValue(formattedValue) { + if (formattedValue === undefined) { + formattedValue = '1'; + } + while (isNaN(parseInt(formattedValue, 10))) { + formattedValue = formattedValue.slice(1); + } + return parseInt(formattedValue, 10); +} +function getMonthEndDay(year, month) { + return 32 - new Date(year, month - 1, 32).getDate(); +} +var defaultFormatter = function (type, value) { return value; }; +(0, component_1.VantComponent)({ + classes: ['active-class', 'toolbar-class', 'column-class'], + props: __assign(__assign({}, shared_1.pickerProps), { value: { + type: null, + observer: 'updateValue', + }, filter: null, type: { + type: String, + value: 'datetime', + observer: 'updateValue', + }, showToolbar: { + type: Boolean, + value: true, + }, formatter: { + type: null, + value: defaultFormatter, + }, minDate: { + type: Number, + value: new Date(currentYear - 10, 0, 1).getTime(), + observer: 'updateValue', + }, maxDate: { + type: Number, + value: new Date(currentYear + 10, 11, 31).getTime(), + observer: 'updateValue', + }, minHour: { + type: Number, + value: 0, + observer: 'updateValue', + }, maxHour: { + type: Number, + value: 23, + observer: 'updateValue', + }, minMinute: { + type: Number, + value: 0, + observer: 'updateValue', + }, maxMinute: { + type: Number, + value: 59, + observer: 'updateValue', + } }), + data: { + innerValue: Date.now(), + columns: [], + }, + methods: { + updateValue: function () { + var _this = this; + var data = this.data; + var val = this.correctValue(data.value); + var isEqual = val === data.innerValue; + this.updateColumnValue(val).then(function () { + if (!isEqual) { + _this.$emit('input', val); + } + }); + }, + getPicker: function () { + if (this.picker == null) { + this.picker = this.selectComponent('.van-datetime-picker'); + var picker_1 = this.picker; + var setColumnValues_1 = picker_1.setColumnValues; + picker_1.setColumnValues = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return setColumnValues_1.apply(picker_1, __spreadArray(__spreadArray([], args, true), [false], false)); + }; + } + return this.picker; + }, + updateColumns: function () { + var _a = this.data.formatter, formatter = _a === void 0 ? defaultFormatter : _a; + var results = this.getOriginColumns().map(function (column) { return ({ + values: column.values.map(function (value) { return formatter(column.type, value); }), + }); }); + return this.set({ columns: results }); + }, + getOriginColumns: function () { + var filter = this.data.filter; + var results = this.getRanges().map(function (_a) { + var type = _a.type, range = _a.range; + var values = times(range[1] - range[0] + 1, function (index) { + var value = range[0] + index; + return type === 'year' ? "".concat(value) : padZero(value); + }); + if (filter) { + values = filter(type, values); + } + return { type: type, values: values }; + }); + return results; + }, + getRanges: function () { + var data = this.data; + if (data.type === 'time') { + return [ + { + type: 'hour', + range: [data.minHour, data.maxHour], + }, + { + type: 'minute', + range: [data.minMinute, data.maxMinute], + }, + ]; + } + var _a = this.getBoundary('max', data.innerValue), maxYear = _a.maxYear, maxDate = _a.maxDate, maxMonth = _a.maxMonth, maxHour = _a.maxHour, maxMinute = _a.maxMinute; + var _b = this.getBoundary('min', data.innerValue), minYear = _b.minYear, minDate = _b.minDate, minMonth = _b.minMonth, minHour = _b.minHour, minMinute = _b.minMinute; + var result = [ + { + type: 'year', + range: [minYear, maxYear], + }, + { + type: 'month', + range: [minMonth, maxMonth], + }, + { + type: 'day', + range: [minDate, maxDate], + }, + { + type: 'hour', + range: [minHour, maxHour], + }, + { + type: 'minute', + range: [minMinute, maxMinute], + }, + ]; + if (data.type === 'date') + result.splice(3, 2); + if (data.type === 'year-month') + result.splice(2, 3); + return result; + }, + correctValue: function (value) { + var data = this.data; + // validate value + var isDateType = data.type !== 'time'; + if (isDateType && !isValidDate(value)) { + value = data.minDate; + } + else if (!isDateType && !value) { + var minHour = data.minHour; + value = "".concat(padZero(minHour), ":00"); + } + // time type + if (!isDateType) { + var _a = value.split(':'), hour = _a[0], minute = _a[1]; + hour = padZero(range(hour, data.minHour, data.maxHour)); + minute = padZero(range(minute, data.minMinute, data.maxMinute)); + return "".concat(hour, ":").concat(minute); + } + // date type + value = Math.max(value, data.minDate); + value = Math.min(value, data.maxDate); + return value; + }, + getBoundary: function (type, innerValue) { + var _a; + var value = new Date(innerValue); + var boundary = new Date(this.data["".concat(type, "Date")]); + var year = boundary.getFullYear(); + var month = 1; + var date = 1; + var hour = 0; + var minute = 0; + if (type === 'max') { + month = 12; + date = getMonthEndDay(value.getFullYear(), value.getMonth() + 1); + hour = 23; + minute = 59; + } + if (value.getFullYear() === year) { + month = boundary.getMonth() + 1; + if (value.getMonth() + 1 === month) { + date = boundary.getDate(); + if (value.getDate() === date) { + hour = boundary.getHours(); + if (value.getHours() === hour) { + minute = boundary.getMinutes(); + } + } + } + } + return _a = {}, + _a["".concat(type, "Year")] = year, + _a["".concat(type, "Month")] = month, + _a["".concat(type, "Date")] = date, + _a["".concat(type, "Hour")] = hour, + _a["".concat(type, "Minute")] = minute, + _a; + }, + onCancel: function () { + this.$emit('cancel'); + }, + onConfirm: function () { + this.$emit('confirm', this.data.innerValue); + }, + onChange: function () { + var _this = this; + var data = this.data; + var value; + var picker = this.getPicker(); + var originColumns = this.getOriginColumns(); + if (data.type === 'time') { + var indexes = picker.getIndexes(); + value = "".concat(+originColumns[0].values[indexes[0]], ":").concat(+originColumns[1] + .values[indexes[1]]); + } + else { + var indexes = picker.getIndexes(); + var values = indexes.map(function (value, index) { return originColumns[index].values[value]; }); + var year = getTrueValue(values[0]); + var month = getTrueValue(values[1]); + var maxDate = getMonthEndDay(year, month); + var date = getTrueValue(values[2]); + if (data.type === 'year-month') { + date = 1; + } + date = date > maxDate ? maxDate : date; + var hour = 0; + var minute = 0; + if (data.type === 'datetime') { + hour = getTrueValue(values[3]); + minute = getTrueValue(values[4]); + } + value = new Date(year, month - 1, date, hour, minute); + } + value = this.correctValue(value); + this.updateColumnValue(value).then(function () { + _this.$emit('input', value); + _this.$emit('change', picker); + }); + }, + updateColumnValue: function (value) { + var _this = this; + var values = []; + var type = this.data.type; + var formatter = this.data.formatter || defaultFormatter; + var picker = this.getPicker(); + if (type === 'time') { + var pair = value.split(':'); + values = [formatter('hour', pair[0]), formatter('minute', pair[1])]; + } + else { + var date = new Date(value); + values = [ + formatter('year', "".concat(date.getFullYear())), + formatter('month', padZero(date.getMonth() + 1)), + ]; + if (type === 'date') { + values.push(formatter('day', padZero(date.getDate()))); + } + if (type === 'datetime') { + values.push(formatter('day', padZero(date.getDate())), formatter('hour', padZero(date.getHours())), formatter('minute', padZero(date.getMinutes()))); + } + } + return this.set({ innerValue: value }) + .then(function () { return _this.updateColumns(); }) + .then(function () { return picker.setValues(values); }); + }, + }, + created: function () { + var _this = this; + var innerValue = this.correctValue(this.data.value); + this.updateColumnValue(innerValue).then(function () { + _this.$emit('input', innerValue); + }); + }, +}); diff --git a/miniprogram_npm/@vant/weapp/datetime-picker/index.json b/miniprogram_npm/@vant/weapp/datetime-picker/index.json new file mode 100644 index 0000000..a778e91 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/datetime-picker/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-picker": "../picker/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/datetime-picker/index.wxml b/miniprogram_npm/@vant/weapp/datetime-picker/index.wxml new file mode 100644 index 0000000..ade2202 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/datetime-picker/index.wxml @@ -0,0 +1,16 @@ + diff --git a/miniprogram_npm/@vant/weapp/datetime-picker/index.wxss b/miniprogram_npm/@vant/weapp/datetime-picker/index.wxss new file mode 100644 index 0000000..99694d6 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/datetime-picker/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss'; \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/definitions/index.d.ts b/miniprogram_npm/@vant/weapp/definitions/index.d.ts new file mode 100644 index 0000000..c4c98f9 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/definitions/index.d.ts @@ -0,0 +1,28 @@ +/// +interface VantComponentInstance { + parent: WechatMiniprogram.Component.TrivialInstance; + children: WechatMiniprogram.Component.TrivialInstance[]; + index: number; + $emit: (name: string, detail?: unknown, options?: WechatMiniprogram.Component.TriggerEventOption) => void; +} +export declare type VantComponentOptions = { + data?: Data; + field?: boolean; + classes?: string[]; + mixins?: string[]; + props?: Props; + relation?: { + relations: Record; + mixin: string; + }; + watch?: Record any>; + methods?: Methods; + beforeCreate?: () => void; + created?: () => void; + mounted?: () => void; + destroyed?: () => void; +} & ThisType, Props, Methods> & Record>; +export {}; diff --git a/miniprogram_npm/@vant/weapp/definitions/index.js b/miniprogram_npm/@vant/weapp/definitions/index.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/definitions/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/miniprogram_npm/@vant/weapp/dialog/dialog.d.ts b/miniprogram_npm/@vant/weapp/dialog/dialog.d.ts new file mode 100644 index 0000000..1770810 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dialog/dialog.d.ts @@ -0,0 +1,55 @@ +/// +/// +export declare type Action = 'confirm' | 'cancel' | 'overlay'; +declare type DialogContext = WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance; +interface DialogOptions { + lang?: string; + show?: boolean; + title?: string; + width?: string | number | null; + zIndex?: number; + theme?: string; + context?: (() => DialogContext) | DialogContext; + message?: string; + overlay?: boolean; + selector?: string; + ariaLabel?: string; + /** + * @deprecated use custom-class instead + */ + className?: string; + customStyle?: string; + transition?: string; + /** + * @deprecated use beforeClose instead + */ + asyncClose?: boolean; + beforeClose?: null | ((action: Action) => Promise | void); + businessId?: number; + sessionFrom?: string; + overlayStyle?: string; + appParameter?: string; + messageAlign?: string; + sendMessageImg?: string; + showMessageCard?: boolean; + sendMessagePath?: string; + sendMessageTitle?: string; + confirmButtonText?: string; + cancelButtonText?: string; + showConfirmButton?: boolean; + showCancelButton?: boolean; + closeOnClickOverlay?: boolean; + confirmButtonOpenType?: string; +} +declare const Dialog: { + (options: DialogOptions): Promise; + alert(options: DialogOptions): Promise; + confirm(options: DialogOptions): Promise; + close(): void; + stopLoading(): void; + currentOptions: DialogOptions; + defaultOptions: DialogOptions; + setDefaultOptions(options: DialogOptions): void; + resetDefaultOptions(): void; +}; +export default Dialog; diff --git a/miniprogram_npm/@vant/weapp/dialog/dialog.js b/miniprogram_npm/@vant/weapp/dialog/dialog.js new file mode 100644 index 0000000..400f4f1 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dialog/dialog.js @@ -0,0 +1,92 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var queue = []; +var defaultOptions = { + show: false, + title: '', + width: null, + theme: 'default', + message: '', + zIndex: 100, + overlay: true, + selector: '#van-dialog', + className: '', + asyncClose: false, + beforeClose: null, + transition: 'scale', + customStyle: '', + messageAlign: '', + overlayStyle: '', + confirmButtonText: '确认', + cancelButtonText: '取消', + showConfirmButton: true, + showCancelButton: false, + closeOnClickOverlay: false, + confirmButtonOpenType: '', +}; +var currentOptions = __assign({}, defaultOptions); +function getContext() { + var pages = getCurrentPages(); + return pages[pages.length - 1]; +} +var Dialog = function (options) { + options = __assign(__assign({}, currentOptions), options); + return new Promise(function (resolve, reject) { + var context = (typeof options.context === 'function' + ? options.context() + : options.context) || getContext(); + var dialog = context.selectComponent(options.selector); + delete options.context; + delete options.selector; + if (dialog) { + dialog.setData(__assign({ callback: function (action, instance) { + action === 'confirm' ? resolve(instance) : reject(instance); + } }, options)); + wx.nextTick(function () { + dialog.setData({ show: true }); + }); + queue.push(dialog); + } + else { + console.warn('未找到 van-dialog 节点,请确认 selector 及 context 是否正确'); + } + }); +}; +Dialog.alert = function (options) { return Dialog(options); }; +Dialog.confirm = function (options) { + return Dialog(__assign({ showCancelButton: true }, options)); +}; +Dialog.close = function () { + queue.forEach(function (dialog) { + dialog.close(); + }); + queue = []; +}; +Dialog.stopLoading = function () { + queue.forEach(function (dialog) { + dialog.stopLoading(); + }); +}; +Dialog.currentOptions = currentOptions; +Dialog.defaultOptions = defaultOptions; +Dialog.setDefaultOptions = function (options) { + currentOptions = __assign(__assign({}, currentOptions), options); + Dialog.currentOptions = currentOptions; +}; +Dialog.resetDefaultOptions = function () { + currentOptions = __assign({}, defaultOptions); + Dialog.currentOptions = currentOptions; +}; +Dialog.resetDefaultOptions(); +exports.default = Dialog; diff --git a/miniprogram_npm/@vant/weapp/dialog/index.d.ts b/miniprogram_npm/@vant/weapp/dialog/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dialog/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/dialog/index.js b/miniprogram_npm/@vant/weapp/dialog/index.js new file mode 100644 index 0000000..3d59264 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dialog/index.js @@ -0,0 +1,127 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var button_1 = require("../mixins/button"); +var color_1 = require("../common/color"); +var utils_1 = require("../common/utils"); +(0, component_1.VantComponent)({ + mixins: [button_1.button], + props: { + show: { + type: Boolean, + observer: function (show) { + !show && this.stopLoading(); + }, + }, + title: String, + message: String, + theme: { + type: String, + value: 'default', + }, + useSlot: Boolean, + className: String, + customStyle: String, + asyncClose: Boolean, + messageAlign: String, + beforeClose: null, + overlayStyle: String, + useTitleSlot: Boolean, + showCancelButton: Boolean, + closeOnClickOverlay: Boolean, + confirmButtonOpenType: String, + width: null, + zIndex: { + type: Number, + value: 2000, + }, + confirmButtonText: { + type: String, + value: '确认', + }, + cancelButtonText: { + type: String, + value: '取消', + }, + confirmButtonColor: { + type: String, + value: color_1.RED, + }, + cancelButtonColor: { + type: String, + value: color_1.GRAY, + }, + showConfirmButton: { + type: Boolean, + value: true, + }, + overlay: { + type: Boolean, + value: true, + }, + transition: { + type: String, + value: 'scale', + }, + }, + data: { + loading: { + confirm: false, + cancel: false, + }, + callback: (function () { }), + }, + methods: { + onConfirm: function () { + this.handleAction('confirm'); + }, + onCancel: function () { + this.handleAction('cancel'); + }, + onClickOverlay: function () { + this.close('overlay'); + }, + close: function (action) { + var _this = this; + this.setData({ show: false }); + wx.nextTick(function () { + _this.$emit('close', action); + var callback = _this.data.callback; + if (callback) { + callback(action, _this); + } + }); + }, + stopLoading: function () { + this.setData({ + loading: { + confirm: false, + cancel: false, + }, + }); + }, + handleAction: function (action) { + var _a; + var _this = this; + this.$emit(action, { dialog: this }); + var _b = this.data, asyncClose = _b.asyncClose, beforeClose = _b.beforeClose; + if (!asyncClose && !beforeClose) { + this.close(action); + return; + } + this.setData((_a = {}, + _a["loading.".concat(action)] = true, + _a)); + if (beforeClose) { + (0, utils_1.toPromise)(beforeClose(action)).then(function (value) { + if (value) { + _this.close(action); + } + else { + _this.stopLoading(); + } + }); + } + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/dialog/index.json b/miniprogram_npm/@vant/weapp/dialog/index.json new file mode 100644 index 0000000..43417fc --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dialog/index.json @@ -0,0 +1,9 @@ +{ + "component": true, + "usingComponents": { + "van-popup": "../popup/index", + "van-button": "../button/index", + "van-goods-action": "../goods-action/index", + "van-goods-action-button": "../goods-action-button/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/dialog/index.wxml b/miniprogram_npm/@vant/weapp/dialog/index.wxml new file mode 100644 index 0000000..e1ac81e --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dialog/index.wxml @@ -0,0 +1,113 @@ + + + + + + {{ title }} + + + + + {{ message }} + + + + + {{ cancelButtonText }} + + + {{ confirmButtonText }} + + + + + + {{ cancelButtonText }} + + + {{ confirmButtonText }} + + + diff --git a/miniprogram_npm/@vant/weapp/dialog/index.wxss b/miniprogram_npm/@vant/weapp/dialog/index.wxss new file mode 100644 index 0000000..507a789 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dialog/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-dialog{background-color:var(--dialog-background-color,#fff);border-radius:var(--dialog-border-radius,16px);font-size:var(--dialog-font-size,16px);overflow:hidden;top:45%!important;width:var(--dialog-width,320px)}@media (max-width:321px){.van-dialog{width:var(--dialog-small-screen-width,90%)}}.van-dialog__header{font-weight:var(--dialog-header-font-weight,500);line-height:var(--dialog-header-line-height,24px);padding-top:var(--dialog-header-padding-top,24px);text-align:center}.van-dialog__header--isolated{padding:var(--dialog-header-isolated-padding,24px 0)}.van-dialog__message{-webkit-overflow-scrolling:touch;font-size:var(--dialog-message-font-size,14px);line-height:var(--dialog-message-line-height,20px);max-height:var(--dialog-message-max-height,60vh);overflow-y:auto;padding:var(--dialog-message-padding,24px);text-align:center}.van-dialog__message-text{word-wrap:break-word}.van-dialog__message--hasTitle{color:var(--dialog-has-title-message-text-color,#646566);padding-top:var(--dialog-has-title-message-padding-top,8px)}.van-dialog__message--round-button{color:#323233;padding-bottom:16px}.van-dialog__message--left{text-align:left}.van-dialog__message--right{text-align:right}.van-dialog__message--justify{text-align:justify}.van-dialog__footer{display:flex}.van-dialog__footer--round-button{padding:8px 24px 16px!important;position:relative!important}.van-dialog__button{flex:1}.van-dialog__cancel,.van-dialog__confirm{border:0!important}.van-dialog-bounce-enter{opacity:0;transform:translate3d(-50%,-50%,0) scale(.7)}.van-dialog-bounce-leave-active{opacity:0;transform:translate3d(-50%,-50%,0) scale(.9)} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/divider/index.d.ts b/miniprogram_npm/@vant/weapp/divider/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/divider/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/divider/index.js b/miniprogram_npm/@vant/weapp/divider/index.js new file mode 100644 index 0000000..5c63844 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/divider/index.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + dashed: Boolean, + hairline: Boolean, + contentPosition: String, + fontSize: String, + borderColor: String, + textColor: String, + customStyle: String, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/divider/index.json b/miniprogram_npm/@vant/weapp/divider/index.json new file mode 100644 index 0000000..a89ef4d --- /dev/null +++ b/miniprogram_npm/@vant/weapp/divider/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} diff --git a/miniprogram_npm/@vant/weapp/divider/index.wxml b/miniprogram_npm/@vant/weapp/divider/index.wxml new file mode 100644 index 0000000..f6a5a45 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/divider/index.wxml @@ -0,0 +1,9 @@ + + + + + + diff --git a/miniprogram_npm/@vant/weapp/divider/index.wxs b/miniprogram_npm/@vant/weapp/divider/index.wxs new file mode 100644 index 0000000..215b14f --- /dev/null +++ b/miniprogram_npm/@vant/weapp/divider/index.wxs @@ -0,0 +1,18 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function rootStyle(data) { + return style([ + { + 'border-color': data.borderColor, + color: data.textColor, + 'font-size': addUnit(data.fontSize), + }, + data.customStyle, + ]); +} + +module.exports = { + rootStyle: rootStyle, +}; diff --git a/miniprogram_npm/@vant/weapp/divider/index.wxss b/miniprogram_npm/@vant/weapp/divider/index.wxss new file mode 100644 index 0000000..e91dc44 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/divider/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-divider{align-items:center;border:0 solid var(--divider-border-color,#ebedf0);color:var(--divider-text-color,#969799);display:flex;font-size:var(--divider-font-size,14px);line-height:var(--divider-line-height,24px);margin:var(--divider-margin,16px 0)}.van-divider:after,.van-divider:before{border-color:inherit;border-style:inherit;border-width:1px 0 0;box-sizing:border-box;display:block;flex:1;height:1px}.van-divider:before{content:""}.van-divider--hairline:after,.van-divider--hairline:before{transform:scaleY(.5)}.van-divider--dashed{border-style:dashed}.van-divider--center:before,.van-divider--left:before,.van-divider--right:before{margin-right:var(--divider-content-padding,16px)}.van-divider--center:after,.van-divider--left:after,.van-divider--right:after{content:"";margin-left:var(--divider-content-padding,16px)}.van-divider--left:before{max-width:var(--divider-content-left-width,10%)}.van-divider--right:after{max-width:var(--divider-content-right-width,10%)} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/dropdown-item/index.d.ts b/miniprogram_npm/@vant/weapp/dropdown-item/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-item/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/dropdown-item/index.js b/miniprogram_npm/@vant/weapp/dropdown-item/index.js new file mode 100644 index 0000000..0dd143d --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-item/index.js @@ -0,0 +1,130 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var relation_1 = require("../common/relation"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + classes: ['item-title-class'], + field: true, + relation: (0, relation_1.useParent)('dropdown-menu', function () { + this.updateDataFromParent(); + }), + props: { + value: { + type: null, + observer: 'rerender', + }, + title: { + type: String, + observer: 'rerender', + }, + disabled: Boolean, + titleClass: { + type: String, + observer: 'rerender', + }, + options: { + type: Array, + value: [], + observer: 'rerender', + }, + popupStyle: String, + useBeforeToggle: { + type: Boolean, + value: false, + }, + }, + data: { + transition: true, + showPopup: false, + showWrapper: false, + displayTitle: '', + }, + methods: { + rerender: function () { + var _this = this; + wx.nextTick(function () { + var _a; + (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.updateItemListData(); + }); + }, + updateDataFromParent: function () { + if (this.parent) { + var _a = this.parent.data, overlay = _a.overlay, duration = _a.duration, activeColor = _a.activeColor, closeOnClickOverlay = _a.closeOnClickOverlay, direction = _a.direction; + this.setData({ + overlay: overlay, + duration: duration, + activeColor: activeColor, + closeOnClickOverlay: closeOnClickOverlay, + direction: direction, + }); + } + }, + onOpen: function () { + this.$emit('open'); + }, + onOpened: function () { + this.$emit('opened'); + }, + onClose: function () { + this.$emit('close'); + }, + onClosed: function () { + this.$emit('closed'); + this.setData({ showWrapper: false }); + }, + onOptionTap: function (event) { + var option = event.currentTarget.dataset.option; + var value = option.value; + var shouldEmitChange = this.data.value !== value; + this.setData({ showPopup: false, value: value }); + this.$emit('close'); + this.rerender(); + if (shouldEmitChange) { + this.$emit('change', value); + } + }, + toggle: function (show, options) { + var _this = this; + if (options === void 0) { options = {}; } + var showPopup = this.data.showPopup; + if (typeof show !== 'boolean') { + show = !showPopup; + } + if (show === showPopup) { + return; + } + this.onBeforeToggle(show).then(function (status) { + var _a; + if (!status) { + return; + } + _this.setData({ + transition: !options.immediate, + showPopup: show, + }); + if (show) { + (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.getChildWrapperStyle().then(function (wrapperStyle) { + _this.setData({ wrapperStyle: wrapperStyle, showWrapper: true }); + _this.rerender(); + }); + } + else { + _this.rerender(); + } + }); + }, + onBeforeToggle: function (status) { + var _this = this; + var useBeforeToggle = this.data.useBeforeToggle; + if (!useBeforeToggle) { + return Promise.resolve(true); + } + return new Promise(function (resolve) { + _this.$emit('before-toggle', { + status: status, + callback: function (value) { return resolve(value); }, + }); + }); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/dropdown-item/index.json b/miniprogram_npm/@vant/weapp/dropdown-item/index.json new file mode 100644 index 0000000..88d5409 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-item/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "van-popup": "../popup/index", + "van-cell": "../cell/index", + "van-icon": "../icon/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/dropdown-item/index.wxml b/miniprogram_npm/@vant/weapp/dropdown-item/index.wxml new file mode 100644 index 0000000..c9d4aa5 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-item/index.wxml @@ -0,0 +1,48 @@ + + + + + + + {{ item.text }} + + + + + + + diff --git a/miniprogram_npm/@vant/weapp/dropdown-item/index.wxss b/miniprogram_npm/@vant/weapp/dropdown-item/index.wxss new file mode 100644 index 0000000..80505e9 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-item/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-dropdown-item{left:0;overflow:hidden;position:fixed;right:0}.van-dropdown-item__option{text-align:left}.van-dropdown-item__option--active .van-dropdown-item__icon,.van-dropdown-item__option--active .van-dropdown-item__title{color:var(--dropdown-menu-option-active-color,#ee0a24)}.van-dropdown-item--up{top:0}.van-dropdown-item--down{bottom:0}.van-dropdown-item__icon{display:block;line-height:inherit} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts b/miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts new file mode 100644 index 0000000..774eb4c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts @@ -0,0 +1,5 @@ +export interface Option { + text: string; + value: string | number; + icon: string; +} diff --git a/miniprogram_npm/@vant/weapp/dropdown-item/shared.js b/miniprogram_npm/@vant/weapp/dropdown-item/shared.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-item/shared.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/miniprogram_npm/@vant/weapp/dropdown-menu/index.d.ts b/miniprogram_npm/@vant/weapp/dropdown-menu/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-menu/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/dropdown-menu/index.js b/miniprogram_npm/@vant/weapp/dropdown-menu/index.js new file mode 100644 index 0000000..86ae618 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-menu/index.js @@ -0,0 +1,118 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +var utils_1 = require("../common/utils"); +var ARRAY = []; +(0, component_1.VantComponent)({ + field: true, + classes: ['title-class'], + relation: (0, relation_1.useChildren)('dropdown-item', function () { + this.updateItemListData(); + }), + props: { + activeColor: { + type: String, + observer: 'updateChildrenData', + }, + overlay: { + type: Boolean, + value: true, + observer: 'updateChildrenData', + }, + zIndex: { + type: Number, + value: 10, + }, + duration: { + type: Number, + value: 200, + observer: 'updateChildrenData', + }, + direction: { + type: String, + value: 'down', + observer: 'updateChildrenData', + }, + closeOnClickOverlay: { + type: Boolean, + value: true, + observer: 'updateChildrenData', + }, + closeOnClickOutside: { + type: Boolean, + value: true, + }, + }, + data: { + itemListData: [], + }, + beforeCreate: function () { + var windowHeight = (0, utils_1.getSystemInfoSync)().windowHeight; + this.windowHeight = windowHeight; + ARRAY.push(this); + }, + destroyed: function () { + var _this = this; + ARRAY = ARRAY.filter(function (item) { return item !== _this; }); + }, + methods: { + updateItemListData: function () { + this.setData({ + itemListData: this.children.map(function (child) { return child.data; }), + }); + }, + updateChildrenData: function () { + this.children.forEach(function (child) { + child.updateDataFromParent(); + }); + }, + toggleItem: function (active) { + this.children.forEach(function (item, index) { + var showPopup = item.data.showPopup; + if (index === active) { + item.toggle(); + } + else if (showPopup) { + item.toggle(false, { immediate: true }); + } + }); + }, + close: function () { + this.children.forEach(function (child) { + child.toggle(false, { immediate: true }); + }); + }, + getChildWrapperStyle: function () { + var _this = this; + var _a = this.data, zIndex = _a.zIndex, direction = _a.direction; + return (0, utils_1.getRect)(this, '.van-dropdown-menu').then(function (rect) { + var _a = rect.top, top = _a === void 0 ? 0 : _a, _b = rect.bottom, bottom = _b === void 0 ? 0 : _b; + var offset = direction === 'down' ? bottom : _this.windowHeight - top; + var wrapperStyle = "z-index: ".concat(zIndex, ";"); + if (direction === 'down') { + wrapperStyle += "top: ".concat((0, utils_1.addUnit)(offset), ";"); + } + else { + wrapperStyle += "bottom: ".concat((0, utils_1.addUnit)(offset), ";"); + } + return wrapperStyle; + }); + }, + onTitleTap: function (event) { + var _this = this; + var index = event.currentTarget.dataset.index; + var child = this.children[index]; + if (!child.data.disabled) { + ARRAY.forEach(function (menuItem) { + if (menuItem && + menuItem.data.closeOnClickOutside && + menuItem !== _this) { + menuItem.close(); + } + }); + this.toggleItem(index); + } + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/dropdown-menu/index.json b/miniprogram_npm/@vant/weapp/dropdown-menu/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-menu/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml b/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml new file mode 100644 index 0000000..ec165a9 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml @@ -0,0 +1,23 @@ + + + + + + + + {{ computed.displayTitle(item) }} + + + + + + diff --git a/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs b/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs new file mode 100644 index 0000000..6538854 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs @@ -0,0 +1,16 @@ +/* eslint-disable */ +function displayTitle(item) { + if (item.title) { + return item.title; + } + + var match = item.options.filter(function(option) { + return option.value === item.value; + }); + var displayTitle = match.length ? match[0].text : ''; + return displayTitle; +} + +module.exports = { + displayTitle: displayTitle +}; diff --git a/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss b/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss new file mode 100644 index 0000000..dba000e --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-dropdown-menu{background-color:var(--dropdown-menu-background-color,#fff);box-shadow:var(--dropdown-menu-box-shadow,0 2px 12px hsla(210,1%,40%,.12));display:flex;height:var(--dropdown-menu-height,50px);-webkit-user-select:none;user-select:none}.van-dropdown-menu__item{align-items:center;display:flex;flex:1;justify-content:center;min-width:0}.van-dropdown-menu__item:active{opacity:.7}.van-dropdown-menu__item--disabled:active{opacity:1}.van-dropdown-menu__item--disabled .van-dropdown-menu__title{color:var(--dropdown-menu-title-disabled-text-color,#969799)}.van-dropdown-menu__title{box-sizing:border-box;color:var(--dropdown-menu-title-text-color,#323233);font-size:var(--dropdown-menu-title-font-size,15px);line-height:var(--dropdown-menu-title-line-height,18px);max-width:100%;padding:var(--dropdown-menu-title-padding,0 24px 0 8px);position:relative}.van-dropdown-menu__title:after{border-color:transparent transparent currentcolor currentcolor;border-style:solid;border-width:3px;content:"";margin-top:-5px;opacity:.8;position:absolute;right:11px;top:50%;transform:rotate(-45deg)}.van-dropdown-menu__title--active{color:var(--dropdown-menu-title-active-text-color,#ee0a24)}.van-dropdown-menu__title--down:after{margin-top:-1px;transform:rotate(135deg)} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/empty/index.d.ts b/miniprogram_npm/@vant/weapp/empty/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/empty/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/empty/index.js b/miniprogram_npm/@vant/weapp/empty/index.js new file mode 100644 index 0000000..755e638 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/empty/index.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + description: String, + image: { + type: String, + value: 'default', + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/empty/index.json b/miniprogram_npm/@vant/weapp/empty/index.json new file mode 100644 index 0000000..a89ef4d --- /dev/null +++ b/miniprogram_npm/@vant/weapp/empty/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} diff --git a/miniprogram_npm/@vant/weapp/empty/index.wxml b/miniprogram_npm/@vant/weapp/empty/index.wxml new file mode 100644 index 0000000..9c7b719 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/empty/index.wxml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + {{ description }} + + + + + + diff --git a/miniprogram_npm/@vant/weapp/empty/index.wxs b/miniprogram_npm/@vant/weapp/empty/index.wxs new file mode 100644 index 0000000..cf92ece --- /dev/null +++ b/miniprogram_npm/@vant/weapp/empty/index.wxs @@ -0,0 +1,15 @@ +/* eslint-disable */ +var PRESETS = ['error', 'search', 'default', 'network']; + +function imageUrl(image) { + if (PRESETS.indexOf(image) !== -1) { + return 'https://img.yzcdn.cn/vant/empty-image-' + image + '.png'; + } + + return image; +} + +module.exports = { + imageUrl: imageUrl, +}; + diff --git a/miniprogram_npm/@vant/weapp/empty/index.wxss b/miniprogram_npm/@vant/weapp/empty/index.wxss new file mode 100644 index 0000000..0fb74fe --- /dev/null +++ b/miniprogram_npm/@vant/weapp/empty/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-empty{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:32px 0}.van-empty__image{height:160px;width:160px}.van-empty__image:empty{display:none}.van-empty__image__img{height:100%;width:100%}.van-empty__image:not(:empty)+.van-empty__image{display:none}.van-empty__description{color:#969799;font-size:14px;line-height:20px;margin-top:16px;padding:0 60px}.van-empty__description:empty,.van-empty__description:not(:empty)+.van-empty__description{display:none}.van-empty__bottom{margin-top:24px} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/field/index.d.ts b/miniprogram_npm/@vant/weapp/field/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/field/index.js b/miniprogram_npm/@vant/weapp/field/index.js new file mode 100644 index 0000000..7bb7393 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/index.js @@ -0,0 +1,127 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var utils_1 = require("../common/utils"); +var component_1 = require("../common/component"); +var props_1 = require("./props"); +(0, component_1.VantComponent)({ + field: true, + classes: ['input-class', 'right-icon-class', 'label-class'], + props: __assign(__assign(__assign(__assign({}, props_1.commonProps), props_1.inputProps), props_1.textareaProps), { size: String, icon: String, label: String, error: Boolean, center: Boolean, isLink: Boolean, leftIcon: String, rightIcon: String, autosize: null, required: Boolean, iconClass: String, clickable: Boolean, inputAlign: String, customStyle: String, errorMessage: String, arrowDirection: String, showWordLimit: Boolean, errorMessageAlign: String, readonly: { + type: Boolean, + observer: 'setShowClear', + }, clearable: { + type: Boolean, + observer: 'setShowClear', + }, clearTrigger: { + type: String, + value: 'focus', + }, border: { + type: Boolean, + value: true, + }, titleWidth: { + type: String, + value: '6.2em', + }, clearIcon: { + type: String, + value: 'clear', + }, extraEventParams: { + type: Boolean, + value: false, + } }), + data: { + focused: false, + innerValue: '', + showClear: false, + }, + created: function () { + this.value = this.data.value; + this.setData({ innerValue: this.value }); + }, + methods: { + onInput: function (event) { + var _a = (event.detail || {}).value, value = _a === void 0 ? '' : _a; + this.value = value; + this.setShowClear(); + this.emitChange(event.detail); + }, + onFocus: function (event) { + this.focused = true; + this.setShowClear(); + this.$emit('focus', event.detail); + }, + onBlur: function (event) { + this.focused = false; + this.setShowClear(); + this.$emit('blur', event.detail); + }, + onClickIcon: function () { + this.$emit('click-icon'); + }, + onClickInput: function (event) { + this.$emit('click-input', event.detail); + }, + onClear: function () { + var _this = this; + this.setData({ innerValue: '' }); + this.value = ''; + this.setShowClear(); + (0, utils_1.nextTick)(function () { + _this.emitChange({ value: '' }); + _this.$emit('clear', ''); + }); + }, + onConfirm: function (event) { + var _a = (event.detail || {}).value, value = _a === void 0 ? '' : _a; + this.value = value; + this.setShowClear(); + this.$emit('confirm', value); + }, + setValue: function (value) { + this.value = value; + this.setShowClear(); + if (value === '') { + this.setData({ innerValue: '' }); + } + this.emitChange({ value: value }); + }, + onLineChange: function (event) { + this.$emit('linechange', event.detail); + }, + onKeyboardHeightChange: function (event) { + this.$emit('keyboardheightchange', event.detail); + }, + emitChange: function (detail) { + var _this = this; + var extraEventParams = this.data.extraEventParams; + this.setData({ value: detail.value }); + (0, utils_1.nextTick)(function () { + var data = extraEventParams ? detail : detail.value; + _this.$emit('input', data); + _this.$emit('change', data); + }); + }, + setShowClear: function () { + var _a = this.data, clearable = _a.clearable, readonly = _a.readonly, clearTrigger = _a.clearTrigger; + var _b = this, focused = _b.focused, value = _b.value; + var showClear = false; + if (clearable && !readonly) { + var hasValue = !!value; + var trigger = clearTrigger === 'always' || (clearTrigger === 'focus' && focused); + showClear = hasValue && trigger; + } + this.setData({ showClear: showClear }); + }, + noop: function () { }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/field/index.json b/miniprogram_npm/@vant/weapp/field/index.json new file mode 100644 index 0000000..5906c50 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-cell": "../cell/index", + "van-icon": "../icon/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/field/index.wxml b/miniprogram_npm/@vant/weapp/field/index.wxml new file mode 100644 index 0000000..ec2e0ea --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/index.wxml @@ -0,0 +1,56 @@ + + + + + + + {{ label }} + + + + + + + + + + + + + + + + + + + + + {{ value.length >= maxlength ? maxlength : value.length }}/{{ maxlength }} + + + {{ errorMessage }} + + diff --git a/miniprogram_npm/@vant/weapp/field/index.wxs b/miniprogram_npm/@vant/weapp/field/index.wxs new file mode 100644 index 0000000..78575b9 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/index.wxs @@ -0,0 +1,18 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function inputStyle(autosize) { + if (autosize && autosize.constructor === 'Object') { + return style({ + 'min-height': addUnit(autosize.minHeight), + 'max-height': addUnit(autosize.maxHeight), + }); + } + + return ''; +} + +module.exports = { + inputStyle: inputStyle, +}; diff --git a/miniprogram_npm/@vant/weapp/field/index.wxss b/miniprogram_npm/@vant/weapp/field/index.wxss new file mode 100644 index 0000000..7571fe6 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-field{--cell-icon-size:var(--field-icon-size,16px)}.van-field__label{color:var(--field-label-color,#646566)}.van-field__label--disabled{color:var(--field-disabled-text-color,#c8c9cc)}.van-field__body{align-items:center;display:flex}.van-field__body--textarea{box-sizing:border-box;line-height:1.2em;min-height:var(--cell-line-height,24px);padding:3.6px 0}.van-field__control:empty+.van-field__control{display:block}.van-field__control{background-color:initial;border:0;box-sizing:border-box;color:var(--field-input-text-color,#323233);display:none;height:var(--cell-line-height,24px);line-height:inherit;margin:0;min-height:var(--cell-line-height,24px);padding:0;position:relative;resize:none;text-align:left;width:100%}.van-field__control:empty{display:none}.van-field__control--textarea{height:var(--field-text-area-min-height,18px);min-height:var(--field-text-area-min-height,18px)}.van-field__control--error{color:var(--field-input-error-text-color,#ee0a24)}.van-field__control--disabled{background-color:initial;color:var(--field-input-disabled-text-color,#c8c9cc);opacity:1}.van-field__control--center{text-align:center}.van-field__control--right{text-align:right}.van-field__control--custom{align-items:center;display:flex;min-height:var(--cell-line-height,24px)}.van-field__placeholder{color:var(--field-placeholder-text-color,#c8c9cc);left:0;pointer-events:none;position:absolute;right:0;top:0}.van-field__placeholder--error{color:var(--field-error-message-color,#ee0a24)}.van-field__icon-root{align-items:center;display:flex;min-height:var(--cell-line-height,24px)}.van-field__clear-root,.van-field__icon-container{line-height:inherit;margin-right:calc(var(--padding-xs, 8px)*-1);padding:0 var(--padding-xs,8px);vertical-align:middle}.van-field__button,.van-field__clear-root,.van-field__icon-container{flex-shrink:0}.van-field__clear-root{color:var(--field-clear-icon-color,#c8c9cc);font-size:var(--field-clear-icon-size,16px)}.van-field__icon-container{color:var(--field-icon-container-color,#969799);font-size:var(--field-icon-size,16px)}.van-field__icon-container:empty{display:none}.van-field__button{padding-left:var(--padding-xs,8px)}.van-field__button:empty{display:none}.van-field__error-message{color:var(--field-error-message-color,#ee0a24);font-size:var(--field-error-message-text-font-size,12px);text-align:left}.van-field__error-message--center{text-align:center}.van-field__error-message--right{text-align:right}.van-field__word-limit{color:var(--field-word-limit-color,#646566);font-size:var(--field-word-limit-font-size,12px);line-height:var(--field-word-limit-line-height,16px);margin-top:var(--padding-base,4px);text-align:right}.van-field__word-num{display:inline}.van-field__word-num--full{color:var(--field-word-num-full-color,#ee0a24)} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/field/input.wxml b/miniprogram_npm/@vant/weapp/field/input.wxml new file mode 100644 index 0000000..efe9a08 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/input.wxml @@ -0,0 +1,28 @@ + diff --git a/miniprogram_npm/@vant/weapp/field/props.d.ts b/miniprogram_npm/@vant/weapp/field/props.d.ts new file mode 100644 index 0000000..5cd130a --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/props.d.ts @@ -0,0 +1,4 @@ +/// +export declare const commonProps: WechatMiniprogram.Component.PropertyOption; +export declare const inputProps: WechatMiniprogram.Component.PropertyOption; +export declare const textareaProps: WechatMiniprogram.Component.PropertyOption; diff --git a/miniprogram_npm/@vant/weapp/field/props.js b/miniprogram_npm/@vant/weapp/field/props.js new file mode 100644 index 0000000..3cb8dca --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/props.js @@ -0,0 +1,67 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.textareaProps = exports.inputProps = exports.commonProps = void 0; +exports.commonProps = { + value: { + type: String, + observer: function (value) { + if (value !== this.value) { + this.setData({ innerValue: value }); + this.value = value; + } + }, + }, + placeholder: String, + placeholderStyle: String, + placeholderClass: String, + disabled: Boolean, + maxlength: { + type: Number, + value: -1, + }, + cursorSpacing: { + type: Number, + value: 50, + }, + autoFocus: Boolean, + focus: Boolean, + cursor: { + type: Number, + value: -1, + }, + selectionStart: { + type: Number, + value: -1, + }, + selectionEnd: { + type: Number, + value: -1, + }, + adjustPosition: { + type: Boolean, + value: true, + }, + holdKeyboard: Boolean, +}; +exports.inputProps = { + type: { + type: String, + value: 'text', + }, + password: Boolean, + confirmType: String, + confirmHold: Boolean, + alwaysEmbed: Boolean, +}; +exports.textareaProps = { + autoHeight: Boolean, + fixed: Boolean, + showConfirmBar: { + type: Boolean, + value: true, + }, + disableDefaultPadding: { + type: Boolean, + value: true, + }, +}; diff --git a/miniprogram_npm/@vant/weapp/field/textarea.wxml b/miniprogram_npm/@vant/weapp/field/textarea.wxml new file mode 100644 index 0000000..5015a51 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/textarea.wxml @@ -0,0 +1,29 @@ + + + + + + + 2、 + + 您是否有家族病史? + + + + + + + + + + + {{startIndex}}、 + + 您是否处于备孕、妊娠、哺乳期? + + + + + + + + + + + {{startIndex+1}}、 + + 是否做过手术 + + + + + + + + + + + {{startIndex+2}}、 + + 是否有饮酒史 + + + 从不 + 偶尔 + 经常 + 每天 + 已戒酒 + + + + + + {{startIndex+3}}、 + + 是否有吸烟史 + + + 从不 + 偶尔 + 经常 + 每天 + 已戒烟 + + + + + + {{startIndex+4}}、 + + 是否有接触过化学物 + + + 从不 + 偶尔 + 经常 + 每天 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pages/memberDetail/memberDetail.wxss b/pages/memberDetail/memberDetail.wxss new file mode 100644 index 0000000..d2be09e --- /dev/null +++ b/pages/memberDetail/memberDetail.wxss @@ -0,0 +1,222 @@ +/* pages/memberDetail/memberDetail.wxss */ + +.progess{ + display: flex; + align-items: center; +} +.progess .line{ + height: 2rpx; + width: 186rpx; + background: #C5C5C5; +} +.progess .line.active{ + background: #3CC7C0; +} +.progess .circle{ + width: 48rpx; +height: 48rpx; +font-size: 32rpx; +display: flex; +justify-content: center; +align-items: center; +font-weight: 400; +color: #C5C5C5; +background: #FFFFFF; +border: 1rpx solid #C5C5C5; +border-radius: 50%; +} +.progess .circle.active{ + background: #3CC7C0; + border: 1rpx solid #3CC7C0; + color:#fff; +} +.progess .circle.finished{ + background: #fff; + color:#3CC7C0; +} +.progess .circle .img{ + width:48rpx; + height:48rpx; +} +.page{ + overflow: hidden; +} +.progressbox{ + margin-top: 172rpx; + padding: 20rpx 0 12rpx; + display: flex; + flex-direction: column; + background-color: #fff; + align-items: center; +} +.textbox{ + margin-top: 16rpx; + font-size: 28rpx; +font-weight: 600; + color: #BDBDBD; + width:600rpx; + display: flex; + justify-content: space-between; +} +.textbox .active{ + color: #3CC7C0; +} +.cellbox{ + overflow: hidden; + margin-bottom: 120rpx; + margin-top: 20rpx; + flex:1; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; +} +.step1,.step2{ + overflow: hidden; +} +.cellbox.active{ + margin-bottom: 0rpx; +} +.page{ + display: flex; + flex-direction: column; +} +.cellbox .cell{ + + background-color: #fff; + align-items: center; + display: flex; + padding:0 32rpx; + + +} +.cellrow{ + height:105rpx; + width:100%; + justify-content: space-between; + align-items: center; + display: flex; + border-bottom:1rpx solid #E3E4E5; +} +.cell:last-child .cellrow{ + border-bottom: none; +} +.iptbox{ + display: flex; + flex:1; + + justify-content: flex-end; +} +.righticon{ + width:24rpx; + height: 48rpx; +} +.name{ + display: flex; + align-items: center; +} +.name .red{ + margin-top: 20rpx; + color:#E34D59; +} +.placeholder{ + text-align: right; + font-size: 28rpx; +font-weight: 400; +color: #C5C8CB; +} +.ipt{ + width:100%; + text-align: right; + color: #666666; + font-size: 28rpx; +} + +.next{ + position: absolute; + bottom:20rpx; + left:32rpx; + right:32rpx; + display: flex; + justify-content: center; + align-items: center; + color:#fff; + height: 80rpx; +background: #3CC7C0; +border-radius: 8rpx; +} +.next.complete{ + background: #D3D3D3; +} +.sickHis{ + background-color: #fff; + /* margin-top: 20rpx; */ + padding:1rpx 52rpx 40rpx; + +} +.list .qa{ + display: flex; + margin-top: 30rpx; + border-bottom:1rpx solid #E3E4E5; +} +.titlebox{ + flex:1; + +} +textarea{ + position: relative; + z-index:1; + width:100%; + color:#333; + height:132rpx; +} +.radio{ + margin: 30rpx 0rpx 30rpx 0; +} +.group .van-radio--horizontal{ + margin-right: 11rpx; +} +.singlegroup .van-radio--horizontal{ + margin-right:44rpx; +} +.singlegroup .van-radio--horizontal:nth-child(2n){ + margin-right: 0rpx; +} +.group .van-radio--horizontal:nth-child(3n){ + margin-right: 0; +} +.radiotip{ + position: relative; + padding:24rpx 20rpx; + justify-content: center; + margin-top: 20rpx; + line-height: 42rpx; +background: #F2F2F2; +border-radius: 10rpx; +font-size: 28rpx; +color:#999; +margin-bottom: 20rpx; +} +.radiotip .textbox{ + top:20rpx; + left:20rpx; + margin-top: 0; + width:auto; + height: 100rpx; + font-weight: normal; + z-index: 0; + position: absolute; + right:20rpx; +} + +.radiotip text{ + white-space: nowrap; + color:#333; +} +.van-radio__label{ + padding-right:40rpx!important; +} +/* .van-radio__label:nth-child(3){ + padding-right:0rpx!important; +} */ +.van-radio{ + margin-bottom: 10rpx!important; +} \ No newline at end of file diff --git a/pages/message/message.js b/pages/message/message.js new file mode 100644 index 0000000..962a0e3 --- /dev/null +++ b/pages/message/message.js @@ -0,0 +1,216 @@ +// pages/message/message.js +const app = getApp(); +import {lastSysMsg} from "../../api/msg" +import {throttle,setBarData} from "../../utils/util" +Page({ + + /** + * 页面的初始数据 + */ + data: { + systemMsg:{}, + show:false, + isTriggered:false, + isLock:false, + currentConversationID:"", + conversationUnread:0, + conversationList:[], + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static' + }, + confirm:throttle(function(event){ + if(event.detail){ + this.delConversation(this.data.currentConversationID); + } + }), + handleLastSysMsg(){ + // wx.showLoading({ + // title: '加载中', + // mask: true + // }); + lastSysMsg().then(data=>{ + this.setData({ + systemMsg:data, + isTriggered:false + }) + // let total=app.globalData.chatNumber+app.globalData.sysNumber; + // setBarData(total) + //let msg=data.count; + this.getConversationList(data.count) + + }) + }, + handleConfirm(event){ + let currentConversationID=event.currentTarget.dataset.id; + let count=event.currentTarget.dataset.count; + this.setData({ + show:true, + conversationUnread:count, + currentConversationID:currentConversationID + }) + + }, + watchBack(){ + // this.setData({ + // conversationList:conversationList + // }) + // setBarData(app.globalData.totalUnread); + this.handleLastSysMsg(); + }, + delConversation(id){ + let promise=wx.$TUIKit.deleteConversation({conversationIDList:[id], clearHistoryMessage:false }); + promise.then(data=>{ + let conversationList=app.globalData.conversationList; + for (let i = 0; i < conversationList.length; i++) { + if(conversationList[i].conversationID==id){ + conversationList.splice(i,1); + app.globalData.conversationList=conversationList; + this.setData({ + conversationList:conversationList + }) + } + + } + }).catch((imError)=>{ + console.warn('deleteConversation error:', imError); // 删除会话失败的相关信息 + }); + }, + formatData(read){ + let totalNum=Number(app.globalData.totalNumber); + let total=totalNum-Number(read); + app.globalData.totalNumber=total; + if(total>0){ + if(total<=99){ + wx.setTabBarBadge({ + index:1, + text: total.toString() + }) + }else{ + wx.setTabBarBadge({ + index:1, + text:"99+" + }) + } + }else{ + wx.removeTabBarBadge({ + index:1 + }) + } + }, + getConversationList(msg){ + wx.$TUIKit.getConversationList().then((res)=>{ + const {conversationList}=res.data; + console.log(conversationList) + let list=conversationList.filter(item=>item.conversationID!='C2Cadministrator'); + app.globalData.conversationList=list; + this.setData({ + conversationList: list + }) + + let unread=0; + list.forEach((item)=>{ + unread=unread+item.unreadCount; + }) + let total=Number(msg)+Number(unread); + app.globalData.totalUnread=total; + setBarData(total); + }); + + + }, + goChat(event){ + if(!this.data.isLock){ + this.setData({ + isLock:true + }); + let currentConversationID=event.currentTarget.dataset.chatid; + try { + let custom=JSON.parse(event.currentTarget.dataset.custom); + app.method.navigateTo({ + url: '/TUIService/pages/index?currentConversationID='+currentConversationID+'&order_inquiry_id='+custom.order_inquiry_id+'&inquiry_type='+custom.inquiry_type + }); + } catch (error) { + console.log(error) + } + } + + + }, + goSysMsg(){ + app.method.navigateTo({ + url: '/pages/sysMsgDetail/sysMsgDetail', + }) + }, + handleRefresher(){ + this.setData({ + isLock:false, + 'systemMsg.count':0 + }) + this.handleLastSysMsg(); + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + wx.removeTabBarBadge({ + index:1 + }) + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + app.globalData.origion=0; + this.setData({ + isLock:false, + 'systemMsg.count':0, + img_host:app.hostConfig().imghost + }); + app.watch(this.watchBack.bind(this))//注册监听 + if(!app.globalData.totalUnread && app.globalData.totalUnread!=0){ + app.imLogin(); + }else{ + this.handleLastSysMsg(); + } + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + +}) \ No newline at end of file diff --git a/pages/message/message.json b/pages/message/message.json new file mode 100644 index 0000000..8f38edb --- /dev/null +++ b/pages/message/message.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "consult-list":"../../components/consultList/consultList", + "dialog":"../../components/dialog/dialog" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "肝胆相照互联网医院" +} \ No newline at end of file diff --git a/pages/message/message.wxml b/pages/message/message.wxml new file mode 100644 index 0000000..646a185 --- /dev/null +++ b/pages/message/message.wxml @@ -0,0 +1,65 @@ + + + + + 消息 + + + + + + 系统消息 + + {{filters.formatNumber(systemMsg.count)}} + + {{systemMsg.info.notice_brief_title}} + + + + + + + + + \ No newline at end of file diff --git a/pages/message/message.wxss b/pages/message/message.wxss new file mode 100644 index 0000000..297edd5 --- /dev/null +++ b/pages/message/message.wxss @@ -0,0 +1,249 @@ +/* pages/message/message.wxss */ +.page { + width: 100vw; + height: 100vh; + background: #F2F2F2; + display: flex; + flex-direction: column; +} +.scrollbox{ + margin-top: 30rpx; + flex: 1; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; +} + +.toptip { + margin-top: 172rpx; + display: flex; + align-items: center; + padding: 35rpx 32rpx 20rpx; + background: #FFFFFF; + box-shadow: 0px 0px 14px 2px rgba(221, 221, 221, 0.68); + +} +.consultwraper { + background-color: #fff; + margin: 0 32rpx; + border-radius: 10rpx; +} +.titlebox { + display: flex; + justify-content: space-between; + +} +.msg{ + flex:1; + margin-left: 20rpx; +} +.msg .title { + font-size: 30rpx; + color: #000; +} + +.msg .tips { + line-height: 48rpx; + margin-top: 10rpx; + font-size: 26rpx; + color: #333333; +} +.bell{ + width:97rpx; + height:100rpx; + flex-shrink: 0; +} +.circle{ + width: 20rpx; + height:20rpx; + background: #EF4F20; + border-radius: 50%; +} +.bage { + min-width: 17rpx; + padding: 0 10rpx; + height: 36rpx; + display: flex; + align-items: center; + color: #fff; + justify-content: center; + border-radius: 30rpx; + font-size: 26rpx; + background: #EF4F20; + +} +.listcell { + position: relative; + padding: 40rpx 32rpx 20rpx; + background: #fff; + border-bottom: 1rpx solid #E7E7E7; +} +.listcell:last-child{ + border:none; +} +.right .del{ + top:0; + position: absolute; + right:0; + width:32rpx; + height:32rpx; +} +.headicon { + width: 80rpx; + height: 80rpx; + border-radius: 50%; +} +.info{ + display: flex; + align-items: center; +} +.right{ + flex:1; + position: relative; + margin-left: 20rpx; +} +.hospital{ + margin-top: 18rpx; +} +.persontip{ + margin-top:20rpx; + font-size: 28rpx; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + color: rgba(0,0,0,0.85); +} +.bottombox{ + margin-top: 24rpx; + display: flex; + align-items: center; + justify-content: space-between; +} +.bottombox .nameinfo{ + + flex-shrink: 0; + word-break: break-all; +padding:0 20rpx; +border-radius: 27rpx; +border: 1rpx solid #3CC7C0; +height: 57rpx; +display: flex; + +align-items: center; +border-radius: 30rpx; +color: rgba(0,0,0,0.65); +font-size: 24rpx; +} +.nameinfo .name{ + display: inline-block; + max-width:160rpx; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.bottombox .date{ + height: 30rpx; + display: flex; + align-items: center; + white-space: nowrap; + color: rgba(0,0,0,0.45); + font-size: 24rpx; +} +.nomsg{ + width:100%; +} +.topdata{ + margin:98rpx 0 84rpx 0; + display: flex; + justify-content: center; + align-items: center; +} +.nodata{ + color: #999999; + font-size: 32rpx; + margin-left: 30rpx; + margin-right: 18rpx; +} +.msgicon{ + width:479rpx; + height:216rpx; +} +.price{ + color:#EF4F20; + font-size: 34rpx; + font-weight: bold; +} +.consultbox{ + margin:0 32rpx; + background-color: #fff; + border-radius: 10rpx; +} +.consultbox .btn{ + width: 160rpx; +height: 60rpx; +background: #3CC7C0; +color:#fff; +display: flex; +justify-content: center; +align-items: center; +font-size: 30rpx; +border-radius: 30rpx; +} +.viewwrap{ + border-bottom:1rpx solid #E7E7E7; + display: flex; + justify-content: space-between; + padding:30rpx 0rpx 30rpx; + margin:0 52rpx; + display: flex; +} +.viewwrap:last-child{ + border-bottom:none; +} +.viewwrap .right{ + margin-left: 20rpx; +} +.viewwrap .price{ + margin-top: 10rpx; +} +.viewwrap .name{ + font-size: 28rpx; + font-weight: 600; + color: #333333 +} +.top{ + width:100%; + display: flex; + justify-content: center; + padding:20rpx 0; +} +.top .up{ + width:40rpx; + height:22rpx; +} +.leftimg{ + display: flex; + align-items: center; + +} + .price .unit{ + color:#333; + font-size: 28rpx; + } +.zxicon{ + width:80rpx; + height:80rpx; +} +.list .bage{ + top:50%; + transform: translateY(-50%); + position: absolute; + right:32rpx; +} +.list .circle{ + top:50%; + transform: translateY(-50%); + margin-right: 8rpx; + position: absolute; + right:32rpx; +} + diff --git a/pages/mobileLogin/mobileLogin.js b/pages/mobileLogin/mobileLogin.js new file mode 100644 index 0000000..43ab2ca --- /dev/null +++ b/pages/mobileLogin/mobileLogin.js @@ -0,0 +1,236 @@ +// pages/mobileLogin/mobileLogin.js +import { mobileLogin, phoneCode} from "../../api/login.js" +const app = getApp(); +import { + auth +} from "../../api/index.js" +import {throttle} from "../../utils/util" +let urlHost=app.hostConfig().agreehost; +Page({ + /** + * 页面的初始数据 + */ + data: { + show: false, + check:0, + code:'', + disabled:true, + isActive:false, + codeActive:true, + phone:'', + redirecUrl:'', + timer:null, + time:59, + msg:'获取验证码', + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static' + }, + checkboxChange(e) { + this.setData({ + check:e.detail.value.length + }) + + }, + getUserInfo(event) { + this.handlelogin(); + }, + onClose() { + this.setData({ show: false }); + }, + handleThrottle:throttle(function(){ + this.getCode() + }), + getCode(){ + if(!/^1[3456789]\d{9}$/.test(this.data.phone)){ + wx.showToast({ + title: `请输入有效的手机号码!`, + icon: 'none', + }); + return false; + }; + phoneCode({ + phone:this.data.phone, + scene:1 + }).then((res)=>{ + let timer=setInterval(() => { + if (this.data.time == 0) { + clearInterval(this.data.timer); + this.setData({ + time:59, + msg:'重新获取验证码', + isActive:false, + codeActive:true, + }) + } else { + let msg= this.data.time + " s 后重新发送"; + this.setData({ + isActive:true, + msg:msg, + codeActive:false, + }) + let time=this.data.time--; + this.setData({ + msg:time + " s 后重新发送" + }) + } + }, 1000); + + this.setData({ + timer:timer + }) + + }); + + }, + goLogin(){ + let THIS=this; + if(!this.data.check){ + wx.showToast({ + title: '请同意《肝胆相照用户服务协议》!', + icon:'none' + }) + return false + }; + if(!/^1[3456789]\d{9}$/.test(this.data.phone)){ + wx.showToast({ + title: `请输入有效的手机号码!`, + icon: 'none', + }); + return false; + }; + if(!this.data.code){ + wx.showToast({ + title: `请输入验证码!`, + icon: 'none', + }); + return false; + } + + + wx.getSetting({ + success(res) { + // 判断它是否为true + if (res.authSetting["scope.userInfo"]) { + THIS.handlelogin(); + } else { + THIS.setData({ + show:true + }) + } + } + }); + }, + handlelogin:throttle(function(){ + let {code,phone }=this.data; + auth().then(res => { + mobileLogin({ + code:code, + phone:phone, + user_type:1, + wx_code:res + }).then((data)=>{ +  wx.setStorageSync('AUTH_TOKEN', data.token); +  wx.setStorageSync('CLIENT_USER_ID',data.client_user_id); +  wx.setStorageSync('USER_ID',data.user_id); + app.imLogin(); + let url=this.data.redirectUrl?this.data.redirectUrl:'/pages/index/index'; + // console.log('333333'); + // console.log(url) + if(url.indexOf('login')!=-1 || url.indexOf('mobileLogin')!=-1 ){ + wx.reLaunch({ + url:'/pages/index/index' + }) + }else{ + wx.reLaunch({ + url:url + }) + } + }) + }); + }), + goAgreement:throttle(function(event){ + let id=event.currentTarget.dataset.id; + app.method.navigateTo({ + url:"/pages/linkPage/linkPage?url="+encodeURIComponent(urlHost+'/basic/file/agreement.htm?id='+id) + }) + }), + inputChange(e){ + this.setData({ + [e.target.dataset.id]: e.detail.value + }); + if(e.target.dataset.id=="code"){ + if(e.detail.value.trim()){ + this.setData({ + disabled: false + }); + }else{ + this.setData({ + disabled: true + }); + } + + } + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + // console.log("redirectUrl-----------"); + //console.log(options.redirectUrl) + if(options.redirectUrl){ + this.setData({ + redirectUrl:decodeURIComponent(options.redirectUrl) + }) + }; + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + this.setData({ + img_host:app.hostConfig().imghost + }); + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + clearInterval(this.data.timer); + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + +}) \ No newline at end of file diff --git a/pages/mobileLogin/mobileLogin.json b/pages/mobileLogin/mobileLogin.json new file mode 100644 index 0000000..f3d50d2 --- /dev/null +++ b/pages/mobileLogin/mobileLogin.json @@ -0,0 +1,7 @@ +{ + "usingComponents": { + "van-dialog": "@vant/weapp/dialog/index", + "nav":"../../components/nav/nav" + }, + "navigationBarTitleText": "手机号登录" +} \ No newline at end of file diff --git a/pages/mobileLogin/mobileLogin.wxml b/pages/mobileLogin/mobileLogin.wxml new file mode 100644 index 0000000..b5236e6 --- /dev/null +++ b/pages/mobileLogin/mobileLogin.wxml @@ -0,0 +1,40 @@ + + + + + + + +86 + + + + + + + + + + + + + + + + + + 我已阅读并同意协议《肝胆相照用户注册及服务协议》、《隐私协议》、《风险告知书》 + + + + + + diff --git a/pages/mobileLogin/mobileLogin.wxss b/pages/mobileLogin/mobileLogin.wxss new file mode 100644 index 0000000..984def5 --- /dev/null +++ b/pages/mobileLogin/mobileLogin.wxss @@ -0,0 +1,129 @@ +/* pages/mobileLogin/mobileLogin.wxss */ +.loginbox { + display: flex; + flex-direction: column; + align-items: center; + margin-top: 80rpx; +} + +.logo { + width: 160rpx; + height: 196rpx +} + +.iptcell { + width: 100%; + height: 112rpx; + align-items: center; + white-space: nowrap; + display: flex; + justify-content: space-between; + border-bottom: 1rpx solid rgba(0, 0, 0, 0.1); +} + +.iptbox { + margin-top: 68rpx; +} + +.iptcell input { + flex: 1; + margin-left: 50rpx; +} + +.iptcell text { + color: rgba(0, 0, 0, 0.9); + font-size: 17px; +} + +.iptcell .code { + width: 400rpx; + margin-left: 0; +} + +.iptcell button { + outline: none; + white-space: nowrap; + padding: 0 10rpx; + height: 60rpx; + display: flex; + width: 220rpx; + align-items: center; + justify-content: center; + color: #999999; + background-color: transparent; + font-size: 26rpx; + border-radius: 30rpx; + border: 1rpx solid #CCCCCC; +} + +.iptcell button[disabled] { + width: 280rpx !important; +} + +.iptcell button.active { + color: #3CC7C0 !important; + border: 1px solid #3CC7C0 !important; +} + +.btnbox { + width: 100%; + margin-top: 40rpx; +} + +.btnbox button { + border: none; + outline: none; + display: flex; + width: 100%; + font-size: 36rpx; + height: 94rpx; + background: #3CC7C0; + border-radius: 47rpx; + color: #FFFFFF; + align-items: center; + justify-content: center; + font-weight: normal; +} +.btnbox button[disabled]{ + color: #FFFFFF; + background: #8addd9; +} +.checkbox { + display: flex; + align-items: flex-start; + margin-top: 40rpx; + font-size: 28rpx; +} + +.checkbox view { + width: 40rpx; + height: 40rpx; + margin-right: 14rpx; + border-radius: 50%; + display: flex; + align-items: center; + position: relative; +} + +.checkbox .check { + width: 40rpx; + height: 40rpx; + opacity: 0; +} + +.checkbox image { + left: 5rpx; + top: 4rpx; + position: absolute; + width: 40rpx; + height: 40rpx; + z-index: -1; +} + +.navigator { + color: #4384FE; + white-space: pre-wrap; + word-break: break-all; + background-color: none; + font-size: 28rpx; +} \ No newline at end of file diff --git a/pages/my/my.js b/pages/my/my.js new file mode 100644 index 0000000..9456a06 --- /dev/null +++ b/pages/my/my.js @@ -0,0 +1,180 @@ +// pages/my/my.js +import {getCenter} from "../../api/personCenter" +import {setBarData,throttle} from "../../utils/util" +import {coupon} from "../../api/personCenter" +const app = getApp() +Page({ + /** + * 页面的初始数据 + */ + data: { + patient_info:'', + opacity:0, + show_fuli:false, + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static' + }, + getInfo(){ + getCenter().then((data)=>{ + this.setData({ + patient_info:data, + show_fuli:data.coupon + }) + + //this.getcoupon() + }) + }, + goCenter:throttle(function(){ + app.method.navigateTo({ + url: '/pages/personCenter/personCenter', + }) + }), + goAgreement:throttle(function(){ + app.method.navigateTo({ + url: '/pages/agreeList/agreeList', + }) + }), + goWelfare:throttle(function(){ + app.method.navigateTo({ + url: '/pages/myWelfare/myWelfare', + }) + }), + goMedinceRecord:throttle(function(){ + app.method.navigateTo({ + url: '/pages/medinceRecord/medinceRecord', + }) + }), + goMyDoctor:throttle(function(){ + app.method.navigateTo({ + url: '/pages/myDoctor/myDoctor', + }) + }), + goFamily:throttle(function(){ + app.method.navigateTo({ + url: '/pages/familyDoc/familyDoc', + }) + }), + goAddress:throttle(function(){ + app.method.navigateTo({ + url: '/pages/address/address', + }) + }), + goConsultOrder:throttle(function(){ + app.method.navigateTo({ + url: '/pages/consultOrder/consultOrder', + }) + }), + goCheckOrder:throttle(function(){ + app.method.navigateTo({ + url: '/pages/checkOrder/checkOrder', + }) + }), + goMyPrescript:throttle(function(){ + app.method.navigateTo({ + url: '/pages/myPrescript/myPrescript', + }) + }), + goMedinceOrder:throttle(function(){ + app.method.navigateTo({ + url: '/pages/medinceOrder/medinceOrder', + }) + }), + watchBack(){ + let total=app.globalData.totalUnread; + setBarData(total); + }, + getcoupon() { + coupon({ + user_coupon_status:0 + }).then(data => { + if(data.length>0){ + this.setData({ + show_fuli:true + }) + }else{ + this.setData({ + show_fuli:false + }) + } + + }) + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + wx.removeTabBarBadge({ + index:1 + }) + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + onPageScroll: function(e) { + let opacity=0; + if(e.scrollTop/(86/10)>=1){ + opacity=1 + }else{ + opacity=e.scrollTop/(86/10) + } + this.setData({ + opacity:opacity + }) + }, + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + this.getInfo(); + app.globalData.origion=0; + this.setData({ + img_host:app.hostConfig().imghost + }); + app.watch(this.watchBack.bind(this))//注册监听 + if(!app.globalData.totalUnread && app.globalData.totalUnread!=0){ + app.imLogin(); + }else{ + let total=app.globalData.totalUnread; + setBarData(total); + } + + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + +}) \ No newline at end of file diff --git a/pages/my/my.json b/pages/my/my.json new file mode 100644 index 0000000..c110083 --- /dev/null +++ b/pages/my/my.json @@ -0,0 +1,4 @@ +{ + "usingComponents": {}, + "navigationStyle":"custom" +} \ No newline at end of file diff --git a/pages/my/my.wxml b/pages/my/my.wxml new file mode 100644 index 0000000..2ff04bb --- /dev/null +++ b/pages/my/my.wxml @@ -0,0 +1,100 @@ + + + + 我的 + + + + + + + + + + {{patient_info.user_name}} + + + + + 设置 + + + + + + 我的订单 + + + + 问诊 + {{filter.formatNumber(patient_info.order_inquiry_count)}} + + + + 处方 + {{filter.formatNumber(patient_info.order_prescription_count)}} + + + + 药品 + {{filter.formatNumber(patient_info.order_product_count)}} + + + + 检测 + {{filter.formatNumber(patient_info.order_detection_count)}} + + + + + + + 新人福利~立即查看 + + + + + + + + 我的福利 + + + + + + 健康档案 + + + + 用药记录 + + + + 我的医生 + + + + 家庭档案 + + + + + + + 收货地址 + + + + + + 资质协议和患者知情同意书 + + + + + + + \ No newline at end of file diff --git a/pages/my/my.wxss b/pages/my/my.wxss new file mode 100644 index 0000000..90e4212 --- /dev/null +++ b/pages/my/my.wxss @@ -0,0 +1,218 @@ +.page { + background: #F2F2F2; + width: 100vw; + height: auto!important; + min-height:100vh; + padding-bottom: 20rpx; + /* overflow-y: scroll; + -webkit-overflow-scrolling: touch; */ +} + +.contentWrap { + /* position: absolute; */ + position: relative; + z-index: 999; + + margin: -320rpx 32rpx 0; + /* overflow-y: scroll; + -webkit-overflow-scrolling: touch; + + left: 32rpx; + right: 32rpx; */ +} +.dcimg{ + width:750rpx; + +} +.navtitle { + width: 100%; + display: flex; + justify-content: center; + font-size: 36rpx; + color: #fff; +} + +.infobox { + + width: 100%; + height: 176rpx; + + border-radius: 10rpx; + filter: blur(0px); +} + +.infobox { + + display: flex; + box-sizing: border-box; + align-items: center; + justify-content: space-between; +} + +.head { + border-radius: 50%; + width: 128rpx; + height: 128rpx; +} + +.headbox { + display: flex; + align-items: center; +} + +.headbox .name { + font-weight: 600; + color: #333333; + font-size: 34rpx; + +} +.intro{ + font-size: 30rpx; +font-weight: 400; +color: rgba(0,0,0,0.65); +} +.namebox{ + min-height: 100rpx; + display: flex; + flex-direction: column; + justify-content:center; + + margin-left: 20rpx; +} +.rightbox{ + display: flex; + align-items: center; +} +.set{ + margin-right: 20rpx; + font-size: 30rpx; +color: rgba(0,0,0,0.65); +} +.righticon { + width: 24rpx; + height: 48rpx; +} + +.fuli { + width: 100%; + height: 108rpx; + border: 1px solid #EF4F20; + border-radius: 10rpx; + display: flex; + box-sizing: border-box; + align-items: center; + margin-top: 30rpx; + justify-content: space-between; + padding: 0 20rpx 0 20rpx; +} + +.fuli .name { + font-size: 30rpx; + margin-left: 20rpx; + font-weight: normal; +} + +.fulicon { + width: 48rpx; + height: 48rpx; +} + +.viewcell { + margin-top: 30rpx; + width: 100%; + padding-bottom: 20rpx; + height: 256rpx; + overflow: hidden; + background: #FFFFFF; + border-radius: 10rpx; +} + +.viewcell .title { + margin:32rpx 20rpx 0; + font-weight: 600; + color: #333333; + font-size: 36rpx; +} + +.iconcell { + display: flex; + flex-direction: column; + justify-content: center; + position: relative; +} + +.iconbox { + display: flex; + margin: 30rpx 52rpx 0; + + justify-content: space-between; +} + +.myicon { + width: 80rpx; + height: 80rpx; + margin:0 auto; +} + +.iconbox .name { + margin-top: 10rpx; + text-align: center; + color: rgba(0,0,0,0.65); + font-size: 28rpx; +} +.service .iconbox{ + width:430rpx; +} +.service .iconbox .name { + margin-top: 10rpx; + text-align: center; + color: rgba(0,0,0,0.65); + font-size: 28rpx; +} + +.dcellcontent{ + border-radius: 10rpx; + background: #FFFFFF; +} +.dcell { + width: 100%; + box-sizing: border-box; + margin-top: 30rpx; + padding: 0 37rpx 0 20rpx; +} +.decllbox{ + height: 112rpx; + border-bottom: 1rpx solid rgba(0,0,0,0.12); + display: flex; + align-items: center; + justify-content: space-between; +} +.dcell:last-child{ + margin-top: 0; + margin-bottom: 30rpx; +} +.dcell:last-child .decllbox{ + border-bottom: none; +} + +.service .myicon { + width: 64rpx; + height: 64rpx; +} + +.bage { + position: absolute; + top: -20rpx; + right: 20rpx; + transform: translateX(100%); + min-width:17rpx; + padding:0 10rpx; + height: 36rpx; + display: flex; + align-items: center; + color: #fff; + justify-content: center; + border-radius: 30rpx; + font-size: 26rpx; + background: #EF4F20; +} \ No newline at end of file diff --git a/pages/myDoctor/myDoctor.js b/pages/myDoctor/myDoctor.js new file mode 100644 index 0000000..cfca9cc --- /dev/null +++ b/pages/myDoctor/myDoctor.js @@ -0,0 +1,171 @@ +// pages/myDoctor/myDoctor.js +const app = getApp() +import{myDoctor,delDoctor} from "../../api/familyDoc" +import {throttle} from "../../utils/util" +Page({ + + /** + * 页面的初始数据 + */ + data: { + isTriggered:false, + my_doctor_type:1, + page:1, + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static', + pageNumber:10, + show:false, + message:"", + currentId:'', + isLock:false, + list:[] + }, + confirm:throttle(function(event){ + if(event.detail){ + let id=this.data.currentId; + this.handelDelDoctor(id); + } + }), + delHandle(event){ + let id=event.currentTarget.dataset.id; + this.setData({ + show:true, + currentId:id, + message:"您确定是要删除该问诊医生记录么?" + }) + }, + goExpertDetail(event){ + let id=event.currentTarget.dataset.id; + app.method.navigateTo({ + url: '/pages/expertDetail/expertDetail?doctor_id='+id, + }) + }, + goBack(){ + wx.navigateBack({ + delta: 1, + }) + }, + handleRefresher(){ + this.setData({ + page:1, + list:[], + isLock:false, + }) + this.handleMyDoctor(); + }, + handelDelDoctor(id){ + delDoctor(id).then(data=>{ + let list=this.data.list; + for (let i = 0; i < list.length; i++) { + if(list[i].user_doctor.doctor_id==id){ + list.splice(i,1); + break; + }; + } + this.setData({ + list:list + }) + wx.showToast({ + title: '成功删除该问诊医生', + icon:"none" + }) + }) + }, + /** + * 生命周期函数--监听页面加载 + */ + handleMyDoctor(){ + let {pageNumber,my_doctor_type,page}=this.data; + myDoctor({ + my_doctor_type, + page, + per_page:pageNumber + }).then((data)=>{ + let result=data.data; + if(result.length==0){ + this.setData({ + isLock:true, + isTriggered:false + }); + return false + } + this.setData({ + isTriggered:false, + list:this.data.list.concat(result) + }) + }) + }, + lower(){ + if(!this.data.isLock){ + this.setData({ + page: ++this.data.page + }) + this.handleMyDoctor(); + } + }, + onChange(event) { + let index=event.detail.index+1; + this.setData({ + isLock:false, + list:[], + page:1, + my_doctor_type:index + }) + this.handleMyDoctor(); + }, + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + this.setData({ + page:1, + list:[], + isLock:false, + img_host:app.hostConfig().imghost + }) + this.handleMyDoctor(); + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + +}) \ No newline at end of file diff --git a/pages/myDoctor/myDoctor.json b/pages/myDoctor/myDoctor.json new file mode 100644 index 0000000..da14fb1 --- /dev/null +++ b/pages/myDoctor/myDoctor.json @@ -0,0 +1,10 @@ +{ + "usingComponents": { + "van-tab": "@vant/weapp/tab/index", + "van-tabs": "@vant/weapp/tabs/index", + "dialog":"../../components/dialog/dialog", + "nav":"../../components/nav/nav" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "肝胆相照互联网医院" +} \ No newline at end of file diff --git a/pages/myDoctor/myDoctor.wxml b/pages/myDoctor/myDoctor.wxml new file mode 100644 index 0000000..f8ffac0 --- /dev/null +++ b/pages/myDoctor/myDoctor.wxml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + {{item.user_doctor.user_name}} + {{item.user_doctor.hospital.hospital_level_name}} + 可处方 + + {{item.user_doctor.doctor_title_name}} {{item.user_doctor.department_custom_name}} + {{item.user_doctor.hospital.hospital_name}} + 擅长:{{item.user_doctor.be_good_at}} + {{cell.expertise_name}} + + + + + + + 暂无数据! + + + + + + + + + + + + {{item.user_doctor.user_name}} + {{item.user_doctor.hospital.hospital_level_name}} + 可处方 + + {{item.user_doctor.doctor_title_name}} {{item.user_doctor.department_custom_name}} + {{item.user_doctor.hospital.hospital_name}} + 擅长:{{item.user_doctor.be_good_at}} + {{cell.expertise_name}} + + + + + + + + 暂无数据! + + + + + \ No newline at end of file diff --git a/pages/myDoctor/myDoctor.wxss b/pages/myDoctor/myDoctor.wxss new file mode 100644 index 0000000..9ddbdb8 --- /dev/null +++ b/pages/myDoctor/myDoctor.wxss @@ -0,0 +1,162 @@ +/* pages/myDoctor/myDoctor.wxss */ +.page{ + display: flex; + overflow: hidden; + flex-direction: column; +} +.tabwraper{ + flex:1; + background-color: red; + overflow: hidden; + margin-top: 172rpx; +} + +.van-tab__pane{ + flex:1; +} +.tabbox{ + flex:1; +width:100%; + height:100%; +} + +.van-tabs{ + width:100%; +} + +.tabactive{ + font-size: 32rpx!important; +} +.viewcell{ + display: flex; + overflow: hidden; + position: relative; + box-sizing: border-box; + padding:40rpx 30rpx 30rpx; + + border-radius: 10rpx; + background-color: #fff; + margin:0 32rpx 20rpx; +} +.tabdiv{ + height:100%; + +} +.scrollwraper{ + height:100%; + overflow: scroll; + -webkit-overflow-scrolling: touch; + +} +.van-tab__pane{ + margin-top: 20rpx; + overflow: hidden; + height:calc(100vh - 280rpx)!important; +} +.tabs{ + flex:1; + margin-top: 172rpx; +} +.vantab{ + display: flex; + overflow-y: hidden; + position: relative; + height:calc(100% - 300rpx); +} +.viewcell .type{ + height: 32rpx; + margin-bottom: 6rpx; + line-height: 32rpx; + display: flex; + white-space: nowrap; + align-items: center; + margin-left: 18rpx; + padding:0rpx 6rpx; + background: #ED9C00; + border-radius: 4rpx; + color: #FFFFFF; + font-size: 24rpx; +} +.viewcell .hospital{ + word-wrap: break-word; + margin-top:12rpx; + color: #333333; + font-size: 30rpx; +} +.doctor_title{ + margin-right: 10rpx; +} +.goodjob{ + background: #FAFAFA; + border-radius: 10rpx; +padding:8rpx 15rpx; +color: #666666; +margin-top: 28rpx; +line-height: 42rpx; +font-size: 28rpx; +word-break: break-all; +text-overflow: ellipsis; +display: -webkit-box; +-webkit-box-orient: vertical; +-webkit-line-clamp: 2; +overflow: hidden; +} + +.viewcell .right{ + margin-left: 20rpx; +} +.viewcell image{ + width:80rpx; + height:80rpx; + border-radius:50%; +} +.namebox{ + display: flex; + font-size: 34rpx; + font-weight: 600; + color:#333; + align-items: flex-end; +} +.namebox .position{ + font-weight: normal; + margin-left: 15rpx; + font-size: 30rpx; +} +.diseaseType{ +height: 40rpx; +background: #E2FFFE; +border-radius: 20rpx; +border: 1rpx solid #3CC7C0; +color: #3CC7C0; +font-size: 24rpx; +margin-right: 20rpx; +display: inline-flex; +text-align: center; +padding:0 15rpx; +align-items: center; +justify-content: center; +margin-top: 20rpx; +white-space: nowrap; +} +.diseaseType:last-child{ + margin-right: 0; +} +.detail{ + margin-top: 20rpx; + display: flex; + font-size: 24rpx; +} +.viewcell .del{ + position: absolute; + width:30rpx; + padding:30rpx; + height:30rpx; + right:0rpx; + z-index:99; + top:16rpx; + border-radius: 0; +} +.nonedata{ + margin-top: 172rpx; + min-height: 400rpx; +} \ No newline at end of file diff --git a/pages/myPrescript/myPrescript.js b/pages/myPrescript/myPrescript.js new file mode 100644 index 0000000..661f5d4 --- /dev/null +++ b/pages/myPrescript/myPrescript.js @@ -0,0 +1,179 @@ +// pages/myPrescript/myPrescript.js +const app = getApp() +import { prescription,delPrescription} from "../../api/prescription" +import {throttle} from "../../utils/util" +Page({ + + /** + * 页面的初始数据 + */ + data: { + list: [], + page:1, + index:-1, + show:false, + isTriggered:false, + order_prescription_id:'', + isLock: false, + }, + goBack(){ + wx.navigateBack({ + delta: 1, + }) + }, + handleRefresher(){ + this.setData({ + list: [], + isLock: false, + page:1, + }); + this.handleprescription() + }, + handelDel(event){ + let order_prescription_id=event.currentTarget.dataset.id; + let index=event.currentTarget.dataset.index; + this.setData({ + order_prescription_id, + index, + show:true + }) + }, + goconsult(event){ + let order_inquiry_id=event.currentTarget.dataset.id; + app.method.navigateTo({ + url: '/pages/orderDetail/orderDetail?order_inquiry_id='+order_inquiry_id + }) + }, + goPayInfo(event){ + let id=event.currentTarget.dataset.id; + if(getCurrentPages().length>=8){ + wx.reLaunch({ + url: '/pages/payInfo/payInfo?order_prescription_id='+id, + }) + }else{ + app.method.navigateTo({ + url: '/pages/payInfo/payInfo?order_prescription_id='+id, + }) + } + + }, + goExpert:throttle(function(event){ + let doctor_id=event.currentTarget.dataset.doctor_id; + + app.method.navigateTo({ + url: '/pages/expertDetail/expertDetail?doctor_id='+doctor_id + }) + }), + goprescriptDetail:throttle(function(event) { + let id=event.currentTarget.dataset.id; + app.method.navigateTo({ + url: '/pages/prescriptDetail/prescriptDetail?order_prescription_id='+id + }) + }), + confirm:throttle(function(event){ + if(event.detail){ + this.handeldelPrescription(); + } + }), + + handeldelPrescription(){ + + let {order_prescription_id,index}=this.data; + delPrescription(order_prescription_id).then(data=>{ + this.data.list.splice(index,1); + this.setData({ + list:this.data.list + }) + wx.showToast({ + title: '成功删除该处方订单', + icon:"none" + }) + }) + }, + /** + * 生命周期函数--监听页面加载 + */ + lower(){ + if(!this.data.isLock){ + this.setData({ + page: ++this.data.page + }) + this.handleprescription(); + } + }, + handleprescription() { + let {page}=this.data; + prescription({ + page, + per_page:10, + }).then(data => { + let result = data.data; + if (result.length == 0){ + this.setData({ + isLock: true, + isTriggered:false + }) + return false; + } + this.setData({ + isTriggered:false, + list:this.data.list.concat(result) + }) + }) + }, + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + this.setData({ + list: [], + isLock: false, + page:1, + }); + this.handleprescription() + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + +}) \ No newline at end of file diff --git a/pages/myPrescript/myPrescript.json b/pages/myPrescript/myPrescript.json new file mode 100644 index 0000000..151250a --- /dev/null +++ b/pages/myPrescript/myPrescript.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "dialog":"../../components/dialog/dialog", + "nav":"../../components/nav/nav" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "肝胆相照互联网医院" +} \ No newline at end of file diff --git a/pages/myPrescript/myPrescript.wxml b/pages/myPrescript/myPrescript.wxml new file mode 100644 index 0000000..50c1684 --- /dev/null +++ b/pages/myPrescript/myPrescript.wxml @@ -0,0 +1,63 @@ + + + + + + + {{item.created_at}} + + 待审核 + 待使用 + 已失效 + 已使用 + + + + + + {{item.doctor_name}} {{item.user_doctor.doctor_title}} + + + + + {{item.patient_name}} (未知,{{item.patient_age}}岁) + + + + + + {{itemName.icd_name}} + + + + + + + + {{itemName.product_name}} + {{itemName.product_spec}} + + + + + + 问诊记录 + + 点击查看 + + + + 复诊开方 + 查看详情 + 去结算 + + + + + + + + 暂无数据! + + + \ No newline at end of file diff --git a/pages/myPrescript/myPrescript.wxss b/pages/myPrescript/myPrescript.wxss new file mode 100644 index 0000000..71ee39f --- /dev/null +++ b/pages/myPrescript/myPrescript.wxss @@ -0,0 +1,170 @@ +/* pages/myPrescript/myPrescript.wxss */ +.page{ + display: flex; + flex-direction: column; +} +.data{ + flex:1; +} +.desc .textdesc:after{ + content:';' +} +.desc .textdesc:last-child:after{ + content:'' +} +.conbox{ + margin-top: 172rpx; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; +} +.nonedata{ + min-height:620rpx; +} +.cell .title{ + display: flex; + height: 112rpx; + align-items: center; + justify-content: space-between; + padding:0 32rpx; + background: #FFFFFF; + border-bottom: 1rpx solid #E3E4E5; +} +.form{ + background: #FFFFFF; + padding:30rpx 32rpx; + border-bottom: 1rpx solid #E3E4E5; +} +.cell:last-child .form{ + border-bottom:none; +} +.title .status{ + color: #333; + font-size: 28rpx; +} +.title .status.outdate{ + color: #EF4F20; + font-size: 28rpx; +} +.row .outdate{ + color: #333; + font-size: 28rpx; +} + +.title .date{ + color:#000; + font-size: 34rpx; +} +.form .row{ + display: flex; + line-height: 52rpx; +} +.row .unit{ + word-break: break-all; + color:#666; + font-weight: normal; + display: inline; +} +.single .name{ + display: inline; + white-space: nowrap; +} +.row .bar{ + margin:0 8rpx 1rpx; + color:#333; +} +.single{ + width:100%; + display: inline; + position: relative; + + margin-left: 15rpx; +} +.single:first-child{ + margin-left: 0; +} +.unit{ + padding-right:15rpx; +} +.unit:first-child{ + margin-left: 0; +} + +.unit::after{ + padding-left:15rpx ; + content:"|"; + margin-top: -3rpx; + color:#333; + position: absolute; +} +.single:last-child .unit::after{ + display: none; +} +.row .name{ + color:#333; + font-size: 28rpx; + display: flex; + font-weight:600; + align-items: baseline; + justify-content: space-between; + width:114rpx; +} +.row .dot{ + display: flex; + align-items: baseline; + + font-weight:600; +} +.row .desc{ + align-items: baseline; + word-break: break-all; + color:#333; + flex:1; + display:inline; + font-size: 28rpx; + + +} +.row .look{ + color:#3CC7C0; + text-decoration: underline; +} +.btnbox{ + display: flex; + justify-content: flex-end; + font-size: 26rpx; + margin-top: 34rpx; +} +.btnbox .btn{ + margin-left: 20rpx; + padding:0 26rpx; + height: 58rpx; + display: flex; + justify-content: center; + align-items: center; + border-radius: 6rpx; +} +.btnbox .btn:first-child{ + margin-left: 0; +} +.btnbox .del{ + background: #F8F8F8; + color: #353535; + border: 1rpx solid rgba(5,5,5,0.1); +} +.btnbox .lookdetail{ + background: #3CC7C0; + color:#fff; + border: 1rpx solid #3CC7C0; +} +.btnbox .pay{ + + color:#fff; + background: #ED9C00; + border: 1rpx solid #ED9C00; +} +.btnbox .fuzhen{ + + color:#fff; + background: #ED9C00; + border: 1rpx solid #ED9C00; +} diff --git a/pages/myWelfare/myWelfare.js b/pages/myWelfare/myWelfare.js new file mode 100644 index 0000000..c074c93 --- /dev/null +++ b/pages/myWelfare/myWelfare.js @@ -0,0 +1,124 @@ +// pages/myWelfare/myWelfare.js +const app = getApp() +import {coupon} from "../../api/personCenter" +Page({ + + /** + * 页面的初始数据 + */ + data: { + isTriggered:false, + nouseList: [], + useList: [], + expireList: [], + user_coupon_status:0, + }, + goIndex() { + wx.switchTab({ + url: '/pages/index/index', + }) + }, + handleRefresher(){ + this.setData({ + nouseList: [], + useList: [], + expireList: [], + }) + this.getcoupon(); + }, + getcoupon() { + let {user_coupon_status}=this.data; + coupon({ + user_coupon_status + }).then(data => { + if (user_coupon_status == 0) { + this.setData({ + isTriggered:false, + nouseList: data + }) + } else if (user_coupon_status == 1) { + this.setData({ + isTriggered:false, + useList: data + }) + } else { + this.setData({ + isTriggered:false, + expireList: data + }) + } + + }) + }, + /** + * 生命周期函数--监听页面加载 + */ + onChange(event) { + let tabIndex = `${event.detail.index}` + if(tabIndex==2){ + tabIndex=3 + } + this.setData({ + nouseList: [], + useList: [], + expireList: [], + user_coupon_status:tabIndex + }) + this.getcoupon(); + }, + goBack() { + wx.navigateBack({ + delta: 1, + }) + }, + onLoad(options) { + this.getcoupon() + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + +}) \ No newline at end of file diff --git a/pages/myWelfare/myWelfare.json b/pages/myWelfare/myWelfare.json new file mode 100644 index 0000000..c18aa3e --- /dev/null +++ b/pages/myWelfare/myWelfare.json @@ -0,0 +1,9 @@ +{ + "usingComponents": { + "van-tab": "@vant/weapp/tab/index", + "van-tabs": "@vant/weapp/tabs/index", + "nav":"../../components/nav/nav" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "肝胆相照互联网医院" +} \ No newline at end of file diff --git a/pages/myWelfare/myWelfare.wxml b/pages/myWelfare/myWelfare.wxml new file mode 100644 index 0000000..efaff6c --- /dev/null +++ b/pages/myWelfare/myWelfare.wxml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + 单品补贴 + {{item.coupon_name}} + 使用范围:全场通用 + 使用范围:问诊适用 + 使用范围:购药 + 使用范围:购药 + 使用范围:购药 + 有效期:{{item.valid_end_time}} + + + ¥ {{moduleFilter.formatMoney(item.coupon_price)}} + 立即使用 + + + + + + 暂无数据! + + + + + + + + + + 单品补贴 + {{item.coupon_name}} + 使用范围:全场通用 + 使用范围:问诊适用 + 使用范围:购药 + 使用范围:购药 + 使用范围:购药 + 有效期:{{item.valid_end_time}} + + + ¥ {{moduleFilter.formatMoney(item.coupon_price)}} + 已使用 + + + + + 暂无数据! + + + + + + + + + + 单品补贴 + {{item.coupon_name}} + 使用范围:全场通用 + 使用范围:问诊适用 + 使用范围:购药 + 使用范围:购药 + 使用范围:购药 + 有效期:{{item.valid_end_time}} + + + ¥ {{moduleFilter.formatMoney(item.coupon_price)}} + 已过期 + + + + + 暂无数据! + + + + + + + \ No newline at end of file diff --git a/pages/myWelfare/myWelfare.wxss b/pages/myWelfare/myWelfare.wxss new file mode 100644 index 0000000..ccb5bcf --- /dev/null +++ b/pages/myWelfare/myWelfare.wxss @@ -0,0 +1,149 @@ +/* pages/myWelfare/myWelfare.wxss */ +.page{ + display: flex; + overflow: hidden; + flex-direction: column; +} +.tabwraper{ + flex:1; + overflow: hidden; + +} + +.van-tab__pane{ + flex:1; +} +.tabbox{ + flex:1; +width:100%; + height:100%; +} + +.van-tabs{ + margin-top: 172rpx; + width:100%; +} + +.tabactive{ + font-size: 32rpx!important; +} +.scrollwraper{ + height:100%; + overflow: scroll; + -webkit-overflow-scrolling: touch; + +} +.van-tab__pane{ + margin-top: 20rpx; + overflow: hidden; + height:calc(100vh - 285rpx)!important; +} +.tabs{ + flex:1; + margin-top: 172rpx; +} +.vantab{ + display: flex; + overflow-y: hidden; + position: relative; + height:calc(100% - 300rpx); +} +.scrollwraper{ + box-sizing: border-box; + border-radius: 10rpx; +} +.tabactive{ + font-size: 32rpx!important; +} +.fulibox{ + display: flex; + margin:0 32rpx 20rpx; + +justify-content: space-between; +box-shadow: 0rpx 2rpx 4rpx 0rpx rgba(0,0,0,0.1); +border-radius: 10rpx; + background-color: #fff; +} +/* .fulibox:first-child{ + margin-top: 30rpx; +} */ +.fulibox .left{ + margin-left: 30rpx; +} +.fulibox .left .name{ + color: #333333; + + margin-top: 20rpx; + font-weight: 550; + + font-size: 34rpx; +} +.fulibox .left .name .tag{ + vertical-align:middle; + color:#fff; + display: inline-block; + font-weight: normal; + padding:6rpx 14rpx; + margin-right: 10rpx; + border-radius: 20rpx; + background-color: #f59a22; + font-size: 24rpx; + margin-bottom: 8rpx; +} +.fulibox .left .name .names{ + display: inline; + word-break: break-all; +} +.fulibox .left .range{ + color: #E34D59; + margin-top: 20rpx; + font-size: 28rpx; +} +.fulibox .left .date{ + color: #999999; + margin-top: 10rpx; + font-size: 28rpx; + margin-bottom: 20rpx; +} +.fulibox .right{ + width: 216rpx; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + +background: #EF4F20; +border-radius: 10rpx; +} +.fulibox .right .price{ + color:#fff; + font-size: 34rpx; +} +.fulibox .right .price .num{ + font-size: 60rpx; +} +.fulibox .right .use{ + margin-top: 10rpx; + width: 152rpx; +height: 60rpx; +background: #FFFFFF; +display: flex; +align-items: center; +justify-content: center; +border-radius: 29rpx; +color:#fff; +color: #EF4F20; +font-size: 28rpx; +} +.outdate .right{ + background: #D3D3D3; +} +.outdate .left .range{ + color: #666666; +} +.outdate .right .use{ + color: #D3D3D3; +} +.nonedata{ + margin-top: 172rpx; +} \ No newline at end of file diff --git a/pages/notify/notify.js b/pages/notify/notify.js new file mode 100644 index 0000000..12ed635 --- /dev/null +++ b/pages/notify/notify.js @@ -0,0 +1,91 @@ +// pages/notify/notigy.js +const app = getApp() +import { + + getConfig, + editConfig +} from "../../api/personCenter" +Page({ + + /** + * 页面的初始数据 + */ + data: { + checked:true, + }, + onChangeSwitch({ detail }){ + this.setData({ checked: detail }); + this.handleEditConfig(detail); + }, + handleEditConfig(detail){ + let is_accept_im_message_push=detail?1:0; + editConfig({is_accept_im_message_push:is_accept_im_message_push}).then(data=>{ + wx.showToast({ + title: '设置成功', + icon:"none" + }) + }) + }, + handleGetConfig(){ + getConfig().then(data=>{ + this.setData({ + checked:data.is_accept_im_message_push==1?true:false + }) + }) + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + this.handleGetConfig(); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/notify/notify.json b/pages/notify/notify.json new file mode 100644 index 0000000..8c88808 --- /dev/null +++ b/pages/notify/notify.json @@ -0,0 +1,7 @@ +{ + "usingComponents": { + "nav":"../../components/nav/nav", + "van-switch": "@vant/weapp/switch/index" + }, + "navigationStyle":"custom" +} \ No newline at end of file diff --git a/pages/notify/notify.wxml b/pages/notify/notify.wxml new file mode 100644 index 0000000..7574c44 --- /dev/null +++ b/pages/notify/notify.wxml @@ -0,0 +1,12 @@ + + + + + + 消息提醒 + + + + + + diff --git a/pages/notify/notify.wxss b/pages/notify/notify.wxss new file mode 100644 index 0000000..f28c9b7 --- /dev/null +++ b/pages/notify/notify.wxss @@ -0,0 +1,46 @@ +/* pages/notify/notigy.wxss */ +.page{ + position: relative; + width: 100vw; + height:100vh; + overflow: scroll; + -webkit-overflow-scrolling: touch; + background: #F2F2F2; +} +.cellbox{ + margin-top: 172rpx; +} +.cell{ + overflow: hidden; + display: flex; + width:100%; + background-color: #fff; + height: 112rpx; + align-items: center; + justify-content: space-between; + border-bottom: 1rpx solid#F2F2F2; +} +.righticon { + width: 24rpx; + height: 48rpx; + +} +.box{ + width:100%; + display: flex; + align-items: center; + justify-content: flex-end; +} +.left{ + margin-left: 32rpx; +} +.right{ + position: relative; + flex:1; + font-size: 28rpx; + margin-right: 32rpx; + display: flex; + justify-content: flex-end; + color: #666666; + align-items: center; +} \ No newline at end of file diff --git a/pages/orderDetail/orderDetail.js b/pages/orderDetail/orderDetail.js new file mode 100644 index 0000000..c9fe23f --- /dev/null +++ b/pages/orderDetail/orderDetail.js @@ -0,0 +1,377 @@ +// pages/orderDetail/orderDetail.js +const app = getApp() +import {cancelOrder,inquiryDetail,inquiryDel,cancelPay} from "../../api/consultOrder" +import {fllowDoctor,notfllowDoctor} from "../../api/consultExpert" +import {assignDoctor} from "../../api/consult" +import {throttle} from "../../utils/util" +import Dialog from '@vant/weapp/dialog/dialog'; +Page({ + + /** + * 页面的初始数据 + */ + data: { + countTime:0, + timer:null, + order_inquiry_id:'', + order:null, + show:false, + message:'', + fromType:'', + showPadding:false, + prevData:'', + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static' + }, + copy(event){ + let text=event.target.dataset.text; + wx.setClipboardData({ + data:text, + fail(err){ + console.log(err); + } + }) + }, + goBack(flag=true){ + let {fromType,prevData}=this.data; + if(app.globalData.origion==1){ + wx.reLaunch({ + url: '/pages/index/index', + }) + }else if(app.globalData.origion==2){ + wx.reLaunch({ + url: '/pages/index/index', + }) + }else{ + if(fromType){ + wx.redirectTo({ + url: '/pages/consultOrder/consultOrder?fromType='+fromType+"&prevData="+prevData, + }) + }else{ + if(flag){ + wx.navigateBack({ + delta:1, + fail:function(){ + wx.reLaunch({ + url: '/pages/index/index', + }) + } + }) + } + + } + } + }, + orderMsg(){ + wx.requestSubscribeMessage({ + tmplIds: ['82rKSdbKkbFK_tHmIMnHyfyRJq9ujvmAsTjRHdxmCdE'], + success (res) { + Dialog.confirm({ + title: '温馨提示', + confirmButtonOpenType:'contact', + message: '立即联系客服', + }).then(() => { + // on confirm + }).catch(()=>{ + + }) + } + }) + + + }, + //联系客服通知 + + + // 下拉刷新的事件 + + // handleThrottle:throttle(function(){ + // this.goApplyMedince() + // }), + confirm:throttle(function(event){ + if(event.detail && this.data.message=="您是否确定删除本条订单记录?"){ + this.handleinquiryDel(); + }; + if(event.detail && this.data.message=="您是否确认取消本次问诊?"){ + this.handelCancelOrder() + }; + if(event.detail && this.data.message=="您是否确认取消本次支付?"){ + this.handleCancelPay(); + }; + if(event.detail && this.data.message=="已经为您匹配到医生,是否跳转到聊天页面?"){ + this.goChat(); + } + }), + goExpert(){ + let id=this.data.order.user_doctor.doctor_id; + app.method.navigateTo({ + url: '/pages/expertDetail/expertDetail?doctor_id='+id, + }) + }, + toggleFllow(){ + if(this.data.order.user_doctor.follow){ + this.handenotfllowDoctor() + }else{ + this.handelfllowDoctor() + } + }, + //定时发送请求 + reqCount(order_id){ + let {countTime}=this.data; + var timer = setInterval(() => { + if(countTime>=5*60*1000){ + clearInterval(this.data.timer); + } + this.setData({ + countTime:countTime+3000 + }) + this.handelAssignDoctor(order_id); + }, 3000); + this.setData({ + timer: timer + }) + }, + handelAssignDoctor(id) { + assignDoctor(id).then(data => { + if (data.user_id) { + this.setData({ + chat_id: data.user_id, + doctor_id: data.doctor_id, + show:true, + message:"已经为您匹配到医生,是否跳转到聊天页面?" + }); + this.handleinquiryDetail(); + let {timer} = this.data; + clearInterval(timer); + } + + }) + }, + handelfllowDoctor(){ + let id=this.data.order.user_doctor.doctor_id + fllowDoctor(id).then(data=>{ + this.setData({ + "order.user_doctor.follow":true + }) + wx.showToast({ + title: '关注成功', + icon:"none" + }) + }) + }, + handenotfllowDoctor(){ + let id=this.data.order.user_doctor.doctor_id; + notfllowDoctor(id).then(data=>{ + this.setData({ + "order.user_doctor.follow":false + }) + wx.showToast({ + title: '已取消关注', + icon:"none" + }) + }) + }, + delOrder(){ + this.setData({ + show:true, + message:"您是否确定删除本条订单记录?" + }) + }, + goSickInfo(event){ + let order_inquiry_id=event.currentTarget.dataset.id; + app.method.navigateTo({ + url: '../sickInfo/sickInfo?order_inquiry_id='+order_inquiry_id + }) + }, + goSickerInfo(event){ + let order_inquiry_id=event.currentTarget.dataset.id; + app.method.navigateTo({ + url: '../memberDetail/memberDetail?order_inquiry_id='+order_inquiry_id + }) + }, + handleGoPay(){ + let { + inquiry_no, + inquiry_type, + inquiry_mode, + user_id, + order_inquiry_id + } = this.data.order; + let chat_id= this.data.order.user_doctor.user_id; + let doctor_id= this.data.order.user_doctor.doctor_id + app.method.navigateTo({ + url: '/pages/payOrder/payOrder?doctor_id='+doctor_id+'&inquiry_no='+inquiry_no+"&chat_id="+chat_id+"&inquiry_type="+ inquiry_type+"&inquiry_mode="+inquiry_mode+"&order_inquiry_id="+order_inquiry_id+"&fromType=detail" + }) + }, + confirmCancelInquiry(){ + this.setData({ + show:true, + message:"您是否确认取消本次问诊?" + }) + }, + handelCancelOrder(){ + let { order_inquiry_id} = this.data.order; + cancelOrder(order_inquiry_id).then(data=>{ + wx.showToast({ + title: '取消问诊成功', + icon:'none' + }); + this.handleinquiryDetail(true); + }) + }, + confirmCancelPay(){ + this.setData({ + show:true, + message:"您是否确认取消本次支付?" + }) + }, + handleCancelPay(){ + let {order_inquiry_id} = this.data.order; + cancelPay(order_inquiry_id).then(data=>{ + wx.showToast({ + title: '取消支付成功', + icon:'none' + }) + this.handleinquiryDetail(true); + }) + }, + handleinquiryDetail(flag=false){ + let id=this.data.order_inquiry_id; + inquiryDetail(id).then(data=>{ + this.setData({ + order:data + }) + if(flag){ + let pages = getCurrentPages(); + let prevPage = pages[pages.length - 2]; //上一页 + this.setData({ + prevData:JSON.stringify({ + changeStatus: data.inquiry_status, + changeId:id + }) + }); + prevPage.setData({ + changeStatus: data.inquiry_status, + changeId:id + }); + }; + if(data.inquiry_status==4 || data.inquiry_status==5 || data.inquiry_status==6 || data.inquiry_status==3 ){ + this.setData({ + showPadding:false + }) + }else{ + this.setData({ + showPadding:true + }) + + }; + if(data.inquiry_status==2){ + this.handelAssignDoctor(data.order_inquiry_id); + this.reqCount(data.order_inquiry_id); + } + }) + }, + handleinquiryDel(){ + let id=this.data.order_inquiry_id; + inquiryDel(id).then((data)=>{ + wx.showToast({ + title: '订单删除成功', + icon:"none" + }); + if(app.globalData.origion==1){ + this.handleinquiryDetail(); + }else if(app.globalData.origion==2){ + this.handleinquiryDetail(); + }else{ + let pages = getCurrentPages(); + //获取所需页面 + let prevPage = pages[pages.length - 2]; //上一页 + prevPage.setData({ + delId: id//需要传过去的数据 + }); + let {fromType}=this.data; + if(fromType){ + wx.redirectTo({ + url: '/pages/consultOrder/consultOrder', + }) + }else{ + wx.navigateBack({ + delta:1, + }) + } + } + + + }) + }, + goChat(){ + let chat_id=this.data.order.user_doctor.user_id; + let {order_inquiry_id,inquiry_type}=this.data.order; + app.method.navigateTo({ + url: '/TUIService/pages/index?currentConversationID='+chat_id+"&order_inquiry_id=" + order_inquiry_id + "&inquiry_type=" + inquiry_type + }) + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + if(options.fromType){ + this.setData({ + fromType:options.fromType + }) + } + this.setData({ + order_inquiry_id:options.order_inquiry_id + }); + this.handleinquiryDetail(); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + this.setData({ + img_host:app.hostConfig().imghost + }) + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + clearInterval(this.data.timer); + //this.goBack(false) + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + +}) \ No newline at end of file diff --git a/pages/orderDetail/orderDetail.json b/pages/orderDetail/orderDetail.json new file mode 100644 index 0000000..7253254 --- /dev/null +++ b/pages/orderDetail/orderDetail.json @@ -0,0 +1,11 @@ +{ + "usingComponents": { + "consult-list":"../../components/consultList/consultList", + "dialog":"../../components/dialog/dialog", + "van-dialog": "@vant/weapp/dialog/index", + "van-count-down": "@vant/weapp/count-down/index" + }, + + "navigationStyle":"custom", + "navigationBarTitleText": "肝胆相照互联网医院" +} \ No newline at end of file diff --git a/pages/orderDetail/orderDetail.wxml b/pages/orderDetail/orderDetail.wxml new file mode 100644 index 0000000..162e642 --- /dev/null +++ b/pages/orderDetail/orderDetail.wxml @@ -0,0 +1,183 @@ + + + + + 订单详情 + + + + + + + 订单信息 + + 待支付 + + + + + 分配医生中 + 等待接诊 + 问诊中 + 问诊完成 + 问诊结束 + 问诊取消 + + 支付超时 + + + + + 订单编号 + + {{order.inquiry_no}} + 复制 + + + + 下单时间 + + {{order.created_at}} + + + 问诊类型 + + 专家问诊 + 快速问诊 + 公益问诊 + 问诊购药 + 糖组检测 + + + 问诊金额 + + {{order.amount_total}} + + + + + + - ¥{{timeModule.formatMoney(order.coupon_amount_total)}} + + + + + + 支付金额 + + {{order.payment_amount_total}} + + + + + + + + 医生未接诊 + 主动取消 + 无可分配医生 + 客服取消 + 支付超时 + + + + + 退款进度 + + 无退款 + 申请退款 + 退款中 + 退款成功 + 拒绝退款 + 退款关闭 + 退款异常 + + + + + + 取消问诊 + + + + 联系客服 + + + 如有疑问请在三日内联系客服沟通解决 + 联系客服 + + + + + + 就诊人信息 + {{order.patient_name}}(未知,{{order.patient_age}}岁) + + + + + + + 病例信息 + 所患疾病:{{order.case.disease_class_name}} + 病情主诉:{{order.case.disease_desc}} + + + + + + + + + + + {{order.user_doctor.user_name}} + {{order.user_doctor.hospital_level_name}} + 可处方 + + {{order.user_doctor.doctor_title}} {{order.user_doctor.department_custom_name}} + {{order.user_doctor.hospital_name}} + + + +   关注 + + + +   关注 + + + + + + 等待平台指定医生 + + + + + + + 取消支付 + 立即支付:¥{{order.payment_amount_total}} + + + 问诊详情 + + + + + \ No newline at end of file diff --git a/pages/orderDetail/orderDetail.wxss b/pages/orderDetail/orderDetail.wxss new file mode 100644 index 0000000..26a96c0 --- /dev/null +++ b/pages/orderDetail/orderDetail.wxss @@ -0,0 +1,436 @@ +/* pages/orderDetail/orderDetail.wxss */ +.page { + display: flex; +flex-direction: column; +} + +.databox { + margin-top: 172rpx; + flex: 1; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; + margin-bottom: 20rpx; +} +/* .databox.active{ + margin-bottom: 0rpx; + +} */ +.datacell { + background: #fff; + padding-bottom: 30rpx; + border-bottom: 1rpx solid #E3E4E5; +} + +.status { + color: #333333; + font-size: 28rpx; +} +.waitpay { + text-align: right; + color: #EF4F20 +} + +.titlebox .name { + color: #000; + font-size: 32rpx; +} + +.titlebox { + padding: 0 32rpx; + height: 112rpx; + border-bottom: 1rpx solid #E3E4E5; + display: flex; + justify-content: space-between; + align-items: center; +} +.fenpeibox{ + margin:50rpx auto; + display:flex; + flex-direction: column; + align-items: center; +} +.fenpeibox .tips{ + font-size: 28rpx; +color: #333333; +} + +.headicon { + width: 80rpx; + height: 80rpx; + white-space: nowrap; + border-radius: 50%; +} + +.van-count-down { + margin-top: 5rpx; + color: #EF4F20 !important; +} + +.row { + align-items: center; + padding: 0 32rpx; + display: flex; + line-height: 52rpx +} +.row .name{ + display: flex; +} +.textyou{ + width:112rpx; + display: flex; + + justify-content: space-between; +} +.datacell .row .name{ + justify-content: space-between; + width:115rpx; +} +.namewraper .row{ + margin-top: 0; + line-height: 42rpx +} +.row.first { + margin-top: 34rpx; +} + +.row .name { + white-space: nowrap; + align-items: center; + font-size: 28rpx; + color: #333; + font-weight: 600; + align-items: baseline; +} +.row .dot{ + display:flex; + font-weight: 600; + align-items: baseline; +} +.row .desc { + font-size: 28rpx; + color: #333; + align-items: baseline; +} + +.rowdesc { + align-items: flex-start; +} + +.rowdesc .desc { + text-overflow: -o-ellipsis-lastline; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 2; + line-clamp: 2; + -webkit-box-orient: vertical +} + +.row .price { + color: #EF4F20; + font-weight: bold; + font-size: 34rpx +} + +.row.last { + justify-content: space-between; +} + +.row .left { + display: flex; +} + +.row .right { + display: flex; +} + +.righticon { + width: 24rpx; + height: 48rpx; +} + +.right .detail { + margin-right: 10rpx; + color: #666666; +} + +.righticon { + width: 24rpx; + height: 48rpx; +} + +.sickinfo { + display: flex; + justify-content: space-between; + background-color: #fff; + align-items: center; + padding: 32rpx; + border-bottom: 1rpx solid #E3E4E5; +} + +.sickinfo .title { + color: #000000; + font-size: 32rpx; +} + +.nameinfo { + flex: 1; + margin-right: 10rpx; + line-height: 40rpx; +} + +.sickinfo .name { + word-break: break-all; + font-weight: 400; + margin-top: 8rpx; + font-size: 28rpx; + + color: #999; + text-overflow: -o-ellipsis-lastline; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 2; + line-clamp: 2; + -webkit-box-orient: vertical +} + +.infobox { + position: relative; + z-index: 1; + padding: 40rpx 32rpx 40rpx; + background: #FFFFFF; + border-radius: 10rpx; +} +.namebox .head { + width: 120rpx; + height: 120rpx; + flex-shrink: 0; + border-radius: 50%; +} + + + +.namebox { + display: flex; + +} + +.namewraper { + flex: 1; + max-width:420rpx; + display: flex; + justify-content: space-between; + flex-direction: column; + margin-left: 20rpx; +} + +.namebox .row { + display: flex; + align-items: flex-end; + +} +.namewraper .row{ + padding:0 20rpx; +} +.namebox { + display: flex; + align-items: center; + width:100%; + + justify-content: space-between; +} + +.namebox .name { + display: inline-block; + overflow: hidden; + max-width:300rpx; + text-overflow: ellipsis; + white-space: nowrap; + font-weight: 600; + color: #333333; + font-size: 34rpx; +} + +.position { + font-size: 30rpx; + white-space: normal; + word-break: break-all; +} +.doctor_title{ + margin-right: 10rpx; +} +.hospital { + font-size: 28rpx; + margin-left: 20rpx; + color: #333333; + white-space: normal; + word-break: break-all; +} + +.type { + height: 32rpx; + display: flex; + margin-bottom: 6rpx; + line-height: 32rpx; + white-space: nowrap; + align-items: center; + margin-left: 18rpx; + padding: 0rpx 6rpx; + background: #ED9C00; + border-radius: 4rpx; + color: #FFFFFF; + font-size: 24rpx; +} + +.namebox .position { + font-weight: normal; + white-space: nowrap; + margin-left: 15rpx; + font-size: 30rpx; +} + +.guanzhu { + flex-shrink: 0; + display: flex; + height: 60rpx; + white-space: nowrap; + color: #3CC7C0; + font-size: 30rpx; + font-weight: 600; + justify-content: center; + align-items: center; + font-size: 24rpx; + +} +.namebox .guanzhu image { + width: 35rpx; + height: 32rpx; +} +.bottom { + /* position: fixed; */ + width: 100%; + /* bottom: 0rpx; */ + display: flex; + z-index:9; + height: 104rpx; +} +.wenzhenbtn { + /* position: fixed; */ + margin-bottom: 20rpx; + width:100%; + height: 94rpx; + z-index:22; +} +.wenzhenbtn .btn{ + margin:0 32rpx; + font-size: 36rpx; + display: flex; + justify-content: center; + align-items: center; + color: #FFFFFF; + height: 94rpx; + background: #3CC7C0; + border-radius: 47rpx; +} +.bottom .cancel { + height:104rpx; + flex: 1; + font-weight: 600; + color: #999999; + font-size: 32rpx; + background: #FFFFFF; + display: flex; + justify-content: center; + align-items: center; +} + +.bottom .confirm { + height: 104rpx; + background: #3CC7C0; + display: flex; + justify-content: center; + align-items: center; + font-weight: 600; + flex: 2; + font-size: 32rpx; + color: #FFFFFF; +} + +.del, .contact{ + width: 158rpx; + height: 60rpx; + background: #F8F8F8; + border-radius: 6rpx; + border: 1rpx solid rgba(5, 5, 5, 0.1); + color: #353535; + display: flex; + justify-content: center; + align-items: center; + font-size: 26rpx; + padding: 0; +} + + +.consultTitle { + display: flex; + margin: 20rpx 0; + padding: 0 32rpx; + align-items: center; +} + +.consultTitle .bar { + width: 6rpx; + height: 30rpx; + background: #3CC7C0; + margin-right: 12rpx; +} + +.consultTitle .name { + + font-weight: 600; + color: #333333; + + font-size: 28rpx; +} + +.row .tips { + font-size: 24rpx; + font-weight: 400; + color: #999999; +} + +.copy { + width: 80rpx; + height: 40rpx; + color: #FFFFFF; + font-size: 24rpx; + display: flex; + margin-left: 20rpx; + align-items: center; + justify-content: center; + background: #3CC7C0; + border-radius: 6rpx; +} + +.consultwraper { + background-color: #fff; + margin: 0 32rpx; + border-radius: 10rpx; +} +.nopatient{ + margin: 40rpx 0; + flex:1; + display: flex; + align-items: center; + flex-direction: column; + align-items: center; +} +.fenpei{ + width: 360rpx; + height:402rpx; +} +.fenpeitip{ + font-size: 28rpx; + color: #333333; +} \ No newline at end of file diff --git a/pages/payInfo/payInfo.js b/pages/payInfo/payInfo.js new file mode 100644 index 0000000..0b46bdb --- /dev/null +++ b/pages/payInfo/payInfo.js @@ -0,0 +1,190 @@ +// pages/payInfo/payInfo.js +const app = getApp() +import { + payPrescription +} from "../../api/prescription" +import {createProduct} from "../../api/medinceOrder" +import {throttle} from "../../utils/util" +import {client_type} from "../../utils/isPc" +Page({ + + /** + * 页面的初始数据 + */ + data: { + order_prescription_id: '', + address_id:'', + product_ids:[], + btnLock:false, + prevData:'', + fromType:'', + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static', + order: { + + } + }, + goAddress(event) { + let address_id = event.currentTarget.dataset.id; + app.method.navigateTo({ + url: '/pages/address/address?address_id=' + address_id + "&order_prescription_id=" + this.data.order_prescription_id + }) + }, + goAddAddress:throttle(function() { + app.method.navigateTo({ + url: '/pages/address/address?address_id=add&order_prescription_id='+ this.data.order_prescription_id + }) + }), + handleThrottle:throttle(function(){ + this.handleCreateProduct() + }), + //创建药品支付订单 + handleCreateProduct(){ + let {order_prescription_id,address_id,product_ids,fromType}=this.data; + + if(!address_id){ + wx.showToast({ + title:'请选择收货地址', + icon:'none' + }) + return false + } + this.setData({ + btnLock:true + }) + createProduct({ + order_prescription_id, + address_id, + product_ids:product_ids, + client_type:client_type + }).then(data=>{ + let {inquiry_no,order_product_id}=data; + this.setData({ + btnLock:false + }); + this.setData({ + fromType:encodeURIComponent('pages/medinceOrder/medinceOrder') + }) + // if(fromType){ + // this.setData({ + // fromType:encodeURIComponent('pages/medinceOrder/medinceOrder') + // }) + // } + app.method.navigateTo({ + url: '/pages/payOrder/payOrder?inquiry_no='+ inquiry_no +"&order_product_id="+order_product_id+"&order_type=2&order_prescription_id="+order_prescription_id+"&fromType="+this.data.fromType + }) + }) + }, + handlepayPrescription(id, address) { + payPrescription(id).then(data => { + this.setData({ + order: data + }); + let product_ids=[]; + let product=data.order_prescription_product; + product.forEach((item)=>{ + product_ids.push(item.product_id) + }) + this.setData({ + address_id:data.user_ship_address?data.user_ship_address.address_id:'', + product_ids:product_ids + }); + if(!data.user_ship_address){ + this.setData({ + prevData:'', + 'order.user_ship_address':null, + address_id:'' + }) + }else{ + if (address) { + let addressInfo = JSON.parse(address); + this.setData({ + 'order.user_ship_address.province': addressInfo.province, + 'order.user_ship_address.city': addressInfo.city, + 'order.user_ship_address.county': addressInfo.country, + 'order.user_ship_address.address': addressInfo.address, + 'order.user_ship_address.consignee_name': addressInfo.name, + 'order.user_ship_address.consignee_tel': addressInfo.phone, + 'order.user_ship_address.address_id': addressInfo.address_id, + address_id:addressInfo.address_id + }) + } + } + + }) + }, + goPayOrder:throttle(function() { + let order_prescription_id = this.data.order_prescription_id; + app.method.navigateTo({ + url: '/pages/payOrder/payOrder?order_prescription_id='+order_prescription_id + "&order_type=2" + }) + }), + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + let id = options.order_prescription_id; + if(options.fromType){ + this.setData({ + fromType:options.fromType + }) + }; + let address = options.address; + this.setData({ + order_prescription_id: id + }) + this.handlepayPrescription(id, address); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + let {prevData,order_prescription_id}=this.data; + this.setData({ + img_host:app.hostConfig().imghost + }) + if(prevData){ + this.handlepayPrescription(order_prescription_id,prevData); + } + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + +}) \ No newline at end of file diff --git a/pages/payInfo/payInfo.json b/pages/payInfo/payInfo.json new file mode 100644 index 0000000..44a996f --- /dev/null +++ b/pages/payInfo/payInfo.json @@ -0,0 +1,7 @@ +{ + "usingComponents": { + "nav":"../../components/nav/nav" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "肝胆相照互联网医院" +} \ No newline at end of file diff --git a/pages/payInfo/payInfo.wxml b/pages/payInfo/payInfo.wxml new file mode 100644 index 0000000..f605bce --- /dev/null +++ b/pages/payInfo/payInfo.wxml @@ -0,0 +1,78 @@ + + + + + + + + + + {{order.user_ship_address.consignee_name}} {{order.user_ship_address.consignee_tel}} + {{order.user_ship_address.province}}{{order.user_ship_address.city}}{{order.user_ship_address.county}}{{order.user_ship_address.address}} + + + + +   新建收货地址 + + + 药品信息 + + + + + + 处方药品 + 依据法规不展示包装 + + + + {{item.product_name}}{{item.product_spec}} + + {{item.manufacturer}} + 数量:{{item.prescription_product_num}} + + + + 库存不足 + + + 订单信息 + + + + 药品金额 + + ¥{{order.amount_total}} + + + + + + ¥{{order.logistics_fee}}(包邮) + ¥0.00(包邮) + + + + + + - ¥{{timeModule.formatMoney(order.coupon_amount_total)}} + + + + + 支付金额 + + ¥{{order.payment_amount_total}} + + + + + + + diff --git a/pages/payInfo/payInfo.wxss b/pages/payInfo/payInfo.wxss new file mode 100644 index 0000000..6cfb121 --- /dev/null +++ b/pages/payInfo/payInfo.wxss @@ -0,0 +1,245 @@ +/* pages/payInfo/payInfo.wxss */ +.page{ + display: flex; + flex-direction: column; +} +.mypaybox{ + flex:1; + overflow: scroll; + -webkit-overflow-scrolling: touch; + margin-top: 172rpx; + margin-bottom: 124rpx; +} +.add { + + width: 100%; + display: flex; + justify-content: center; + align-items: center; + height: 120rpx; + background: #FFFFFF; + font-weight: 600; + color: #ED9C00; + font-size: 32rpx; +} +.addicon{ + width: 40rpx; + height:40rpx; + flex-shrink: 0; +} +.addressbox { + align-items: center; + display: flex; + justify-content: space-between; + padding: 32rpx 32rpx; + background-color: #fff; +} + +.addressbox .left { + display: flex; + align-items: center; +} + +.addressbox .icon { + width: 40rpx; + flex-shrink: 0; + height: 47rpx; + +} + +.addressbox .info { + margin-left: 30rpx; +} + +.addressbox .ricon { + width: 24rpx; + flex-shrink: 0; + height: 48rpx; +} + +.info .name { + font-size: 28rpx; + font-weight: 600; + color: #333333 +} + +.info .address { + margin-right:15rpx; + word-break: break-all; + margin-top: 10rpx; + color: #333333; + font-size: 28rpx; +} + +.infobox { + margin-top: 20rpx; +} + +.infobox .title { + padding: 0 32rpx; + background-color: #fff; + font-size: 32rpx; + height: 112rpx; + align-items: center; + display: flex; + justify-content: space-between; + border-bottom: 1rpx solid #E3E4E5; +} + +.imgbox { + + width: 200rpx; + height: 200rpx; + display: flex; + align-items: center; + justify-content: center; + position: relative; +} + +.yaoimg { + width: 120rpx; + height: 128rpx; +} + +.imgbox .desc { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + position: absolute; + top: 50%; + font-size: 22rpx; + font-weight: 400; + color: #666666; + line-height: 30rpx; + transform: translateY(-50%); +} + +.imgbox .desc .tip { + text-align: center; +} + +.medincebox { + background-color: #fff; +} + .medincebox.active{ + background: rgba(228,228,228,0.7); + } + .medincebox .nogoods{ + position: absolute; + width:100%; + top:0; + bottom:0; + display: flex; + justify-content: center; + align-items: center; + font-weight: bold; + font-size: 36rpx; + color: #EF4F20; + } +.medincebox .cell { + padding: 30rpx 32rpx; + display: flex; + align-items: center; + border-bottom: 1rpx solid #E3E4E5; +} + +.rightinfo { + margin-left: 30rpx; + flex: 1; + + display: flex; + flex-direction: column; + justify-content: center; +} + +.medincebox .cell .name { + word-break: break-all; + font-size: 32rpx; + font-weight: bold; + color: #333; + text-overflow: ellipsis; + + display: -webkit-box; + + -webkit-box-orient: vertical; + + -webkit-line-clamp: 2; + /* 这里是超出几行省略 */ + + overflow: hidden; +} + +.rightinfo .own { + margin-top: 47rpx; + display: flex; + justify-content: space-between; + align-items: flex-start; + font-size: 28rpx; + font-weight: 400; + color: #333333; +} +.own .num{ + margin-top: 3rpx; + margin-left: 25rpx; + white-space: nowrap; +} +.orderinfo { + background: #FFFFFF; + padding: 30rpx 32rpx; +} + +.orderinfo .row { + line-height: 52rpx; + display: flex; + align-items: center; +} + +.row .name { + color: #333333; + font-weight: 600; + font-size: 28rpx; + display: flex; + align-items: baseline; + justify-content: space-between; + width:115rpx; + white-space: nowrap; +} +.row .dot{ + display: flex; + font-weight: 600; + align-items: baseline; +} +.row .desc { + color: #333333; + font-size: 28rpx; +} + +.row .price { + font-weight: 600; + font-size: 34rpx; + display: flex; + align-items: baseline; + color: #EF4F20; +} + +.btn { + position: fixed; + bottom: 20rpx; + display: flex; + align-items: center; + justify-content: center; + color: #fff; + font-size: 36rpx; + left: 32rpx; + right: 32rpx; + height: 94rpx; + background: #3CC7C0!important; + border-radius: 47rpx; +} +.textyou{ + width:112rpx; + display: flex; + + justify-content: space-between; +} \ No newline at end of file diff --git a/pages/payOrder/payOrder.js b/pages/payOrder/payOrder.js new file mode 100644 index 0000000..6f49d4a --- /dev/null +++ b/pages/payOrder/payOrder.js @@ -0,0 +1,679 @@ +const app = getApp() +const dayjs = require("../../utils/dayjs.min"); +import { + pay, + lingyuanpay +} from "../../api/consult" +import { + payPrescription +} from "../../api/prescription" +import Dialog from '@vant/weapp/dialog/dialog'; +import {inquiryDetail} from "../../api/consultOrder" +import {productDetail} from "../../api/medinceOrder" +import { + throttle +} from "../../utils/util" +Page({ + + /** + * 页面的初始数据 + */ + data: { + show: false, + doctor_id: '', + chat_id: '', + message_error:'', + showOrderMsg:false, + showMsgOrder:false, + time: '', + inquiry_no: '', + amount_total: "", + cannot_use_coupon_reason:'', + coupon_amount_total: 0, + logistics_fee: 0, + payment_amount_total: '', + pay_config: null, + created_at: "", + inquiry_type: "", + order_type: 1, + inquiry_mode: "", + order_inquiry_id: "", + order_id: "", + order_no: "", + address_id: '', + product_ids: [], + order_detection_id:'', + order_product_id: '', + fromType: '', + showDing:false, + isLock:false + }, + goBack() { + if (app.globalData.origion == 1) { + wx.reLaunch({ + url: '/pages/index/index', + }) + } else if (app.globalData.origion == 2) { + wx.reLaunch({ + url: '/pages/index/index', + }) + } else { + // this.setData({ + // showDing:true, + // }); + Dialog.confirm({ + title: '温馨提示', + cancelButtonText: "确定离开", + confirmButtonText: '继续支付', + selector:"#mydialog" + }).then(() => { + this.setData({ + showMsgOrder:true + }) + //this.goPayPlatform(); + }) + .catch(() => { + let { + order_product_id, + order_inquiry_id, + order_type, + order_detection_id, + fromType + } = this.data; + if (order_type == 1) { + if (fromType) { + if (fromType == "detail") { + wx.navigateBack({ + delta: 1, + }) + } else { + wx.redirectTo({ + url: '/pages/orderDetail/orderDetail?order_inquiry_id=' + order_inquiry_id + "&fromType=list", + }) + } + + } else { + wx.navigateBack({ + delta: 1, + fail:function(){ + wx.reLaunch({ + url: '/pages/index/index', + }) + } + }) + } + }else if(order_type==3){ + if (fromType) { + wx.redirectTo({ + url: '/pages/checkOrderDetail/checkOrderDetail?order_detection_id=' + order_detection_id + "&fromType=" + fromType, + }) + } else { + wx.navigateBack({ + delta: 1, + }) + } + }else { + if (fromType) { + wx.redirectTo({ + url: '/pages/medinceOrderDetail/medinceOrderDetail?order_product_id=' + order_product_id + "&fromType=" + fromType, + }) + } else { + wx.navigateBack({ + delta: 1, + }) + + } + } + }); + + } + + + }, + onCloseMsg(){ + this.goUrl(); + }, + onConfirmMsg(){ + this.goPayPlatform(); + }, + // onConfirm(){ + // this.goPayPlatform(); + // }, + onClose(){ + let { + order_product_id, + order_inquiry_id, + order_type, + fromType, + order_detection_id + } = this.data; + if (order_type == 1) { + if (fromType) { + if (fromType == "detail") { + wx.navigateBack({ + delta: 1, + }) + } else { + wx.redirectTo({ + url: '/pages/orderDetail/orderDetail?order_inquiry_id=' + order_inquiry_id + "&fromType=list", + }) + } + } else { + wx.navigateBack({ + delta: 1, + fail:function(){ + wx.reLaunch({ + url: '/pages/index/index', + }) + } + }) + } + }else if(order_type==3){ + if (fromType) { + wx.redirectTo({ + url: '/pages/checkOrderDetail/checkOrderDetail?order_detection_id=' + order_detection_id + "&fromType=" + fromType, + }) + } else { + wx.navigateBack({ + delta: 1, + }) + } + } else { + if (fromType) { + wx.redirectTo({ + url: '/pages/medinceOrderDetail/medinceOrderDetail?order_product_id=' + order_product_id + "&fromType=" + fromType, + }) + } else { + wx.navigateBack({ + delta: 1, + }) + } + } + + }, + handleThrottle:throttle(function() { + if(!this.data.isLock){ + this.setData({ + isLock:true + }); + this.goPayPlatform(); + } + + }), + goPayPlatform() { + this.orderMsg(this.goUrl); + }, + goUrl(){ + let { + order_no, + order_type, + chat_id, + doctor_id, + payment_amount_total, + inquiry_type, + inquiry_mode, + order_inquiry_id, + order_product_id, + order_detection_id, + order_prescription_id, + fromType + } = this.data; + if (payment_amount_total == 0) { + this.freePay(); + } else { + this.setData({ + isLock:false + }) + let url = ''; + if (order_type == 2) { + url = '../payPlatform/payPlatform?order_no=' + order_no + "&order_type=2" + "&order_prescription_id=" + order_prescription_id + "&order_product_id=" + order_product_id + "&fromType=" + fromType; + }else if(order_type == 3){//糖组检测 + url = '/pages/payPlatform/payPlatform?order_no=' + order_no + "&order_type=3" + "&order_detection_id=" + order_detection_id+ "&fromType=" + fromType; + }else { + if (chat_id) { + url = '../payPlatform/payPlatform?order_no=' + order_no + "&order_type=1&chat_id=" + chat_id + "&doctor_id" + doctor_id + "&inquiry_type=" + inquiry_type + "&inquiry_mode" + inquiry_mode + "&order_inquiry_id=" + order_inquiry_id + "&fromType=" + fromType; + } else { + url = '../payPlatform/payPlatform?order_no=' + order_no + "&order_type=1&inquiry_type=" + inquiry_type + "&inquiry_mode" + inquiry_mode + "&order_inquiry_id=" + order_inquiry_id + "&fromType=" + fromType; + } + } + app.method.navigateTo({ + url: url + }) + } + }, + payOrder() { + let { + order_no, + order_type + } = this.data; + pay({ + order_type: order_type, + order_no: order_no + }).then((result) => { + console.log(result) + let data=result.data; + //订单成功 + if(result.status==1){ + for (const key in data) { + this.setData({ + [key]: data[key] + }) + }; + if(order_type==3){ + this.setData({ + order_detection_id:data.order_no + }) + } + + let { + created_at + } = data; + let endtime = dayjs(created_at).add(30, 'minute').format('YYYY-MM-DD HH:mm:ss'); + let nowtime = dayjs().format('YYYY-MM-DD HH:mm:ss'); + let countdown = dayjs(endtime).diff(nowtime, "millisecond"); + + this.setData({ + time: countdown > 0 ? countdown : 0 + }); + if (countdown <= 0) { + let { + order_product_id, + order_inquiry_id, + order_detection_id, + order_type, + fromType + } = this.data; + if (order_type == 1) { + if (fromType) { + if (fromType == "detail") { + wx.navigateBack({ + delta: 1, + }) + } else { + wx.redirectTo({ + url: '/pages/orderDetail/orderDetail?order_inquiry_id=' + order_inquiry_id + "&fromType=list", + }) + } + + } else { + wx.navigateBack({ + delta: 1, + }) + } + }else if(order_type == 3){ + if (fromType) { + wx.redirectTo({ + url: '/pages/checkOrderDetail/checkOrderDetail?order_detection_id=' + order_detection_id + "&fromType=" + fromType, + }) + } else { + wx.navigateBack({ + delta: 1, + }) + + } + }else { + if (fromType) { + wx.redirectTo({ + url: '/pages/medinceOrderDetail/medinceOrderDetail?order_product_id=' + order_product_id + "&fromType=" + fromType, + }) + } else { + wx.navigateBack({ + delta: 1, + }) + + } + } + } + }else{ + //inquiry_status '问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)', + //inquiry_pay_status//1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款); + let order_status='order_status'; + let pay_status='order_pay_status'; + let message_error=''; + // if(order_type==1){ + // order_status='inquiry_status'; + // pay_status='inquiry_pay_status' + // }else if(order_type==3){ + + // }else{ + // order_status='order_product_status'; + // pay_status='pay_status' + // } + if(data[order_status]==7){ + if(data[pay_status]==5){ + message_error="订单支付超时" + }else{ + message_error="订单已取消"; + } + }else if(data[pay_status]==1){ + message_error="订单未支付" + }else if(data[pay_status]==2){ + message_error="订单已支付" + }else if(data[pay_status]==3){ + message_error="订单支付中" + }else if(data[pay_status]==4){ + message_error="订单支付失败" + }else if(data[pay_status]==5){ + message_error="订单支付超时" + }else if(data[pay_status]==6){ + message_error="订单支付关闭" + }else if(data[pay_status]==7){ + message_error="订单支付已撤销" + }else if(data[pay_status]==8){ + message_error="订单已退款" + } + this.setData({ + message_error + }) + //异常 + Dialog.confirm({ + title: '温馨提示', + showCancelButton:false, + selector:"#hasPayDialog" + }).then(() => { + if(order_type==1){ + wx.redirectTo({ + url: '/pages/orderDetail/orderDetail?order_inquiry_id='+data.order_id+ "&fromType=list", + }) + }else if(order_type==2){ + wx.redirectTo({ + url: '/pages/medinceOrderDetail/medinceOrderDetail?order_product_id='+data.order_id+ "&fromType=" +encodeURIComponent("pages/medinceOrder/medinceOrder"), + }) + }else{ + wx.redirectTo({ + url: '/pages/checkOrderDetail/checkOrderDetail?order_detection_id='+data.order_no+ "&fromType=" +encodeURIComponent("pages/checkOrder/checkOrder"), + }) + } + + }) + + } + + }) + }, + orderMsg(callback){ + wx.showLoading({ + title: '加载中', + mask: true + }); + let { + order_type, + inquiry_type + } = this.data; + let THIS=this; + wx.getSetting({ + withSubscriptions: true, + success(res) { + let item = res.subscriptionsSetting.itemSettings; + //console.log(res.subscriptionsSetting) + if (order_type == 1) { //问诊异常提醒 长期订阅 + let tmplIds_longtime = ['UOMww1S30Oq7rErJrqO8wN6lNEVKRo2fgcXnb0tBwHI', '9v6dZhjg09CttLd3W9nEUV_-eshNc4BYYNy59jglvZE']; //问诊提醒长期订阅 + if (!item || !item['UOMww1S30Oq7rErJrqO8wN6lNEVKRo2fgcXnb0tBwHI'] ||(item['UOMww1S30Oq7rErJrqO8wN6lNEVKRo2fgcXnb0tBwHI'] != "accept") && (item['9v6dZhjg09CttLd3W9nEUV_-eshNc4BYYNy59jglvZE'] != "accept") || !item['9v6dZhjg09CttLd3W9nEUV_-eshNc4BYYNy59jglvZE']) { + THIS.subscription(tmplIds_longtime,callback) + // wx.requestSubscribeMessage({ + // tmplIds: tmplIds_longtime, + // complete(res) { + // callback(); + // } + // }) + }else { + //处方支付提醒 一次性订阅 //处方到期通知 一次性订阅 + let tmplIds = ['tMiz2aIthMikcR4qisLrFXCM3Piy-M0tkzapz-Nzp_8','NewZk53LaPtJ6BtBGORK-9lsbsrueUoBQjYHnQ6F-mM']; + THIS.subscription(tmplIds,callback) + + } + + }else if(order_type==3){ + let tmplIds = ['5aJSrO8SU5rxqdB99zzl4rMVgcOTjt5mQh56cpZI1Hg','dNj3azLupP_w3j649v6lqz7je_ScqwgwFsnug6pKvyI']; + THIS.subscription(tmplIds,callback); + + }else { //药品发货通知 一次性订阅 //购药提醒 一次性订阅 + let tmplIds = ['YFdVxDclV1ZjhS7E4Cs0zFdshTRizERpwYdZizj_UWo', 'KjX4m_HOPT5zYuDJqE2rRopAC_QCCMqUTCGc8ElDeWQ','gQO5vhPQfdnvXtK0XnGns1XqNhQpOrXTjdl-5HWWMUw']; + //药品订单取消通知 一次性订阅 + THIS.subscription(tmplIds,callback) + } + + } + }) + }, + subscription(tmplIds,callback){ + let THIS=this; + return new Promise((resolve, reject) => { + wx.getSetting({ + withSubscriptions: true, + success(res) { + + if(!res.subscriptionsSetting.mainSwitch) { // 关闭订阅消息主按钮 + return wx.showModal({ + title: '提示', + content: '您已关闭订阅消息通知,请点击“确认”按钮在设置中打开订阅通知。', + success: function (res) { + if (res.confirm) { + wx.openSetting({ + success(res) { + + } + }); + } + }, + complete(){ + THIS.setData({ + isLock:false + }) + } + }); + } else { // 开放订阅消息主按钮 + wx.requestSubscribeMessage({ + tmplIds:tmplIds, // 需要订阅的消息模板的id的集合,一次调用最多可订阅3条消息 + complete (res) { + callback(); + resolve() + } + }) + } + }, + complete(){ + wx.hideLoading(); + + } + }) + }) +}, + freePay() { + let { + order_no, + order_type + } = this.data; + lingyuanpay({ + order_type: order_type, + order_no: order_no + }).then((data) => { + wx.showToast({ + title: '支付成功', + icon:"none" + }) + this.goByType(); + + + }) + this.setData({ + isLock:false + }) + }, + goByType() { + let { + chat_id, + inquiry_type, + order_inquiry_id, + order_type, + order_id, + order_product_id, + fromType + } = this.data; + if (order_type == 2) { + wx.redirectTo({ + url: '/pages/medinceOrderDetail/medinceOrderDetail?order_product_id=' + order_product_id + "&fromType=" + fromType, + }) + }else if(order_type == 3){ + app.method.navigateTo({ + url: '/pages/checkOrderDetail/checkOrderDetail?order_detection_id=' + order_detection_id +"&fromType=" + fromType + }) + }else { + // 订单类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药) + if (inquiry_type == 1) { + app.method.navigateTo({ + url: '/TUIService/pages/index?currentConversationID=' + chat_id + "&order_inquiry_id=" + order_inquiry_id + "&inquiry_type=1&fromType=" + fromType + }) + }else if (inquiry_type == 2) { + wx.redirectTo({ + url: '/pages/allotDoctor/allotDoctor?inquiry_type=2&order_inquiry_id=' + order_inquiry_id + "&order_id=" + order_id + "&fromType=" + fromType + }) + } else if (inquiry_type == 3) { + app.method.navigateTo({ + url: '/TUIService/pages/index?currentConversationID=' + chat_id + "&order_inquiry_id=" + order_inquiry_id + "&inquiry_type=3&fromType=" + fromType + }) + }else if(inquiry_type == 4){ + wx.redirectTo({ + url: '/pages/allotDoctor/allotDoctor?inquiry_type=4&order_inquiry_id=' + order_inquiry_id + "&order_id=" + order_id + "&fromType=" + fromType + }) + } + } + + }, + //问诊订单详情 + handleinquiryDetail(id){ + inquiryDetail(id).then(data=>{ + if(data.inquiry_pay_status==2){ + Dialog.confirm({ + title: '温馨提示', + cancelButtonText: "确定", + selector:"#hasPayDialog" + }).then(() => { + wx.redirectTo({ + url: '/pages/orderDetail/orderDetail?order_inquiry_id=' +id + "&fromType=list", + }) + }) + } + }) + }, + //药品订单详情 + handleProductDetail(id){ + productDetail(id).then(data=>{ + if(data.inquiry_pay_status==2){ + Dialog.confirm({ + title: '温馨提示', + cancelButtonText: "确定", + selector:"#hasPayDialog" + }).then(() => { + wx.redirectTo({ + url: '/pages/medinceOrderDetail/medinceOrderDetail?order_product_id=' + id + "&fromType=" +encodeURIComponent("pages/medinceOrder/medinceOrder"), + }) + }) + } + }) + }, + //获取处方支付信息 + handlepayPrescription(id) { + payPrescription(id).then(data => { + this.setData({ + amount_total: data.amount_total, + coupon_amount_total: data.coupon_amount_total, + logistics_fee: data.logistics_fee, + payment_amount_total: data.payment_amount_total + }) + }) + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + //fromType list跳问诊订单列表页,处方过来的是链接,跳链接页 ,chat是问诊过来 + if (options.fromType) { + this.setData({ + fromType: options.fromType + }) + }; + //处方订单 + if (options.order_type == 2) { + let order_prescription_id = options.order_prescription_id; + this.setData({ + order_type: 2, + inquiry_type: '', + order_no: options.inquiry_no, + order_product_id: options.order_product_id, + order_prescription_id: order_prescription_id + }) + + }else if(options.order_type==3){//检测订单 + let order_detection_id = options.order_detection_id; + this.setData({ + order_type: 3, + inquiry_type: '', + order_no: options.inquiry_no, + order_detection_id + }) + + }else { + //问诊相关 + this.setData({ + doctor_id: options.doctor_id, + order_no: options.inquiry_no, + order_inquiry_id: options.order_inquiry_id, + chat_id: options.chat_id, + inquiry_type: options.inquiry_type, + inquiry_mode: options.inquiry_mode + }) + + } + + }, + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + this.setData({ + img_host:app.hostConfig().imghost + }) + this.payOrder(); + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + +}) \ No newline at end of file diff --git a/pages/payOrder/payOrder.json b/pages/payOrder/payOrder.json new file mode 100644 index 0000000..e545c52 --- /dev/null +++ b/pages/payOrder/payOrder.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "van-count-down": "@vant/weapp/count-down/index", + "van-dialog": "@vant/weapp/dialog/index" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "肝胆相照互联网医院" +} \ No newline at end of file diff --git a/pages/payOrder/payOrder.wxml b/pages/payOrder/payOrder.wxml new file mode 100644 index 0000000..b729912 --- /dev/null +++ b/pages/payOrder/payOrder.wxml @@ -0,0 +1,100 @@ + + + + + 订单中心 + + + + 请在 分钟内完成支付,超时订单自动取消 + 订单已超时,已自动取消 + + + + 支付金额 + {{payment_amount_total}} + + + + 专家问诊 + 快速问诊 + 公益问诊 + 问诊购药 + 药品金额 + 糖组检测 + + ¥{{amount_total}} + + + 邮费 + {{logistics_fee}} + + + 优惠劵 + {{cannot_use_coupon_reason}} + 暂不可用 + -¥{{moduleFilter.formatMoney(coupon_amount_total)}} + 暂无优惠券 + 暂不可用 + + + + + 支付金额:¥{{payment_amount_total}} + + 立即支付 + + + + + + 已为您锁定问诊名额,请在内完成支付,超时名额自动取消 + + + 订单超时,名额自动取消 + + + + + {{message_error}},确认前往订单详情 + + + + + 请在内完成支付,超时自动取消 + + + 订单超时,已自动取消 + + + + + + diff --git a/pages/payOrder/payOrder.wxss b/pages/payOrder/payOrder.wxss new file mode 100644 index 0000000..9cfda1d --- /dev/null +++ b/pages/payOrder/payOrder.wxss @@ -0,0 +1,118 @@ +/* pages/payOrder/payOrder.wxss */ +.ui-navigatorbar{ + background-color: #fff; +} +.tip{ + margin-top: 172rpx; + display: flex; + padding:30rpx 32rpx 30rpx; + align-items: center; +} + +.tip .red{ + font-size: 34rpx!important; + font-weight: 600!important; + color:#EF4F20!important; +} +.van-count-down{ + font-size: 34rpx!important; + font-weight: 600!important; + color:#EF4F20!important; + display: inline-block; +} +.tooltip{ + height: 50rpx; + display:flex; + align-items:center; + font-size: 28rpx; +font-weight: 400; +color: #333333; +} +.page{ + overflow: hidden; +} +.moneytop{ + padding:40rpx 30rpx; + background-color: #fff; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + border-bottom: 1rpx solid #E3E4E5; +} +.moneytop .name{ + font-size: 28rpx; +font-weight: 400; +color: #333333; +} +.moneytop .money{ + margin-top: 10rpx; + font-size: 34rpx; + font-weight: 600; + color: #333333; +} +.moneytop .price{ + font-size: 48rpx; + font-weight: 600; + color: #333333; +} +.moneybox .row{ + height:112rpx; + background-color: #fff; + border-bottom: 1rpx solid #E3E4E5; + display: flex; + align-items: center; + padding:0 32rpx; + justify-content: space-between; +} +.row .name{ + font-size: 28rpx; +color: #666666; +} +.row .desc{ + font-size: 32rpx; + +color: #333333; +} +.row .nodiscount{ + font-size: 28rpx; + font-weight: normal; +} +.bottom{ + width:100%; + position: fixed; + bottom:0; + display: flex; + align-items: center; + height: 114rpx; + justify-content: space-between; +background: #FFFFFF; +} +.bottom .realprice{ + margin-left: 32rpx; + font-size: 28rpx; +color: #333333; +line-height: 34rpx; +} +.wait{ + flex-shrink: 0; + width:30rpx; + height:30rpx; +} +.bottom .realprice .price{ + color:#EF4F20; + font-size: 32rpx; +} +.bottom .paybtn{ + margin-right: 32rpx; + width: 160rpx; + height: 60rpx; + background: #3CC7C0; + border-radius: 30rpx; + font-size: 30rpx; +font-weight: 400; +display: flex; +align-items: center; +justify-content: center; +color: #FFFFFF; +} \ No newline at end of file diff --git a/pages/payPlatform/payPlatform.js b/pages/payPlatform/payPlatform.js new file mode 100644 index 0000000..a4308b2 --- /dev/null +++ b/pages/payPlatform/payPlatform.js @@ -0,0 +1,338 @@ +// pages/payPlatform/payPlatform.js +const app = getApp(); +import Dialog from '@vant/weapp/dialog/dialog'; +import { + pay +} from "../../api/consult" +import { + throttle +} from "../../utils/util" +//import {payPrescription} from "../../api/prescription" +let isLock=false; +Page({ + + /** + * 页面的初始数据 + */ + data: { + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static', + doctor_id: '', + chat_id: '', + time: '', + inquiry_no: '', + amount_total: "", + order_detection_id:'', + coupon_amount_total: 0, + payment_amount_total: '', + pay_config: null, + created_at: "", + inquiry_type: "", + order_type: 1, + inquiry_mode: "", + order_inquiry_id: "", + order_no: "", + order_id: '', + order_product_id: '', + fromType: '', + paySucess:false + }, + payOrder() { + let { + order_no, + order_type + } = this.data; + pay({ + order_type: order_type, + order_no: order_no + }).then((result) => { + console.log('------------------------------------------') + console.log(result); + let data=result.data; + if(result.status==1){ + for (const key in data) { + this.setData({ + [key]: data[key] + }) + } + this.wxPay(); + }else{ + //inquiry_status '问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)', + //inquiry_pay_status//1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款); + let order_status='order_status'; + let pay_status='order_pay_status'; + let message_error=''; + if(data[order_status]==7){ + if(data[pay_status]==5){ + message_error="订单支付超时" + }else{ + message_error="订单已取消"; + } + }else if(data[pay_status]==1){ + message_error="订单未支付" + }else if(data[pay_status]==2){ + message_error="订单已支付" + }else if(data[pay_status]==3){ + message_error="订单支付中" + }else if(data[pay_status]==4){ + message_error="订单支付失败" + }else if(data[pay_status]==5){ + message_error="订单支付超时" + }else if(data[pay_status]==6){ + message_error="订单支付关闭" + }else if(data[pay_status]==7){ + message_error="订单支付已撤销" + }else if(data[pay_status]==8){ + message_error="订单已退款" + } + this.setData({ + message_error + }) + //异常 + Dialog.confirm({ + title: '温馨提示', + showCancelButton:false, + selector:"#myPayDialog" + }).then(() => { + if(order_type==1){ + wx.redirectTo({ + url: '/pages/orderDetail/orderDetail?order_inquiry_id='+data.order_id+ "&fromType=list", + }) + }else if(order_type==2){ + wx.redirectTo({ + url: '/pages/medinceOrderDetail/medinceOrderDetail?order_product_id='+data.order_id+ "&fromType=" +encodeURIComponent("pages/medinceOrder/medinceOrder"), + }) + }else{ + wx.redirectTo({ + url: '/pages/checkOrderDetail/checkOrderDetail?order_detection_id='+data.order_no+ "&fromType=" +encodeURIComponent("pages/checkOrder/checkOrder"), + }) + } + + }) + } + + }) + }, + goPay() { + this.wxPay(); + }, + handleThrottle: throttle(function () { + this.goPay() + }), + noPayGo(){ + let { + order_inquiry_id, + order_type, + order_product_id, + order_detection_id, + fromType + } = this.data; + if (order_type == 2) { + wx.redirectTo({ + url: '/pages/medinceOrderDetail/medinceOrderDetail?order_product_id=' + order_product_id + "&fromType=" + fromType, + }) + }else if(order_type == 3){ + wx.redirectTo({ + url: '/pages/checkOrderDetail/checkOrderDetail?order_detection_id=' + order_detection_id + "&fromType=" + fromType, + }) + }else { + wx.redirectTo({ + url: '/pages/orderDetail/orderDetail?order_inquiry_id='+ order_inquiry_id+ "&fromType=" + fromType, + }) + } + }, + goByType() { + let { + chat_id, + inquiry_type, + order_inquiry_id, + order_type, + order_id, + order_product_id, + order_detection_id, + fromType + } = this.data; + + if (order_type == 2) { + wx.redirectTo({ + url: '/pages/medinceOrderDetail/medinceOrderDetail?order_product_id=' + order_product_id + "&fromType=" + fromType, + }) + }else if(order_type == 3){ + wx.redirectTo({ + url: '/pages/checkOrderDetail/checkOrderDetail?order_detection_id=' + order_detection_id + "&fromType=" + fromType, + }) + }else { + // 订单类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药) + if (inquiry_type == 1) { + app.method.navigateTo({ + url: '/TUIService/pages/index?currentConversationID=' + chat_id + "&order_inquiry_id=" + order_inquiry_id + "&inquiry_type=1&fromType=" + fromType + }) + } else if (inquiry_type == 2) { + wx.redirectTo({ + url: '/pages/allotDoctor/allotDoctor?inquiry_type=2&order_inquiry_id=' + order_inquiry_id + "&order_id=" + order_id + "&fromType=" + fromType + }) + } else if (inquiry_type == 3) { + app.method.navigateTo({ + url: '/TUIService/pages/index?currentConversationID=' + chat_id + "&order_inquiry_id=" + order_inquiry_id + "&inquiry_type=3&fromType=" + fromType + }) + } else if(inquiry_type == 4) { + wx.redirectTo({ + url: '/pages/allotDoctor/allotDoctor?inquiry_type=4&order_inquiry_id=' + order_inquiry_id + "&order_id=" + order_id + "&fromType=" + fromType + }) + } + } + + }, + wxPay() { + let { + timeStamp, + nonceStr, + signType, + paySign + } = this.data.pay_config; + let { + order_type, + inquiry_type, + } = this.data; + let THIS = this; + let mypackage = this.data.pay_config.package; + isLock=false; + wx.requestPayment({ + timeStamp: timeStamp, + nonceStr: nonceStr, + package: mypackage, + signType: signType, + paySign: paySign, + success(res) { + wx.showToast({ + title: '成功', + icon: "none" + }); + THIS.setData({ + paySucess:true + }) + + }, + fail(res) { + wx.showToast({ + title: '支付失败', + icon: 'none' + }) + }, + complete(res) { + //处方到期通知 处方支付提醒 两个长期订阅任意一个订阅后才才调用前两个 + if (res.errMsg == "requestPayment:ok") { + if(!isLock){ + isLock=true; + THIS.goByType(); + } + + } else { + console.log("失败") + } + + } + }) + }, + handleThrottleBack: throttle(function () { + this.goback() + }, 1000), + goback() { + wx.navigateBack({ + delta: 1, + }) + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + if (options.fromType) { + this.setData({ + fromType: options.fromType + }) + } + + //处方订单 + if (options.order_type == 2) { + this.setData({ + order_type: options.order_type, + order_no: options.order_no, + inquiry_type: '', + order_product_id: options.order_product_id + }) + + }else if(options.order_type==3){//检测订单 + let order_detection_id = options.order_detection_id; + this.setData({ + order_type: 3, + inquiry_type: '', + order_no: options.order_no, + order_detection_id + }) + + }else { + //问诊相关 + this.setData({ + doctor_id: options.doctor_id, + order_no: options.order_no, + order_inquiry_id: options.order_inquiry_id, + chat_id: options.chat_id, + inquiry_type: options.inquiry_type, + inquiry_mode: options.inquiry_mode + }) + } + this.payOrder(); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + wx.hideShareMenu({ + menus: ['shareAppMessage', 'shareTimeline'] + }) + this.setData({ + img_host:app.hostConfig().imghost + }) + //isLock=false + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + if(this.data.paySucess && !isLock){ + this.goByType(); + } + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + // if(!this.data.paySucess){ + // this.noPayGo(); + // } + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + } +}) \ No newline at end of file diff --git a/pages/payPlatform/payPlatform.json b/pages/payPlatform/payPlatform.json new file mode 100644 index 0000000..18db619 --- /dev/null +++ b/pages/payPlatform/payPlatform.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "nav":"../../components/nav/nav", + "van-dialog": "@vant/weapp/dialog/index" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "肝胆相照互联网医院" +} \ No newline at end of file diff --git a/pages/payPlatform/payPlatform.wxml b/pages/payPlatform/payPlatform.wxml new file mode 100644 index 0000000..8e426c2 --- /dev/null +++ b/pages/payPlatform/payPlatform.wxml @@ -0,0 +1,16 @@ + + + + + 正在发起支付,支付完成前请不要退出 + + + 重新支付 + 返回 + + + + + {{message_error}},确认前往订单详情 + + diff --git a/pages/payPlatform/payPlatform.wxss b/pages/payPlatform/payPlatform.wxss new file mode 100644 index 0000000..7ad7220 --- /dev/null +++ b/pages/payPlatform/payPlatform.wxss @@ -0,0 +1,43 @@ +/* pages/payPlatform/payPlatform.wxss */ +.page{ + display: flex; + flex-direction: column; + align-items: center; + min-height: 100%; + overflow: hidden; +} +.img{ + margin:257rpx 0 50rpx ; + width:300rpx; + height:230rpx; +} +.tips{ +font-size: 28rpx; +font-weight: 400; +color: #333333; +} + +.btnbox{ + left:40rpx; + right:40rpx; + position: absolute; + bottom:150rpx; +} +.btnbox .btn{ +height: 94rpx; +display: flex; +justify-content: center; +align-items: center; +font-size: 36rpx; +border: 1rpx solid #3CC7C0; +color: #FFFFFF; +width:100%; +background: #3CC7C0; +border-radius: 47rpx; +} +.btnbox .back{ + margin-top: 48rpx; + color: #3CC7C0; + background: #FFFFFF; + border: 1rpx solid #3CC7C0; +} \ No newline at end of file diff --git a/pages/personCenter/personCenter.js b/pages/personCenter/personCenter.js new file mode 100644 index 0000000..b841c99 --- /dev/null +++ b/pages/personCenter/personCenter.js @@ -0,0 +1,281 @@ +// pages/personCenter/personCenter.js +const app = getApp() +import { + getInfo, + editAvatar, + editName, + loginout, + getConfig, + editConfig +} from "../../api/personCenter" +import { + getSign +} from "../../api/common" +import {throttle} from "../../utils/util" +Page({ + + /** + * 页面的初始数据 + */ + data: { + user_info: null, + showCrop:false, + fileList: [], + isLock:false, + src: '', + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static', + width: 250, //宽度 + height: 250, //高度 + max_width: 300, + max_height: 300, + disable_rotate: true, //是否禁用旋转 + disable_ratio: false, //锁定比例 + limit_move: true, //是否限制移动 + }, + goBack(){ + wx.navigateBack({ + delta: 1, + }) + }, + upload(file){ + let THIS = this; + wx.showToast({ + icon: "loading", + title: '头像上传中' + }) + getSign({ + user_type: 1, + scene: 1 + }).then((resdata) => { + let { + accessid, + dir, + policy, + signature, + host + } = resdata; + let imgUrl = file.url; + let index = imgUrl.lastIndexOf("/"); + let filename = imgUrl.substring(index + 1, imgUrl.length); + wx.uploadFile({ + url: host, // 仅为示例,非真实的接口地址 + filePath: file.url, + name: 'file', + formData: { + OSSAccessKeyId: accessid, + policy, + key: dir + filename, + signature + }, + success(res) { + if (res.statusCode === 204) { + let url = host + '/' + dir + filename; + // 上传完成需要更新 fileList + // const { fileList} = THIS.data; + // fileList.push({ ...file, url: url }); + editAvatar({ + avatar: url + }).then(res => { + wx.showToast({ + icon: "none", + title: '头像保存成功' + }) + + THIS.setData({ + 'user_info.avatar': url + }); + }) + + } + }, + fail: err => { + console.log(err); + } + }); + + }) + }, + afterRead(event) { + const { + file + } = event.detail; + this.setData({ + showCrop:true, + src:file.url + }) + + + }, + editNameModal() { + let THIS = this; + wx.showModal({ + title: '请输入姓名', + editable: true, + confirmColor: "#3CC7C0", + success(res) { + if (res.confirm) { + if (!/^[\u4E00-\u9FA5A-Za-z0-9_]{2,10}$/.test(res.content)) { + wx.showToast({ + title: `姓名要求在2-10个字符`, + icon: 'none', + }); + return false; + }; + THIS.editNameHandle(res.content); + + } else if (res.cancel) { + console.log('用户点击取消') + } + } + }) + }, + handleThrottle:throttle(function(){ + this.handleLogout() + }), + goNotify:throttle(function(){ + app.method.navigateTo({ + url: '/pages/notify/notify', + }) + }), + handleLogout() { + if(!this.data.isLock){ + if(wx.$TUIKit){ + wx.$TUIKit.destroy() + }; + this.setData({ + isLock:true + }) + loginout().then(data => { + this.setData({ + isLock:false + }) + wx.showToast({ + title: `退出成功`, + icon: 'none', + }); + app.globalData.totalUnread=0; + app.globalData.conversationList=[]; + wx.clearStorageSync(); + wx.setStorageSync('hasEntry', true); + wx.reLaunch({ + url: '/pages/login/login' + }) + + }) + } + + }, + + editNameHandle(user_name) { + editName({ + user_name + }).then(data => { + this.setData({ + 'user_info.user_name': user_name + }) + wx.showToast({ + title: `姓名修改成功`, + icon: 'none', + }); + }) + }, + getInfoDetail() { + getInfo().then((data) => { + this.setData({ + user_info: data + }) + + }) + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + this.getInfoDetail(); + this.initCrop(options); + }, + closeCrop(){ + this.setData({ + showCrop:false + }) + }, + submit() { + this.setData({ + showCrop:false + }) + this.cropper.getImg((obj) => { + this.upload(obj) + }); +}, +cropperload(e) { + console.log('cropper加载完成'); +}, + initCrop(options){ + + this.cropper = this.selectComponent("#image-cropper"); + + + + if(options.imgSrc){ + this.setData({ + src: options.imgSrc + }); + } + + // if(!options.imgSrc){ + // this.cropper.upload(); //上传图片 + // } + }, + loadimage(e) { + + this.cropper.imgReset(); +}, + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + this.setData({ + img_host:app.hostConfig().imghost + }) + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + +}) \ No newline at end of file diff --git a/pages/personCenter/personCenter.json b/pages/personCenter/personCenter.json new file mode 100644 index 0000000..d85508d --- /dev/null +++ b/pages/personCenter/personCenter.json @@ -0,0 +1,10 @@ +{ + "usingComponents": { + "van-uploader": "@vant/weapp/uploader/index", + "nav":"../../components/nav/nav", + "image-cropper": "../../components/image-cropper/image-cropper", + "van-overlay": "@vant/weapp/overlay/index" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "肝胆相照互联网医院" +} \ No newline at end of file diff --git a/pages/personCenter/personCenter.wxml b/pages/personCenter/personCenter.wxml new file mode 100644 index 0000000..85acbf7 --- /dev/null +++ b/pages/personCenter/personCenter.wxml @@ -0,0 +1,53 @@ + + + + + + 头像 + + + + + + + + + + + + + + + 用户名 + + + {{user_info.user_name}} + + + + + + 消息通知 + + + + + + 绑定手机号 + + {{user_info.mobile}} + + + + + + 退出当前账号 + + + + + + + + + \ No newline at end of file diff --git a/pages/personCenter/personCenter.wxss b/pages/personCenter/personCenter.wxss new file mode 100644 index 0000000..4194d54 --- /dev/null +++ b/pages/personCenter/personCenter.wxss @@ -0,0 +1,103 @@ +/* pages/personCenter/personCenter.wxss */ +.page{ + position: relative; + width: 100vw; + height:100vh; + overflow: scroll; + -webkit-overflow-scrolling: touch; + background: #F2F2F2; +} +.cellbox{ + margin-top: 172rpx; +} +.buttonbox{ + position: absolute; + z-index:99; + display: flex; + width:600rpx; + left:50%; + transform: translateX(-50%); + justify-content: space-between; + bottom:50rpx; +} + +.cell{ + overflow: hidden; + display: flex; + width:100%; + background-color: #fff; + height: 112rpx; + align-items: center; + justify-content: space-between; + border-bottom: 1rpx solid#F2F2F2; +} +.righticon { + width: 24rpx; + height: 48rpx; + +} +.left{ + margin-left: 32rpx; +} +.imgview{ + margin-right: 20rpx; + color: #666666; + font-size: 28rpx; +} +.headicon{ + width:80rpx; + height:80rpx; + border-radius: 50%; +} +.edit{ + width:28rpx; + height:28rpx; +} +.right{ + position: relative; + flex:1; + font-size: 28rpx; + margin-right: 32rpx; + display: flex; + justify-content: flex-end; + color: #666666; + align-items: center; +} +.logout{ +bottom:20rpx; +position: absolute; +left:32rpx; +right:32rpx; +height: 94rpx; +background: #3CC7C0; +border-radius: 47rpx; +display: flex; +justify-content: center; +align-items: center; +font-size: 36rpx; +color: #FFFFFF; +} +.box{ + width:100%; + display: flex; + align-items: center; + justify-content: flex-end; +} +.upload{ + opacity: 0; + width:100%; + right:0; + position: absolute; + +} +.van-uploader__wrapper{ + width:100%!important; + flex:1; + justify-content: flex-end; +} +.van-uploader__upload{ + width:100%!important; +} +.van-uploader{ + width:100%; +} \ No newline at end of file diff --git a/pages/prescriptDetail/prescriptDetail.js b/pages/prescriptDetail/prescriptDetail.js new file mode 100644 index 0000000..d00b5e6 --- /dev/null +++ b/pages/prescriptDetail/prescriptDetail.js @@ -0,0 +1,104 @@ +// pages/prescriptDetail/prescriptDetail.js +const app = getApp() +import {prescriptionDetail} from "../../api/prescription" +import {throttle} from "../../utils/util" +Page({ + + /** + * 页面的初始数据 + */ + data: { + prescript:null, + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static', + fromType:'' + }, + goBack(){ + wx.navigateBack({ + delta: 1, + }) + }, + goPayInfo:throttle(function(){ + if(getCurrentPages().length>=8){ + wx.reLaunch({ + url: '/pages/payInfo/payInfo?order_prescription_id='+this.data.order_prescription_id+"&fromType="+this.data.fromType, + }) + }else{ + app.method.navigateTo({ + url: '/pages/payInfo/payInfo?order_prescription_id='+this.data.order_prescription_id+"&fromType="+this.data.fromType + }) + } + + }), + + handelprescriptionDetail(id){ + prescriptionDetail(id).then(data=>{ + this.setData({ + prescript:data + }) + }) + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + if(options.fromType){ + this.setData({ + fromType:options.fromType + }) + } + this.setData({ + order_prescription_id:options.order_prescription_id + }) + this.handelprescriptionDetail(options.order_prescription_id) + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + this.setData({ + img_host:app.hostConfig().imghost + }) + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + +}) \ No newline at end of file diff --git a/pages/prescriptDetail/prescriptDetail.json b/pages/prescriptDetail/prescriptDetail.json new file mode 100644 index 0000000..18db619 --- /dev/null +++ b/pages/prescriptDetail/prescriptDetail.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "nav":"../../components/nav/nav", + "van-dialog": "@vant/weapp/dialog/index" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "肝胆相照互联网医院" +} \ No newline at end of file diff --git a/pages/prescriptDetail/prescriptDetail.wxml b/pages/prescriptDetail/prescriptDetail.wxml new file mode 100644 index 0000000..736c229 --- /dev/null +++ b/pages/prescriptDetail/prescriptDetail.wxml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + 1)处方有效期为3天,请及时结算; + 2)本处方限于成都金牛欣欣相照互联网医院使用,自行下载配药不具有处方效力; + 3)根据《医疗机构药事管理规定》第二十八条,为保障患者用药安全,药品一经发出,不得退换; + 4)按照"网订店送"规定,处方由药店药师复核,确认用药无误签字后方可生效。 + + + + 去结算 + + \ No newline at end of file diff --git a/pages/prescriptDetail/prescriptDetail.wxss b/pages/prescriptDetail/prescriptDetail.wxss new file mode 100644 index 0000000..d292a89 --- /dev/null +++ b/pages/prescriptDetail/prescriptDetail.wxss @@ -0,0 +1,153 @@ +/* pages/prescriptDetail/prescriptDetail.wxss */ +.page{ + display: flex; + flex-direction: column; + background-color: #fff; + +} + +.imgbox{ + width:100%; + height:0; + position: relative; + padding-bottom:141%; +} +.prescription{ + position: absolute; + top:0px; + height:100%; + bottom:0px; + width: 100%; + +} +.doctorSign{ + position: absolute; + width:100rpx; + height:53rpx; +left:124rpx; +bottom:116rpx; +} +.doctorSign .signimg{ + height:53rpx; + width:100%; +} +.pharmacistSign{ + position: absolute; + width:168rpx; + height:85rpx; + left:405rpx; + bottom:96rpx; +} +.hospitalSign{ + right:30rpx; + bottom:200rpx; + position: absolute; + width:160rpx; + height:160rpx; +} +.form{ + margin-top: 172rpx; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; + flex:1; + background: #FFFFFF; + padding:70rpx 32rpx 30rpx; + position: relative; +} +.cell:last-child .form{ + border-bottom:none; +} +.title .status{ + color: #EF4F20; + font-size: 28rpx; +} +.row .outdate{ + color: #333; + font-size: 28rpx; +} + +.title .date{ + color:#000; + font-size: 34rpx; +} +.form .row{ + display: flex; + line-height: 52rpx; +} +.row .unit{ + color:#666; + font-weight: normal; + display: inline; + white-space: nowrap; + +} +.row .bar{ + margin:0 8rpx 1rpx; + color:#333; +} +.single{ + display: inline-flex; + white-space: nowrap; + align-items: center; + position: relative; + margin-right:20rpx; + margin-left: 15rpx; +} +.single:first-child{ + margin-left: 0; +} + +.single::after{ + content:"|"; + color:#333; + position: absolute; + top:-3rpx; + right:-20rpx; +} +.single:last-child::after{ + display: none; +} +.row .name{ + color:#333; + font-size: 28rpx; +} +.zhang{ + position: absolute; + top:-10rpx; + left:-15rpx; + width:249rpx; + height:249rpx; +} +.row .desc{ + color:#333; + font-size: 28rpx; + font-weight: bold; + display: flex; + flex-wrap: wrap; +} +.tips{ + padding:30rpx 32rpx 0rpx; + background-color: #fff; +} +.tip{ + margin-top: 20rpx; + font-size: 28rpx; +font-family: PingFangSC-Regular, PingFang SC; +font-weight: 400; +color: #333333; +line-height: 44rpx; + +} +.pay{ + display: flex; + margin:0 32rpx 20rpx; + align-items: center; + justify-content: center; + height: 94rpx; +background: #3CC7C0; +border-radius: 47rpx; + font-size: 36rpx; +font-weight: 400; +color: #FFFFFF; + +} \ No newline at end of file diff --git a/pages/quickConsult/quickConsult.js b/pages/quickConsult/quickConsult.js new file mode 100644 index 0000000..378cedd --- /dev/null +++ b/pages/quickConsult/quickConsult.js @@ -0,0 +1,145 @@ +// pages/consultAndBuy.js +const app = getApp() +import { + getConsultTime, + isReceivepatient +} from "../../api/consultExpert" +import {throttle} from "../../utils/util" +Page({ + + /** + * 页面的初始数据 + */ + data: { + currentData: null, + show: false, + id: '', + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static', + navName:"快速问诊", + inquiry_type:2 + + + }, + handleGetConsultTime() { + let {inquiry_type}=this.data; + getConsultTime({ + inquiry_type:inquiry_type, + inquiry_mode: 1, + }).then(data => { + this.setData({ + currentData: data + }) + }) + }, + confirm(event) { + let {id}=this.data; + if (event.detail) { + app.method.navigateTo({ + url: '/pages/orderDetail/orderDetail?order_inquiry_id=' + id, + }) + } + }, + handleIsReceivepatient() { + let {inquiry_type}=this.data; + isReceivepatient({ + inquiry_type:inquiry_type, + inquiry_mode: 1, + doctor_id: '' + }).then(data => { + if (data.status == 1) { + if(inquiry_type==2){ + app.method.navigateTo({ + url: '/pages/selectPatient/selectPatient?inquiry_type=2', + }) + }else{ + app.method.navigateTo({ + url: '/pages/applyMedince/applyMedince', + }) + } + + + } else if (data.status == 2) { + this.setData({ + show: true, + id: data.data.order_inquiry_id + }) + } else if (data.status == 3) { + wx.showToast({ + title: data.message, + icon: "none" + }) + } + }) + }, + handleThrottle:throttle(function(){ + + this.goApplyMedince() + }), + goApplyMedince() { + this.handleIsReceivepatient(); + + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + if(options.inquiry_type){ + this.setData({ + inquiry_type:options.inquiry_type, + navName:"问诊购药" + }) + wx.setNavigationBarTitle({ + title: '问诊购药', + }) + } + this.handleGetConsultTime() + }, + goBack(){ + wx.navigateBack({ + delta: 1, + }) + }, + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + this.setData({ + img_host:app.hostConfig().imghost + }) + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + } +}) \ No newline at end of file diff --git a/pages/quickConsult/quickConsult.json b/pages/quickConsult/quickConsult.json new file mode 100644 index 0000000..9e58ae8 --- /dev/null +++ b/pages/quickConsult/quickConsult.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "dialog":"../../components/dialog/dialog", + "nav":"../../components/nav/nav" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "肝胆相照互联网医院" +} \ No newline at end of file diff --git a/pages/quickConsult/quickConsult.wxml b/pages/quickConsult/quickConsult.wxml new file mode 100644 index 0000000..ad0a8dd --- /dev/null +++ b/pages/quickConsult/quickConsult.wxml @@ -0,0 +1,150 @@ + + + + + + + + + + + {{item}} + + + + + {{item}} + + + + + + + 问诊开药 + + + + 无需等待 + 5分钟接诊、{{currentData.duration}}分钟不限次{{currentData.times_number}}次沟通 + + + + 服务保障 + 公立医院主治及以上医生服务 + + + + 服务费用 + + 免费 + ¥{{currentData.inquiry_price}} + + + + + + + 快速问诊 + + + + 无需等待 + 5分钟接诊、{{currentData.duration}}分钟不限次{{currentData.times_number}}次沟通 + + + + 服务保障 + 公立医院主治及以上医生服务 + + + + + + + 服务流程 + + + + + + + + 选择药品 + + + + + + 填写病情 + + + + + + 问诊开方 + + + + + + 送药到家 + + + + + + + + 服务流程 + + + + + + + 填写病情 + + + + + + 分配医生 + + + + + + 等待接诊 + + + + + + 立即问 + + + + + + + + 快速图文问诊 + 专业医生实时在线 + + + + + ¥{{currentData.inquiry_price}} + 立即问 + + + + \ No newline at end of file diff --git a/pages/quickConsult/quickConsult.wxss b/pages/quickConsult/quickConsult.wxss new file mode 100644 index 0000000..4850be2 --- /dev/null +++ b/pages/quickConsult/quickConsult.wxss @@ -0,0 +1,252 @@ +/* pages/consultAndBuy.wxss */ +.page{ + position: relative; + overflow: scroll; + +} +.people{ + top:508rpx; + position: absolute; + width:274rpx; + height:260rpx; + z-index:9; +} + +.board { + display: flex; + position: relative; + z-index:1; + background-color: #fff; + flex-direction: column; + margin: 0rpx 32rpx 0; + padding-bottom: 22rpx; + border-radius: 10rpx; +} +.quicktimebox{ + position: absolute; + top:592rpx; + font-size: 36rpx; + font-weight: 600; + color:#fff; + left:40rpx; + right:40rpx; +} +.timebox{ + position: absolute; + top:532rpx; + line-height:40rpx; + font-size: 32rpx; + color:#fff; + left:495rpx; +} +.redcolor{ + font-size: 44rpx; + font-weight: 600; + color: #F83C3C; +} +.bg{ + top:172rpx; + width:100%; + bottom: 0; + position: absolute; +} +.quicktime{ + display: inline; + margin-right: 5rpx; + flex-wrap: wrap; +} +.juxing{ + margin:0 auto; + width:654rpx; + height:68rpx; +} +.titlename{ + position: absolute; + top:50%; + left:50%; + transform: translate(-50%,-50%); +} +.board .title { + position: relative; + font-size: 30rpx; + font-weight: 600; + color: #333333; + margin: 0 auto; +} + +.board .icon { + width: 36rpx; + height: 38rpx; + flex-shrink: 0; +} + +.rowcell { + margin: 0rpx 10rpx 12rpx; + background: #EEFAF9; + border-radius: 10rpx; + padding: 13rpx 25rpx; + align-items: center; + + justify-content: flex-start; + display: flex; +} + +.box { + position: relative; + z-index:2; + margin: 40rpx 32rpx 0; + height: 172rpx; + background: #FFF5E0; + display: flex; + align-items: center; + display: flex; + justify-content: space-between; + border-radius: 10rpx; + border: 1rpx solid #ED9C00 +} + +.leftbox { + + display: flex; + align-items: center; + margin-left: 30rpx; + +} +.desc{ + margin-left: 30rpx; +} +.imgbox{ + background: #fff; + border-radius: 10rpx; + width: 120rpx; + display: flex; + justify-content: center; + align-items: center; + height: 128rpx; +} +.person{ + width: 100%; + height:100%; +} + +.leftbox .name{ + font-size: 34rpx; +font-weight: 600; +color: #333333; +} +.leftbox .tips{ + margin-top: 20rpx; + font-size: 24rpx; +color: #666666 +} +.rightbox { + margin-right:20rpx; + display: flex; + flex-direction: column; + align-items: center; +} +.rightbox .btn{ + margin-top: 9rpx; + width: 160rpx; + font-size: 30rpx; +color: #FFFFFF; +display: flex; +align-items: center; +justify-content: center; +height: 60rpx; +background: #3CC7C0; +border-radius: 30rpx; +} +.rightbox .free{ + font-size: 30rpx; +font-weight: 400; +color: #EF4F20; +} +.rightbox .price{ + font-size: 34rpx; + font-weight: 600; + color: #EF4F20; +} +.rightbox .unit{ + font-weight:normal; + font-size: 24rpx; + color:rgba(102, 102, 102, 1); +} +.rowcell .bold{ + white-space: nowrap; + margin-left: 20rpx; + font-size: 34rpx; +font-weight: 600; +color: #333333; +line-height: 48r +} +.rowcell .text{ + margin-left: 34rpx; + font-size: 28rpx; + color: rgba(102, 102, 102, 1) +} +.rowcell .addcolor{ + font-size: 28rpx; + color: #ED9C00; +} +.boxcell{ + position: relative; + z-index:2; + display: flex; + flex-direction: column; + align-items: center; +} +.boxcell .imgbox{ + width: 80rpx; +height: 80rpx; +display: flex; +align-items: center; +justify-content: center; +background: #FFFFFF; +border: 2rpx solid #3CC7C0; +border-radius: 8rpx; +} +.boxcell .desc{ + margin:5rpx auto 0; + text-align: center; + font-size: 24rpx; + font-weight: 400; + color: #00A6A4; +} +.progressbox .line{ + top:60rpx; + position: absolute; + left:35rpx; + z-index:0; + right:35rpx; + height:2rpx; + background-color: #3CC7C0; +} +.progressbox{ + position: relative; + margin:13rpx 24rpx 0; + padding:0 28rpx; + height: 157rpx; + display: flex; + justify-content: space-between; + align-items: center; +background: #EEFAF9; +border-radius: 10rpx; +} +.button{ + + position: relative; + z-index:1; + display: flex; + align-items: center; + justify-content: center; + font-size: 44rpx; +font-weight: 600; +color: #3CC7C0; + height: 96rpx; +background: #FFFFFF; +box-shadow: 0rpx 2rpx 4rpx 0rpx #118882; +border-radius: 48rpx; +border: 2rpx solid #3CC7C0; + margin: 60rpx 32rpx 0; +} \ No newline at end of file diff --git a/pages/refundMsgList/refundMsgList.js b/pages/refundMsgList/refundMsgList.js new file mode 100644 index 0000000..29652ea --- /dev/null +++ b/pages/refundMsgList/refundMsgList.js @@ -0,0 +1,165 @@ +// pages/refundMsgList/refundMsgList.js +const app = getApp() +import {throttle} from "../../utils/util" +import { + hasRead, + getMsg +} from "../../api/msg" +Page({ + + /** + * 页面的初始数据 + */ + data: { + list:[], + isTriggered:false, + isLock:false, + navName:"退款消息", + page:1, + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static', + notice_system_type:3, + pageNumber:10 + }, + handleGo:throttle(function(event){ + let link_type=event.currentTarget.dataset.type; + let index=event.currentTarget.dataset.index; + let link_params=event.currentTarget.dataset.params; + let id=event.currentTarget.dataset.id; + let status=event.currentTarget.dataset.status; + hasRead(id).then(data=>{ + let currentItem=`list[${index}].read_status` + if(status==0){ + this.setData({ + [currentItem]:1 + }) + } + this.goOther(link_type,link_params); + }) + }), + lower(){ + if(!this.data.isLock){ + this.setData({ + page:++this.data.page + }) + this.handleGetMsg(); + } + }, + goBack(){ + wx.navigateBack({ + delta: 1, + }) + }, + handleRefresher(){ + this.setData({ + page:1, + isLock:false, + list:[] + }) + this.handleGetMsg() + }, + handleGetMsg(){ + let {page,pageNumber,notice_system_type}=this.data; + getMsg({ + page:page, + per_page:pageNumber, + notice_system_type:notice_system_type + }).then(data=>{ + let result=data.data; + if(result.length==0){ + this.setData({ + isLock:true + }) + }; + this.setData({ + isTriggered:false, + list:this.data.list.concat(result) + }) + }) + }, + goOther(link_type,link_params){ + + let url=''; + if(link_type==1){ + url= '/TUIService/pages/index?currentConversationID='+link_params.doctor_user_id+'&order_inquiry_id='+link_params.order_inquiry_id+'&inquiry_type='+link_params.inquiry_type; + }else if(link_type==7){ + url='/pages/myWelfare/myWelfare' + }else if(link_type==8){ + url='/pages/medinceOrder/medinceOrder' + }else if(link_type==9){ + url='/pages/expressDetail/expressDetail?logistics_no='+link_params.order_product_id + }else if(link_type==10){ + url='/pages/orderDetail/orderDetail?order_inquiry_id='+link_params.order_inquiry_id + }else if(link_type==12){ + + }else if(link_type==13){ + url='/pages/prescriptDetail/prescriptDetail?order_prescription_id='+link_params.order_prescription_id + }; + app.method.navigateTo({ + url: url, + }) + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + if(options.type=="express"){ + this.setData({ + notice_system_type:4, + navName:"物流消息" + }); + wx.setNavigationBarTitle({ + title: '物流消息', + }) + } + this.handleGetMsg(); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + this.setData({ + img_host:app.hostConfig().imghost + }) + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + +}) \ No newline at end of file diff --git a/pages/refundMsgList/refundMsgList.json b/pages/refundMsgList/refundMsgList.json new file mode 100644 index 0000000..44a996f --- /dev/null +++ b/pages/refundMsgList/refundMsgList.json @@ -0,0 +1,7 @@ +{ + "usingComponents": { + "nav":"../../components/nav/nav" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "肝胆相照互联网医院" +} \ No newline at end of file diff --git a/pages/refundMsgList/refundMsgList.wxml b/pages/refundMsgList/refundMsgList.wxml new file mode 100644 index 0000000..c0d74b0 --- /dev/null +++ b/pages/refundMsgList/refundMsgList.wxml @@ -0,0 +1,29 @@ + + + + + + + {{item.notice_send_time}} + + + + + {{item.notice_title}} + + + {{item.notice_content}} + + 点击查看 + + + + + + 暂无数据! + + diff --git a/pages/refundMsgList/refundMsgList.wxss b/pages/refundMsgList/refundMsgList.wxss new file mode 100644 index 0000000..a2d3b12 --- /dev/null +++ b/pages/refundMsgList/refundMsgList.wxss @@ -0,0 +1,90 @@ +/* pages/refundMsgList/refundMsgList.wxss */ +/* pages/fuliMsgList/fuliMsgList.wxss */ +.page{ + overflow: hidden; + display: flex; + flex-direction: column; +} +.cellbox{ + flex:1; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; + margin-top: 172rpx; + margin-bottom: 20rpx; +} +.nonedata{ + margin-top: 172rpx; +} +.cell{ + + margin: 30rpx 32rpx 0; + display: flex; + flex-direction: column; + align-items: center; +} +.cell .date{ + display: flex; + align-items: center; + height: 40rpx; + padding:0 20rpx; + font-size: 28rpx; + +font-weight: 400; +color: #333333; +background: #E1E1E1; +} +.titlebox .icon{ + margin-top: 8rpx; + width:46rpx; + height:48rpx; +} +.circle{ + top:5rpx; + right:10rpx; + width:20rpx; + position: absolute; + height:20rpx; + border-radius: 50%; + background-color: rgba(239, 79, 32, 1); +} +.titlebox{ + position: relative; + padding:20rpx; + display: flex; + align-items:flex-start; + border-bottom: 1rpx solid #E7E7E7; +} +.board{ + padding-top:20rpx; + margin-top: 36rpx; + width:100%; + padding-bottom: 30rpx; + background-color: #fff; + border-radius: 10rpx; +} +.board .name{ + margin-left: 10rpx; + font-size: 34rpx; +color: #333333; +} +.board .detail{ + font-size: 28rpx; + padding:20rpx; +color: #666666; +line-height: 42rpx; +} +.board .bottom{ + padding:0 20rpx; + display: flex; + font-size: 28rpx; +font-weight: 400; +color: #333333; + justify-content: space-between; +} +.bottom .righticon{ + width:16rpx; + height:32rpx; +} +.nonedata{ + min-height:600rpx; +} \ No newline at end of file diff --git a/pages/search/search.js b/pages/search/search.js new file mode 100644 index 0000000..362d82a --- /dev/null +++ b/pages/search/search.js @@ -0,0 +1,213 @@ +// pages/search/search.js +const app = getApp() +import {doctorList} from "../../api/consultExpert" +import {hotSearch} from "../../api/common" + +Page({ + + /** + * 页面的初始数据 + */ + data: { + keyword:'', + page:1, + pageNumber:10, + toggle:false, + lock:false, + doctorList:[], + seachList:[], + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static', + hotList:[] + }, + goSearch(){ + this.handleSearch(this.data.keyword) + }, + changeIpt(event){ + this.setData({ + keyword:event.detail.value + }) + }, + getIptvalue(event){ + this.setData({ + keyword:event.detail.value + }); + this.handleSearch(event.detail.value) + }, + handleSearch(value){ + if(!value) { + wx.showToast({ + title: '搜索内容不能为空', + icon:"none" + }) + return false + }; + let serachList=wx.getStorageSync('serachList'); + let serachArr=[]; + if(serachList){ + serachArr=JSON.parse(serachList); + }; + var index=serachArr.indexOf(value); + + if(index!=-1){ + serachArr.splice(index,1); + }; + if(serachArr.length>=30){ + serachArr.pop(); + }; + serachArr.unshift(value); + wx.setStorageSync('serachList',JSON.stringify(serachArr)); + this.setData({ + seachList:serachArr + }) + this.onfresh(); + }, + handlehotSearch(){ + hotSearch({ + client_type:1, + keyword_place:1 + }).then(data=>{ + this.setData({ + hotList:data + }) + }) + }, + selectHistroy(event){ + let value=event.currentTarget.dataset.id; + this.setData({ + keyword:value, + toggle:true + }); + this.handleSearch(value) + }, + getSearchList(){ + let serachList=wx.getStorageSync('serachList'); + let serachArr=[]; + if(serachList){ + serachArr=JSON.parse(serachList); + }; + this.setData({ + seachList:serachArr + }) + }, + goBack(){ + wx.navigateBack({ + delta: 1, + }) + }, + goExpertDetail(event){ + app.method.navigateTo({ + url: '/pages/expertDetail/expertDetail?doctor_id='+event.currentTarget.dataset.doctorid + }) + }, + delSearch(){ + wx.setStorageSync('serachList',''); + this.getSearchList(); + wx.showToast({ + title: '搜索历史已清空', + icon:'none' + }) + }, + getDoctorList(){ + let {keyword,page,pageNumber}=this.data; + doctorList({ + keyword:keyword, + page:page, + per_page:pageNumber + }).then((res)=>{ + let {doctorList}=this.data; + if(res.data.length==0){ + this.setData({ + lock:true + }); + return false; + }else{ + this.setData({ + toggle:true, + doctorList:doctorList.concat(res.data) + }) + } + + + }) + }, + onfresh(){ + this.setData({ + page:1, + doctorList:[], + lock:false + }) + this.getDoctorList(); + }, + lower(e) { + let {lock}=this.data; + let addPage=this.data.page+1; + if(!lock){ + this.setData({ + page:addPage + }); + this.getDoctorList(); + } + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + this.getSearchList(); + this.handlehotSearch(); + if(options.keyword){ + this.setData({ + keyword:options.keyword + }) + } + //this.getDoctorList(); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + this.setData({ + img_host:app.hostConfig().imghost + }) + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + +}) \ No newline at end of file diff --git a/pages/search/search.json b/pages/search/search.json new file mode 100644 index 0000000..44a996f --- /dev/null +++ b/pages/search/search.json @@ -0,0 +1,7 @@ +{ + "usingComponents": { + "nav":"../../components/nav/nav" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "肝胆相照互联网医院" +} \ No newline at end of file diff --git a/pages/search/search.wxml b/pages/search/search.wxml new file mode 100644 index 0000000..59851e7 --- /dev/null +++ b/pages/search/search.wxml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + {{item.user_name}} + {{item.hospital.hospital_level_name}} + 可处方 + + + {{item.doctor_title_name}}{{item.department_custom_name}} + {{item.hospital.hospital_name}} + 擅长:{{item.be_good_at}} + + + + + 公益问诊:¥{{item.free_clinic_price}} + 专家问诊:¥{{item.price}} + + + + + + + 暂无数据! + + + \ No newline at end of file diff --git a/pages/search/search.wxss b/pages/search/search.wxss new file mode 100644 index 0000000..6525a62 --- /dev/null +++ b/pages/search/search.wxss @@ -0,0 +1,205 @@ +/* pages/search/search.wxss */ +.page{ + background: #fff; + display: flex; + flex-direction: column; +} +.searchbox { + margin:30rpx 30rpx 0; + height: 72rpx; + display: flex; + border-radius: 40rpx; + align-items: center; + margin-top: 192rpx; + background: #FBFBFB; + border-radius: 36px; + border: 1rpx solid #3CC7C0; +} +.searchIpt{ + font-size: 28rpx; + font-weight: 400; + color: #999999; +} +.searchbox input { + margin-left: 30rpx; + flex: 1; + font-size: 32rpx; + height: 80rpx; +} +.searchbox image { + width: 30rpx; + height: 30rpx; + padding:20rpx; + margin-right: 8rpx; +} +.listUl{ + margin:30rpx 32rpx 0; + display: flex; + flex-wrap: wrap; +} +.listUl .cell{ +width: 154rpx; +padding:0 10rpx; +box-sizing: border-box; +margin-right: 23rpx; +margin-bottom: 30rpx; +text-align: center; +line-height: 60rpx; +height: 60rpx; +background: #F4F4F4; +border-radius: 30rpx; +font-size: 28rpx; +color: #666666; +white-space: nowrap; +text-overflow: ellipsis; +overflow: hidden; +} +.titlebox{ + margin:30rpx 32rpx 0; + display: flex; + align-items: center; + justify-content: space-between; +} + +.titlebox .del{ + width:32rpx; + height:32rpx; +} +.titlebox .name{ + font-size: 28rpx; +color: #333333; +} +.listUl .cell:nth-child(4n){ + margin-right: 0rpx; +} +.viewcell{ + display: flex; + overflow: hidden; + box-sizing: border-box; + padding:40rpx 30rpx 30rpx; + width:100%; + border-radius: 10rpx; + background-color: #fff; + border-bottom: 1rpx solid #E7E7E7; +} + +.viewcell .type{ + height: 32rpx; + margin-bottom: 6rpx; + line-height: 32rpx; + display: flex; + white-space: nowrap; + align-items: center; + margin-left: 18rpx; + padding:0rpx 6rpx; + background: #ED9C00; + border-radius: 4rpx; + color: #FFFFFF; + font-size: 24rpx; +} +.doctor_title{ + margin-right: 10rpx; +} +.viewcell .hospital{ + margin-top: 12rpx; + color: #333333; + word-break: keep-all; + font-size: 30rpx; +} +.goodjob{ +color: #666666; +margin-top: 28rpx; +line-height: 42rpx; +font-size: 28rpx; +word-break: break-all; +text-overflow: ellipsis; +display: -webkit-box; +-webkit-box-orient: vertical; +-webkit-line-clamp: 2; /* 这里是超出几行省略 */ +overflow: hidden; +} +.price{ + + font-size: 24rpx; +} +.price text{ + margin-left: 5rpx; + font-size: 34rpx; + color:#EF4F20; +} +.viewcell .right{ + flex:1; + margin-left: 20rpx; +} +.viewcell image{ + width:80rpx; + height:80rpx; + border-radius:50%; +} +.namebox{ + display: flex; + font-size: 34rpx; + font-weight: 600; + color:#333; + align-items: flex-end; +} +.namebox .position{ + font-weight: normal; + margin-left: 15rpx; + font-size: 30rpx; +} +.diseaseType{ +height: 40rpx; +background: #E2FFFE; +border-radius: 20rpx; +margin-right: 20rpx; +border: 1rpx solid #3CC7C0; +color: #3CC7C0; +font-size: 24rpx; +display: inline-flex; +text-align: center; +padding:0 15rpx; +align-items: center; +justify-content: center; +margin-top: 20rpx; +white-space: nowrap; +} +.detail{ + margin-top: 20rpx; + display: flex; + font-size: 24rpx; +} +.detail view{ + margin-right:40rpx; +} + +.detail view text{ + font-size: 28rpx; + color:#3CC7C0; +} +.consultbox{ + height: 60rpx; + margin-top: 28rpx; + display: flex; + align-items: center; + justify-content: space-between; +} +.consult{ + height: 60rpx; +background: #3CC7C0; +border-radius: 30rpx; +color: #FFFFFF; +display: flex; +align-items: center; +padding:0 20rpx; +font-size: 30rpx; +} +.wraper{ + display: flex; + flex-direction: column; +} +.scrollwraper{ + flex: 1; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; +} \ No newline at end of file diff --git a/pages/selectPatient/selectPatient.js b/pages/selectPatient/selectPatient.js new file mode 100644 index 0000000..9ddeb59 --- /dev/null +++ b/pages/selectPatient/selectPatient.js @@ -0,0 +1,301 @@ +// pages/selectPatient/selectPatient.js +const app = getApp() +import {family,addfamily} from "../../api/familyDoc" +import {throttle} from "../../utils/util" + +Page({ + + /** + * 页面的初始数据 + */ + data: { + doctor_id:'', + chat_id:'', + inquiry_type:'', + show:false, + sex:null, + height:970, + currentFamilyId:'', + showPicker:false, + realName:'', + idCard:'',//'', + phoneNumber:'', + relation:"", + relationId:"", + family:[], + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static', + columns:[ + {text:"本人",value:1}, + {text:"父母",value:2}, + {text:"爱人",value:3}, + {text:"子女",value:4}, + {text:"亲戚",value:5}, + {text:"其他 ",value:6} + ] + }, + addFamily(){ + let {realName,idCard,phoneNumber,relationId}=this.data; + addfamily({ + card_name:realName, + type:1, + id_number:idCard, + mobile:phoneNumber, + is_default:0, + relation:relationId + }).then((data)=>{ + + this.getFamily(); + this.setData({ + currentFamilyId:data.family_id, + realName:'', + idCard:'', + phoneNumber:'', + relationId:'', + relation:'', + show:false + + }) + // let {currentFamilyId,doctor_id,chat_id,inquiry_type,sex}=this.data; + // app.method.navigateTo({ + // url: '../writeSick/writeSick?doctor_id='+doctor_id+"&family_id="+currentFamilyId+"&chat_id="+chat_id+"&sex="+sex+"&inquiry_type="+inquiry_type + // }) + }) + }, + selectPatient(e){ + let currentFamilyId=e.currentTarget.dataset.familyid; + let sex=e.currentTarget.dataset.sex; + this.setData({ + currentFamilyId:currentFamilyId, + sex:sex + }) + }, + getFamily(){ + family().then((data)=>{ + this.setData({ + family:this.transforpage(data) + }) + }) + }, + goBack(){ + wx.navigateBack({ + delta: 1, + }) + }, + addPatient(){ + this.setData({ + show:true, + currentFamilyId:"", + sex:"" + }) + }, + transforpage(arr) { + const pages = [] + let newArr=arr.concat([{ + type:"add" + }]) + newArr.forEach((item, index) => { + const page = Math.floor(index / 2) + if (!pages[page]) { + pages[page] = [] + } + pages[page].push(item) + }); + return pages + }, + onClose(){ + this.setData({ + show:false + }) + }, + onConfirm(event) { + const { value} = event.detail; + this.setData({ + relationId: `${value.value}`, + relation:`${value.text}`, + showPicker:false + }); + }, + + openPicker(){ + this.setData({ + showPicker:true + }) + }, + closePicker(){ + this.setData({ + showPicker:false + }) + }, + + inputChange(e){ + this.setData({ + [e.target.dataset.id]: e.detail.value + }) + }, + //获取身份证号信息 + getIdInfo(IdCard){ + var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; + if(reg.test(IdCard)){ + let sex + if (parseInt(IdCard.substr(16, 1)) % 2 === 1) { + sex = '1' + } else { + sex = '2' + } + var ageDate = new Date() + var month = ageDate.getMonth() + 1 + var day = ageDate.getDate() + var age = ageDate.getFullYear() - IdCard.substring(6, 10) - 1 + if (IdCard.substring(10, 12) < month || (IdCard.substring(10, 12) === month && IdCard.substring(12, 14) <= day)) { + age++ + } + if (age <= 0) { + age = 1 + } + return { sex, age} + }else{ + return false; + } +}, +handleThrottleNext:throttle(function(){ + this.goNext() +}), + goNext(){ + let url=''; + let {doctor_id,currentFamilyId,chat_id,inquiry_type,sex}=this.data; + if(this.data.doctor_id){ + url='/pages/writeSick/writeSick?doctor_id='+doctor_id+"&family_id="+currentFamilyId+"&chat_id="+chat_id+"&inquiry_type="+inquiry_type+"&sex="+sex + }else{ + url='/pages/writeSick/writeSick?family_id='+currentFamilyId+"&inquiry_type="+inquiry_type+"&sex="+sex + } + app.method.navigateTo({ + url: url + }) + }, + handleThrottleSick:throttle(function(){ + this.goSick() + }), + goSick(){ + if (!/^([\u4e00-\u9fa5\·]{2,10})$/.test(this.data.realName)) { + wx.showToast({ + title: `姓名要求在2-10个汉字`, + icon: 'none', + }); + return false; + }; + if (!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(this.data.idCard)){ + wx.showToast({ + title: `请输入有效的身份证号`, + icon: 'none', + }); + return false; + }; + if(this.data.phoneNumber){ + if(!/^1[3456789]\d{9}$/.test(this.data.phoneNumber)){ + wx.showToast({ + title: `请输入有效的手机号码!`, + icon: 'none', + }); + return false; + } + }; + // if(!this.data.relationId){ + // wx.showToast({ + // title: `请选择与患者的关系`, + // icon: 'none', + // }); + // return false; + // }; + let idInfo=this.getIdInfo(this.data.idCard); + if(idInfo.age<6){ + wx.showToast({ + title: `六岁以下儿童不支持线上问诊`, + icon: 'none', + }); + return false; + } + + this.setData({ + sex:idInfo.sex + }) + this.addFamily() + + }, + onfocus(event){ + this.setData({ + height:970+event.height+120 + }) + }, + onblur(event){ + this.setData({ + height:970 + }) + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + if(options.doctor_id){ + this.setData({ + doctor_id:options.doctor_id, + chat_id:options.chat_id, + + }) + } + if(options.inquiry_type){ + this.setData({ + inquiry_type:options.inquiry_type + }) + } + this.getFamily(); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + this.setData({ + img_host:app.hostConfig().imghost + }) + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + +}) \ No newline at end of file diff --git a/pages/selectPatient/selectPatient.json b/pages/selectPatient/selectPatient.json new file mode 100644 index 0000000..92b7403 --- /dev/null +++ b/pages/selectPatient/selectPatient.json @@ -0,0 +1,9 @@ +{ + "usingComponents": { + "van-popup": "@vant/weapp/popup/index", + "van-picker": "@vant/weapp/picker/index", + "nav":"../../components/nav/nav" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "肝胆相照互联网医院" +} \ No newline at end of file diff --git a/pages/selectPatient/selectPatient.wxml b/pages/selectPatient/selectPatient.wxml new file mode 100644 index 0000000..e38dcd7 --- /dev/null +++ b/pages/selectPatient/selectPatient.wxml @@ -0,0 +1,81 @@ + + + + + + + + 请选择患者 + 请如实填写患者信息,辅助医生准确判断病情 + + + + + + + + {{item.card_name}} + 本人 + 父母 + 爱人 + 子女 + 亲戚 + 其他 + + + 性别未知 + + + {{item.age}}岁 + + + + + +新建患者 + + + + + + + + + + 新建患者 + + 真实姓名* + + + + 身份证号* + + + + 联系电话 + + + + 患者关系 + + + + 温馨提示: + + 1、根据国家卫健委要求,就医实行实名制,请如实填写患者信息。 + 2、信息受隐私保护,仅接诊医生可见。 + + 3、6岁以下儿童不支持线上问诊,请到线下就诊。 + + + + + + + + + + \ No newline at end of file diff --git a/pages/selectPatient/selectPatient.wxss b/pages/selectPatient/selectPatient.wxss new file mode 100644 index 0000000..4cfdfdd --- /dev/null +++ b/pages/selectPatient/selectPatient.wxss @@ -0,0 +1,242 @@ +/* pages/selectPatient/selectPatient.wxss */ +.contant { + min-height: 100%; + background: #F2F2F2; +} + +.card { + padding: 20rpx; + background-color: #fff; + margin-top: 212rpx; + display: flex; + border-radius: 10rpx; +} +.cellinner{ + display: flex; + flex-direction: column; + justify-content: center; + height:120rpx; +} +.card image { + width: 104rpx; + height: 104rpx; +} + +.card .right { + display: flex; + margin-left: 30rpx; + flex-direction: column; + justify-content: space-between; +} + +.card .right .name { + color: #333333; + font-size: 34rpx; +} + +.card .right .desc { + color: #666666; + font-size: 28rpx; +} +.celladd{ + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + height: 120rpx; +} +.personbox { + margin-top: 40rpx; + border-radius: 10rpx; + background-color: #fff; + padding: 40rpx 20rpx; +} + +.personbox .row { + margin-top: 30rpx; + display: flex; + justify-content: space-between; + +} + +.personbox .row:first-child { + margin-top: 0; +} + +.personbox .row .cell { + position: relative; + width: 47%; + height: 120rpx; + display: flex; + flex-direction: column; + justify-content: center; + + border-radius: 10rpx; + border: 1px solid #CCCCCC; +} + +.personbox .row .cell:first-child { + margin-left: 0rpx; +} + +.personbox .person { + display: flex; + margin: 0 25rpx; + align-items: center; +} + +.personbox .tag { + margin-left: 32rpx; + font-size: 24rpx; + display: flex; + align-items: center; + line-height: 24rpx; + justify-content: center; + color: #666666; + width: 80rpx; + height: 32rpx; + border-radius: 4rpx; + transform: rotateZ(360deg); + border: 1rpx solid #979797; +} + +.personbox .desc { + display: flex; + margin: 0 25rpx; + font-size: 28rpx; + color: #666; + margin-top: 3px; +} + +.personbox .name { + white-space: nowrap; + overflow: hidden; + max-width: 200rpx; + text-overflow: ellipsis; + font-size: 34rpx; + color: #333; +} + +.personbox .age { + + margin-left: 12rpx; +} + +.cell .gou { + position: absolute; + bottom: -1rpx; + right: 0rpx; + width: 66rpx; + height: 53.7rpx; +} + +.add { + justify-content: center; + align-items: center; + font-size: 34rpx; + color: #333; +} +.button{ + outline: none; + position: absolute; + border: none!important; + display: flex; + align-items: center; + justify-content: center; + height: 94rpx; + font-size: 36rpx; + left: 30rpx; + right: 30rpx; + border-radius: 47rpx; + bottom: 30rpx; + color: #fff!important; + background: #3CC7C0!important; +} +.button[disabled]{ + color: #000000!important; + background:rgba(0,0,0,0.1)!important; +} + + +.next{ + outline: none; + border: none!important; + display: flex; + align-items: center; + justify-content: center; + height: 94rpx; + font-size: 36rpx; + margin:0 32rpx; + border-radius: 47rpx; + color: #fff!important; + margin-bottom: 40rpx; + background: #3CC7C0!important; +} +.next[disabled]{ + background: rgba(0,0,0,0.1)!important; + color:#333!important; +} +.van-icon-cross { + color: #333; + font-size: 40rpx !important; +} + +.infobox { + margin-top: 40rpx; +} + +.info { + position: relative; + border-bottom: 1rpx solid #E7E7E7; + display: flex; + align-items: center; + height: 112rpx; + color: #333333; +} + +.infobox .title { + border-bottom: 1rpx solid #E7E7E7; + text-align: center; + font-size: 34rpx; + padding-bottom: 35rpx; +} + +.info .name { + white-space: nowrap; + width: 180rpx; + display: flex; + align-items: center; + margin-left: 52rpx; + color: #333333; + font-size: 34rpx; +} + +.info text { + margin-top: 20rpx; + color:#E34D59; + + display: flex; + align-items: center; +} +.info input { + margin-left: 15rpx; + margin-right: 52rpx; + flex: 1; +} +.input-placeholder { + color: #999999; + font-size: 28rpx; +} +.tip{ + padding:30rpx 52rpx 20rpx; +} +.warntitle{ + color: #E34D59; + font-size: 28rpx; +} +.warn{ + margin-top: 20rpx; + font-size: 24rpx; + line-height: 36rpx; + color: #666666; +} \ No newline at end of file diff --git a/pages/sickInfo/sickInfo.js b/pages/sickInfo/sickInfo.js new file mode 100644 index 0000000..d6337f2 --- /dev/null +++ b/pages/sickInfo/sickInfo.js @@ -0,0 +1,191 @@ +// pages/sickInfo/sickInfo.js +const app = getApp(); +import {sickInfo} from "../../api/consultOrder" +import {formatDateText} from "../../utils/util" +Page({ + /** + * 页面的初始数据 + */ + data: { + sick:{ + }, + otherList:[] + }, + previewImage(event) { + let id = event.currentTarget.dataset.id; + let urls = this.data.sick.diagnose_images; + wx.previewImage({ + current: urls[id], // 当前显示图片的http链接 + urls: urls // 需要预览的图片http链接列表 + }) + }, + getsickInfo(id){ + sickInfo({ + order_inquiry_id:id + }).then(data=>{ + this.setData({ + sick:data, + }); + //infoType 1 只有是否 2 饮酒,吸烟 3 化合物 4 只有文字叙述 + let filter1=[]; + let filter2=[]; + let arr=[ + { + type:"taboo", + name:'是否服用过您想购买的药品且无相关禁忌:', + nameTip:'', + status:data.is_taboo, + desc:"", + infoType:1 + }, + { + type:"allergy_history", + name:'是否有过敏史:', + nameTip:'过敏史:', + infoType:1, + status:data.is_allergy_history, + desc:data.allergy_history + }, + { + type:"family_history", + name:'是否有家族史:', + nameTip:'家族史:', + infoType:1, + status:data.is_family_history, + desc:data.family_history + }, + { + infoType:1, + type:"pregnant", + name:'是否处于备孕、妊娠、哺乳期:', + nameTip:'', + status:data.is_pregnant, + desc:data.pregnant + }, + { infoType:1, + type:"operation", + name:'是否做过手术:', + nameTip:'手术史', + status:data.is_operation, + desc:data.operation + }, + { + infoType:2, + type:"drink_wine", + name:'是否有饮酒史:', + nameTip:'', + status:data.drink_wine_status, + desc:'' + }, + { + infoType:2, + type:"smoke", + name:'是否有吸烟史:', + nameTip:'', + status:data.smoke_status, + desc:'' + }, + { + infoType:3, + type:"chemical", + name:'是否有接触过化学物:', + nameTip:'接触过的化学物:', + status:data.chemical_compound_status, + desc:data.chemical_compound_describe + }, + { + infoType:4, + type:'hospital', + name:'确诊医院:', + status:'', + nameTip:'', + desc:data.diagnosis_hospital + }, + { + type:"takeMedince", + name:'是否服药:', + nameTip:'正在服药:', + status:data.is_take_medicine, + desc:data.drugs_name, + infoType:1 + } + ] + if(data.sex==1){ + filter1=arr.filter((item)=>{ + return item.type!="pregnant" + }); + }else{ + filter1=arr; + } + if(!data.diagnosis_hospital){ + filter2=filter1.filter((item)=>{ + return item.type!="hospital" + }); + }else{ + filter2=filter1 + } + let newarr=filter2.filter((item)=>{ + return item.status!=null + }); + let date=formatDateText(this.data.sick.diagnosis_date); + this.setData({ + otherList:newarr, + "sick.diagnosis_date":date + }) + + }) + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + this.getsickInfo(options.order_inquiry_id) + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + +}) \ No newline at end of file diff --git a/pages/sickInfo/sickInfo.json b/pages/sickInfo/sickInfo.json new file mode 100644 index 0000000..44a996f --- /dev/null +++ b/pages/sickInfo/sickInfo.json @@ -0,0 +1,7 @@ +{ + "usingComponents": { + "nav":"../../components/nav/nav" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "肝胆相照互联网医院" +} \ No newline at end of file diff --git a/pages/sickInfo/sickInfo.wxml b/pages/sickInfo/sickInfo.wxml new file mode 100644 index 0000000..fe21c63 --- /dev/null +++ b/pages/sickInfo/sickInfo.wxml @@ -0,0 +1,93 @@ + + + + + + 基本信息 + + + {{sick.name}}(未知,{{sick.age}}岁) + + + + 所患疾病: + {{sick.disease_class_name}} + + + 确诊日期: + {{sick.diagnosis_date}} + + + 病情主诉: + {{sick.disease_desc}} + + + + 用药意向: + + {{item}} + + + + 复诊凭证: + + + + + + + + + 其他信息 + + + {{index+1}}、 + + + {{item.name}} + + + + {{item.nameTip}} + {{item.desc}} + + + + + {{item.name}} + 从不 + 偶尔 + 经常 + 每天 + + 已戒烟 + 已戒酒 + + + + + + {{item.name}} + 从不 + 偶尔 + 经常 + 每天 + + + {{item.nameTip}} + {{item.desc}} + + + + + {{item.name}} + {{item.desc}} + + + + + + 暂无数据! + + + \ No newline at end of file diff --git a/pages/sickInfo/sickInfo.wxss b/pages/sickInfo/sickInfo.wxss new file mode 100644 index 0000000..c238af3 --- /dev/null +++ b/pages/sickInfo/sickInfo.wxss @@ -0,0 +1,139 @@ +/* pages/sickInfo/sickInfo.wxss */ +.page{ + display: flex; + flex-direction: column; +} +.wraper{ + overflow: scroll; + flex:1; + margin-top: 172rpx; + -webkit-overflow-scrolling: touch; +} +.databox{ + margin:0 32rpx; +} +.databox .title{ + margin:30rpx 0 20rpx; +} +.cell{ + background-color: #fff; + border-radius: 10rpx; + + + +} +.other .cell{ + margin-bottom: 20rpx; + min-height: 200rpx; +} +.other .cell{ + padding-bottom: 30rpx; +} +.cell .name{ + color: #333333; + height: 94rpx; + display: flex; + padding:0 20rpx; + align-items: center; + font-size: 34rpx; + border-bottom:1rpx solid #E7E7E7; +} +.info{ + background-color: #fff; + + padding-bottom: 30rpx; +} +.info .row{ + line-height: 52rpx; + display: flex; + + padding:0 20rpx; +} +.qabox{ + width:100%; +} +.info .row:first-child{ + padding-top: 30rpx; +} +.info .name{ + white-space: nowrap; + font-size:32rpx; + color:#333; +} +.info .desc{ + font-size:28rpx; + color:#666!important; + word-break: break-all; + } + .textbox .desc{ + word-break: break-all; + line-height: 42rpx; + color: #666; + margin-bottom: 20rpx; + font-size: 28rpx; +} +.textbox .goods{ + color:#666!important; + display: inline; + white-space:normal; +} +.textbox .goods:after{ + content:";" +} +.textbox .goods:last-child:after{ + content:"" +} +.textbox view:last-child{ + margin-bottom: 0; +} +.textbox text{ + color: #333333; + font-size: 28rpx; +} + .imglist{ + display: flex; + padding:0 20rpx; + flex-wrap: wrap; + + } + .img{ + width: 148rpx; + height:148rpx; + margin-right: 18rpx; + margin-bottom: 18rpx; + + } + .img:nth-child(4n){ + margin-right: 0; + } + .other .row{ + display: flex; + line-height: 52rpx; + padding:0 20rpx; + } + .other .row:first-child{ + padding-top: 30rpx; + } + .other .row .answer{ + color:#666; + font-size: 28rpx; + } + .radiotip{ + padding:24rpx 20rpx; + word-break: break-all; + margin-right: 20rpx; + margin-bottom: 20rpx; + justify-content: center; + margin-top: 20rpx; + + line-height: 42rpx; +background: #F2F2F2; +border-radius: 10rpx; +font-size: 28rpx; +color:#999; +} + +.radiotip text{ + white-space: nowrap; + color:#333; +} \ No newline at end of file diff --git a/pages/sugarDetail/sugarDetail.js b/pages/sugarDetail/sugarDetail.js new file mode 100644 index 0000000..5b3141f --- /dev/null +++ b/pages/sugarDetail/sugarDetail.js @@ -0,0 +1,384 @@ +// pages/sugarDetail/sugarDetail.js +const app = getApp() +import {throttle} from "../../utils/util" +import {family,addfamily} from "../../api/familyDoc"; +import {getProject,hasCreate} from "../../api/checkSugar" +Page({ + + /** + * 页面的初始数据 + */ + data: { + showdialog:false, + cancelBtn:false, + messageTitle:'', + opacity:0, + nation_id:'', + nation_name:'', + show:false, + projectImg:'', + detection_project_id:1, + idCard:'', + relation:'', + phoneNumber:'', + card_name:'', + realName:'', + showAdd:false, + currentName:'', + age:"", + currentFamilyId:'', + showPicker:false, + family:[], + columns: [{ + text: "本人", + value: 1 + }, + { + text: "父母", + value: 2 + }, + { + text: "爱人", + value: 3 + }, + { + text: "子女", + value: 4 + }, + { + text: "亲戚", + value: 5 + }, + { + text: "其他 ", + value: 6 + } +] + }, + onConfirmPicker(event) { + const {value} = event.detail; + this.setData({ + relationId: `${value.value}`, + relation: `${value.text}`, + showPicker: false + }); + }, + + openPicker() { + this.setData({ + showPicker: true + }) + }, + closePicker() { + this.setData({ + showPicker: false + }) + }, + addPatient(){ + this.setData({ + showAdd:true, + currentFamilyId:"", + sex:"" + }) + }, + onCloseAdd() { + this.setData({ + showAdd: false + }); + }, + onClose(){ + this.setData({ + show:false + }) + }, + showPatient(){ + this.setData({ + show:true + }) + }, + onConfirm(event) { + const { value} = event.detail; + this.setData({ + relationId: `${value.value}`, + relation:`${value.text}`, + showPicker:false + }); + }, + inputChange(e){ + this.setData({ + [e.target.dataset.id]: e.detail.value + }) + }, + handelGetProject(){ + let {detection_project_id}=this.data; + getProject( + detection_project_id + ).then(data=>{ + this.setData({ + projectImg:data.img_path + }) + }) + }, + cancelAlert(){ + this.setData({ + showdialog: false + }) + }, + confirm(event) { + if (event.detail) { + this.setData({ + showdialog: false + }) + } + if(this.data.messageTitle=="当前患者存在进行中检测订单"){ + let {order_detection_id}=this.data; + app.method.navigateTo({ + url: '/pages/checkOrderDetail/checkOrderDetail?order_detection_id='+ order_detection_id, + }) + } + }, + handleHasCreate(){ + let {currentFamilyId,sex,currentName,detection_project_id,age,nation_id,nation_name}=this.data; + hasCreate({ + family_id:currentFamilyId, + detection_project_id:detection_project_id + }).then(data=>{ + if(data){ + this.setData({ + showdialog:true, + messageTitle:"当前患者存在进行中检测订单", + order_detection_id: data, + cancelBtn:true + }) + }else{ + let cur_nation_id=nation_id?nation_id:''; + let cur_nation_name=nation_name?nation_name:''; + app.method.navigateTo({ + url: '/pages/sugarSickInfo/sugarSickInfo?family_id='+currentFamilyId+"&real_name="+currentName+"&detection_project_id="+detection_project_id+"&sex="+sex+"&age="+age+"&nation_id="+cur_nation_id+"&nation_name="+cur_nation_name + }) + } + }) + }, + + //获取身份证号信息 + getIdInfo(IdCard){ + var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; + if(reg.test(IdCard)){ + let sex + if (parseInt(IdCard.substr(16, 1)) % 2 === 1) { + sex = '1' + } else { + sex = '2' + } + var ageDate = new Date() + var month = ageDate.getMonth() + 1 + var day = ageDate.getDate() + var age = ageDate.getFullYear() - IdCard.substring(6, 10) - 1 + if (IdCard.substring(10, 12) < month || (IdCard.substring(10, 12) === month && IdCard.substring(12, 14) <= day)) { + age++ + } + if (age <= 0) { + age = 1 + } + return { sex, age} + }else{ + return false; + } +}, + addFamily(){ + let {realName,idCard,phoneNumber,relationId}=this.data; + addfamily({ + card_name:realName, + type:1, + id_number:idCard, + mobile:phoneNumber, + is_default:0, + relation:relationId + }).then((data)=>{ + this.getFamily(); + this.setData({ + currentFamilyId:data.family_id, + realName:'', + idCard:'', + phoneNumber:'', + relationId:'', + showAdd:false, + relation:'', + show:true + }) + }) + }, + selectPatient(e){ + const {familyid,sex,card_name,age,nation,nation_name}=e.currentTarget.dataset; + this.setData({ + currentFamilyId:familyid, + sex:sex, + nation_name:nation_name, + age:age, + nation_id:nation, + currentName:card_name + }) + }, + getFamily(){ + family().then((data)=>{ + this.setData({ + family:this.transforpage(data) + }) + }) + }, + transforpage(arr) { + const pages = [] + let newArr=arr.concat([{ + type:"add" + }]) + newArr.forEach((item, index) => { + const page = Math.floor(index / 2) + if (!pages[page]) { + pages[page] = [] + } + pages[page].push(item) + }); + return pages + }, + goBack(){ + console.log("origion:"+app.globalData.origion) + if(app.globalData.origion==1){ + wx.reLaunch({ + url: '/pages/index/index', + }) + }else if(app.globalData.origion==2){ + wx.reLaunch({ + url: '/pages/index/index', + }) + }else{ + wx.navigateBack({ + delta: 1, + fail:function(){ + wx.reLaunch({ + url: '/pages/index/index', + }) + } + }) + } + + }, + handleThrottleSick:throttle(function(){ + + this.goSick() + }), + goSick(){ + + if (!/^([\u4e00-\u9fa5\·]{2,10})$/.test(this.data.realName)) { + wx.showToast({ + title: `姓名要求在2-10个汉字`, + icon: 'none', + }); + return false; + }; + if (!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(this.data.idCard)){ + wx.showToast({ + title: `请输入有效的身份证号`, + icon: 'none', + }); + return false; + }; + if(this.data.phoneNumber){ + if(!/^1[3456789]\d{9}$/.test(this.data.phoneNumber)){ + wx.showToast({ + title: `请输入有效的手机号码!`, + icon: 'none', + }); + return false; + } + }; + let idInfo=this.getIdInfo(this.data.idCard); + if(idInfo.age<6){ + wx.showToast({ + title: `六岁以下儿童不支持线上问诊`, + icon: 'none', + }); + return false; + } + + this.setData({ + sex:idInfo.sex, + age:idInfo.age, + nation_id:'', + nation_name:'', + currentName:this.data.realName + }) + this.addFamily(); + + }, + onPageScroll: function(e) { + let opacity=0; + if(e.scrollTop/(86*2)>=1){ + opacity=1 + }else{ + opacity=e.scrollTop/(86*2) + } + this.setData({ + opacity:opacity + }) + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + this.setData({ + img_host:app.hostConfig().imghost + }); + this.handelGetProject(); + this.getFamily() + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + // onShareAppMessage() { + + // } +}) \ No newline at end of file diff --git a/pages/sugarDetail/sugarDetail.json b/pages/sugarDetail/sugarDetail.json new file mode 100644 index 0000000..c4abb57 --- /dev/null +++ b/pages/sugarDetail/sugarDetail.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "van-popup": "@vant/weapp/popup/index", + "dialog":"../../components/dialog/dialog", + "van-picker": "@vant/weapp/picker/index" + }, + "navigationStyle":"custom" +} \ No newline at end of file diff --git a/pages/sugarDetail/sugarDetail.wxml b/pages/sugarDetail/sugarDetail.wxml new file mode 100644 index 0000000..1fdfaae --- /dev/null +++ b/pages/sugarDetail/sugarDetail.wxml @@ -0,0 +1,89 @@ + + + + 糖组检测 + + + + + + + + 填写信息 + + + + + + + 选择患者 + + + + + + {{item.card_name}} + 本人 + 父母 + 爱人 + 子女 + 亲戚 + 其他 + + + 性别未知 + + + {{item.age}}岁 + + + + + +新建患者 + + + + + + + + + + + 新建患者 + + 真实姓名* + + + + 身份证号* + + + + 联系电话 + + + + 患者关系 + + + + 温馨提示: + + 1、国家卫健委要求,就医行为必须实名登记,信息仅接诊医生可见,请谨慎填写患者信息。 + + 3、6岁以下儿童不支持线上问诊,请到线下就诊。 + + + + + 确定 + + + + + + + diff --git a/pages/sugarDetail/sugarDetail.wxss b/pages/sugarDetail/sugarDetail.wxss new file mode 100644 index 0000000..99adb1d --- /dev/null +++ b/pages/sugarDetail/sugarDetail.wxss @@ -0,0 +1,259 @@ +/* pages/sugarDetail/sugarDetail.wxss */ +.dcimg{ + width:750rpx; +} +.page{ + position: relative; + min-height: 100%; + height:auto; + padding-bottom: 450rpx; +} +.nextbox{ + position: fixed; + bottom:0rpx; + z-index:1; + height:482rpx; + width:750rpx; +} +.msgbtn{ + font-size: 36rpx; + display: flex; + align-items: center; + justify-content: center; + background-image: linear-gradient( + 180deg, + rgba(182, 245, 243, 1) 0, + rgba(111, 229, 225, 1) 18.201463%, + rgba(56, 187, 181, 1) 89.000166%, + rgba(60, 199, 192, 1) 100% + ); + border-radius: 47rpx; + height:94rpx; + width: 638rpx; + margin:0 auto; + color:#fff; +} +.msgbtnbox{ + width:100%; + position: absolute; + bottom:80rpx; +} +.ui-navigatorbar-back{ + width:24rpx; + height:40rpx; +} +.personbox { + border-radius: 10rpx; + background-color: #fff; + padding: 40rpx 20rpx 144rpx; + overflow-y: scroll; +} + +.personbox .row { + margin-top: 30rpx; + display: flex; + justify-content: space-between; + +} + +.personbox .row:first-child { + margin-top: 0; +} + +.personbox .row .cell { + position: relative; + width: 47%; + height: 120rpx; + display: flex; + flex-direction: column; + justify-content: center; + margin-left: 30rpx; + border-radius: 10rpx; + border: 1px solid #CCCCCC; +} + +.personbox .row .cell:first-child { + margin-left: 0rpx; +} + +.personbox .person { + display: flex; + margin: 0 25rpx; + align-items: center; +} + +.personbox .tag { + margin-left: 32rpx; + font-size: 24rpx; + display: flex; + align-items: center; + line-height: 24rpx; + justify-content: center; + color: #666666; + width: 80rpx; + height: 32rpx; + border-radius: 4rpx; + transform: rotateZ(360deg); + border: 1rpx solid #979797; +} + +.personbox .desc { + display: flex; + margin: 0 25rpx; + font-size: 28rpx; + color: #666; + margin-top: 3px; +} + +.personbox .name { + white-space: nowrap; + overflow: hidden; + max-width: 200rpx; + text-overflow: ellipsis; + font-size: 34rpx; + color: #333; +} + +.personbox .age { + + margin-left: 12rpx; +} + +.personbox .cell .gou { + position: absolute; + bottom: -1rpx; + right: 0rpx; + width: 66rpx; + height: 53.7rpx; +} + +.personbox .add { + justify-content: center; + align-items: center; + font-size: 34rpx; + color: #333; +} +.own .add.disabled{ + color: #999; +} +.titlepop{ + font-size: 34rpx; +font-weight: 400; +color: #333333; + padding:40rpx 0; + text-align: center; + width:100%; + border-bottom:1rpx solid #E7E7E7; +} + +.van-icon-cross { + color: #333; + font-size: 40rpx !important; +} + +.infobox { + margin-top: 40rpx; +} + + +.infobox .title { + border-bottom: 1rpx solid #E7E7E7; + text-align: center; + font-size: 34rpx; + padding-bottom: 35rpx; +} +.info { + border-bottom: 1rpx solid #E7E7E7; + display: flex; + align-items: center; + height: 112rpx; + color: #333333; +} + +.info .name { + white-space: nowrap; + width: 180rpx; + display: flex; + align-items: center; + margin-left: 52rpx; + color: #333333; + font-size: 34rpx; +} + +.info text { + margin-top: 20rpx; + color:#E34D59; + + display: flex; + align-items: center; +} +.info input { + margin-left: 15rpx; + margin-right: 52rpx; + flex: 1; +} +.input-placeholder { + color: #999999; + font-size: 28rpx; +} +.tip{ + padding:20rpx 20rpx; + margin:30rpx 52rpx 20rpx; + background: #FFF2F0; + border-radius: 12rpx; +} +.warntitle{ + color: #E34D59; + font-size: 28rpx; +} +.warn{ + margin-top: 20rpx; + font-size: 24rpx; + line-height: 36rpx; + color: #666666; +} +.next{ + display: flex; + align-items: center; + justify-content: center; + height: 94rpx; + font-size: 36rpx; + left: 30rpx; + right: 30rpx; + margin:0 52rpx; + border-radius: 47rpx; + color: #fff; + margin-bottom: 40rpx; + background: #3CC7C0; +} +.celladd{ + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + height: 120rpx; +} +.btnbox .btn{ + border-radius: 47rpx; + border:none; + background: #3CC7C0!important; + margin:0 32rpx; + height: 94rpx; + display: flex; + justify-content: center; + align-items: center; + font-size: 36rpx; +color: #FFFFFF!important; +} +.btnbox .btn[disabled]{ +color: #000000!important; +background:rgba(0,0,0,0.1)!important; +} +.btnbox{ + position: fixed; + width:100%; + bottom:0rpx; + height: 134rpx; + background:#fff; + +} diff --git a/pages/sugarSickInfo/sugarSickInfo.js b/pages/sugarSickInfo/sugarSickInfo.js new file mode 100644 index 0000000..a024152 --- /dev/null +++ b/pages/sugarSickInfo/sugarSickInfo.js @@ -0,0 +1,668 @@ +// pages/sugarSickInfo/sugarSickInfo.js +import {nation} from "../../api/common" +import {getLocation,getDiseaseList,getDoctorList,createDetection,getPurposeList,getProject,getArea} from "../../api/checkSugar" +import {getProvince,getCity,getCountry} from "../../api/consultExpert" +import {throttle} from "../../utils/util" +import Dialog from '@vant/weapp/dialog/dialog'; +import {client_type} from "../../utils/isPc" +let wait_time=15; + +const beforeClose = (action) => + new Promise((resolve) => { + console.log(action,wait_time); + try { + if (action === 'confirm' && wait_time<=0) { + resolve(true); + }else if (action === 'cancel') { + resolve(true); + }else { + // 拦截取消操作 + resolve(false); + } + } catch (error) { + + } + }); +const app = getApp(); +let provinceArr=[{area_id:'', area_name: "全国"}]; +let cityArr=[]; +Page({ + + /** + * 页面的初始数据 + */ + data: { + showSick:false, + showNation:false, + showDoctor:false, + currentPatientName:'', + showNationSelect:false, + showCity:false, + confirmtext:"同意", + currentPosition:"全国", + detection_project_id:1, + sick_name:'', + real_name:'', + doctor_name:'', + nation_name:'', + nation_id:'', + purpose_id:'', + purpose_name:'', + confirmColor:"#bfbfbf", + nationcolumns:[], + sickList:[], + sex:"", + age:'', + showAgree:false, + messageAgree:'', + doctorList:[], + timer:null, + doctorResult:'', + select_doctor_id:'', + showdialog:false, + order_detection_id:'', + messageTitle:"", + cancelBtn:false, + columns: [{ + values: [], + className: 'column1', + }, + { + values: [], + className: 'column2', + defaultIndex: 1, + }, + { + values: [], + className: 'column3', + defaultIndex: 1, + } + ], + sickResult:[], + disease_ids:[], + area:{ + province_id:'', + city_id:'', + county_id:'' + }, + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static' + }, + cancelAgree(){ + this.setData({ + showAgree: false + }) + }, + + confirmAgree(event){ + if (event.detail ) { + this.setData({ + showAgree: false + }) + } + }, + cancelAlert(){ + this.setData({ + showdialog: false + }) + }, + confirm(event) { + if (event.detail) { + this.setData({ + showdialog: false + }) + } + if(this.data.messageTitle=="当前患者存在进行中检测订单"){ + let {order_detection_id}=this.data; + app.method.navigateTo({ + url: '/pages/checkOrderDetail/checkOrderDetail?order_detection_id='+ order_detection_id, + }) + } + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + this.setData({ + family_id:options.family_id, + real_name:options.real_name, + sex:options.sex, + age:options.age, + nation_id:options.nation_id, + nation_name:options.nation_name, + detection_project_id:options.detection_project_id + }) + // {{real_name}}({{sex==1?'男':'女'}} | {{age}}岁 {{showNationSelect?" | "+nation_name:''}}) + let sex=options.sex==1?'男':'女'; + if(options.nation_id){ + this.setData({ + currentPatientName:options.real_name+"("+sex+" | "+options.age+"岁 | "+options.nation_name+")", + showNationSelect:false + }) + }else{ + this.setData({ + currentPatientName:options.real_name+"("+sex+" | "+options.age+"岁"+")", + showNationSelect:true + }) + } + + this.handelGetProject(); + this.handleWxLocation(); + this.getNation(); + this.handlegetDiseaseList(); + this.handleGetPurposeList(); + }, + handleWxLocation(){ + let that=this; + try { + wx.getFuzzyLocation({ + type: 'gcj02', + success (res) { + if(res.errMsg=='getFuzzyLocation:ok'){ + const latitude = res.latitude; + const longitude = res.longitude; + that.handleGetLocation(longitude,latitude); + } + + }, + fail(err){ + console.log(err) + console.log("获取位置信息失败") + that.handleGetDoctorList(); + } + }) + } catch (error) { + + } + + }, + goAgree(){ + let {detection_project_id}=this.data; + app.method.navigateTo({ + url:'/pages/agreement/agreement?detection_project_id='+detection_project_id + }) + }, + handelGetProject(){ + let {detection_project_id}=this.data; + getProject( + detection_project_id + ).then(data=>{ + this.setData({ + nodes:data.informed_consent_form + }) + }) + }, + handleCreateDetection:throttle(function(){ + + let {nation_id,doctorResult,sickResult,real_name,purpose_id,showNationSelect,disease_ids,timer}=this.data; + let detection_disease_class_ids=''; + sickResult.forEach((item)=>{ + if(!detection_disease_class_ids){ + detection_disease_class_ids+=item + }else{ + detection_disease_class_ids+=","+item + } + }) + if(!real_name){ + wx.showToast({ + title:"请输入真实姓名", + icon:"none" + }); + return false + }; + if(!nation_id && showNationSelect){ + wx.showToast({ + title:"请选择民族", + icon:"none" + }); + return false + }; + if(disease_ids.length==0){ + wx.showToast({ + title:"请选择既往病史", + icon:"none" + }); + return false + }; + if(!purpose_id){ + wx.showToast({ + title:"请选择目的", + icon:"none" + }); + return false + }; + if(!doctorResult){ + wx.showToast({ + title:"请选择申请医生", + icon:"none" + }); + return false + }; + wait_time=15; + this.setData({ + confirmColor:wait_time==0?"#3CC7C0":"#bfbfbf" + }); + Dialog.confirm({ + title: '知情同意书', + width:'710rpx', + message: '弹窗内容', + selector:"#agreeDialog", + confirmButtonText :wait_time==0?"同意":"同意("+wait_time+"S)", + beforeClose:beforeClose, + }).then(() => { + this.goPay(); + // on confirm + }).catch(() => { + console.log("none") + // on cancel + }); + if(this.data.timer){ + clearInterval(this.data.timer); + }; + let timerSetInterval=setInterval(()=>{ + + if(wait_time<=1){ + clearInterval(timer); + wait_time=0; + this.setData({ + waitTime:0, + confirmColor:"#3CC7C0", + confirmtext:"同意", + }) + return false + } + wait_time--; + + this.setData({ + confirmtext:"同意("+wait_time+"S)", + }) + },1000) + this.setData({ + timer:timerSetInterval + }) + + }), + goPay:throttle(function(){ + let {family_id,nation_id,detection_project_id,doctorResult,sickResult,purpose_id}=this.data; + let detection_disease_class_ids=''; + sickResult.forEach((item)=>{ + if(!detection_disease_class_ids){ + detection_disease_class_ids+=item + }else{ + detection_disease_class_ids+=","+item + } + }) + createDetection({ + company_id:1, + patient_id:wx.getStorageSync('CLIENT_USER_ID'), + family_id, + doctor_id:doctorResult, + nation_id, + purpose_id, + detection_disease_class_ids, + detection_project_id, + client_type:client_type + }).then(data=>{ + if(data.status==1){ + app.method.navigateTo({ + url: '/pages/payOrder/payOrder?&inquiry_no=' + data.data.inquiry_no + "&order_detection_id="+ data.data.order_no+"&order_type=3&fromType="+encodeURIComponent('pages/checkOrder/checkOrder') + }) + }else if(data.status==2){ + this.setData({ + showdialog:true, + messageTitle:"当前患者存在进行中检测订单", + order_detection_id: data.data.order_no, + cancelBtn:true + }) + } + }) + }), + onChangeSick(event) { + console.log(event.detail) + let result=event.detail; + this.setData({ + sickResult:result , + }); + const {sickList}=this.data; + for (let i = 0; i < sickList.length; i++) { + let temp="sickList["+i+"].check"; + if(result.indexOf(sickList[i].id)!==-1){ + this.setData({ + [temp]:true + }) + }else{ + this.setData({ + [temp]:false + }) + } + } + //console.log(sickList); + + }, + onChangeDoctor(event) { + // console.log(event) + this.setData({ + doctorResult: event.detail, + }); + }, + showNation() { + this.setData({ + showNation: true + }) + +}, +onCancelNation() { + this.setData({ + showNation: false + }) +}, +onConfirmNation(event) { + const { + value + } = event.detail; + this.setData({ + "nation_name": `${value.nation_name}`, + "nation_id": `${value.nation_id}`, + showNation: false + }) +}, +openPurpose(){ + this.setData({ + showPurpose: true + }) +}, +onConfirmPurpose(event) { + const { + value + } = event.detail; + this.setData({ + "purpose_name": `${value.purpose_name}`, + "purpose_id": `${value.purpose_id}`, + showPurpose: false + }) +}, +onCancelPurpose(){ + this.setData({ + showPurpose: false + }) +}, +getNation(){ + nation().then(data=>{ + this.setData({ + nationcolumns:data + }) + }) +}, +handleGetArea(){ + getArea().then(data=>{ + console.log('获取地址') + console.log(data) + let position =''; + if(data.province || data.city || data.county){ + position=data.province+data.city+data.county + }else{ + position="全国" + } + this.setData({ + area:data, + currentPosition:position + }) + this.handleGetDoctorList(); + }) +}, +handleGetLocation(lon,lat){ + getLocation({ + lon, + lat + }).then(data=>{ + this.handleGetArea(); + + }) +}, +handleGetPurposeList(){ + getPurposeList().then(data=>{ + this.setData({ + purposecolumns:data + }) + }) +}, +handlegetDiseaseList(){ + getDiseaseList({ + detection_project_id:1 + }).then(data=>{ + //let arr=[]; + data.forEach(item=>{ + item.check=false; + }) + this.setData({ + sickList:data + }) + }) +}, +handleGetDoctorList(){ + const {area}=this.data; + const postData={ + company_id:1, + province_id:area.province_id, + city_id:area.city_id, + county_id:area.county_id + } + getDoctorList(postData).then(data=>{ + this.setData({ + doctorList:data + }) + }) +}, +toggleSick(event) { + + const { index } = event.currentTarget.dataset; + const checkbox = this.selectComponent(`.checkboxessick-${index}`); + checkbox.toggle(); + }, + onClickDcotor(event){ + const {name,userid,doctorname,hospital} = event.currentTarget.dataset; + console.log(userid,name) + this.setData({ + doctorResult: name, + doctor_name:doctorname+"("+hospital+")", + showDoctor:false + }); + }, + noop() {}, + onConfirmSick() { + let {sickResult,sickList}=this.data; + this.setData({ + showSick: false, + disease_ids:sickResult + }); + let sick_name=""; + sickList.forEach((item)=>{ + if(sickResult.indexOf(item.id)!=-1){ + if(!sick_name){ + sick_name+=item.name; + }else{ + sick_name+=" | "+item.name + } + } + }) + this.setData({ + sick_name + }) + }, + closeDoctor(){ + this.setData({ + showDoctor: false + }) + }, + openCity(){ + this.provinceList() + this.setData({ + showCity:true + }) + }, + openSick() { + this.setData({ + showSick: true + }) + }, + openDoctor(){ + this.setData({ + showDoctor:true + }) + }, + closeSick() { + this.setData({ + showSick: false + }) + }, + provinceList(){ + getProvince().then((res)=>{ + provinceArr= provinceArr.concat(res); + let province=[{area_id:'', area_name: "全国"}];// + for (let i = 0; i < res.length; i++) { + province.push(res[i]); + }; + this.setData({ + 'columns[0].values':province + }) + //this.cityList(province[0].area_id); + + }) + }, + cityList(area_id){ + getCity({ + area_id:area_id + }).then((res)=>{ + + cityArr=res; + let city=[]; + for (let i = 0; i < res.length; i++) { + city.push(res[i]); + }; + this.setData({ + 'columns[1].values':city, + // 'area.county_id':res[0].area_id + }) + this.countryList(res[0].area_id); + }) + }, + countryList(area_id){ + getCountry({ + area_id:area_id + }).then((res)=>{ + let area=[]; + for (let i = 0; i < res.length; i++) { + area.push(res[i]); + }; + this.setData({ + 'columns[2].values':area, + isLoding:false + }) + }) + }, + onConfirm(event) { + const {value} = event.detail; + let currentPosition='' + for (let index = 0; index < value.length; index++) { + if(!value[0].area_id){ + currentPosition="全国"; + this.setData({ + area:{ + province_id:'', + city_id:'', + county_id:'', + province:'', + city:'', + county:'' + } + }) + }else{ + currentPosition+=value[index].area_name; + if(index===0){ + this.setData({ + 'area.province_id':value[index].area_id + }) + }else if(index==1){ + this.setData({ + 'area.city_id':value[index].area_id, + }) + }else if(index==2){ + this.setData({ + 'area.county_id':value[index].area_id + }) + } + } + } + this.setData({ + currentPosition:currentPosition, + showCity: false + }); + console.log(this.data.area); + this.handleGetDoctorList(); + }, + onChangePicker(event) { + const { picker, value, index } = event.detail; + if(index===0){ + let currentIndex=picker.getIndexes()[0]; + if(provinceArr[currentIndex].area_id){ + this.cityList(provinceArr[currentIndex].area_id); + }else{ + this.setData({ + 'columns[1].values':[], + 'columns[2].values':[] + }) + } + } + }, + onCancel() { + this.setData({ + showCity: false + }) + }, + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + clearInterval(this.data.timer); + // this.setData({ + // sickResult:[], + // doctorResult:'' + // }) + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + clearInterval(this.timer); + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + +}) \ No newline at end of file diff --git a/pages/sugarSickInfo/sugarSickInfo.json b/pages/sugarSickInfo/sugarSickInfo.json new file mode 100644 index 0000000..269a804 --- /dev/null +++ b/pages/sugarSickInfo/sugarSickInfo.json @@ -0,0 +1,16 @@ +{ + "usingComponents": { + "van-popup": "@vant/weapp/popup/index", + "van-picker": "@vant/weapp/picker/index", + "nav":"../../components/nav/nav", + "van-checkbox": "@vant/weapp/checkbox/index", + "van-cell": "@vant/weapp/cell/index", + "van-cell-group": "@vant/weapp/cell-group/index", + "van-checkbox-group": "@vant/weapp/checkbox-group/index", + "van-radio": "@vant/weapp/radio/index", + "van-radio-group": "@vant/weapp/radio-group/index", + "dialog":"../../components/dialog/dialog", + "van-dialog": "@vant/weapp/dialog/index" + }, + "navigationStyle":"custom" +} \ No newline at end of file diff --git a/pages/sugarSickInfo/sugarSickInfo.wxml b/pages/sugarSickInfo/sugarSickInfo.wxml new file mode 100644 index 0000000..22de194 --- /dev/null +++ b/pages/sugarSickInfo/sugarSickInfo.wxml @@ -0,0 +1,127 @@ + + + + + + + 真实姓名* + + + + + + 民族* + + + + + + + 既往病史* + + + + + + + 目的* + + + + + + + 申请医生* + + + + + + + + + 根据国家互联网诊疗相关政策的要求,请您在使用服务前仔细阅读《风险告知与知情同意书》,肝胆相照互联网医院平台医生,仅为您提供健康咨询服务,咨询意见供您参考。继续操作表示您知悉并同意上述告诉内容。 + + + + + 立即支付 + + + + + + + 申请医生 + + + + {{currentPosition}} + + + + + + + + + + + + + + {{ item.user_name}} + + 主任中医师 + 主任医师 + 副主任医师 + 副主任中医师 + 主治医师 + 住院医师 + + {{item.hospital_name}} + + + + + + + 暂无医生数据! + + + + + + + 取消 + 既往病史(最多3项) + 确定 + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pages/sugarSickInfo/sugarSickInfo.wxss b/pages/sugarSickInfo/sugarSickInfo.wxss new file mode 100644 index 0000000..570b988 --- /dev/null +++ b/pages/sugarSickInfo/sugarSickInfo.wxss @@ -0,0 +1,202 @@ +/* pages/sugarSickInfo/sugarSickInfo.wxss */ +.page{ + overflow: hidden; + display: flex; + flex-direction: column; +} +.infobox{ + overflow-y: scroll; + flex:1; + -webkit-overflow-scrolling: touch; +} +.sickbox{ + + padding-top: 10rpx; + background-color: #fff; + margin: 196rpx 32rpx 0; + box-shadow: 0rpx 2rpx 16rpx 2rpx rgba(0,0,0,0.02); +border-radius: 12rpx + +} +.info { + + display: flex; + align-items: center; + height: 112rpx; + color: #333333; +} + +.info .name { + white-space: nowrap; + width: 180rpx; + display: flex; + align-items: center; + margin-left:32rpx; + color: #333333; + font-size: 34rpx; +} + +.info text { + margin-top: 20rpx; + color:#E34D59; + + display: flex; + align-items: center; +} +.info .iptbox{ + display: flex; + align-items: center; + margin-left: 15rpx; + margin-right: 32rpx; + flex: 1; + border-bottom: 1rpx solid #E7E7E7; +} +.info input { + height:112rpx; + position: relative; + z-index:1; + display: flex; + align-items: center; + + width:100%; + + +} +.agreecon{ + padding:20rpx 30rpx; + height:600rpx; + overflow: scroll; +} +.info:last-child .iptbox{ + border: none; +} +.input-placeholder { + color: #999999; + font-size: 28rpx; +} +.tips{ + padding:24rpx 20rpx; + margin:0rpx 32rpx 20rpx; + font-size: 24rpx; + color: rgba(0,0,0,0.45); + border-radius: 12rpx; +} +.warntitle{ + color: #E34D59; + font-size: 28rpx; +} +.warn{ + margin-top: 20rpx; + font-size: 24rpx; + line-height: 36rpx; + color: #666666; +} +.righticon { + width: 24rpx; + height: 48rpx; +} +.navigator{ + color: #3CC7C0 ; +} +.bottom{ + position: absolute; + bottom: 0; + width:100%; + height: 186rpx; +background: #FFFFFF; +} +.bottom .pay{ + display: flex; + justify-content: center; + align-items: center; + height: 94rpx; +background: #3CC7C0; +border-radius: 47rpx; +font-size: 36rpx; +font-weight: 400; +color: #FFFFFF; + margin:16rpx 32rpx 0; +} +.sickcon{ + height:100%; + display: flex; + flex-direction: column; +} +.titlebox{ + /* position: absolute; + top:0; */ + display: flex; + font-size: 32rpx; + margin:40rpx 32rpx; + justify-content: space-between; +} +.cancel{ + color: rgba(0,0,0,0.45); +} +.ok{ + color: #3CC7C0; +} +.title{ + font-weight: 500; +color: rgba(0,0,0,0.85); +} +.doctorlist{ + margin-top: 0rpx; + flex:1;overflow-y: scroll; + -webkit-overflow-scrolling: touch; +} +.site{ + margin:0 32rpx; + display: flex; + align-items: center; +} +.namebox{ + margin-left: 20rpx; +} +.rootclass{ + + background: rgba(60,199,192,0.08)!important; +} +.van-cell-text{ +font-size: 30rpx; +font-weight: 400; +font-family: PingFangSC-Regular, PingFang SC; +color: rgba(0,0,0,0.85) +} +.value-class{ + display: flex; + align-items: center; +} +.hospital{ + font-size: 24rpx; +font-weight: 400; +color: rgba(0,0,0,0.65) +} +.siteimg{ + margin-left: 8rpx; + width: 32rpx; + height:32rpx; +} +.celltitle{ + display: flex; + align-items: center; +} +.head{ + width: 80rpx; + height: 80rpx; + border-radius: 50%; +} +.van-hairline, .van-hairline--bottom, .van-hairline--left, .van-hairline--right, .van-hairline--surround, .van-hairline--top, .van-hairline--top-bottom { + position: static!important; +} +#agreeDialog .van-dialog__header { + padding-top:30rpx!important; + padding-bottom: 25rpx; + border-bottom: 1px solid rgba(0,0,0,0.1); +} +#agreeDialog .van-dialog__footer{ + border-top: 1px solid rgba(0,0,0,0.1); + } + #agreeDialog .van-dialog__button:first-child{ + border-right: 1px solid rgba(0,0,0,0.1); + } \ No newline at end of file diff --git a/pages/sysMsgDetail/sysMsgDetail.js b/pages/sysMsgDetail/sysMsgDetail.js new file mode 100644 index 0000000..b00d249 --- /dev/null +++ b/pages/sysMsgDetail/sysMsgDetail.js @@ -0,0 +1,128 @@ +// pages/sysMsgDetail/sysMsgDetail.js +const app = getApp() +import { + lastMsg, + allRead, +} from "../../api/msg" +import {throttle} from "../../utils/util" +Page({ + + /** + * 页面的初始数据 + */ + data: { + msg:{}, + isTriggered:false, + count:0, + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static' + }, + getLastMsg(){ + lastMsg().then(data=>{ + let count=0; + for (const key in data) { + let item='msg.'+key + count=count+data[key].count; + this.setData({ + [item]:data[key], + isTriggered:false, + count:count + }) + }; + }) + }, + HnaleAllRead(){ + allRead({ + notice_type:3 + }).then(data=>{ + this.getLastMsg(); + wx.showToast({ + title: '一键已读成功', + icon:"none" + }) + }) + }, + goServiceList:throttle(function(){ + app.method.navigateTo({ + url: '/pages/sysMsgList/sysMsgList', + }) + }), + gofuliMsgList:throttle(function(){ + app.method.navigateTo({ + url: '/pages/fuliMsgList/fuliMsgList', + }) + }), + goBack(){ + wx.navigateBack({ + delta: 1, + }) + }, + handleRefresher(){ + this.getLastMsg(); + }, + goExpress:throttle(function(){ + app.method.navigateTo({ + url: '/pages/refundMsgList/refundMsgList?type=express', + }) + }), + refundMsgList:throttle(function(){ + app.method.navigateTo({ + url: '/pages/refundMsgList/refundMsgList', + }) + }), + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + //this.getLastMsg() + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + this.setData({ + img_host:app.hostConfig().imghost + }) + this.getLastMsg() + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + +}) \ No newline at end of file diff --git a/pages/sysMsgDetail/sysMsgDetail.json b/pages/sysMsgDetail/sysMsgDetail.json new file mode 100644 index 0000000..44a996f --- /dev/null +++ b/pages/sysMsgDetail/sysMsgDetail.json @@ -0,0 +1,7 @@ +{ + "usingComponents": { + "nav":"../../components/nav/nav" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "肝胆相照互联网医院" +} \ No newline at end of file diff --git a/pages/sysMsgDetail/sysMsgDetail.wxml b/pages/sysMsgDetail/sysMsgDetail.wxml new file mode 100644 index 0000000..b54f6d6 --- /dev/null +++ b/pages/sysMsgDetail/sysMsgDetail.wxml @@ -0,0 +1,55 @@ + + + + + + + + + + 服务消息 + + {{filters.formatNumber(msg.service.count)}} + + {{msg.service.info.notice_brief_title}} + + + + + + + + 福利消息 + + {{filters.formatNumber(msg.benefit.count)}} + + {{msg.benefit.info.notice_brief_title}} + + + + + + + + 退款消息 + + {{filters.formatNumber(msg.refund.count)}} + + {{msg.refund.info.notice_brief_title}} + + + + + + + + 物流消息 + + {{filters.formatNumber(msg.logistics.count)}} + + {{msg.logistics.info.notice_brief_title}} + + + + + diff --git a/pages/sysMsgDetail/sysMsgDetail.wxss b/pages/sysMsgDetail/sysMsgDetail.wxss new file mode 100644 index 0000000..bb89e3f --- /dev/null +++ b/pages/sysMsgDetail/sysMsgDetail.wxss @@ -0,0 +1,76 @@ +/* pages/sysMsgDetail/sysMsgDetail.wxss */ +.toptip { + display: flex; + padding:30rpx 0rpx 0rpx 32rpx; + + background: #FFFFFF; +} +.page{ + display: flex; + flex-direction: column; + overflow: hidden; +} +.circle{ + width: 20rpx; + height:20rpx; + background: #EF4F20; + border-radius: 50%; +} +.boxcon{ + margin-top: 172rpx; + flex:1; + overflow-y:scroll ; + -webkit-overflow-scrolling: touch; +} + +.titlebox { + display: flex; + margin-right: 32rpx; + justify-content: space-between; + +} +.msg{ + flex:1; + min-height: 80rpx; + padding-bottom: 30rpx; + margin-left: 20rpx; + display: flex; + flex-direction: column; + border-bottom: 1rpx solid #E3E4E5; +} +.msg .title { + font-size: 30rpx; + + color: rgba(51,51,51,0.9); +} + +.msg .tips { + margin-right: 32rpx; + margin-top: 10rpx; + font-size: 28rpx; + color: #666; +} +.bell{ + width:60rpx; + height:60rpx; + flex-shrink: 0; +} +.bage { + min-width: 17rpx; + padding: 0 10rpx; + height: 36rpx; + display: flex; + align-items: center; + color: #fff; + justify-content: center; + border-radius: 30rpx; + font-size: 26rpx; + background: #EF4F20; +} +.allread{ + position: fixed; + width:158rpx; + height:84rpx; + right:0; + bottom:200rpx; +} \ No newline at end of file diff --git a/pages/sysMsgList/sysMsgList.js b/pages/sysMsgList/sysMsgList.js new file mode 100644 index 0000000..df30fe1 --- /dev/null +++ b/pages/sysMsgList/sysMsgList.js @@ -0,0 +1,160 @@ +// pages/sysMsgList/sysMsgList.js +const app = getApp() +import { + hasRead, + getMsg +} from "../../api/msg" +import {throttle} from "../../utils/util" +Page({ + + /** + * 页面的初始数据 + */ + data: { + list:[], + isLock:false, + isTriggered:false, + page:1, + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static', + pageNumber:10 + }, + handleGo:throttle(function(event){ + + let link_type=event.currentTarget.dataset.type; + let index=event.currentTarget.dataset.index; + let link_params=event.currentTarget.dataset.params; + let id=event.currentTarget.dataset.id; + let status=event.currentTarget.dataset.status; + hasRead(id).then(data=>{ + let currentItem=`list[${index}].read_status` + if(status==0){ + this.setData({ + [currentItem]:1 + }) + } + this.goOther(link_type,link_params); + }) + }), + goBack(){ + wx.navigateBack({ + delta: 1, + }) + }, + + lower(){ + if(!this.data.isLock){ + this.setData({ + page:++this.data.page + }) + this.handleGetMsg(); + } + }, + handleRefresher(){ + this.setData({ + page:1, + isLock:false, + list:[] + }) + this.handleGetMsg() + }, + handleGetMsg(){ + let {page,pageNumber}=this.data; + getMsg({ + page:page, + per_page:pageNumber, + notice_system_type:1 + }).then(data=>{ + let result=data.data; + if(result.length==0){ + this.setData({ + isLock:true + }) + }; + this.setData({ + isTriggered:false, + list:this.data.list.concat(result) + }) + }) + }, + goOther(link_type,link_params){ + let url=''; + if(link_type==1){ + url= '/TUIService/pages/index?currentConversationID='+link_params.doctor_user_id+'&order_inquiry_id='+link_params.order_inquiry_id+'&inquiry_type='+link_params.inquiry_type; + }else if(link_type==7){ + url='/pages/myWelfare/myWelfare' + }else if(link_type==8){ + url='/pages/medinceOrder/medinceOrder' + }else if(link_type==9){ + url='/pages/medinceOrder/medinceOrder' + }else if(link_type==10){ + url='/pages/orderDetail/orderDetail?order_inquiry_id='+link_params.order_inquiry_id + }else if(link_type==12){ + + }else if(link_type==13){ + url='/pages/prescriptDetail/prescriptDetail?order_prescription_id='+link_params.order_prescription_id + }; + app.method.navigateTo({ + url: url, + }) + }, + goMishu(){ + app.method.navigateTo({ + url: '/pages/gandansecretary/gandansecretary', + }) + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + this.handleGetMsg(); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + this.setData({ + img_host:app.hostConfig().imghost + }) + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + +}) \ No newline at end of file diff --git a/pages/sysMsgList/sysMsgList.json b/pages/sysMsgList/sysMsgList.json new file mode 100644 index 0000000..44a996f --- /dev/null +++ b/pages/sysMsgList/sysMsgList.json @@ -0,0 +1,7 @@ +{ + "usingComponents": { + "nav":"../../components/nav/nav" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "肝胆相照互联网医院" +} \ No newline at end of file diff --git a/pages/sysMsgList/sysMsgList.wxml b/pages/sysMsgList/sysMsgList.wxml new file mode 100644 index 0000000..2c7d767 --- /dev/null +++ b/pages/sysMsgList/sysMsgList.wxml @@ -0,0 +1,39 @@ + + + + + + + + + + {{item.from_name}} + {{item.notice_send_time}} + + {{item.notice_content}} + + + 查看协议 + 订单详情 + 查看处方 + 问诊详情 + + + + + + + 暂无数据! + \ No newline at end of file diff --git a/pages/sysMsgList/sysMsgList.wxss b/pages/sysMsgList/sysMsgList.wxss new file mode 100644 index 0000000..75301d1 --- /dev/null +++ b/pages/sysMsgList/sysMsgList.wxss @@ -0,0 +1,81 @@ +/* pages/sysMsgList/sysMsgList.wxss */ +.page{ + display: flex; + flex-direction: column; +} +.cellbox{ + flex:1; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; + margin-top: 172rpx; +} +.nonedata{ + margin-top: 172rpx; +} +.cell{ + position: relative; + display: flex; + padding:30rpx 32rpx 30rpx; + background-color: #fff; + border-bottom: 1rpx solid #E7E7E7; +} +.cell:last-child{ + border-bottom:none; +} +.cell .icon{ + width:72rpx; + height:74rpx; +} +.cell .right{ + margin-left: 20rpx; + flex:1; +} +.cell .namebox{ + display: flex; + align-items: center; + justify-content: space-between; +} +.namebox .name{ + font-size: 32rpx; + color: rgba(51,51,51,0.9); +} +.namebox .date{ + font-size: 24rpx; + color: rgba(102,102,102,0.9) +} +.cell .detail{ + margin-top: 8rpx; + font-size: 28rpx; +color: rgba(0,0,0,0.4); +} +.circle{ + position: absolute; + top:12rpx; + right: 30rpx; + width:20rpx; + height:20rpx; + background:rgba(239, 79, 32, 1); + border-radius: 50%; +} +.right .row{ + margin-top: 10rpx; + display: flex; + justify-content: flex-end; +} +.button{ + padding:0 30rpx; +height: 30rpx; +font-size: 30rpx; +display: flex; +align-items: center; +justify-content: center; +font-weight: 400; +height: 60rpx; +background: #3CC7C0; +border-radius: 30rpx; +color: #FFFFFF; + +} +.nonedata{ + min-height:600rpx; +} \ No newline at end of file diff --git a/pages/writeSick/writeSick.js b/pages/writeSick/writeSick.js new file mode 100644 index 0000000..462ef75 --- /dev/null +++ b/pages/writeSick/writeSick.js @@ -0,0 +1,849 @@ +// pages/writeSick/writeSick.js +const app = getApp() +import Dialog from '@vant/weapp/dialog/dialog'; +import dayjs from '../../utils/dayjs.min.js' +import { + createOrder +} from "../../api/consult" +import { + getSign +} from "../../api/common" +import { + lastSick +} from "../../api/consultExpert" +import { + throttle +} from "../../utils/util" +import {client_type} from "../../utils/isPc" +let urlHost=app.hostConfig().agreehost; +console.log(client_type); +Page({ + + /** + * 页面的初始数据 + */ + data: { + prevData: null, + showdialog: false, + showAgreeDialog: false, + message: '', + order_inquiry_id:'', + doctor_id: '', + family_id: '', + chat_id: '', + inquiry_type: 1, + inquiry_mode: 1, + messageTitle: '', + disease_class_name: '', + disease_class_id:null, + show: false, + startIndex: 0, + cancelBtn: false, + showSick: false, + hideSick: false, + hideGuomin: false, + hidePregnant:false, + disease_desc: '', + hideFamilysick: false, + showBack: false, + columns: [], + fileList: [], + lockBtn: false, + checkSign: false, + is_allergy_history:null, + is_family_history:null, + is_pregnant:null, + pregnant: '', + checkAgree: false, + is_taboo:null, + diagnosis_date:null, + product: [], + img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static', + allergy_history: '', + family_history: '', + currentDate: new Date().getTime(), + minDate: new Date('1900/01/01 00:00:00').getTime(), + maxDate: new Date().getTime(), + formatter(type, value) { + if (type === 'year') { + return `${value}年`; + } + if (type === 'month') { + return `${value}月`; + } + if (type === 'day') { + return `${value}日`; + } + return value; + } + + }, + setInfo(obj){ + let Info =obj; + for (const key in Info) { + if (key != "product") { + if (Info[key]) { + this.setData({ + [key]: Info[key] + }) + } + } + + }; + if (Info.disease_desc) { + this.setData({ + hideSick: true + }) + }; + if (Info.pregnant) { + this.setData({ + hidePregnant: true + }) + }; + + if (Info.allergy_history) { + this.setData({ + hideGuomin: true + }) + }; + if (Info.family_history) { + this.setData({ + hideFamilysick: true + }) + }; + + if (Info.fileList) { + + this.setData({ + fileList:Info.fileList, + checkSign: false + }) + } else { + this.setData({ + checkSign: true + }) + } + }, + getlocalInfo(id){ + let sickInfo = wx.getStorageSync('sickInfo'); + if (sickInfo) { + + var InfoObj = JSON.parse(sickInfo); + if (InfoObj instanceof Array) { + for (let i = 0; i < InfoObj.length; i++) { + if (InfoObj[i].family_id == id) { + Dialog.confirm({ + title: '温馨提示', + message: '是否加载之前保存的病情信息?', + }).then(() => { + this.setInfo(InfoObj[i]) + }) + .catch(() => { + + }); + + break; + }; + } + } + + } + }, + handleLastSick(id) { + lastSick(id).then(data => { + if (!data){ + this.getlocalInfo(id); + + } else { + let obj = { + disease_class_name: '', + disease_class_id: '', + diagnosis_date: '', + disease_desc: '', + is_allergy_history:null, + product: [], + is_taboo:null, + is_pregnant:null, + pregnant: '', + is_family_history:null, + allergy_history: '', + family_history: '', + } + for (const key in obj) { + if (key != "product") { + this.setData({ + [key]: data[key] + }) + } + + }; + if (data.disease_desc) { + this.setData({ + hideSick: true + }) + }; + if (data.pregnant) { + this.setData({ + hidePregnant: true + }) + }; + + if (data.allergy_history) { + this.setData({ + hideGuomin: true + }) + }; + if (data.family_history) { + this.setData({ + hideFamilysick: true + }) + }; + if (data.diagnose_images) { + this.setData({ + fileList: data.diagnose_images, + checkSign: false + }) + } else { + this.setData({ + checkSign: false + }) + } + + } + }) + }, + + onConfirm(event) { + const { + value + } = event.detail; + this.setData({ + disease_class_name: `${value.disease_class_name}`, + disease_class_id: `${value.disease_class_id}`, + showSick: false + }) + }, + showSick() { + app.method.navigateTo({ + url: '/pages/commonSick/commonSick' + }) + }, + delImg(event) { + let id = event.currentTarget.dataset.id; + this.data.fileList.splice(id, 1); + this.setData({ + fileList: this.data.fileList + }) + }, + previewImage(event) { + let id = event.currentTarget.dataset.id; + let urls = this.data.fileList; + wx.previewImage({ + current: urls[id], // 当前显示图片的http链接 + urls: urls // 需要预览的图片http链接列表 + }) + }, + uploadFile(File) { + wx.showLoading({ + title: '图片上传中...', + mask: true + }) + let THIS = this; + getSign({ + user_type: 1, + scene: 2 + }).then((resdata) => { + let { + accessid, + dir, + policy, + signature, + host + } = resdata; + let index = File.lastIndexOf("/"); + let filename = File.substring(index + 1, File.length); + return new Promise((resolve, reject) => { + wx.uploadFile({ + url: host, // 仅为示例,非真实的接口地址 + filePath: File, + name: 'file', + formData: { + OSSAccessKeyId: accessid, + policy, + key: dir + filename, + signature + }, + success(res) { + if (res.statusCode === 204) { + let url = host + '/' + dir + filename; + THIS.setData({ + fileList: THIS.data.fileList.concat([url]) + }) + } + }, + fail: err => { + console.log(err); + } + }); + }) + }) + }, + + upload() { + if(this.data.fileList.length>=9){ + wx.showToast({ + title: '复诊凭证最多上传9张', + icon:"none" + }) + return false + }; + let THIS = this; + wx.chooseMedia({ + count: 9-this.data.fileList.length, + mediaType: ['image'], + sourceType: ['album', 'camera'], + success(res) { + var imgList = res.tempFiles; + var promiseFun = []; + for (let i = 0; i < imgList.length; i++) { + var file = imgList[i].tempFilePath; + promiseFun.push( + THIS.uploadFile(file) + ) + }; + Promise.all(promiseFun).then((res) => { + wx.showToast({ + title: '图片上传成功', + icon: "none" + }) + THIS.setData({ + checkSign: false + }) + wx.hideLoading(); + + }); + + } + }) + }, + onCancel() { + this.setData({ + showSick: false + }) + }, + handleThrottle: throttle(function () { + this.create_Order() + }), + create_Order() { + let { + inquiry_type, + inquiry_mode, + doctor_id, + family_id, + disease_class_id, + diagnosis_date, + disease_desc, + fileList, + is_allergy_history, + product, + is_taboo, + checkSign, + is_pregnant, + pregnant, + is_family_history, + allergy_history, + family_history, + checkAgree, + sex + } = this.data; + + if (!disease_class_id) { + wx.showToast({ + title: '请选择所患疾病', + icon: "none" + }) + return false; + }; + if (!diagnosis_date) { + wx.showToast({ + title: '请选择确诊日期', + icon: "none" + }) + return false; + }; + if (!disease_desc) { + wx.showToast({ + title: '请填写病情主诉', + icon: "none" + }) + return false; + }; + if(disease_desc.length<10){ + wx.showToast({ + title: '病情主诉不少于10个字', + icon: "none" + }) + return false; + }; + + if (fileList.length == 0 && !checkSign) { + wx.showToast({ + title: '请上传复诊凭证或者勾选凭证遗失或不在身边', + icon: "none" + }) + return false; + } + if(is_taboo==null && inquiry_type == 4){ + wx.showToast({ + title: '请选择是否服用过您想购买的药品且无相关禁忌', + icon: "none" + }) + return false; + } + if (is_taboo == 0 && inquiry_type == 4) { + this.setData({ + showdialog: true, + messageTitle: "您的情况不适合线上问诊开方,建议线下就诊" + }) + return false + }; + + if (inquiry_type == 4 && allergy_history) { + for (let i = 0; i < product.length; i++) { + if (allergy_history.indexOf(product[i].product_name) != -1) { + this.setData({ + showdialog: true, + messageTitle: "您的情况不适合线上问诊开方,建议线下就诊" + }) + return false + } + + } + }; + if(is_allergy_history==null){ + wx.showToast({ + title: '请选择您是否有过敏史', + icon: "none" + }) + return false; + }; + if(is_allergy_history==1){ + if(!allergy_history){ + wx.showToast({ + title: '过敏史内容不能为空', + icon: "none" + }) + return false; + } + }; + if(is_family_history==null){ + wx.showToast({ + title: '请选择您是否有家族病史', + icon: "none" + }) + return false; + }; + if(is_family_history==1){ + if(!family_history){ + wx.showToast({ + title: '家族病史内容不能为空', + icon: "none" + }) + return false; + } + }; + if(is_pregnant==null && sex==2){ + wx.showToast({ + title: '请选择您是否处于备孕、妊娠、哺乳期', + icon: "none" + }) + return false; + }; + if (is_pregnant == 1) { + wx.showToast({ + title: '您的情况不适合线上问诊开方,建议线下就诊', + icon: "none" + }) + return false; + } + if (!checkAgree) { + this.setData({ + showAgreeDialog: true + }) + return false; + }; + this.setData({ + lockBtn: true + }); + createOrder({ + patient_id: wx.getStorageSync('CLIENT_USER_ID'), + doctor_id: doctor_id, + family_id: family_id, + disease_class_id: disease_class_id, + diagnosis_date: diagnosis_date, + disease_desc: disease_desc, + is_allergy_history:is_allergy_history, + is_taboo: is_taboo, + allergy_history: allergy_history, + family_history: family_history, + is_family_history: is_family_history, + is_pregnant: is_pregnant, + pregnant: pregnant, + product: product, + inquiry_type: inquiry_type, + inquiry_mode: inquiry_mode, + diagnose_images: fileList, + client_type:client_type , + }).then((data) => { + let { + inquiry_no, + order_inquiry_id + } = data.data; + let { + chat_id, + inquiry_type, + inquiry_mode + } = this.data; + this.setData({ + lockBtn: false + }); + if(data.status==1){ + app.method.navigateTo({ + url: '/pages/payOrder/payOrder?doctor_id=' + doctor_id + '&inquiry_no=' + inquiry_no + "&chat_id=" + chat_id + "&inquiry_type=" + inquiry_type + "&inquiry_mode=" + inquiry_mode + "&order_inquiry_id=" + order_inquiry_id + "&fromType=chat" + }) + }else if(data.status==2){ + this.setData({ + showdialog:true, + messageTitle:"当前患者存在进行中问诊订单", + order_inquiry_id: order_inquiry_id, + cancelBtn:true + }) + } + + + }).catch((error)=>{ + this.setData({ + showdialog:true, + messageTitle:error.message, + cancelBtn:true + }) + }) + }, + inputChange(e) { + this.setData({ + [e.target.dataset.id]: e.detail.value + }) + }, + openPop() { + this.setData({ + show: true + }) + }, + handleClose() { + this.setData({ + show: false + }) + }, + handleConfirm(event) { + this.setData({ + show: false + }); + this.setData({ + diagnosis_date: dayjs(event.detail).format('YYYY-MM-DD') + }); + }, + handelFocus(e) { + let key = e.target.dataset.id; + let value = e.target.dataset.value; + if (!e.detail.value) { + this.setData({ + [key]: false, + [value]: e.detail.value + }) + } else { + this.setData({ + [key]: true, + [value]: e.detail.value + }) + } + }, + handelTextFocus(e) { + let key = e.target.dataset.id; + let value = e.target.dataset.value; + if (!e.detail) { + this.setData({ + [key]: false, + [value]: e.detail + }) + } else { + this.setData({ + [key]: true, + [value]: e.detail + }) + } + }, + goBack() { + + if (app.globalData.origion == 1) { + wx.reLaunch({ + url: '/pages/index/index', + }) + } else if (app.globalData.origion == 2) { + wx.reLaunch({ + url: '/pages/index/index', + }) + } else { + let { + disease_class_name, + diagnosis_date, + fileList, + is_allergy_history, + is_pregnant, + checkSign, + checkAgree, + is_family_history, + disease_desc + } = this.data; + //封装组件后退有bug,通过引用,回退正常 + if (disease_class_name || is_allergy_history || is_pregnant || is_family_history || fileList.length > 0 || diagnosis_date || disease_desc || checkSign || checkAgree) { + Dialog.confirm({ + title: '温馨提示', + message: '是否保存填写的病情信息?', + }).then(() => { + this.onSave() + }) + .catch(() => { + //wx.setStorageSync('sickInfo',''); + wx.navigateBack({ + delta: 1, + fail: function () { + wx.reLaunch({ + url: '/pages/index/index', + }) + } + }) + }); + } else { + + wx.navigateBack({ + delta: 1 + }) + } + } + + + + }, + agreeConfirm(){ + this.setData({ + checkAgree:true + }) + }, + confirm(event) { + + if (event.detail) { + this.setData({ + showdialog: false + }) + } + if(this.data.messageTitle=="当前患者存在进行中问诊订单"){ + let {order_inquiry_id}=this.data; + app.method.navigateTo({ + url: '/pages/orderDetail/orderDetail?order_inquiry_id='+ order_inquiry_id, + }) + } + }, + cancelAlert(){ + this.setData({ + showdialog: false + }) + }, + onChangeSign() { + this.setData({ + checkSign: !this.data.checkSign + }) + if (this.data.checkSign) { + this.setData({ + fileList: [] + }) + } + }, + onChange(event) { + + let key = event.target.dataset.id; + this.setData({ + [key]: event.detail + }); + if (event.detail == 0) { + if (key == "is_allergy_history") { + this.setData({ + allergy_history: '' + }) + }; + + if (key == "is_family_history") { + this.setData({ + family_history: '' + }) + }; + + if (key == "is_pregnant") { + this.setData({ + pregnant: '' + }) + } + } + }, + onSave() { + let { + family_id, + allergy_history, + family_history, + disease_desc, + disease_class_name, + disease_class_id, + diagnosis_date, + fileList, + checkSign, + checkAgree, + is_allergy_history, + is_pregnant, + pregnant, + is_family_history, + is_taboo, + product + } = this.data; + let sickInfo = { + family_id, + disease_class_name, + diagnosis_date, + fileList, + disease_class_id, + disease_desc, + allergy_history, + family_history, + is_allergy_history, + is_pregnant, + pregnant, + checkSign, + is_taboo, + product, + checkAgree, + is_family_history + }; + let sickInfo_stroage = wx.getStorageSync("sickInfo"); + if (sickInfo_stroage) { + let sickInfoObj = JSON.parse(sickInfo_stroage); + if (sickInfoObj instanceof Array) { + for (let i = 0; i < sickInfoObj.length; i++) { + if (sickInfoObj[i].family_id == family_id) { + sickInfoObj.splice(i, 1); + } + } + sickInfoObj.push(sickInfo); + wx.setStorageSync('sickInfo', JSON.stringify(sickInfoObj)); + } else { + sickInfoObj.family_id = family_id; + wx.setStorageSync('sickInfo', JSON.stringify([sickInfoObj])); + } + } else { + wx.setStorageSync('sickInfo', JSON.stringify([sickInfo])); + } + + wx.navigateBack({ + delta: 1 + }) + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + // 订单类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药) + if (options.inquiry_type == 1 || options.inquiry_type == 3) { + this.setData({ + doctor_id: options.doctor_id, + family_id: options.family_id, + chat_id: options.chat_id, + inquiry_type: options.inquiry_type, + inquiry_mode: 1, + sex: options.sex + }) + } else { + if (options.inquiry_type == 4) { + this.setData({ + startIndex: 1 + }) + } + + this.setData({ + product: options.product ? JSON.parse(options.product) : [], + family_id: options.family_id, + inquiry_type: options.inquiry_type, + sex: options.sex, + inquiry_mode: 1 + }) + } + //this.getSick(); + this.handleLastSick(options.family_id); + }, + goAgreement:throttle(function(){ + app.method.navigateTo({ + url:"/pages/linkPage/linkPage?url="+encodeURIComponent(urlHost+'/basic/file/agreement.htm?id=1') + }) + }), + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + this.setData({ + img_host:app.hostConfig().imghost + }); + let { + prevData + } = this.data; + if (prevData) { + this.setData({ + disease_class_name: prevData.disease_class_name, + disease_class_id: prevData.disease_class_id, + }) + } + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() {}, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + +}) \ No newline at end of file diff --git a/pages/writeSick/writeSick.json b/pages/writeSick/writeSick.json new file mode 100644 index 0000000..7d62b9f --- /dev/null +++ b/pages/writeSick/writeSick.json @@ -0,0 +1,17 @@ +{ + "usingComponents": { + "van-field": "@vant/weapp/field/index", + "van-checkbox": "@vant/weapp/checkbox/index", + "van-radio": "@vant/weapp/radio/index", + "van-radio-group": "@vant/weapp/radio-group/index", + "van-datetime-picker": "@vant/weapp/datetime-picker/index", + "van-popup": "@vant/weapp/popup/index", + "van-picker": "@vant/weapp/picker/index", + "van-icon": "@vant/weapp/icon/index", + "dialog":"../../components/dialog/dialog", + "van-dialog": "@vant/weapp/dialog/index", + "nav":"../../components/nav/nav" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "肝胆相照互联网医院" +} \ No newline at end of file diff --git a/pages/writeSick/writeSick.wxml b/pages/writeSick/writeSick.wxml new file mode 100644 index 0000000..2e792a7 --- /dev/null +++ b/pages/writeSick/writeSick.wxml @@ -0,0 +1,164 @@ + + + + + + 填写病情 + + + + 所患疾病 + + + + + 确诊日期 + + + + 病情主诉 + + + + + + + + + + 用药意向 + + + + {{item.product_name}}{{item.product_spec}}(数量{{item.product_num}}) + + + + + + 上传复诊凭证(最多9张) + 请上传问诊本人清晰的复诊凭证(病例/处方单/检查报告/住院单),仅接诊医生可见。 + + + + + + + + + + 复诊凭证遗失或不在身边,请勾选本项,未上传凭证可能会影响医生对您的诊断 + + + + + + {{startIndex}}、 + + 是否服用过您想购买的药品且无相关禁忌? + + + + + + + + + + {{startIndex+1}}、 + + 您是否有过敏史? + + + + + + + + + + + {{startIndex+2}}、 + + 您是否有家族病史? + + + + + + + + + + + {{startIndex+3}}、 + + 您是否处于备孕、妊娠、哺乳期? + + + + + + + + + + + + + + 胆相照互联网医院平台医生为您提供健康咨询服务,医生建议仅供参考。根据国家互联网诊疗相关政策要求,请您在提交服务前仔细阅读《风险告知与知情同意书》。继续操作表示您知悉并同意上述全部内容。 + + + + + + + + + + + + + + + + + + + 请您先仔细阅读并同意《风险告知与知情同意书》 + + + \ No newline at end of file diff --git a/pages/writeSick/writeSick.wxss b/pages/writeSick/writeSick.wxss new file mode 100644 index 0000000..ee02134 --- /dev/null +++ b/pages/writeSick/writeSick.wxss @@ -0,0 +1,279 @@ +/* pages/writeSick/writeSick.wxss */ +.content{ + min-height: 100%; + background: #f2f2f2; +} +.infobox { + margin-top:172rpx; + +} + +.info { + border-bottom: 1rpx solid #E7E7E7; + display: flex; + background-color: #fff; + align-items: center; + height: 112rpx; + color: #333333; +} + + +.info .name { + white-space: nowrap; + width: 180rpx; + display: flex; + align-items: center; + margin-left: 52rpx; + color: #333333; + font-size: 34rpx; +} + +.info text { + margin-top: 20rpx; + color:#E34D59; + + display: flex; + align-items: center; +} +.info .ipt { + margin-left: 15rpx; + margin-right: 52rpx; + flex: 1; +} +.input-placeholder { + color: #999999; + + font-size: 28rpx; +} +.textareaview{ + position: relative; + padding:40rpx 52rpx; + background: #fff!important; +} +.textwrap{ + background: #F2F2F2!important; + border-radius: 10rpx; +} +.van-cell{ + position: relative; + z-index:2; + background-color:transparent!important; +} +.van-field__body--textarea{ + height:360rpx; + width:580rpx; +} +.iptclass{ + top:0; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; + height:360rpx!important; + bottom:0; + left:0rpx; + right:0rpx; + width:100%!important; + background-color: transparent; + +} +.mydailog .dialog-index--van-dialog__confirm{ + background:#ebf9f9!important; +} +/* +.van-field__control { + display: flex; + align-self: start; +} */ + +.van-field__word-limit { + color: #999999!important; + font-size: 24rpx; +} +.green{ + color:rgba(60, 199, 192, 1) +} +.van-field__word-num--full{ + color: #ee0a24!important; +} +.textbox{ + left:86rpx; + right:86rpx; + top:60rpx; + height:380rpx; + z-index:0; + position: absolute; +} + +.textbox .desc{ + word-break: break-all; + line-height: 42rpx; + color: #999; + margin-bottom: 20rpx; + font-size: 28rpx; +} +.textbox .goods{ + display: inline; + white-space:normal; +} +.textbox .goods:after{ + content:";" +} +.textbox .goods:last-child:after{ + content:"" +} +.textbox view:last-child{ + margin-bottom: 0; +} +.textbox text{ + color: #333333; + font-size: 28rpx; +} +.info .tip{ + line-height: 36rpx; + color: #666666; + margin:20rpx 52rpx 0; + font-size: 24rpx; +} +.uploadbox{ + + margin:30rpx 52rpx 0; + display: flex; + flex-wrap: wrap ; +} +.uploadbox .close{ + z-index:99; + top:5rpx; + right:5rpx; + position: absolute; + width:30rpx; + height:30rpx; +} +.uploadbox .upload{ + position: relative; + object-fit: cover; + margin: 5px 19rpx 5px 0; +} +.uploadbox .upload:nth-child(4n){ + margin-right: 0; +} +.van-icon-plus{ + color:#333; + font-size: 80rpx!important; +} +.agreebox{ + margin:30rpx 52rpx 0; + display: flex; +} +.agreebox .desc{ + color: #666666; + line-height: 36rpx; + + font-size: 24rpx; +} +.van-checkbox{ + display: flex; + align-items: flex-start!important; +} +.sickHis{ + background-color: #fff; + margin-top: 20rpx; + padding:40rpx 52rpx; + +} +textarea{ + width:100%; + color:#333; + height:132rpx; +} +.list .qa{ + display: flex; +} +.titlebox{ + flex:1; + +} +.radio{ + margin: 40rpx 0rpx 30rpx 0; +} +.sickArea{ + position: relative; + z-index:1; +} +.upload{ + width: 148rpx; + height:148rpx; + display: flex; + justify-content:center ; + align-items: center; + background: #F2F2F2; + border-radius: 4rpx +} +.radiotip{ + position: relative; + padding:24rpx 20rpx; + justify-content: center; + margin-top: 30rpx; + line-height: 42rpx; +background: #F2F2F2; +border-radius: 10rpx; +font-size: 28rpx; +color:#999; +margin-bottom: 20rpx; +} +.radiotip .textbox{ + top:20rpx; + left:20rpx; + height: 100rpx; + right:20rpx; +} +.radiotip .textarea{ + position: relative; + z-index:2; +} +.radiotip text{ + white-space: nowrap; + color:#333; +} +.xieyi{ + width:100%; + padding:30rpx 52rpx 40rpx; + + background-color: #fff; +} +.agreebox text{ + color:#3CC7C0; + +} +.nextbox{ + padding-bottom: 20rpx; + background-color: #fff; +} +.next{ + display: flex; + align-items: center; + justify-content: center; + height: 94rpx; + font-size: 36rpx; + border:none; + outline: none; + margin:0 52rpx; + border-radius: 47rpx; + color: #fff; + margin-bottom: 40rpx; + background: #3CC7C0!important; +} +.datePicker{ + width:100%; + position: fixed; + bottom:0; +} + +.dateTitle{ + border:1rpx solid #E7E7E7; +} +.van-uploader__preview-image,.van-uploader__upload{ + width: 148rpx!important; + height: 148rpx!important; +} +.van-uploader__preview{ + margin: 0 6px 8px 0; +} diff --git a/project.config.json b/project.config.json new file mode 100644 index 0000000..04f9711 --- /dev/null +++ b/project.config.json @@ -0,0 +1,59 @@ +{ + "description": "项目配置文件,详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", + "setting": { + "bundle": false, + "userConfirmedBundleSwitch": false, + "urlCheck": true, + "scopeDataCheck": false, + "coverView": true, + "es6": false, + "postcss": true, + "compileHotReLoad": false, + "lazyloadPlaceholderEnable": false, + "preloadBackgroundData": false, + "minified": true, + "autoAudits": false, + "newFeature": false, + "uglifyFileName": false, + "uploadWithSourceMap": true, + "useIsolateContext": true, + "nodeModules": false, + "enhance": true, + "useMultiFrameRuntime": true, + "showShadowRootInWxmlPanel": true, + "packNpmManually": true, + "enableEngineNative": false, + "packNpmRelationList": [ + { + "packageJsonPath": "./package.json", + "miniprogramNpmDistDir": "./miniprogram/" + } + ], + "minifyWXSS": true, + "showES6CompileOption": false, + "minifyWXML": true, + "useStaticServer": true, + "checkInvalidKey": true, + "babelSetting": { + "ignore": [], + "disablePlugins": [], + "outputPath": "" + }, + "disableUseStrict": false, + "useCompilerPlugins": false, + "ignoreUploadUnusedFiles": true, + "condition": false + }, + "compileType": "miniprogram", + "condition": {}, + "editorSetting": { + "tabIndent": "insertSpaces", + "tabSize": 2 + }, + "libVersion": "2.30.2", + "packOptions": { + "ignore": [], + "include": [] + }, + "appid": "wx70a196902e0841b6" +} \ No newline at end of file diff --git a/project.private.config.json b/project.private.config.json new file mode 100644 index 0000000..1a8fe30 --- /dev/null +++ b/project.private.config.json @@ -0,0 +1,9 @@ +{ + "projectname": "wxAppPatient", + "setting": { + "compileHotReLoad": true, + "urlCheck": false + }, + "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", + "libVersion": "3.0.1" +} \ No newline at end of file diff --git a/sickPage.html b/sickPage.html new file mode 100644 index 0000000..671422e --- /dev/null +++ b/sickPage.html @@ -0,0 +1,216 @@ + + + + + + + 处方 + + + +
+
+
普通处方
+
+ 正和祥好一多互联网医院 +
+
电子处方签
+
处方号:1939933003030303000
+
+
+
+
+
日期:
+
2020-11-22 10:09:08
+
+
+
科室:
+
内科
+
+
+
+
+
姓名:
+
陈晓丽
+
+
+
性别:
+
+
+
+
+
+
过敏史:
+
+
+
+
+
+
初步判断:
+
急性扁桃体炎
+
+
+
+
+
医生建议:
+
急性扁桃体炎急性扁桃体炎急性扁桃体炎急性扁桃体炎急性扁桃体炎急性扁桃体炎急性扁桃体炎急性扁桃体炎急性扁桃体炎急性扁桃体炎急
+
+
+
+
Rp
+
+
+
+
+
+
我是电动车颗粒(50mg*11袋)
+
x1盒
+
+
+
用量:一次100mg 一日两次
+
+
+
用法:口服
+
+
+ +
+
+
+
+
+
医生签名:
+
xxx
+
+
+
药师签名:
+
xxx
+
+
+
+
+
配药人员:
+
xxx
+
+
+
复核人员:
+
xxx
+
+
+
注意:处方有效期为3天,经本院审方中心审核通过后具有效力。
+
+
+ + \ No newline at end of file diff --git a/sitemap.json b/sitemap.json new file mode 100644 index 0000000..ca02add --- /dev/null +++ b/sitemap.json @@ -0,0 +1,7 @@ +{ + "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", + "rules": [{ + "action": "allow", + "page": "*" + }] +} \ No newline at end of file diff --git a/utils/areaData.js b/utils/areaData.js new file mode 100644 index 0000000..cdbb4b5 --- /dev/null +++ b/utils/areaData.js @@ -0,0 +1,3888 @@ +export const areaList = { + province_list: { + 110000: '北京市', + 120000: '天津市', + 130000: '河北省', + 140000: '山西省', + 150000: '内蒙古自治区', + 210000: '辽宁省', + 220000: '吉林省', + 230000: '黑龙江省', + 310000: '上海市', + 320000: '江苏省', + 330000: '浙江省', + 340000: '安徽省', + 350000: '福建省', + 360000: '江西省', + 370000: '山东省', + 410000: '河南省', + 420000: '湖北省', + 430000: '湖南省', + 440000: '广东省', + 450000: '广西壮族自治区', + 460000: '海南省', + 500000: '重庆市', + 510000: '四川省', + 520000: '贵州省', + 530000: '云南省', + 540000: '西藏自治区', + 610000: '陕西省', + 620000: '甘肃省', + 630000: '青海省', + 640000: '宁夏回族自治区', + 650000: '新疆维吾尔自治区', + 710000: '台湾省', + 810000: '香港特别行政区', + 820000: '澳门特别行政区', + }, + city_list: { + 110100: '北京市', + 120100: '天津市', + 130100: '石家庄市', + 130200: '唐山市', + 130300: '秦皇岛市', + 130400: '邯郸市', + 130500: '邢台市', + 130600: '保定市', + 130700: '张家口市', + 130800: '承德市', + 130900: '沧州市', + 131000: '廊坊市', + 131100: '衡水市', + 140100: '太原市', + 140200: '大同市', + 140300: '阳泉市', + 140400: '长治市', + 140500: '晋城市', + 140600: '朔州市', + 140700: '晋中市', + 140800: '运城市', + 140900: '忻州市', + 141000: '临汾市', + 141100: '吕梁市', + 150100: '呼和浩特市', + 150200: '包头市', + 150300: '乌海市', + 150400: '赤峰市', + 150500: '通辽市', + 150600: '鄂尔多斯市', + 150700: '呼伦贝尔市', + 150800: '巴彦淖尔市', + 150900: '乌兰察布市', + 152200: '兴安盟', + 152500: '锡林郭勒盟', + 152900: '阿拉善盟', + 210100: '沈阳市', + 210200: '大连市', + 210300: '鞍山市', + 210400: '抚顺市', + 210500: '本溪市', + 210600: '丹东市', + 210700: '锦州市', + 210800: '营口市', + 210900: '阜新市', + 211000: '辽阳市', + 211100: '盘锦市', + 211200: '铁岭市', + 211300: '朝阳市', + 211400: '葫芦岛市', + 220100: '长春市', + 220200: '吉林市', + 220300: '四平市', + 220400: '辽源市', + 220500: '通化市', + 220600: '白山市', + 220700: '松原市', + 220800: '白城市', + 222400: '延边朝鲜族自治州', + 230100: '哈尔滨市', + 230200: '齐齐哈尔市', + 230300: '鸡西市', + 230400: '鹤岗市', + 230500: '双鸭山市', + 230600: '大庆市', + 230700: '伊春市', + 230800: '佳木斯市', + 230900: '七台河市', + 231000: '牡丹江市', + 231100: '黑河市', + 231200: '绥化市', + 232700: '大兴安岭地区', + 310100: '上海市', + 320100: '南京市', + 320200: '无锡市', + 320300: '徐州市', + 320400: '常州市', + 320500: '苏州市', + 320600: '南通市', + 320700: '连云港市', + 320800: '淮安市', + 320900: '盐城市', + 321000: '扬州市', + 321100: '镇江市', + 321200: '泰州市', + 321300: '宿迁市', + 330100: '杭州市', + 330200: '宁波市', + 330300: '温州市', + 330400: '嘉兴市', + 330500: '湖州市', + 330600: '绍兴市', + 330700: '金华市', + 330800: '衢州市', + 330900: '舟山市', + 331000: '台州市', + 331100: '丽水市', + 340100: '合肥市', + 340200: '芜湖市', + 340300: '蚌埠市', + 340400: '淮南市', + 340500: '马鞍山市', + 340600: '淮北市', + 340700: '铜陵市', + 340800: '安庆市', + 341000: '黄山市', + 341100: '滁州市', + 341200: '阜阳市', + 341300: '宿州市', + 341500: '六安市', + 341600: '亳州市', + 341700: '池州市', + 341800: '宣城市', + 350100: '福州市', + 350200: '厦门市', + 350300: '莆田市', + 350400: '三明市', + 350500: '泉州市', + 350600: '漳州市', + 350700: '南平市', + 350800: '龙岩市', + 350900: '宁德市', + 360100: '南昌市', + 360200: '景德镇市', + 360300: '萍乡市', + 360400: '九江市', + 360500: '新余市', + 360600: '鹰潭市', + 360700: '赣州市', + 360800: '吉安市', + 360900: '宜春市', + 361000: '抚州市', + 361100: '上饶市', + 370100: '济南市', + 370200: '青岛市', + 370300: '淄博市', + 370400: '枣庄市', + 370500: '东营市', + 370600: '烟台市', + 370700: '潍坊市', + 370800: '济宁市', + 370900: '泰安市', + 371000: '威海市', + 371100: '日照市', + 371300: '临沂市', + 371400: '德州市', + 371500: '聊城市', + 371600: '滨州市', + 371700: '菏泽市', + 410100: '郑州市', + 410200: '开封市', + 410300: '洛阳市', + 410400: '平顶山市', + 410500: '安阳市', + 410600: '鹤壁市', + 410700: '新乡市', + 410800: '焦作市', + 410900: '濮阳市', + 411000: '许昌市', + 411100: '漯河市', + 411200: '三门峡市', + 411300: '南阳市', + 411400: '商丘市', + 411500: '信阳市', + 411600: '周口市', + 411700: '驻马店市', + 419000: '省直辖县', + 420100: '武汉市', + 420200: '黄石市', + 420300: '十堰市', + 420500: '宜昌市', + 420600: '襄阳市', + 420700: '鄂州市', + 420800: '荆门市', + 420900: '孝感市', + 421000: '荆州市', + 421100: '黄冈市', + 421200: '咸宁市', + 421300: '随州市', + 422800: '恩施土家族苗族自治州', + 429000: '省直辖县', + 430100: '长沙市', + 430200: '株洲市', + 430300: '湘潭市', + 430400: '衡阳市', + 430500: '邵阳市', + 430600: '岳阳市', + 430700: '常德市', + 430800: '张家界市', + 430900: '益阳市', + 431000: '郴州市', + 431100: '永州市', + 431200: '怀化市', + 431300: '娄底市', + 433100: '湘西土家族苗族自治州', + 440100: '广州市', + 440200: '韶关市', + 440300: '深圳市', + 440400: '珠海市', + 440500: '汕头市', + 440600: '佛山市', + 440700: '江门市', + 440800: '湛江市', + 440900: '茂名市', + 441200: '肇庆市', + 441300: '惠州市', + 441400: '梅州市', + 441500: '汕尾市', + 441600: '河源市', + 441700: '阳江市', + 441800: '清远市', + 441900: '东莞市', + 442000: '中山市', + 445100: '潮州市', + 445200: '揭阳市', + 445300: '云浮市', + 450100: '南宁市', + 450200: '柳州市', + 450300: '桂林市', + 450400: '梧州市', + 450500: '北海市', + 450600: '防城港市', + 450700: '钦州市', + 450800: '贵港市', + 450900: '玉林市', + 451000: '百色市', + 451100: '贺州市', + 451200: '河池市', + 451300: '来宾市', + 451400: '崇左市', + 460100: '海口市', + 460200: '三亚市', + 460300: '三沙市', + 460400: '儋州市', + 469000: '省直辖县', + 500100: '重庆市', + 500200: '县', + 510100: '成都市', + 510300: '自贡市', + 510400: '攀枝花市', + 510500: '泸州市', + 510600: '德阳市', + 510700: '绵阳市', + 510800: '广元市', + 510900: '遂宁市', + 511000: '内江市', + 511100: '乐山市', + 511300: '南充市', + 511400: '眉山市', + 511500: '宜宾市', + 511600: '广安市', + 511700: '达州市', + 511800: '雅安市', + 511900: '巴中市', + 512000: '资阳市', + 513200: '阿坝藏族羌族自治州', + 513300: '甘孜藏族自治州', + 513400: '凉山彝族自治州', + 520100: '贵阳市', + 520200: '六盘水市', + 520300: '遵义市', + 520400: '安顺市', + 520500: '毕节市', + 520600: '铜仁市', + 522300: '黔西南布依族苗族自治州', + 522600: '黔东南苗族侗族自治州', + 522700: '黔南布依族苗族自治州', + 530100: '昆明市', + 530300: '曲靖市', + 530400: '玉溪市', + 530500: '保山市', + 530600: '昭通市', + 530700: '丽江市', + 530800: '普洱市', + 530900: '临沧市', + 532300: '楚雄彝族自治州', + 532500: '红河哈尼族彝族自治州', + 532600: '文山壮族苗族自治州', + 532800: '西双版纳傣族自治州', + 532900: '大理白族自治州', + 533100: '德宏傣族景颇族自治州', + 533300: '怒江傈僳族自治州', + 533400: '迪庆藏族自治州', + 540100: '拉萨市', + 540200: '日喀则市', + 540300: '昌都市', + 540400: '林芝市', + 540500: '山南市', + 540600: '那曲市', + 542500: '阿里地区', + 610100: '西安市', + 610200: '铜川市', + 610300: '宝鸡市', + 610400: '咸阳市', + 610500: '渭南市', + 610600: '延安市', + 610700: '汉中市', + 610800: '榆林市', + 610900: '安康市', + 611000: '商洛市', + 620100: '兰州市', + 620200: '嘉峪关市', + 620300: '金昌市', + 620400: '白银市', + 620500: '天水市', + 620600: '武威市', + 620700: '张掖市', + 620800: '平凉市', + 620900: '酒泉市', + 621000: '庆阳市', + 621100: '定西市', + 621200: '陇南市', + 622900: '临夏回族自治州', + 623000: '甘南藏族自治州', + 630100: '西宁市', + 630200: '海东市', + 632200: '海北藏族自治州', + 632300: '黄南藏族自治州', + 632500: '海南藏族自治州', + 632600: '果洛藏族自治州', + 632700: '玉树藏族自治州', + 632800: '海西蒙古族藏族自治州', + 640100: '银川市', + 640200: '石嘴山市', + 640300: '吴忠市', + 640400: '固原市', + 640500: '中卫市', + 650100: '乌鲁木齐市', + 650200: '克拉玛依市', + 650400: '吐鲁番市', + 650500: '哈密市', + 652300: '昌吉回族自治州', + 652700: '博尔塔拉蒙古自治州', + 652800: '巴音郭楞蒙古自治州', + 652900: '阿克苏地区', + 653000: '克孜勒苏柯尔克孜自治州', + 653100: '喀什地区', + 653200: '和田地区', + 654000: '伊犁哈萨克自治州', + 654200: '塔城地区', + 654300: '阿勒泰地区', + 659000: '自治区直辖县级行政区划', + 710100: '台北市', + 710200: '高雄市', + 710300: '台南市', + 710400: '台中市', + 710500: '金门县', + 710600: '南投县', + 710700: '基隆市', + 710800: '新竹市', + 710900: '嘉义市', + 711100: '新北市', + 711200: '宜兰县', + 711300: '新竹县', + 711400: '桃园市', + 711500: '苗栗县', + 711700: '彰化县', + 711900: '嘉义县', + 712100: '云林县', + 712400: '屏东县', + 712500: '台东县', + 712600: '花莲县', + 712700: '澎湖县', + 712800: '连江县', + 810100: '香港岛', + 810200: '九龙', + 810300: '新界', + 820100: '澳门半岛', + 820200: '离岛', + }, + county_list: { + 110101: '东城区', + 110102: '西城区', + 110105: '朝阳区', + 110106: '丰台区', + 110107: '石景山区', + 110108: '海淀区', + 110109: '门头沟区', + 110111: '房山区', + 110112: '通州区', + 110113: '顺义区', + 110114: '昌平区', + 110115: '大兴区', + 110116: '怀柔区', + 110117: '平谷区', + 110118: '密云区', + 110119: '延庆区', + 120101: '和平区', + 120102: '河东区', + 120103: '河西区', + 120104: '南开区', + 120105: '河北区', + 120106: '红桥区', + 120110: '东丽区', + 120111: '西青区', + 120112: '津南区', + 120113: '北辰区', + 120114: '武清区', + 120115: '宝坻区', + 120116: '滨海新区', + 120117: '宁河区', + 120118: '静海区', + 120119: '蓟州区', + 130102: '长安区', + 130104: '桥西区', + 130105: '新华区', + 130107: '井陉矿区', + 130108: '裕华区', + 130109: '藁城区', + 130110: '鹿泉区', + 130111: '栾城区', + 130121: '井陉县', + 130123: '正定县', + 130125: '行唐县', + 130126: '灵寿县', + 130127: '高邑县', + 130128: '深泽县', + 130129: '赞皇县', + 130130: '无极县', + 130131: '平山县', + 130132: '元氏县', + 130133: '赵县', + 130171: '石家庄高新技术产业开发区', + 130172: '石家庄循环化工园区', + 130181: '辛集市', + 130183: '晋州市', + 130184: '新乐市', + 130202: '路南区', + 130203: '路北区', + 130204: '古冶区', + 130205: '开平区', + 130207: '丰南区', + 130208: '丰润区', + 130209: '曹妃甸区', + 130224: '滦南县', + 130225: '乐亭县', + 130227: '迁西县', + 130229: '玉田县', + 130273: '唐山高新技术产业开发区', + 130274: '河北唐山海港经济开发区', + 130281: '遵化市', + 130283: '迁安市', + 130284: '滦州市', + 130302: '海港区', + 130303: '山海关区', + 130304: '北戴河区', + 130306: '抚宁区', + 130321: '青龙满族自治县', + 130322: '昌黎县', + 130324: '卢龙县', + 130371: '秦皇岛市经济技术开发区', + 130372: '北戴河新区', + 130390: '经济技术开发区', + 130402: '邯山区', + 130403: '丛台区', + 130404: '复兴区', + 130406: '峰峰矿区', + 130407: '肥乡区', + 130408: '永年区', + 130423: '临漳县', + 130424: '成安县', + 130425: '大名县', + 130426: '涉县', + 130427: '磁县', + 130430: '邱县', + 130431: '鸡泽县', + 130432: '广平县', + 130433: '馆陶县', + 130434: '魏县', + 130435: '曲周县', + 130471: '邯郸经济技术开发区', + 130473: '邯郸冀南新区', + 130481: '武安市', + 130502: '襄都区', + 130503: '信都区', + 130505: '任泽区', + 130506: '南和区', + 130522: '临城县', + 130523: '内丘县', + 130524: '柏乡县', + 130525: '隆尧县', + 130528: '宁晋县', + 130529: '巨鹿县', + 130530: '新河县', + 130531: '广宗县', + 130532: '平乡县', + 130533: '威县', + 130534: '清河县', + 130535: '临西县', + 130571: '河北邢台经济开发区', + 130581: '南宫市', + 130582: '沙河市', + 130602: '竞秀区', + 130606: '莲池区', + 130607: '满城区', + 130608: '清苑区', + 130609: '徐水区', + 130623: '涞水县', + 130624: '阜平县', + 130626: '定兴县', + 130627: '唐县', + 130628: '高阳县', + 130629: '容城县', + 130630: '涞源县', + 130631: '望都县', + 130632: '安新县', + 130633: '易县', + 130634: '曲阳县', + 130635: '蠡县', + 130636: '顺平县', + 130637: '博野县', + 130638: '雄县', + 130671: '保定高新技术产业开发区', + 130672: '保定白沟新城', + 130681: '涿州市', + 130682: '定州市', + 130683: '安国市', + 130684: '高碑店市', + 130702: '桥东区', + 130703: '桥西区', + 130705: '宣化区', + 130706: '下花园区', + 130708: '万全区', + 130709: '崇礼区', + 130722: '张北县', + 130723: '康保县', + 130724: '沽源县', + 130725: '尚义县', + 130726: '蔚县', + 130727: '阳原县', + 130728: '怀安县', + 130730: '怀来县', + 130731: '涿鹿县', + 130732: '赤城县', + 130772: '张家口市察北管理区', + 130802: '双桥区', + 130803: '双滦区', + 130804: '鹰手营子矿区', + 130821: '承德县', + 130822: '兴隆县', + 130824: '滦平县', + 130825: '隆化县', + 130826: '丰宁满族自治县', + 130827: '宽城满族自治县', + 130828: '围场满族蒙古族自治县', + 130871: '承德高新技术产业开发区', + 130881: '平泉市', + 130902: '新华区', + 130903: '运河区', + 130921: '沧县', + 130922: '青县', + 130923: '东光县', + 130924: '海兴县', + 130925: '盐山县', + 130926: '肃宁县', + 130927: '南皮县', + 130928: '吴桥县', + 130929: '献县', + 130930: '孟村回族自治县', + 130971: '河北沧州经济开发区', + 130972: '沧州高新技术产业开发区', + 130973: '沧州渤海新区', + 130981: '泊头市', + 130982: '任丘市', + 130983: '黄骅市', + 130984: '河间市', + 131002: '安次区', + 131003: '广阳区', + 131022: '固安县', + 131023: '永清县', + 131024: '香河县', + 131025: '大城县', + 131026: '文安县', + 131028: '大厂回族自治县', + 131071: '廊坊经济技术开发区', + 131081: '霸州市', + 131082: '三河市', + 131090: '开发区', + 131102: '桃城区', + 131103: '冀州区', + 131121: '枣强县', + 131122: '武邑县', + 131123: '武强县', + 131124: '饶阳县', + 131125: '安平县', + 131126: '故城县', + 131127: '景县', + 131128: '阜城县', + 131171: '河北衡水经济开发区', + 131172: '衡水滨湖新区', + 131182: '深州市', + 140105: '小店区', + 140106: '迎泽区', + 140107: '杏花岭区', + 140108: '尖草坪区', + 140109: '万柏林区', + 140110: '晋源区', + 140121: '清徐县', + 140122: '阳曲县', + 140123: '娄烦县', + 140181: '古交市', + 140212: '新荣区', + 140213: '平城区', + 140214: '云冈区', + 140215: '云州区', + 140221: '阳高县', + 140222: '天镇县', + 140223: '广灵县', + 140224: '灵丘县', + 140225: '浑源县', + 140226: '左云县', + 140271: '山西大同经济开发区', + 140302: '城区', + 140303: '矿区', + 140311: '郊区', + 140321: '平定县', + 140322: '盂县', + 140403: '潞州区', + 140404: '上党区', + 140405: '屯留区', + 140406: '潞城区', + 140423: '襄垣县', + 140425: '平顺县', + 140426: '黎城县', + 140427: '壶关县', + 140428: '长子县', + 140429: '武乡县', + 140430: '沁县', + 140431: '沁源县', + 140471: '山西长治高新技术产业园区', + 140502: '城区', + 140521: '沁水县', + 140522: '阳城县', + 140524: '陵川县', + 140525: '泽州县', + 140581: '高平市', + 140602: '朔城区', + 140603: '平鲁区', + 140621: '山阴县', + 140622: '应县', + 140623: '右玉县', + 140671: '山西朔州经济开发区', + 140681: '怀仁市', + 140702: '榆次区', + 140703: '太谷区', + 140721: '榆社县', + 140722: '左权县', + 140723: '和顺县', + 140724: '昔阳县', + 140725: '寿阳县', + 140727: '祁县', + 140728: '平遥县', + 140729: '灵石县', + 140781: '介休市', + 140802: '盐湖区', + 140821: '临猗县', + 140822: '万荣县', + 140823: '闻喜县', + 140824: '稷山县', + 140825: '新绛县', + 140826: '绛县', + 140827: '垣曲县', + 140828: '夏县', + 140829: '平陆县', + 140830: '芮城县', + 140881: '永济市', + 140882: '河津市', + 140902: '忻府区', + 140921: '定襄县', + 140922: '五台县', + 140923: '代县', + 140924: '繁峙县', + 140925: '宁武县', + 140926: '静乐县', + 140927: '神池县', + 140928: '五寨县', + 140929: '岢岚县', + 140930: '河曲县', + 140931: '保德县', + 140932: '偏关县', + 140971: '五台山风景名胜区', + 140981: '原平市', + 141002: '尧都区', + 141021: '曲沃县', + 141022: '翼城县', + 141023: '襄汾县', + 141024: '洪洞县', + 141025: '古县', + 141026: '安泽县', + 141027: '浮山县', + 141028: '吉县', + 141029: '乡宁县', + 141030: '大宁县', + 141031: '隰县', + 141032: '永和县', + 141033: '蒲县', + 141034: '汾西县', + 141081: '侯马市', + 141082: '霍州市', + 141102: '离石区', + 141121: '文水县', + 141122: '交城县', + 141123: '兴县', + 141124: '临县', + 141125: '柳林县', + 141126: '石楼县', + 141127: '岚县', + 141128: '方山县', + 141129: '中阳县', + 141130: '交口县', + 141181: '孝义市', + 141182: '汾阳市', + 150102: '新城区', + 150103: '回民区', + 150104: '玉泉区', + 150105: '赛罕区', + 150121: '土默特左旗', + 150122: '托克托县', + 150123: '和林格尔县', + 150124: '清水河县', + 150125: '武川县', + 150172: '呼和浩特经济技术开发区', + 150202: '东河区', + 150203: '昆都仑区', + 150204: '青山区', + 150205: '石拐区', + 150206: '白云鄂博矿区', + 150207: '九原区', + 150221: '土默特右旗', + 150222: '固阳县', + 150223: '达尔罕茂明安联合旗', + 150271: '包头稀土高新技术产业开发区', + 150302: '海勃湾区', + 150303: '海南区', + 150304: '乌达区', + 150402: '红山区', + 150403: '元宝山区', + 150404: '松山区', + 150421: '阿鲁科尔沁旗', + 150422: '巴林左旗', + 150423: '巴林右旗', + 150424: '林西县', + 150425: '克什克腾旗', + 150426: '翁牛特旗', + 150428: '喀喇沁旗', + 150429: '宁城县', + 150430: '敖汉旗', + 150502: '科尔沁区', + 150521: '科尔沁左翼中旗', + 150522: '科尔沁左翼后旗', + 150523: '开鲁县', + 150524: '库伦旗', + 150525: '奈曼旗', + 150526: '扎鲁特旗', + 150571: '通辽经济技术开发区', + 150581: '霍林郭勒市', + 150602: '东胜区', + 150603: '康巴什区', + 150621: '达拉特旗', + 150622: '准格尔旗', + 150623: '鄂托克前旗', + 150624: '鄂托克旗', + 150625: '杭锦旗', + 150626: '乌审旗', + 150627: '伊金霍洛旗', + 150702: '海拉尔区', + 150703: '扎赉诺尔区', + 150721: '阿荣旗', + 150722: '莫力达瓦达斡尔族自治旗', + 150723: '鄂伦春自治旗', + 150724: '鄂温克族自治旗', + 150725: '陈巴尔虎旗', + 150726: '新巴尔虎左旗', + 150727: '新巴尔虎右旗', + 150781: '满洲里市', + 150782: '牙克石市', + 150783: '扎兰屯市', + 150784: '额尔古纳市', + 150785: '根河市', + 150802: '临河区', + 150821: '五原县', + 150822: '磴口县', + 150823: '乌拉特前旗', + 150824: '乌拉特中旗', + 150825: '乌拉特后旗', + 150826: '杭锦后旗', + 150902: '集宁区', + 150921: '卓资县', + 150922: '化德县', + 150923: '商都县', + 150924: '兴和县', + 150925: '凉城县', + 150926: '察哈尔右翼前旗', + 150927: '察哈尔右翼中旗', + 150928: '察哈尔右翼后旗', + 150929: '四子王旗', + 150981: '丰镇市', + 152201: '乌兰浩特市', + 152202: '阿尔山市', + 152221: '科尔沁右翼前旗', + 152222: '科尔沁右翼中旗', + 152223: '扎赉特旗', + 152224: '突泉县', + 152501: '二连浩特市', + 152502: '锡林浩特市', + 152522: '阿巴嘎旗', + 152523: '苏尼特左旗', + 152524: '苏尼特右旗', + 152525: '东乌珠穆沁旗', + 152526: '西乌珠穆沁旗', + 152527: '太仆寺旗', + 152528: '镶黄旗', + 152529: '正镶白旗', + 152530: '正蓝旗', + 152531: '多伦县', + 152571: '乌拉盖管委会', + 152921: '阿拉善左旗', + 152922: '阿拉善右旗', + 152923: '额济纳旗', + 152971: '内蒙古阿拉善经济开发区', + 210102: '和平区', + 210103: '沈河区', + 210104: '大东区', + 210105: '皇姑区', + 210106: '铁西区', + 210111: '苏家屯区', + 210112: '浑南区', + 210113: '沈北新区', + 210114: '于洪区', + 210115: '辽中区', + 210123: '康平县', + 210124: '法库县', + 210181: '新民市', + 210190: '经济技术开发区', + 210202: '中山区', + 210203: '西岗区', + 210204: '沙河口区', + 210211: '甘井子区', + 210212: '旅顺口区', + 210213: '金州区', + 210214: '普兰店区', + 210224: '长海县', + 210281: '瓦房店市', + 210283: '庄河市', + 210302: '铁东区', + 210303: '铁西区', + 210304: '立山区', + 210311: '千山区', + 210321: '台安县', + 210323: '岫岩满族自治县', + 210381: '海城市', + 210390: '高新区', + 210402: '新抚区', + 210403: '东洲区', + 210404: '望花区', + 210411: '顺城区', + 210421: '抚顺县', + 210422: '新宾满族自治县', + 210423: '清原满族自治县', + 210502: '平山区', + 210503: '溪湖区', + 210504: '明山区', + 210505: '南芬区', + 210521: '本溪满族自治县', + 210522: '桓仁满族自治县', + 210602: '元宝区', + 210603: '振兴区', + 210604: '振安区', + 210624: '宽甸满族自治县', + 210681: '东港市', + 210682: '凤城市', + 210702: '古塔区', + 210703: '凌河区', + 210711: '太和区', + 210726: '黑山县', + 210727: '义县', + 210781: '凌海市', + 210782: '北镇市', + 210793: '经济技术开发区', + 210802: '站前区', + 210803: '西市区', + 210804: '鲅鱼圈区', + 210811: '老边区', + 210881: '盖州市', + 210882: '大石桥市', + 210902: '海州区', + 210903: '新邱区', + 210904: '太平区', + 210905: '清河门区', + 210911: '细河区', + 210921: '阜新蒙古族自治县', + 210922: '彰武县', + 211002: '白塔区', + 211003: '文圣区', + 211004: '宏伟区', + 211005: '弓长岭区', + 211011: '太子河区', + 211021: '辽阳县', + 211081: '灯塔市', + 211102: '双台子区', + 211103: '兴隆台区', + 211104: '大洼区', + 211122: '盘山县', + 211202: '银州区', + 211204: '清河区', + 211221: '铁岭县', + 211223: '西丰县', + 211224: '昌图县', + 211281: '调兵山市', + 211282: '开原市', + 211302: '双塔区', + 211303: '龙城区', + 211321: '朝阳县', + 211322: '建平县', + 211324: '喀喇沁左翼蒙古族自治县', + 211381: '北票市', + 211382: '凌源市', + 211402: '连山区', + 211403: '龙港区', + 211404: '南票区', + 211421: '绥中县', + 211422: '建昌县', + 211481: '兴城市', + 220102: '南关区', + 220103: '宽城区', + 220104: '朝阳区', + 220105: '二道区', + 220106: '绿园区', + 220112: '双阳区', + 220113: '九台区', + 220122: '农安县', + 220171: '长春经济技术开发区', + 220172: '长春净月高新技术产业开发区', + 220173: '长春高新技术产业开发区', + 220174: '长春汽车经济技术开发区', + 220182: '榆树市', + 220183: '德惠市', + 220192: '经济技术开发区', + 220202: '昌邑区', + 220203: '龙潭区', + 220204: '船营区', + 220211: '丰满区', + 220221: '永吉县', + 220271: '吉林经济开发区', + 220272: '吉林高新技术产业开发区', + 220281: '蛟河市', + 220282: '桦甸市', + 220283: '舒兰市', + 220284: '磐石市', + 220302: '铁西区', + 220303: '铁东区', + 220322: '梨树县', + 220323: '伊通满族自治县', + 220381: '公主岭市', + 220382: '双辽市', + 220402: '龙山区', + 220403: '西安区', + 220421: '东丰县', + 220422: '东辽县', + 220502: '东昌区', + 220503: '二道江区', + 220521: '通化县', + 220523: '辉南县', + 220524: '柳河县', + 220581: '梅河口市', + 220582: '集安市', + 220602: '浑江区', + 220605: '江源区', + 220621: '抚松县', + 220622: '靖宇县', + 220623: '长白朝鲜族自治县', + 220681: '临江市', + 220702: '宁江区', + 220721: '前郭尔罗斯蒙古族自治县', + 220722: '长岭县', + 220723: '乾安县', + 220771: '吉林松原经济开发区', + 220781: '扶余市', + 220802: '洮北区', + 220821: '镇赉县', + 220822: '通榆县', + 220871: '吉林白城经济开发区', + 220881: '洮南市', + 220882: '大安市', + 222401: '延吉市', + 222402: '图们市', + 222403: '敦化市', + 222404: '珲春市', + 222405: '龙井市', + 222406: '和龙市', + 222424: '汪清县', + 222426: '安图县', + 230102: '道里区', + 230103: '南岗区', + 230104: '道外区', + 230108: '平房区', + 230109: '松北区', + 230110: '香坊区', + 230111: '呼兰区', + 230112: '阿城区', + 230113: '双城区', + 230123: '依兰县', + 230124: '方正县', + 230125: '宾县', + 230126: '巴彦县', + 230127: '木兰县', + 230128: '通河县', + 230129: '延寿县', + 230183: '尚志市', + 230184: '五常市', + 230202: '龙沙区', + 230203: '建华区', + 230204: '铁锋区', + 230205: '昂昂溪区', + 230206: '富拉尔基区', + 230207: '碾子山区', + 230208: '梅里斯达斡尔族区', + 230221: '龙江县', + 230223: '依安县', + 230224: '泰来县', + 230225: '甘南县', + 230227: '富裕县', + 230229: '克山县', + 230230: '克东县', + 230231: '拜泉县', + 230281: '讷河市', + 230302: '鸡冠区', + 230303: '恒山区', + 230304: '滴道区', + 230305: '梨树区', + 230306: '城子河区', + 230307: '麻山区', + 230321: '鸡东县', + 230381: '虎林市', + 230382: '密山市', + 230402: '向阳区', + 230403: '工农区', + 230404: '南山区', + 230405: '兴安区', + 230406: '东山区', + 230407: '兴山区', + 230421: '萝北县', + 230422: '绥滨县', + 230502: '尖山区', + 230503: '岭东区', + 230505: '四方台区', + 230506: '宝山区', + 230521: '集贤县', + 230522: '友谊县', + 230523: '宝清县', + 230524: '饶河县', + 230602: '萨尔图区', + 230603: '龙凤区', + 230604: '让胡路区', + 230605: '红岗区', + 230606: '大同区', + 230621: '肇州县', + 230622: '肇源县', + 230623: '林甸县', + 230624: '杜尔伯特蒙古族自治县', + 230671: '大庆高新技术产业开发区', + 230717: '伊美区', + 230718: '乌翠区', + 230719: '友好区', + 230722: '嘉荫县', + 230723: '汤旺县', + 230724: '丰林县', + 230725: '大箐山县', + 230726: '南岔县', + 230751: '金林区', + 230781: '铁力市', + 230803: '向阳区', + 230804: '前进区', + 230805: '东风区', + 230811: '郊区', + 230822: '桦南县', + 230826: '桦川县', + 230828: '汤原县', + 230881: '同江市', + 230882: '富锦市', + 230883: '抚远市', + 230902: '新兴区', + 230903: '桃山区', + 230904: '茄子河区', + 230921: '勃利县', + 231002: '东安区', + 231003: '阳明区', + 231004: '爱民区', + 231005: '西安区', + 231025: '林口县', + 231081: '绥芬河市', + 231083: '海林市', + 231084: '宁安市', + 231085: '穆棱市', + 231086: '东宁市', + 231102: '爱辉区', + 231123: '逊克县', + 231124: '孙吴县', + 231181: '北安市', + 231182: '五大连池市', + 231183: '嫩江市', + 231202: '北林区', + 231221: '望奎县', + 231222: '兰西县', + 231223: '青冈县', + 231224: '庆安县', + 231225: '明水县', + 231226: '绥棱县', + 231281: '安达市', + 231282: '肇东市', + 231283: '海伦市', + 232701: '漠河市', + 232721: '呼玛县', + 232722: '塔河县', + 232790: '松岭区', + 232791: '呼中区', + 232792: '加格达奇区', + 232793: '新林区', + 310101: '黄浦区', + 310104: '徐汇区', + 310105: '长宁区', + 310106: '静安区', + 310107: '普陀区', + 310109: '虹口区', + 310110: '杨浦区', + 310112: '闵行区', + 310113: '宝山区', + 310114: '嘉定区', + 310115: '浦东新区', + 310116: '金山区', + 310117: '松江区', + 310118: '青浦区', + 310120: '奉贤区', + 310151: '崇明区', + 320102: '玄武区', + 320104: '秦淮区', + 320105: '建邺区', + 320106: '鼓楼区', + 320111: '浦口区', + 320112: '江北新区', + 320113: '栖霞区', + 320114: '雨花台区', + 320115: '江宁区', + 320116: '六合区', + 320117: '溧水区', + 320118: '高淳区', + 320205: '锡山区', + 320206: '惠山区', + 320211: '滨湖区', + 320213: '梁溪区', + 320214: '新吴区', + 320281: '江阴市', + 320282: '宜兴市', + 320302: '鼓楼区', + 320303: '云龙区', + 320305: '贾汪区', + 320311: '泉山区', + 320312: '铜山区', + 320321: '丰县', + 320322: '沛县', + 320324: '睢宁县', + 320371: '徐州经济技术开发区', + 320381: '新沂市', + 320382: '邳州市', + 320391: '工业园区', + 320402: '天宁区', + 320404: '钟楼区', + 320411: '新北区', + 320412: '武进区', + 320413: '金坛区', + 320481: '溧阳市', + 320505: '虎丘区', + 320506: '吴中区', + 320507: '相城区', + 320508: '姑苏区', + 320509: '吴江区', + 320571: '苏州工业园区', + 320581: '常熟市', + 320582: '张家港市', + 320583: '昆山市', + 320585: '太仓市', + 320590: '工业园区', + 320591: '高新区', + 320602: '崇川区', + 320611: '港闸区', + 320612: '通州区', + 320623: '如东县', + 320681: '启东市', + 320682: '如皋市', + 320684: '海门市', + 320685: '海安市', + 320691: '高新区', + 320703: '连云区', + 320706: '海州区', + 320707: '赣榆区', + 320722: '东海县', + 320723: '灌云县', + 320724: '灌南县', + 320771: '连云港经济技术开发区', + 320803: '淮安区', + 320804: '淮阴区', + 320812: '清江浦区', + 320813: '洪泽区', + 320826: '涟水县', + 320830: '盱眙县', + 320831: '金湖县', + 320871: '淮安经济技术开发区', + 320890: '经济开发区', + 320902: '亭湖区', + 320903: '盐都区', + 320904: '大丰区', + 320921: '响水县', + 320922: '滨海县', + 320923: '阜宁县', + 320924: '射阳县', + 320925: '建湖县', + 320971: '盐城经济技术开发区', + 320981: '东台市', + 321002: '广陵区', + 321003: '邗江区', + 321012: '江都区', + 321023: '宝应县', + 321071: '扬州经济技术开发区', + 321081: '仪征市', + 321084: '高邮市', + 321090: '经济开发区', + 321102: '京口区', + 321111: '润州区', + 321112: '丹徒区', + 321150: '镇江新区', + 321181: '丹阳市', + 321182: '扬中市', + 321183: '句容市', + 321202: '海陵区', + 321203: '高港区', + 321204: '姜堰区', + 321271: '泰州医药高新技术产业开发区', + 321281: '兴化市', + 321282: '靖江市', + 321283: '泰兴市', + 321302: '宿城区', + 321311: '宿豫区', + 321322: '沭阳县', + 321323: '泗阳县', + 321324: '泗洪县', + 321371: '宿迁经济技术开发区', + 330102: '上城区', + 330105: '拱墅区', + 330106: '西湖区', + 330108: '滨江区', + 330109: '萧山区', + 330110: '余杭区', + 330111: '富阳区', + 330112: '临安区', + 330113: '临平区', + 330114: '钱塘区', + 330122: '桐庐县', + 330127: '淳安县', + 330182: '建德市', + 330203: '海曙区', + 330205: '江北区', + 330206: '北仑区', + 330211: '镇海区', + 330212: '鄞州区', + 330213: '奉化区', + 330225: '象山县', + 330226: '宁海县', + 330281: '余姚市', + 330282: '慈溪市', + 330302: '鹿城区', + 330303: '龙湾区', + 330304: '瓯海区', + 330305: '洞头区', + 330324: '永嘉县', + 330326: '平阳县', + 330327: '苍南县', + 330328: '文成县', + 330329: '泰顺县', + 330381: '瑞安市', + 330382: '乐清市', + 330383: '龙港市', + 330402: '南湖区', + 330411: '秀洲区', + 330421: '嘉善县', + 330424: '海盐县', + 330481: '海宁市', + 330482: '平湖市', + 330483: '桐乡市', + 330502: '吴兴区', + 330503: '南浔区', + 330521: '德清县', + 330522: '长兴县', + 330523: '安吉县', + 330602: '越城区', + 330603: '柯桥区', + 330604: '上虞区', + 330624: '新昌县', + 330681: '诸暨市', + 330683: '嵊州市', + 330702: '婺城区', + 330703: '金东区', + 330723: '武义县', + 330726: '浦江县', + 330727: '磐安县', + 330781: '兰溪市', + 330782: '义乌市', + 330783: '东阳市', + 330784: '永康市', + 330802: '柯城区', + 330803: '衢江区', + 330822: '常山县', + 330824: '开化县', + 330825: '龙游县', + 330881: '江山市', + 330902: '定海区', + 330903: '普陀区', + 330921: '岱山县', + 330922: '嵊泗县', + 331002: '椒江区', + 331003: '黄岩区', + 331004: '路桥区', + 331022: '三门县', + 331023: '天台县', + 331024: '仙居县', + 331081: '温岭市', + 331082: '临海市', + 331083: '玉环市', + 331102: '莲都区', + 331121: '青田县', + 331122: '缙云县', + 331123: '遂昌县', + 331124: '松阳县', + 331125: '云和县', + 331126: '庆元县', + 331127: '景宁畲族自治县', + 331181: '龙泉市', + 340102: '瑶海区', + 340103: '庐阳区', + 340104: '蜀山区', + 340111: '包河区', + 340121: '长丰县', + 340122: '肥东县', + 340123: '肥西县', + 340124: '庐江县', + 340171: '合肥高新技术产业开发区', + 340172: '合肥经济技术开发区', + 340173: '合肥新站高新技术产业开发区', + 340181: '巢湖市', + 340190: '高新技术开发区', + 340191: '经济技术开发区', + 340202: '镜湖区', + 340203: '弋江区', + 340207: '鸠江区', + 340208: '三山区', + 340221: '芜湖县', + 340222: '繁昌县', + 340223: '南陵县', + 340281: '无为市', + 340302: '龙子湖区', + 340303: '蚌山区', + 340304: '禹会区', + 340311: '淮上区', + 340321: '怀远县', + 340322: '五河县', + 340323: '固镇县', + 340371: '蚌埠市高新技术开发区', + 340372: '蚌埠市经济开发区', + 340402: '大通区', + 340403: '田家庵区', + 340404: '谢家集区', + 340405: '八公山区', + 340406: '潘集区', + 340421: '凤台县', + 340422: '寿县', + 340503: '花山区', + 340504: '雨山区', + 340506: '博望区', + 340521: '当涂县', + 340522: '含山县', + 340523: '和县', + 340602: '杜集区', + 340603: '相山区', + 340604: '烈山区', + 340621: '濉溪县', + 340705: '铜官区', + 340706: '义安区', + 340711: '郊区', + 340722: '枞阳县', + 340802: '迎江区', + 340803: '大观区', + 340811: '宜秀区', + 340822: '怀宁县', + 340825: '太湖县', + 340826: '宿松县', + 340827: '望江县', + 340828: '岳西县', + 340881: '桐城市', + 340882: '潜山市', + 341002: '屯溪区', + 341003: '黄山区', + 341004: '徽州区', + 341021: '歙县', + 341022: '休宁县', + 341023: '黟县', + 341024: '祁门县', + 341102: '琅琊区', + 341103: '南谯区', + 341122: '来安县', + 341124: '全椒县', + 341125: '定远县', + 341126: '凤阳县', + 341181: '天长市', + 341182: '明光市', + 341202: '颍州区', + 341203: '颍东区', + 341204: '颍泉区', + 341221: '临泉县', + 341222: '太和县', + 341225: '阜南县', + 341226: '颍上县', + 341271: '阜阳合肥现代产业园区', + 341282: '界首市', + 341302: '埇桥区', + 341321: '砀山县', + 341322: '萧县', + 341323: '灵璧县', + 341324: '泗县', + 341371: '宿州马鞍山现代产业园区', + 341372: '宿州经济技术开发区', + 341390: '经济开发区', + 341502: '金安区', + 341503: '裕安区', + 341504: '叶集区', + 341522: '霍邱县', + 341523: '舒城县', + 341524: '金寨县', + 341525: '霍山县', + 341602: '谯城区', + 341621: '涡阳县', + 341622: '蒙城县', + 341623: '利辛县', + 341702: '贵池区', + 341721: '东至县', + 341722: '石台县', + 341723: '青阳县', + 341802: '宣州区', + 341821: '郎溪县', + 341823: '泾县', + 341824: '绩溪县', + 341825: '旌德县', + 341871: '宣城市经济开发区', + 341881: '宁国市', + 341882: '广德市', + 350102: '鼓楼区', + 350103: '台江区', + 350104: '仓山区', + 350105: '马尾区', + 350111: '晋安区', + 350112: '长乐区', + 350121: '闽侯县', + 350122: '连江县', + 350123: '罗源县', + 350124: '闽清县', + 350125: '永泰县', + 350128: '平潭县', + 350181: '福清市', + 350203: '思明区', + 350205: '海沧区', + 350206: '湖里区', + 350211: '集美区', + 350212: '同安区', + 350213: '翔安区', + 350302: '城厢区', + 350303: '涵江区', + 350304: '荔城区', + 350305: '秀屿区', + 350322: '仙游县', + 350402: '梅列区', + 350403: '三元区', + 350421: '明溪县', + 350423: '清流县', + 350424: '宁化县', + 350425: '大田县', + 350426: '尤溪县', + 350427: '沙县', + 350428: '将乐县', + 350429: '泰宁县', + 350430: '建宁县', + 350481: '永安市', + 350502: '鲤城区', + 350503: '丰泽区', + 350504: '洛江区', + 350505: '泉港区', + 350521: '惠安县', + 350524: '安溪县', + 350525: '永春县', + 350526: '德化县', + 350527: '金门县', + 350581: '石狮市', + 350582: '晋江市', + 350583: '南安市', + 350602: '芗城区', + 350603: '龙文区', + 350622: '云霄县', + 350623: '漳浦县', + 350624: '诏安县', + 350625: '长泰县', + 350626: '东山县', + 350627: '南靖县', + 350628: '平和县', + 350629: '华安县', + 350681: '龙海市', + 350702: '延平区', + 350703: '建阳区', + 350721: '顺昌县', + 350722: '浦城县', + 350723: '光泽县', + 350724: '松溪县', + 350725: '政和县', + 350781: '邵武市', + 350782: '武夷山市', + 350783: '建瓯市', + 350802: '新罗区', + 350803: '永定区', + 350821: '长汀县', + 350823: '上杭县', + 350824: '武平县', + 350825: '连城县', + 350881: '漳平市', + 350902: '蕉城区', + 350921: '霞浦县', + 350922: '古田县', + 350923: '屏南县', + 350924: '寿宁县', + 350925: '周宁县', + 350926: '柘荣县', + 350981: '福安市', + 350982: '福鼎市', + 360102: '东湖区', + 360103: '西湖区', + 360104: '青云谱区', + 360111: '青山湖区', + 360112: '新建区', + 360113: '红谷滩区', + 360121: '南昌县', + 360123: '安义县', + 360124: '进贤县', + 360190: '经济技术开发区', + 360192: '高新区', + 360202: '昌江区', + 360203: '珠山区', + 360222: '浮梁县', + 360281: '乐平市', + 360302: '安源区', + 360313: '湘东区', + 360321: '莲花县', + 360322: '上栗县', + 360323: '芦溪县', + 360402: '濂溪区', + 360403: '浔阳区', + 360404: '柴桑区', + 360423: '武宁县', + 360424: '修水县', + 360425: '永修县', + 360426: '德安县', + 360428: '都昌县', + 360429: '湖口县', + 360430: '彭泽县', + 360481: '瑞昌市', + 360482: '共青城市', + 360483: '庐山市', + 360490: '经济技术开发区', + 360502: '渝水区', + 360521: '分宜县', + 360602: '月湖区', + 360603: '余江区', + 360681: '贵溪市', + 360702: '章贡区', + 360703: '南康区', + 360704: '赣县区', + 360722: '信丰县', + 360723: '大余县', + 360724: '上犹县', + 360725: '崇义县', + 360726: '安远县', + 360727: '龙南县', + 360728: '定南县', + 360729: '全南县', + 360730: '宁都县', + 360731: '于都县', + 360732: '兴国县', + 360733: '会昌县', + 360734: '寻乌县', + 360735: '石城县', + 360781: '瑞金市', + 360802: '吉州区', + 360803: '青原区', + 360821: '吉安县', + 360822: '吉水县', + 360823: '峡江县', + 360824: '新干县', + 360825: '永丰县', + 360826: '泰和县', + 360827: '遂川县', + 360828: '万安县', + 360829: '安福县', + 360830: '永新县', + 360881: '井冈山市', + 360902: '袁州区', + 360921: '奉新县', + 360922: '万载县', + 360923: '上高县', + 360924: '宜丰县', + 360925: '靖安县', + 360926: '铜鼓县', + 360981: '丰城市', + 360982: '樟树市', + 360983: '高安市', + 361002: '临川区', + 361003: '东乡区', + 361021: '南城县', + 361022: '黎川县', + 361023: '南丰县', + 361024: '崇仁县', + 361025: '乐安县', + 361026: '宜黄县', + 361027: '金溪县', + 361028: '资溪县', + 361030: '广昌县', + 361102: '信州区', + 361103: '广丰区', + 361104: '广信区', + 361123: '玉山县', + 361124: '铅山县', + 361125: '横峰县', + 361126: '弋阳县', + 361127: '余干县', + 361128: '鄱阳县', + 361129: '万年县', + 361130: '婺源县', + 361181: '德兴市', + 370102: '历下区', + 370103: '市中区', + 370104: '槐荫区', + 370105: '天桥区', + 370112: '历城区', + 370113: '长清区', + 370114: '章丘区', + 370115: '济阳区', + 370116: '莱芜区', + 370117: '钢城区', + 370124: '平阴县', + 370126: '商河县', + 370171: '济南高新技术产业开发区', + 370190: '高新区', + 370202: '市南区', + 370203: '市北区', + 370211: '黄岛区', + 370212: '崂山区', + 370213: '李沧区', + 370214: '城阳区', + 370215: '即墨区', + 370271: '青岛高新技术产业开发区', + 370281: '胶州市', + 370283: '平度市', + 370285: '莱西市', + 370290: '开发区', + 370302: '淄川区', + 370303: '张店区', + 370304: '博山区', + 370305: '临淄区', + 370306: '周村区', + 370321: '桓台县', + 370322: '高青县', + 370323: '沂源县', + 370402: '市中区', + 370403: '薛城区', + 370404: '峄城区', + 370405: '台儿庄区', + 370406: '山亭区', + 370481: '滕州市', + 370502: '东营区', + 370503: '河口区', + 370505: '垦利区', + 370522: '利津县', + 370523: '广饶县', + 370571: '东营经济技术开发区', + 370572: '东营港经济开发区', + 370602: '芝罘区', + 370611: '福山区', + 370612: '牟平区', + 370613: '莱山区', + 370634: '长岛县', + 370671: '烟台高新技术产业开发区', + 370672: '烟台经济技术开发区', + 370681: '龙口市', + 370682: '莱阳市', + 370683: '莱州市', + 370684: '蓬莱市', + 370685: '招远市', + 370686: '栖霞市', + 370687: '海阳市', + 370690: '开发区', + 370702: '潍城区', + 370703: '寒亭区', + 370704: '坊子区', + 370705: '奎文区', + 370724: '临朐县', + 370725: '昌乐县', + 370772: '潍坊滨海经济技术开发区', + 370781: '青州市', + 370782: '诸城市', + 370783: '寿光市', + 370784: '安丘市', + 370785: '高密市', + 370786: '昌邑市', + 370790: '开发区', + 370791: '高新区', + 370811: '任城区', + 370812: '兖州区', + 370826: '微山县', + 370827: '鱼台县', + 370828: '金乡县', + 370829: '嘉祥县', + 370830: '汶上县', + 370831: '泗水县', + 370832: '梁山县', + 370871: '济宁高新技术产业开发区', + 370881: '曲阜市', + 370883: '邹城市', + 370890: '高新区', + 370902: '泰山区', + 370911: '岱岳区', + 370921: '宁阳县', + 370923: '东平县', + 370982: '新泰市', + 370983: '肥城市', + 371002: '环翠区', + 371003: '文登区', + 371071: '威海火炬高技术产业开发区', + 371072: '威海经济技术开发区', + 371082: '荣成市', + 371083: '乳山市', + 371091: '经济技术开发区', + 371102: '东港区', + 371103: '岚山区', + 371121: '五莲县', + 371122: '莒县', + 371171: '日照经济技术开发区', + 371302: '兰山区', + 371311: '罗庄区', + 371312: '河东区', + 371321: '沂南县', + 371322: '郯城县', + 371323: '沂水县', + 371324: '兰陵县', + 371325: '费县', + 371326: '平邑县', + 371327: '莒南县', + 371328: '蒙阴县', + 371329: '临沭县', + 371371: '临沂高新技术产业开发区', + 371402: '德城区', + 371403: '陵城区', + 371422: '宁津县', + 371423: '庆云县', + 371424: '临邑县', + 371425: '齐河县', + 371426: '平原县', + 371427: '夏津县', + 371428: '武城县', + 371472: '德州运河经济开发区', + 371481: '乐陵市', + 371482: '禹城市', + 371502: '东昌府区', + 371503: '茌平区', + 371521: '阳谷县', + 371522: '莘县', + 371524: '东阿县', + 371525: '冠县', + 371526: '高唐县', + 371581: '临清市', + 371602: '滨城区', + 371603: '沾化区', + 371621: '惠民县', + 371622: '阳信县', + 371623: '无棣县', + 371625: '博兴县', + 371681: '邹平市', + 371702: '牡丹区', + 371703: '定陶区', + 371721: '曹县', + 371722: '单县', + 371723: '成武县', + 371724: '巨野县', + 371725: '郓城县', + 371726: '鄄城县', + 371728: '东明县', + 371771: '菏泽经济技术开发区', + 371772: '菏泽高新技术开发区', + 410102: '中原区', + 410103: '二七区', + 410104: '管城回族区', + 410105: '金水区', + 410106: '上街区', + 410108: '惠济区', + 410122: '中牟县', + 410171: '郑州经济技术开发区', + 410172: '郑州高新技术产业开发区', + 410173: '郑州航空港经济综合实验区', + 410181: '巩义市', + 410182: '荥阳市', + 410183: '新密市', + 410184: '新郑市', + 410185: '登封市', + 410190: '高新技术开发区', + 410191: '经济技术开发区', + 410202: '龙亭区', + 410203: '顺河回族区', + 410204: '鼓楼区', + 410205: '禹王台区', + 410212: '祥符区', + 410221: '杞县', + 410222: '通许县', + 410223: '尉氏县', + 410225: '兰考县', + 410302: '老城区', + 410303: '西工区', + 410304: '瀍河回族区', + 410305: '涧西区', + 410306: '吉利区', + 410311: '洛龙区', + 410322: '孟津县', + 410323: '新安县', + 410324: '栾川县', + 410325: '嵩县', + 410326: '汝阳县', + 410327: '宜阳县', + 410328: '洛宁县', + 410329: '伊川县', + 410381: '偃师市', + 410402: '新华区', + 410403: '卫东区', + 410404: '石龙区', + 410411: '湛河区', + 410421: '宝丰县', + 410422: '叶县', + 410423: '鲁山县', + 410425: '郏县', + 410471: '平顶山高新技术产业开发区', + 410481: '舞钢市', + 410482: '汝州市', + 410502: '文峰区', + 410503: '北关区', + 410505: '殷都区', + 410506: '龙安区', + 410522: '安阳县', + 410523: '汤阴县', + 410526: '滑县', + 410527: '内黄县', + 410581: '林州市', + 410590: '开发区', + 410602: '鹤山区', + 410603: '山城区', + 410611: '淇滨区', + 410621: '浚县', + 410622: '淇县', + 410702: '红旗区', + 410703: '卫滨区', + 410704: '凤泉区', + 410711: '牧野区', + 410721: '新乡县', + 410724: '获嘉县', + 410725: '原阳县', + 410726: '延津县', + 410727: '封丘县', + 410771: '新乡高新技术产业开发区', + 410772: '新乡经济技术开发区', + 410781: '卫辉市', + 410782: '辉县市', + 410783: '长垣市', + 410802: '解放区', + 410803: '中站区', + 410804: '马村区', + 410811: '山阳区', + 410821: '修武县', + 410822: '博爱县', + 410823: '武陟县', + 410825: '温县', + 410871: '焦作城乡一体化示范区', + 410882: '沁阳市', + 410883: '孟州市', + 410902: '华龙区', + 410922: '清丰县', + 410923: '南乐县', + 410926: '范县', + 410927: '台前县', + 410928: '濮阳县', + 410971: '河南濮阳工业园区', + 411002: '魏都区', + 411003: '建安区', + 411024: '鄢陵县', + 411025: '襄城县', + 411071: '许昌经济技术开发区', + 411081: '禹州市', + 411082: '长葛市', + 411102: '源汇区', + 411103: '郾城区', + 411104: '召陵区', + 411121: '舞阳县', + 411122: '临颍县', + 411171: '漯河经济技术开发区', + 411202: '湖滨区', + 411203: '陕州区', + 411221: '渑池县', + 411224: '卢氏县', + 411271: '河南三门峡经济开发区', + 411281: '义马市', + 411282: '灵宝市', + 411302: '宛城区', + 411303: '卧龙区', + 411321: '南召县', + 411322: '方城县', + 411323: '西峡县', + 411324: '镇平县', + 411325: '内乡县', + 411326: '淅川县', + 411327: '社旗县', + 411328: '唐河县', + 411329: '新野县', + 411330: '桐柏县', + 411372: '南阳市城乡一体化示范区', + 411381: '邓州市', + 411402: '梁园区', + 411403: '睢阳区', + 411421: '民权县', + 411422: '睢县', + 411423: '宁陵县', + 411424: '柘城县', + 411425: '虞城县', + 411426: '夏邑县', + 411481: '永城市', + 411502: '浉河区', + 411503: '平桥区', + 411521: '罗山县', + 411522: '光山县', + 411523: '新县', + 411524: '商城县', + 411525: '固始县', + 411526: '潢川县', + 411527: '淮滨县', + 411528: '息县', + 411602: '川汇区', + 411603: '淮阳区', + 411621: '扶沟县', + 411622: '西华县', + 411623: '商水县', + 411624: '沈丘县', + 411625: '郸城县', + 411627: '太康县', + 411628: '鹿邑县', + 411671: '河南周口经济开发区', + 411681: '项城市', + 411690: '经济开发区', + 411702: '驿城区', + 411721: '西平县', + 411722: '上蔡县', + 411723: '平舆县', + 411724: '正阳县', + 411725: '确山县', + 411726: '泌阳县', + 411727: '汝南县', + 411728: '遂平县', + 411729: '新蔡县', + 419001: '济源市', + 420102: '江岸区', + 420103: '江汉区', + 420104: '硚口区', + 420105: '汉阳区', + 420106: '武昌区', + 420107: '青山区', + 420111: '洪山区', + 420112: '东西湖区', + 420113: '汉南区', + 420114: '蔡甸区', + 420115: '江夏区', + 420116: '黄陂区', + 420117: '新洲区', + 420202: '黄石港区', + 420203: '西塞山区', + 420204: '下陆区', + 420205: '铁山区', + 420222: '阳新县', + 420281: '大冶市', + 420302: '茅箭区', + 420303: '张湾区', + 420304: '郧阳区', + 420322: '郧西县', + 420323: '竹山县', + 420324: '竹溪县', + 420325: '房县', + 420381: '丹江口市', + 420502: '西陵区', + 420503: '伍家岗区', + 420504: '点军区', + 420505: '猇亭区', + 420506: '夷陵区', + 420525: '远安县', + 420526: '兴山县', + 420527: '秭归县', + 420528: '长阳土家族自治县', + 420529: '五峰土家族自治县', + 420581: '宜都市', + 420582: '当阳市', + 420583: '枝江市', + 420590: '经济开发区', + 420602: '襄城区', + 420606: '樊城区', + 420607: '襄州区', + 420624: '南漳县', + 420625: '谷城县', + 420626: '保康县', + 420682: '老河口市', + 420683: '枣阳市', + 420684: '宜城市', + 420702: '梁子湖区', + 420703: '华容区', + 420704: '鄂城区', + 420802: '东宝区', + 420804: '掇刀区', + 420822: '沙洋县', + 420881: '钟祥市', + 420882: '京山市', + 420902: '孝南区', + 420921: '孝昌县', + 420922: '大悟县', + 420923: '云梦县', + 420981: '应城市', + 420982: '安陆市', + 420984: '汉川市', + 421002: '沙市区', + 421003: '荆州区', + 421022: '公安县', + 421023: '监利县', + 421024: '江陵县', + 421081: '石首市', + 421083: '洪湖市', + 421087: '松滋市', + 421102: '黄州区', + 421121: '团风县', + 421122: '红安县', + 421123: '罗田县', + 421124: '英山县', + 421125: '浠水县', + 421126: '蕲春县', + 421127: '黄梅县', + 421171: '龙感湖管理区', + 421181: '麻城市', + 421182: '武穴市', + 421202: '咸安区', + 421221: '嘉鱼县', + 421222: '通城县', + 421223: '崇阳县', + 421224: '通山县', + 421281: '赤壁市', + 421303: '曾都区', + 421321: '随县', + 421381: '广水市', + 422801: '恩施市', + 422802: '利川市', + 422822: '建始县', + 422823: '巴东县', + 422825: '宣恩县', + 422826: '咸丰县', + 422827: '来凤县', + 422828: '鹤峰县', + 429004: '仙桃市', + 429005: '潜江市', + 429006: '天门市', + 429021: '神农架林区', + 430102: '芙蓉区', + 430103: '天心区', + 430104: '岳麓区', + 430105: '开福区', + 430111: '雨花区', + 430112: '望城区', + 430121: '长沙县', + 430181: '浏阳市', + 430182: '宁乡市', + 430202: '荷塘区', + 430203: '芦淞区', + 430204: '石峰区', + 430211: '天元区', + 430212: '渌口区', + 430223: '攸县', + 430224: '茶陵县', + 430225: '炎陵县', + 430271: '云龙示范区', + 430281: '醴陵市', + 430302: '雨湖区', + 430304: '岳塘区', + 430321: '湘潭县', + 430373: '湘潭九华示范区', + 430381: '湘乡市', + 430382: '韶山市', + 430405: '珠晖区', + 430406: '雁峰区', + 430407: '石鼓区', + 430408: '蒸湘区', + 430412: '南岳区', + 430421: '衡阳县', + 430422: '衡南县', + 430423: '衡山县', + 430424: '衡东县', + 430426: '祁东县', + 430481: '耒阳市', + 430482: '常宁市', + 430502: '双清区', + 430503: '大祥区', + 430511: '北塔区', + 430522: '新邵县', + 430523: '邵阳县', + 430524: '隆回县', + 430525: '洞口县', + 430527: '绥宁县', + 430528: '新宁县', + 430529: '城步苗族自治县', + 430581: '武冈市', + 430582: '邵东市', + 430602: '岳阳楼区', + 430603: '云溪区', + 430611: '君山区', + 430621: '岳阳县', + 430623: '华容县', + 430624: '湘阴县', + 430626: '平江县', + 430681: '汨罗市', + 430682: '临湘市', + 430702: '武陵区', + 430703: '鼎城区', + 430721: '安乡县', + 430722: '汉寿县', + 430723: '澧县', + 430724: '临澧县', + 430725: '桃源县', + 430726: '石门县', + 430781: '津市市', + 430802: '永定区', + 430811: '武陵源区', + 430821: '慈利县', + 430822: '桑植县', + 430902: '资阳区', + 430903: '赫山区', + 430921: '南县', + 430922: '桃江县', + 430923: '安化县', + 430971: '益阳市大通湖管理区', + 430981: '沅江市', + 431002: '北湖区', + 431003: '苏仙区', + 431021: '桂阳县', + 431022: '宜章县', + 431023: '永兴县', + 431024: '嘉禾县', + 431025: '临武县', + 431026: '汝城县', + 431027: '桂东县', + 431028: '安仁县', + 431081: '资兴市', + 431102: '零陵区', + 431103: '冷水滩区', + 431121: '祁阳县', + 431122: '东安县', + 431123: '双牌县', + 431124: '道县', + 431125: '江永县', + 431126: '宁远县', + 431127: '蓝山县', + 431128: '新田县', + 431129: '江华瑶族自治县', + 431202: '鹤城区', + 431221: '中方县', + 431222: '沅陵县', + 431223: '辰溪县', + 431224: '溆浦县', + 431225: '会同县', + 431226: '麻阳苗族自治县', + 431227: '新晃侗族自治县', + 431228: '芷江侗族自治县', + 431229: '靖州苗族侗族自治县', + 431230: '通道侗族自治县', + 431271: '怀化市洪江管理区', + 431281: '洪江市', + 431302: '娄星区', + 431321: '双峰县', + 431322: '新化县', + 431381: '冷水江市', + 431382: '涟源市', + 433101: '吉首市', + 433122: '泸溪县', + 433123: '凤凰县', + 433124: '花垣县', + 433125: '保靖县', + 433126: '古丈县', + 433127: '永顺县', + 433130: '龙山县', + 440103: '荔湾区', + 440104: '越秀区', + 440105: '海珠区', + 440106: '天河区', + 440111: '白云区', + 440112: '黄埔区', + 440113: '番禺区', + 440114: '花都区', + 440115: '南沙区', + 440117: '从化区', + 440118: '增城区', + 440203: '武江区', + 440204: '浈江区', + 440205: '曲江区', + 440222: '始兴县', + 440224: '仁化县', + 440229: '翁源县', + 440232: '乳源瑶族自治县', + 440233: '新丰县', + 440281: '乐昌市', + 440282: '南雄市', + 440303: '罗湖区', + 440304: '福田区', + 440305: '南山区', + 440306: '宝安区', + 440307: '龙岗区', + 440308: '盐田区', + 440309: '龙华区', + 440310: '坪山区', + 440311: '光明区', + 440402: '香洲区', + 440403: '斗门区', + 440404: '金湾区', + 440507: '龙湖区', + 440511: '金平区', + 440512: '濠江区', + 440513: '潮阳区', + 440514: '潮南区', + 440515: '澄海区', + 440523: '南澳县', + 440604: '禅城区', + 440605: '南海区', + 440606: '顺德区', + 440607: '三水区', + 440608: '高明区', + 440703: '蓬江区', + 440704: '江海区', + 440705: '新会区', + 440781: '台山市', + 440783: '开平市', + 440784: '鹤山市', + 440785: '恩平市', + 440802: '赤坎区', + 440803: '霞山区', + 440804: '坡头区', + 440811: '麻章区', + 440823: '遂溪县', + 440825: '徐闻县', + 440881: '廉江市', + 440882: '雷州市', + 440883: '吴川市', + 440890: '经济技术开发区', + 440902: '茂南区', + 440904: '电白区', + 440981: '高州市', + 440982: '化州市', + 440983: '信宜市', + 441202: '端州区', + 441203: '鼎湖区', + 441204: '高要区', + 441223: '广宁县', + 441224: '怀集县', + 441225: '封开县', + 441226: '德庆县', + 441284: '四会市', + 441302: '惠城区', + 441303: '惠阳区', + 441322: '博罗县', + 441323: '惠东县', + 441324: '龙门县', + 441402: '梅江区', + 441403: '梅县区', + 441422: '大埔县', + 441423: '丰顺县', + 441424: '五华县', + 441426: '平远县', + 441427: '蕉岭县', + 441481: '兴宁市', + 441502: '城区', + 441521: '海丰县', + 441523: '陆河县', + 441581: '陆丰市', + 441602: '源城区', + 441621: '紫金县', + 441622: '龙川县', + 441623: '连平县', + 441624: '和平县', + 441625: '东源县', + 441702: '江城区', + 441704: '阳东区', + 441721: '阳西县', + 441781: '阳春市', + 441802: '清城区', + 441803: '清新区', + 441821: '佛冈县', + 441823: '阳山县', + 441825: '连山壮族瑶族自治县', + 441826: '连南瑶族自治县', + 441881: '英德市', + 441882: '连州市', + 441901: '中堂镇', + 441903: '南城街道', + 441904: '长安镇', + 441905: '东坑镇', + 441906: '樟木头镇', + 441907: '莞城街道', + 441908: '石龙镇', + 441909: '桥头镇', + 441910: '万江街道', + 441911: '麻涌镇', + 441912: '虎门镇', + 441913: '谢岗镇', + 441914: '石碣镇', + 441915: '茶山镇', + 441916: '东城街道', + 441917: '洪梅镇', + 441918: '道滘镇', + 441919: '高埗镇', + 441920: '企石镇', + 441921: '凤岗镇', + 441922: '大岭山镇', + 441923: '松山湖', + 441924: '清溪镇', + 441925: '望牛墩镇', + 441926: '厚街镇', + 441927: '常平镇', + 441928: '寮步镇', + 441929: '石排镇', + 441930: '横沥镇', + 441931: '塘厦镇', + 441932: '黄江镇', + 441933: '大朗镇', + 441934: '东莞港', + 441935: '东莞生态园', + 441990: '沙田镇', + 442001: '南头镇', + 442002: '神湾镇', + 442003: '东凤镇', + 442004: '五桂山街道', + 442005: '黄圃镇', + 442006: '小榄镇', + 442007: '石岐街道', + 442008: '横栏镇', + 442009: '三角镇', + 442010: '三乡镇', + 442011: '港口镇', + 442012: '沙溪镇', + 442013: '板芙镇', + 442015: '东升镇', + 442016: '阜沙镇', + 442017: '民众镇', + 442018: '东区街道', + 442019: '火炬开发区街道办事处', + 442020: '西区街道', + 442021: '南区街道', + 442022: '古镇镇', + 442023: '坦洲镇', + 442024: '大涌镇', + 442025: '南朗镇', + 445102: '湘桥区', + 445103: '潮安区', + 445122: '饶平县', + 445202: '榕城区', + 445203: '揭东区', + 445222: '揭西县', + 445224: '惠来县', + 445281: '普宁市', + 445302: '云城区', + 445303: '云安区', + 445321: '新兴县', + 445322: '郁南县', + 445381: '罗定市', + 450102: '兴宁区', + 450103: '青秀区', + 450105: '江南区', + 450107: '西乡塘区', + 450108: '良庆区', + 450109: '邕宁区', + 450110: '武鸣区', + 450123: '隆安县', + 450124: '马山县', + 450125: '上林县', + 450126: '宾阳县', + 450127: '横县', + 450202: '城中区', + 450203: '鱼峰区', + 450204: '柳南区', + 450205: '柳北区', + 450206: '柳江区', + 450222: '柳城县', + 450223: '鹿寨县', + 450224: '融安县', + 450225: '融水苗族自治县', + 450226: '三江侗族自治县', + 450302: '秀峰区', + 450303: '叠彩区', + 450304: '象山区', + 450305: '七星区', + 450311: '雁山区', + 450312: '临桂区', + 450321: '阳朔县', + 450323: '灵川县', + 450324: '全州县', + 450325: '兴安县', + 450326: '永福县', + 450327: '灌阳县', + 450328: '龙胜各族自治县', + 450329: '资源县', + 450330: '平乐县', + 450332: '恭城瑶族自治县', + 450381: '荔浦市', + 450403: '万秀区', + 450405: '长洲区', + 450406: '龙圩区', + 450421: '苍梧县', + 450422: '藤县', + 450423: '蒙山县', + 450481: '岑溪市', + 450502: '海城区', + 450503: '银海区', + 450512: '铁山港区', + 450521: '合浦县', + 450602: '港口区', + 450603: '防城区', + 450621: '上思县', + 450681: '东兴市', + 450702: '钦南区', + 450703: '钦北区', + 450721: '灵山县', + 450722: '浦北县', + 450802: '港北区', + 450803: '港南区', + 450804: '覃塘区', + 450821: '平南县', + 450881: '桂平市', + 450902: '玉州区', + 450903: '福绵区', + 450921: '容县', + 450922: '陆川县', + 450923: '博白县', + 450924: '兴业县', + 450981: '北流市', + 451002: '右江区', + 451003: '田阳区', + 451022: '田东县', + 451024: '德保县', + 451026: '那坡县', + 451027: '凌云县', + 451028: '乐业县', + 451029: '田林县', + 451030: '西林县', + 451031: '隆林各族自治县', + 451081: '靖西市', + 451082: '平果市', + 451102: '八步区', + 451103: '平桂区', + 451121: '昭平县', + 451122: '钟山县', + 451123: '富川瑶族自治县', + 451202: '金城江区', + 451203: '宜州区', + 451221: '南丹县', + 451222: '天峨县', + 451223: '凤山县', + 451224: '东兰县', + 451225: '罗城仫佬族自治县', + 451226: '环江毛南族自治县', + 451227: '巴马瑶族自治县', + 451228: '都安瑶族自治县', + 451229: '大化瑶族自治县', + 451302: '兴宾区', + 451321: '忻城县', + 451322: '象州县', + 451323: '武宣县', + 451324: '金秀瑶族自治县', + 451381: '合山市', + 451402: '江州区', + 451421: '扶绥县', + 451422: '宁明县', + 451423: '龙州县', + 451424: '大新县', + 451425: '天等县', + 451481: '凭祥市', + 460105: '秀英区', + 460106: '龙华区', + 460107: '琼山区', + 460108: '美兰区', + 460202: '海棠区', + 460203: '吉阳区', + 460204: '天涯区', + 460205: '崖州区', + 460321: '西沙区', + 460322: '南沙区', + 460401: '那大镇', + 460402: '和庆镇', + 460403: '南丰镇', + 460404: '大成镇', + 460405: '雅星镇', + 460406: '兰洋镇', + 460407: '光村镇', + 460408: '木棠镇', + 460409: '海头镇', + 460410: '峨蔓镇', + 460411: '王五镇', + 460412: '白马井镇', + 460413: '中和镇', + 460414: '排浦镇', + 460415: '东成镇', + 460416: '新州镇', + 460417: '洋浦经济开发区', + 460418: '华南热作学院', + 469001: '五指山市', + 469002: '琼海市', + 469005: '文昌市', + 469006: '万宁市', + 469007: '东方市', + 469021: '定安县', + 469022: '屯昌县', + 469023: '澄迈县', + 469024: '临高县', + 469025: '白沙黎族自治县', + 469026: '昌江黎族自治县', + 469027: '乐东黎族自治县', + 469028: '陵水黎族自治县', + 469029: '保亭黎族苗族自治县', + 469030: '琼中黎族苗族自治县', + 500101: '万州区', + 500102: '涪陵区', + 500103: '渝中区', + 500104: '大渡口区', + 500105: '江北区', + 500106: '沙坪坝区', + 500107: '九龙坡区', + 500108: '南岸区', + 500109: '北碚区', + 500110: '綦江区', + 500111: '大足区', + 500112: '渝北区', + 500113: '巴南区', + 500114: '黔江区', + 500115: '长寿区', + 500116: '江津区', + 500117: '合川区', + 500118: '永川区', + 500119: '南川区', + 500120: '璧山区', + 500151: '铜梁区', + 500152: '潼南区', + 500153: '荣昌区', + 500154: '开州区', + 500155: '梁平区', + 500156: '武隆区', + 500229: '城口县', + 500230: '丰都县', + 500231: '垫江县', + 500233: '忠县', + 500235: '云阳县', + 500236: '奉节县', + 500237: '巫山县', + 500238: '巫溪县', + 500240: '石柱土家族自治县', + 500241: '秀山土家族苗族自治县', + 500242: '酉阳土家族苗族自治县', + 500243: '彭水苗族土家族自治县', + 510104: '锦江区', + 510105: '青羊区', + 510106: '金牛区', + 510107: '武侯区', + 510108: '成华区', + 510112: '龙泉驿区', + 510113: '青白江区', + 510114: '新都区', + 510115: '温江区', + 510116: '双流区', + 510117: '郫都区', + 510121: '金堂县', + 510129: '大邑县', + 510131: '蒲江县', + 510132: '新津县', + 510181: '都江堰市', + 510182: '彭州市', + 510183: '邛崃市', + 510184: '崇州市', + 510185: '简阳市', + 510191: '高新区', + 510302: '自流井区', + 510303: '贡井区', + 510304: '大安区', + 510311: '沿滩区', + 510321: '荣县', + 510322: '富顺县', + 510402: '东区', + 510403: '西区', + 510411: '仁和区', + 510421: '米易县', + 510422: '盐边县', + 510502: '江阳区', + 510503: '纳溪区', + 510504: '龙马潭区', + 510521: '泸县', + 510522: '合江县', + 510524: '叙永县', + 510525: '古蔺县', + 510603: '旌阳区', + 510604: '罗江区', + 510623: '中江县', + 510681: '广汉市', + 510682: '什邡市', + 510683: '绵竹市', + 510703: '涪城区', + 510704: '游仙区', + 510705: '安州区', + 510722: '三台县', + 510723: '盐亭县', + 510725: '梓潼县', + 510726: '北川羌族自治县', + 510727: '平武县', + 510781: '江油市', + 510791: '高新区', + 510802: '利州区', + 510811: '昭化区', + 510812: '朝天区', + 510821: '旺苍县', + 510822: '青川县', + 510823: '剑阁县', + 510824: '苍溪县', + 510903: '船山区', + 510904: '安居区', + 510921: '蓬溪县', + 510923: '大英县', + 510981: '射洪市', + 511002: '市中区', + 511011: '东兴区', + 511024: '威远县', + 511025: '资中县', + 511083: '隆昌市', + 511102: '市中区', + 511111: '沙湾区', + 511112: '五通桥区', + 511113: '金口河区', + 511123: '犍为县', + 511124: '井研县', + 511126: '夹江县', + 511129: '沐川县', + 511132: '峨边彝族自治县', + 511133: '马边彝族自治县', + 511181: '峨眉山市', + 511302: '顺庆区', + 511303: '高坪区', + 511304: '嘉陵区', + 511321: '南部县', + 511322: '营山县', + 511323: '蓬安县', + 511324: '仪陇县', + 511325: '西充县', + 511381: '阆中市', + 511402: '东坡区', + 511403: '彭山区', + 511421: '仁寿县', + 511423: '洪雅县', + 511424: '丹棱县', + 511425: '青神县', + 511502: '翠屏区', + 511503: '南溪区', + 511504: '叙州区', + 511523: '江安县', + 511524: '长宁县', + 511525: '高县', + 511526: '珙县', + 511527: '筠连县', + 511528: '兴文县', + 511529: '屏山县', + 511602: '广安区', + 511603: '前锋区', + 511621: '岳池县', + 511622: '武胜县', + 511623: '邻水县', + 511681: '华蓥市', + 511702: '通川区', + 511703: '达川区', + 511722: '宣汉县', + 511723: '开江县', + 511724: '大竹县', + 511725: '渠县', + 511781: '万源市', + 511802: '雨城区', + 511803: '名山区', + 511822: '荥经县', + 511823: '汉源县', + 511824: '石棉县', + 511825: '天全县', + 511826: '芦山县', + 511827: '宝兴县', + 511902: '巴州区', + 511903: '恩阳区', + 511921: '通江县', + 511922: '南江县', + 511923: '平昌县', + 511971: '巴中经济开发区', + 512002: '雁江区', + 512021: '安岳县', + 512022: '乐至县', + 513201: '马尔康市', + 513221: '汶川县', + 513222: '理县', + 513223: '茂县', + 513224: '松潘县', + 513225: '九寨沟县', + 513226: '金川县', + 513227: '小金县', + 513228: '黑水县', + 513230: '壤塘县', + 513231: '阿坝县', + 513232: '若尔盖县', + 513233: '红原县', + 513301: '康定市', + 513322: '泸定县', + 513323: '丹巴县', + 513324: '九龙县', + 513325: '雅江县', + 513326: '道孚县', + 513327: '炉霍县', + 513328: '甘孜县', + 513329: '新龙县', + 513330: '德格县', + 513331: '白玉县', + 513332: '石渠县', + 513333: '色达县', + 513334: '理塘县', + 513335: '巴塘县', + 513336: '乡城县', + 513337: '稻城县', + 513338: '得荣县', + 513401: '西昌市', + 513422: '木里藏族自治县', + 513423: '盐源县', + 513424: '德昌县', + 513425: '会理县', + 513426: '会东县', + 513427: '宁南县', + 513428: '普格县', + 513429: '布拖县', + 513430: '金阳县', + 513431: '昭觉县', + 513432: '喜德县', + 513433: '冕宁县', + 513434: '越西县', + 513435: '甘洛县', + 513436: '美姑县', + 513437: '雷波县', + 520102: '南明区', + 520103: '云岩区', + 520111: '花溪区', + 520112: '乌当区', + 520113: '白云区', + 520115: '观山湖区', + 520121: '开阳县', + 520122: '息烽县', + 520123: '修文县', + 520181: '清镇市', + 520201: '钟山区', + 520203: '六枝特区', + 520221: '水城县', + 520281: '盘州市', + 520302: '红花岗区', + 520303: '汇川区', + 520304: '播州区', + 520322: '桐梓县', + 520323: '绥阳县', + 520324: '正安县', + 520325: '道真仡佬族苗族自治县', + 520326: '务川仡佬族苗族自治县', + 520327: '凤冈县', + 520328: '湄潭县', + 520329: '余庆县', + 520330: '习水县', + 520381: '赤水市', + 520382: '仁怀市', + 520402: '西秀区', + 520403: '平坝区', + 520422: '普定县', + 520423: '镇宁布依族苗族自治县', + 520424: '关岭布依族苗族自治县', + 520425: '紫云苗族布依族自治县', + 520502: '七星关区', + 520521: '大方县', + 520522: '黔西县', + 520523: '金沙县', + 520524: '织金县', + 520525: '纳雍县', + 520526: '威宁彝族回族苗族自治县', + 520527: '赫章县', + 520602: '碧江区', + 520603: '万山区', + 520621: '江口县', + 520622: '玉屏侗族自治县', + 520623: '石阡县', + 520624: '思南县', + 520625: '印江土家族苗族自治县', + 520626: '德江县', + 520627: '沿河土家族自治县', + 520628: '松桃苗族自治县', + 522301: '兴义市', + 522302: '兴仁市', + 522323: '普安县', + 522324: '晴隆县', + 522325: '贞丰县', + 522326: '望谟县', + 522327: '册亨县', + 522328: '安龙县', + 522601: '凯里市', + 522622: '黄平县', + 522623: '施秉县', + 522624: '三穗县', + 522625: '镇远县', + 522626: '岑巩县', + 522627: '天柱县', + 522628: '锦屏县', + 522629: '剑河县', + 522630: '台江县', + 522631: '黎平县', + 522632: '榕江县', + 522633: '从江县', + 522634: '雷山县', + 522635: '麻江县', + 522636: '丹寨县', + 522701: '都匀市', + 522702: '福泉市', + 522722: '荔波县', + 522723: '贵定县', + 522725: '瓮安县', + 522726: '独山县', + 522727: '平塘县', + 522728: '罗甸县', + 522729: '长顺县', + 522730: '龙里县', + 522731: '惠水县', + 522732: '三都水族自治县', + 530102: '五华区', + 530103: '盘龙区', + 530111: '官渡区', + 530112: '西山区', + 530113: '东川区', + 530114: '呈贡区', + 530115: '晋宁区', + 530124: '富民县', + 530125: '宜良县', + 530126: '石林彝族自治县', + 530127: '嵩明县', + 530128: '禄劝彝族苗族自治县', + 530129: '寻甸回族彝族自治县', + 530181: '安宁市', + 530302: '麒麟区', + 530303: '沾益区', + 530304: '马龙区', + 530322: '陆良县', + 530323: '师宗县', + 530324: '罗平县', + 530325: '富源县', + 530326: '会泽县', + 530381: '宣威市', + 530402: '红塔区', + 530403: '江川区', + 530423: '通海县', + 530424: '华宁县', + 530425: '易门县', + 530426: '峨山彝族自治县', + 530427: '新平彝族傣族自治县', + 530428: '元江哈尼族彝族傣族自治县', + 530481: '澄江市', + 530502: '隆阳区', + 530521: '施甸县', + 530523: '龙陵县', + 530524: '昌宁县', + 530581: '腾冲市', + 530602: '昭阳区', + 530621: '鲁甸县', + 530622: '巧家县', + 530623: '盐津县', + 530624: '大关县', + 530625: '永善县', + 530626: '绥江县', + 530627: '镇雄县', + 530628: '彝良县', + 530629: '威信县', + 530681: '水富市', + 530702: '古城区', + 530721: '玉龙纳西族自治县', + 530722: '永胜县', + 530723: '华坪县', + 530724: '宁蒗彝族自治县', + 530802: '思茅区', + 530821: '宁洱哈尼族彝族自治县', + 530822: '墨江哈尼族自治县', + 530823: '景东彝族自治县', + 530824: '景谷傣族彝族自治县', + 530825: '镇沅彝族哈尼族拉祜族自治县', + 530826: '江城哈尼族彝族自治县', + 530827: '孟连傣族拉祜族佤族自治县', + 530828: '澜沧拉祜族自治县', + 530829: '西盟佤族自治县', + 530902: '临翔区', + 530921: '凤庆县', + 530922: '云县', + 530923: '永德县', + 530924: '镇康县', + 530925: '双江拉祜族佤族布朗族傣族自治县', + 530926: '耿马傣族佤族自治县', + 530927: '沧源佤族自治县', + 532301: '楚雄市', + 532322: '双柏县', + 532323: '牟定县', + 532324: '南华县', + 532325: '姚安县', + 532326: '大姚县', + 532327: '永仁县', + 532328: '元谋县', + 532329: '武定县', + 532331: '禄丰县', + 532501: '个旧市', + 532502: '开远市', + 532503: '蒙自市', + 532504: '弥勒市', + 532523: '屏边苗族自治县', + 532524: '建水县', + 532525: '石屏县', + 532527: '泸西县', + 532528: '元阳县', + 532529: '红河县', + 532530: '金平苗族瑶族傣族自治县', + 532531: '绿春县', + 532532: '河口瑶族自治县', + 532601: '文山市', + 532622: '砚山县', + 532623: '西畴县', + 532624: '麻栗坡县', + 532625: '马关县', + 532626: '丘北县', + 532627: '广南县', + 532628: '富宁县', + 532801: '景洪市', + 532822: '勐海县', + 532823: '勐腊县', + 532901: '大理市', + 532922: '漾濞彝族自治县', + 532923: '祥云县', + 532924: '宾川县', + 532925: '弥渡县', + 532926: '南涧彝族自治县', + 532927: '巍山彝族回族自治县', + 532928: '永平县', + 532929: '云龙县', + 532930: '洱源县', + 532931: '剑川县', + 532932: '鹤庆县', + 533102: '瑞丽市', + 533103: '芒市', + 533122: '梁河县', + 533123: '盈江县', + 533124: '陇川县', + 533301: '泸水市', + 533323: '福贡县', + 533324: '贡山独龙族怒族自治县', + 533325: '兰坪白族普米族自治县', + 533401: '香格里拉市', + 533422: '德钦县', + 533423: '维西傈僳族自治县', + 540102: '城关区', + 540103: '堆龙德庆区', + 540104: '达孜区', + 540121: '林周县', + 540122: '当雄县', + 540123: '尼木县', + 540124: '曲水县', + 540127: '墨竹工卡县', + 540202: '桑珠孜区', + 540221: '南木林县', + 540222: '江孜县', + 540223: '定日县', + 540224: '萨迦县', + 540225: '拉孜县', + 540226: '昂仁县', + 540227: '谢通门县', + 540228: '白朗县', + 540229: '仁布县', + 540230: '康马县', + 540231: '定结县', + 540232: '仲巴县', + 540233: '亚东县', + 540234: '吉隆县', + 540235: '聂拉木县', + 540236: '萨嘎县', + 540237: '岗巴县', + 540302: '卡若区', + 540321: '江达县', + 540322: '贡觉县', + 540323: '类乌齐县', + 540324: '丁青县', + 540325: '察雅县', + 540326: '八宿县', + 540327: '左贡县', + 540328: '芒康县', + 540329: '洛隆县', + 540330: '边坝县', + 540402: '巴宜区', + 540421: '工布江达县', + 540422: '米林县', + 540423: '墨脱县', + 540424: '波密县', + 540425: '察隅县', + 540426: '朗县', + 540502: '乃东区', + 540521: '扎囊县', + 540522: '贡嘎县', + 540523: '桑日县', + 540524: '琼结县', + 540525: '曲松县', + 540526: '措美县', + 540527: '洛扎县', + 540528: '加查县', + 540529: '隆子县', + 540530: '错那县', + 540531: '浪卡子县', + 540602: '色尼区', + 540621: '嘉黎县', + 540622: '比如县', + 540623: '聂荣县', + 540624: '安多县', + 540625: '申扎县', + 540626: '索县', + 540627: '班戈县', + 540628: '巴青县', + 540629: '尼玛县', + 540630: '双湖县', + 542521: '普兰县', + 542522: '札达县', + 542523: '噶尔县', + 542524: '日土县', + 542525: '革吉县', + 542526: '改则县', + 542527: '措勤县', + 610102: '新城区', + 610103: '碑林区', + 610104: '莲湖区', + 610111: '灞桥区', + 610112: '未央区', + 610113: '雁塔区', + 610114: '阎良区', + 610115: '临潼区', + 610116: '长安区', + 610117: '高陵区', + 610118: '鄠邑区', + 610122: '蓝田县', + 610124: '周至县', + 610202: '王益区', + 610203: '印台区', + 610204: '耀州区', + 610222: '宜君县', + 610302: '渭滨区', + 610303: '金台区', + 610304: '陈仓区', + 610322: '凤翔县', + 610323: '岐山县', + 610324: '扶风县', + 610326: '眉县', + 610327: '陇县', + 610328: '千阳县', + 610329: '麟游县', + 610330: '凤县', + 610331: '太白县', + 610402: '秦都区', + 610403: '杨陵区', + 610404: '渭城区', + 610422: '三原县', + 610423: '泾阳县', + 610424: '乾县', + 610425: '礼泉县', + 610426: '永寿县', + 610428: '长武县', + 610429: '旬邑县', + 610430: '淳化县', + 610431: '武功县', + 610481: '兴平市', + 610482: '彬州市', + 610502: '临渭区', + 610503: '华州区', + 610522: '潼关县', + 610523: '大荔县', + 610524: '合阳县', + 610525: '澄城县', + 610526: '蒲城县', + 610527: '白水县', + 610528: '富平县', + 610581: '韩城市', + 610582: '华阴市', + 610602: '宝塔区', + 610603: '安塞区', + 610621: '延长县', + 610622: '延川县', + 610625: '志丹县', + 610626: '吴起县', + 610627: '甘泉县', + 610628: '富县', + 610629: '洛川县', + 610630: '宜川县', + 610631: '黄龙县', + 610632: '黄陵县', + 610681: '子长市', + 610702: '汉台区', + 610703: '南郑区', + 610722: '城固县', + 610723: '洋县', + 610724: '西乡县', + 610725: '勉县', + 610726: '宁强县', + 610727: '略阳县', + 610728: '镇巴县', + 610729: '留坝县', + 610730: '佛坪县', + 610802: '榆阳区', + 610803: '横山区', + 610822: '府谷县', + 610824: '靖边县', + 610825: '定边县', + 610826: '绥德县', + 610827: '米脂县', + 610828: '佳县', + 610829: '吴堡县', + 610830: '清涧县', + 610831: '子洲县', + 610881: '神木市', + 610902: '汉滨区', + 610921: '汉阴县', + 610922: '石泉县', + 610923: '宁陕县', + 610924: '紫阳县', + 610925: '岚皋县', + 610926: '平利县', + 610927: '镇坪县', + 610928: '旬阳县', + 610929: '白河县', + 611002: '商州区', + 611021: '洛南县', + 611022: '丹凤县', + 611023: '商南县', + 611024: '山阳县', + 611025: '镇安县', + 611026: '柞水县', + 620102: '城关区', + 620103: '七里河区', + 620104: '西固区', + 620105: '安宁区', + 620111: '红古区', + 620121: '永登县', + 620122: '皋兰县', + 620123: '榆中县', + 620171: '兰州新区', + 620201: '市辖区', + 620290: '雄关区', + 620291: '长城区', + 620292: '镜铁区', + 620293: '新城镇', + 620294: '峪泉镇', + 620295: '文殊镇', + 620302: '金川区', + 620321: '永昌县', + 620402: '白银区', + 620403: '平川区', + 620421: '靖远县', + 620422: '会宁县', + 620423: '景泰县', + 620502: '秦州区', + 620503: '麦积区', + 620521: '清水县', + 620522: '秦安县', + 620523: '甘谷县', + 620524: '武山县', + 620525: '张家川回族自治县', + 620602: '凉州区', + 620621: '民勤县', + 620622: '古浪县', + 620623: '天祝藏族自治县', + 620702: '甘州区', + 620721: '肃南裕固族自治县', + 620722: '民乐县', + 620723: '临泽县', + 620724: '高台县', + 620725: '山丹县', + 620802: '崆峒区', + 620821: '泾川县', + 620822: '灵台县', + 620823: '崇信县', + 620825: '庄浪县', + 620826: '静宁县', + 620881: '华亭市', + 620902: '肃州区', + 620921: '金塔县', + 620922: '瓜州县', + 620923: '肃北蒙古族自治县', + 620924: '阿克塞哈萨克族自治县', + 620981: '玉门市', + 620982: '敦煌市', + 621002: '西峰区', + 621021: '庆城县', + 621022: '环县', + 621023: '华池县', + 621024: '合水县', + 621025: '正宁县', + 621026: '宁县', + 621027: '镇原县', + 621102: '安定区', + 621121: '通渭县', + 621122: '陇西县', + 621123: '渭源县', + 621124: '临洮县', + 621125: '漳县', + 621126: '岷县', + 621202: '武都区', + 621221: '成县', + 621222: '文县', + 621223: '宕昌县', + 621224: '康县', + 621225: '西和县', + 621226: '礼县', + 621227: '徽县', + 621228: '两当县', + 622901: '临夏市', + 622921: '临夏县', + 622922: '康乐县', + 622923: '永靖县', + 622924: '广河县', + 622925: '和政县', + 622926: '东乡族自治县', + 622927: '积石山保安族东乡族撒拉族自治县', + 623001: '合作市', + 623021: '临潭县', + 623022: '卓尼县', + 623023: '舟曲县', + 623024: '迭部县', + 623025: '玛曲县', + 623026: '碌曲县', + 623027: '夏河县', + 630102: '城东区', + 630103: '城中区', + 630104: '城西区', + 630105: '城北区', + 630106: '湟中区', + 630121: '大通回族土族自治县', + 630123: '湟源县', + 630202: '乐都区', + 630203: '平安区', + 630222: '民和回族土族自治县', + 630223: '互助土族自治县', + 630224: '化隆回族自治县', + 630225: '循化撒拉族自治县', + 632221: '门源回族自治县', + 632222: '祁连县', + 632223: '海晏县', + 632224: '刚察县', + 632321: '同仁县', + 632322: '尖扎县', + 632323: '泽库县', + 632324: '河南蒙古族自治县', + 632521: '共和县', + 632522: '同德县', + 632523: '贵德县', + 632524: '兴海县', + 632525: '贵南县', + 632621: '玛沁县', + 632622: '班玛县', + 632623: '甘德县', + 632624: '达日县', + 632625: '久治县', + 632626: '玛多县', + 632701: '玉树市', + 632722: '杂多县', + 632723: '称多县', + 632724: '治多县', + 632725: '囊谦县', + 632726: '曲麻莱县', + 632801: '格尔木市', + 632802: '德令哈市', + 632803: '茫崖市', + 632821: '乌兰县', + 632822: '都兰县', + 632823: '天峻县', + 632857: '大柴旦行政委员会', + 640104: '兴庆区', + 640105: '西夏区', + 640106: '金凤区', + 640121: '永宁县', + 640122: '贺兰县', + 640181: '灵武市', + 640202: '大武口区', + 640205: '惠农区', + 640221: '平罗县', + 640302: '利通区', + 640303: '红寺堡区', + 640323: '盐池县', + 640324: '同心县', + 640381: '青铜峡市', + 640402: '原州区', + 640422: '西吉县', + 640423: '隆德县', + 640424: '泾源县', + 640425: '彭阳县', + 640502: '沙坡头区', + 640521: '中宁县', + 640522: '海原县', + 650102: '天山区', + 650103: '沙依巴克区', + 650104: '新市区', + 650105: '水磨沟区', + 650106: '头屯河区', + 650107: '达坂城区', + 650109: '米东区', + 650121: '乌鲁木齐县', + 650202: '独山子区', + 650203: '克拉玛依区', + 650204: '白碱滩区', + 650205: '乌尔禾区', + 650402: '高昌区', + 650421: '鄯善县', + 650422: '托克逊县', + 650502: '伊州区', + 650521: '巴里坤哈萨克自治县', + 650522: '伊吾县', + 652301: '昌吉市', + 652302: '阜康市', + 652323: '呼图壁县', + 652324: '玛纳斯县', + 652325: '奇台县', + 652327: '吉木萨尔县', + 652328: '木垒哈萨克自治县', + 652701: '博乐市', + 652702: '阿拉山口市', + 652722: '精河县', + 652723: '温泉县', + 652801: '库尔勒市', + 652822: '轮台县', + 652823: '尉犁县', + 652824: '若羌县', + 652825: '且末县', + 652826: '焉耆回族自治县', + 652827: '和静县', + 652828: '和硕县', + 652829: '博湖县', + 652901: '阿克苏市', + 652902: '库车市', + 652922: '温宿县', + 652924: '沙雅县', + 652925: '新和县', + 652926: '拜城县', + 652927: '乌什县', + 652928: '阿瓦提县', + 652929: '柯坪县', + 653001: '阿图什市', + 653022: '阿克陶县', + 653023: '阿合奇县', + 653024: '乌恰县', + 653101: '喀什市', + 653121: '疏附县', + 653122: '疏勒县', + 653123: '英吉沙县', + 653124: '泽普县', + 653125: '莎车县', + 653126: '叶城县', + 653127: '麦盖提县', + 653128: '岳普湖县', + 653129: '伽师县', + 653130: '巴楚县', + 653131: '塔什库尔干塔吉克自治县', + 653201: '和田市', + 653221: '和田县', + 653222: '墨玉县', + 653223: '皮山县', + 653224: '洛浦县', + 653225: '策勒县', + 653226: '于田县', + 653227: '民丰县', + 654002: '伊宁市', + 654003: '奎屯市', + 654004: '霍尔果斯市', + 654021: '伊宁县', + 654022: '察布查尔锡伯自治县', + 654023: '霍城县', + 654024: '巩留县', + 654025: '新源县', + 654026: '昭苏县', + 654027: '特克斯县', + 654028: '尼勒克县', + 654201: '塔城市', + 654202: '乌苏市', + 654221: '额敏县', + 654223: '沙湾县', + 654224: '托里县', + 654225: '裕民县', + 654226: '和布克赛尔蒙古自治县', + 654301: '阿勒泰市', + 654321: '布尔津县', + 654322: '富蕴县', + 654323: '福海县', + 654324: '哈巴河县', + 654325: '青河县', + 654326: '吉木乃县', + 659001: '石河子市', + 659002: '阿拉尔市', + 659003: '图木舒克市', + 659004: '五家渠市', + 659005: '北屯市', + 659006: '铁门关市', + 659007: '双河市', + 659008: '可克达拉市', + 659009: '昆玉市', + 659010: '胡杨河市', + 710101: '中正区', + 710102: '大同区', + 710103: '中山区', + 710104: '松山区', + 710105: '大安区', + 710106: '万华区', + 710107: '信义区', + 710108: '士林区', + 710109: '北投区', + 710110: '内湖区', + 710111: '南港区', + 710112: '文山区', + 710199: '其它区', + 710201: '新兴区', + 710202: '前金区', + 710203: '芩雅区', + 710204: '盐埕区', + 710205: '鼓山区', + 710206: '旗津区', + 710207: '前镇区', + 710208: '三民区', + 710209: '左营区', + 710210: '楠梓区', + 710211: '小港区', + 710241: '苓雅区', + 710242: '仁武区', + 710243: '大社区', + 710244: '冈山区', + 710245: '路竹区', + 710246: '阿莲区', + 710247: '田寮区', + 710248: '燕巢区', + 710249: '桥头区', + 710250: '梓官区', + 710251: '弥陀区', + 710252: '永安区', + 710253: '湖内区', + 710254: '凤山区', + 710255: '大寮区', + 710256: '林园区', + 710257: '鸟松区', + 710258: '大树区', + 710259: '旗山区', + 710260: '美浓区', + 710261: '六龟区', + 710262: '内门区', + 710263: '杉林区', + 710264: '甲仙区', + 710265: '桃源区', + 710266: '那玛夏区', + 710267: '茂林区', + 710268: '茄萣区', + 710299: '其它区', + 710301: '中西区', + 710302: '东区', + 710303: '南区', + 710304: '北区', + 710305: '安平区', + 710306: '安南区', + 710339: '永康区', + 710340: '归仁区', + 710341: '新化区', + 710342: '左镇区', + 710343: '玉井区', + 710344: '楠西区', + 710345: '南化区', + 710346: '仁德区', + 710347: '关庙区', + 710348: '龙崎区', + 710349: '官田区', + 710350: '麻豆区', + 710351: '佳里区', + 710352: '西港区', + 710353: '七股区', + 710354: '将军区', + 710355: '学甲区', + 710356: '北门区', + 710357: '新营区', + 710358: '后壁区', + 710359: '白河区', + 710360: '东山区', + 710361: '六甲区', + 710362: '下营区', + 710363: '柳营区', + 710364: '盐水区', + 710365: '善化区', + 710366: '大内区', + 710367: '山上区', + 710368: '新市区', + 710369: '安定区', + 710399: '其它区', + 710401: '中区', + 710402: '东区', + 710403: '南区', + 710404: '西区', + 710405: '北区', + 710406: '北屯区', + 710407: '西屯区', + 710408: '南屯区', + 710431: '太平区', + 710432: '大里区', + 710433: '雾峰区', + 710434: '乌日区', + 710435: '丰原区', + 710436: '后里区', + 710437: '石冈区', + 710438: '东势区', + 710439: '和平区', + 710440: '新社区', + 710441: '潭子区', + 710442: '大雅区', + 710443: '神冈区', + 710444: '大肚区', + 710445: '沙鹿区', + 710446: '龙井区', + 710447: '梧栖区', + 710448: '清水区', + 710449: '大甲区', + 710450: '外埔区', + 710451: '大安区', + 710499: '其它区', + 710507: '金沙镇', + 710508: '金湖镇', + 710509: '金宁乡', + 710510: '金城镇', + 710511: '烈屿乡', + 710512: '乌坵乡', + 710614: '南投市', + 710615: '中寮乡', + 710616: '草屯镇', + 710617: '国姓乡', + 710618: '埔里镇', + 710619: '仁爱乡', + 710620: '名间乡', + 710621: '集集镇', + 710622: '水里乡', + 710623: '鱼池乡', + 710624: '信义乡', + 710625: '竹山镇', + 710626: '鹿谷乡', + 710701: '仁爱区', + 710702: '信义区', + 710703: '中正区', + 710704: '中山区', + 710705: '安乐区', + 710706: '暖暖区', + 710707: '七堵区', + 710799: '其它区', + 710801: '东区', + 710802: '北区', + 710803: '香山区', + 710899: '其它区', + 710901: '东区', + 710902: '西区', + 710999: '其它区', + 711130: '万里区', + 711132: '板桥区', + 711133: '汐止区', + 711134: '深坑区', + 711135: '石碇区', + 711136: '瑞芳区', + 711137: '平溪区', + 711138: '双溪区', + 711139: '贡寮区', + 711140: '新店区', + 711141: '坪林区', + 711142: '乌来区', + 711143: '永和区', + 711144: '中和区', + 711145: '土城区', + 711146: '三峡区', + 711147: '树林区', + 711148: '莺歌区', + 711149: '三重区', + 711150: '新庄区', + 711151: '泰山区', + 711152: '林口区', + 711153: '芦洲区', + 711154: '五股区', + 711155: '八里区', + 711156: '淡水区', + 711157: '三芝区', + 711158: '石门区', + 711287: '宜兰市', + 711288: '头城镇', + 711289: '礁溪乡', + 711290: '壮围乡', + 711291: '员山乡', + 711292: '罗东镇', + 711293: '三星乡', + 711294: '大同乡', + 711295: '五结乡', + 711296: '冬山乡', + 711297: '苏澳镇', + 711298: '南澳乡', + 711299: '钓鱼台', + 711387: '竹北市', + 711388: '湖口乡', + 711389: '新丰乡', + 711390: '新埔镇', + 711391: '关西镇', + 711392: '芎林乡', + 711393: '宝山乡', + 711394: '竹东镇', + 711395: '五峰乡', + 711396: '横山乡', + 711397: '尖石乡', + 711398: '北埔乡', + 711399: '峨眉乡', + 711414: '中坜区', + 711415: '平镇区', + 711417: '杨梅区', + 711418: '新屋区', + 711419: '观音区', + 711420: '桃园区', + 711421: '龟山区', + 711422: '八德区', + 711423: '大溪区', + 711425: '大园区', + 711426: '芦竹区', + 711487: '中坜市', + 711488: '平镇市', + 711489: '龙潭乡', + 711490: '杨梅市', + 711491: '新屋乡', + 711492: '观音乡', + 711493: '桃园市', + 711494: '龟山乡', + 711495: '八德市', + 711496: '大溪镇', + 711497: '复兴乡', + 711498: '大园乡', + 711499: '芦竹乡', + 711520: '头份市', + 711582: '竹南镇', + 711583: '头份镇', + 711584: '三湾乡', + 711585: '南庄乡', + 711586: '狮潭乡', + 711587: '后龙镇', + 711588: '通霄镇', + 711589: '苑里镇', + 711590: '苗栗市', + 711591: '造桥乡', + 711592: '头屋乡', + 711593: '公馆乡', + 711594: '大湖乡', + 711595: '泰安乡', + 711596: '铜锣乡', + 711597: '三义乡', + 711598: '西湖乡', + 711599: '卓兰镇', + 711736: '员林市', + 711774: '彰化市', + 711775: '芬园乡', + 711776: '花坛乡', + 711777: '秀水乡', + 711778: '鹿港镇', + 711779: '福兴乡', + 711780: '线西乡', + 711781: '和美镇', + 711782: '伸港乡', + 711783: '员林镇', + 711784: '社头乡', + 711785: '永靖乡', + 711786: '埔心乡', + 711787: '溪湖镇', + 711788: '大村乡', + 711789: '埔盐乡', + 711790: '田中镇', + 711791: '北斗镇', + 711792: '田尾乡', + 711793: '埤头乡', + 711794: '溪州乡', + 711795: '竹塘乡', + 711796: '二林镇', + 711797: '大城乡', + 711798: '芳苑乡', + 711799: '二水乡', + 711982: '番路乡', + 711983: '梅山乡', + 711984: '竹崎乡', + 711985: '阿里山乡', + 711986: '中埔乡', + 711987: '大埔乡', + 711988: '水上乡', + 711989: '鹿草乡', + 711990: '太保市', + 711991: '朴子市', + 711992: '东石乡', + 711993: '六脚乡', + 711994: '新港乡', + 711995: '民雄乡', + 711996: '大林镇', + 711997: '溪口乡', + 711998: '义竹乡', + 711999: '布袋镇', + 712180: '斗南镇', + 712181: '大埤乡', + 712182: '虎尾镇', + 712183: '土库镇', + 712184: '褒忠乡', + 712185: '东势乡', + 712186: '台西乡', + 712187: '仑背乡', + 712188: '麦寮乡', + 712189: '斗六市', + 712190: '林内乡', + 712191: '古坑乡', + 712192: '莿桐乡', + 712193: '西螺镇', + 712194: '二仑乡', + 712195: '北港镇', + 712196: '水林乡', + 712197: '口湖乡', + 712198: '四湖乡', + 712199: '元长乡', + 712451: '崁顶乡', + 712467: '屏东市', + 712468: '三地门乡', + 712469: '雾台乡', + 712470: '玛家乡', + 712471: '九如乡', + 712472: '里港乡', + 712473: '高树乡', + 712474: '盐埔乡', + 712475: '长治乡', + 712476: '麟洛乡', + 712477: '竹田乡', + 712478: '内埔乡', + 712479: '万丹乡', + 712480: '潮州镇', + 712481: '泰武乡', + 712482: '来义乡', + 712483: '万峦乡', + 712484: '莰顶乡', + 712485: '新埤乡', + 712486: '南州乡', + 712487: '林边乡', + 712488: '东港镇', + 712489: '琉球乡', + 712490: '佳冬乡', + 712491: '新园乡', + 712492: '枋寮乡', + 712493: '枋山乡', + 712494: '春日乡', + 712495: '狮子乡', + 712496: '车城乡', + 712497: '牡丹乡', + 712498: '恒春镇', + 712499: '满州乡', + 712584: '台东市', + 712585: '绿岛乡', + 712586: '兰屿乡', + 712587: '延平乡', + 712588: '卑南乡', + 712589: '鹿野乡', + 712590: '关山镇', + 712591: '海端乡', + 712592: '池上乡', + 712593: '东河乡', + 712594: '成功镇', + 712595: '长滨乡', + 712596: '金峰乡', + 712597: '大武乡', + 712598: '达仁乡', + 712599: '太麻里乡', + 712686: '花莲市', + 712687: '新城乡', + 712688: '太鲁阁', + 712689: '秀林乡', + 712690: '吉安乡', + 712691: '寿丰乡', + 712692: '凤林镇', + 712693: '光复乡', + 712694: '丰滨乡', + 712695: '瑞穗乡', + 712696: '万荣乡', + 712697: '玉里镇', + 712698: '卓溪乡', + 712699: '富里乡', + 712794: '马公市', + 712795: '西屿乡', + 712796: '望安乡', + 712797: '七美乡', + 712798: '白沙乡', + 712799: '湖西乡', + 712896: '南竿乡', + 712897: '北竿乡', + 712898: '东引乡', + 712899: '莒光乡', + 810101: '中西区', + 810102: '湾仔区', + 810103: '东区', + 810104: '南区', + 810201: '九龙城区', + 810202: '油尖旺区', + 810203: '深水埗区', + 810204: '黄大仙区', + 810205: '观塘区', + 810301: '北区', + 810302: '大埔区', + 810303: '沙田区', + 810304: '西贡区', + 810305: '元朗区', + 810306: '屯门区', + 810307: '荃湾区', + 810308: '葵青区', + 810309: '离岛区', + 820102: '花地玛堂区', + 820103: '花王堂区', + 820104: '望德堂区', + 820105: '大堂区', + 820106: '风顺堂区', + 820202: '嘉模堂区', + 820203: '路氹填海区', + 820204: '圣方济各堂区', + }, +}; \ No newline at end of file diff --git a/utils/config.js b/utils/config.js new file mode 100644 index 0000000..d2f6cc6 --- /dev/null +++ b/utils/config.js @@ -0,0 +1,51 @@ + + function hostConfig(){ + const Hosts = { + host_dev:'https://dev.hospital.applets.igandanyiyuan.com', + img_dev: 'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static', //开发环境 + agree_dev:'https://img.applets.igandanyiyuan.com', + host_prod:'https://prod.hospital.applets.igandanyiyuan.com', + img_prod: 'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static', //线上环境 + agree_prod:'https://oss.prod.applets.igandanyiyuan.com', + }; + const { envVersion } = wx.getAccountInfoSync().miniProgram; + let imghost=""; + let host=''; + let agreehost=''; + let SECRETKEY=''; + let SDKAPPID=''; + switch (envVersion) { + case 'develop': //开发环境 + // host =`${Hosts.host_prod}`; + // imghost=`${Hosts.img_prod}`; + // agreehost=`${Hosts.agree_prod}` + host = `${Hosts.host_dev}`; + imghost= `${Hosts.img_dev}`; + agreehost= `${Hosts.agree_dev}`; + SECRETKEY='fc45ab469ca632a700166973d87b3a6f56a855cb92d7cffb54e4d37135c097da'; + SDKAPPID='1400798221'; + break; + case 'trial': //体验版环境 + // host =`${Hosts.host_prod}`; + // imghost=`${Hosts.img_prod}`; + // agreehost=`${Hosts.agree_prod}` + host = `${Hosts.host_dev}`; + imghost=`${Hosts.img_dev}`; + agreehost=`${Hosts.agree_dev}`; + SECRETKEY='fc45ab469ca632a700166973d87b3a6f56a855cb92d7cffb54e4d37135c097da'; + SDKAPPID='1400798221'; + break; + case 'release': + host =`${Hosts.host_prod}`; + imghost=`${Hosts.img_prod}`; + agreehost=`${Hosts.agree_prod}`; + SECRETKEY='a5bcd8c583181cf004e9d91a47687d719d4b5d2a10ce33fbee95d587889447d8'; + SDKAPPID='1400796919'; + break; + }; + return { host, imghost,agreehost,SECRETKEY,SDKAPPID}; + +} +module.exports={ + hostConfig +} \ No newline at end of file diff --git a/utils/dayjs.min.js b/utils/dayjs.min.js new file mode 100644 index 0000000..ba16e65 --- /dev/null +++ b/utils/dayjs.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){"use strict";var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",f="month",h="quarter",c="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t){ + try { + let pages = getCurrentPages() //获取加载的页面 + let currentPage = pages[pages.length-1] + let url = currentPage.route + //当前页面url + return url + } catch (error) { + + } +} +/*获取当前页参数*/ +const getCurrentPageParam=()=>{ + let pages = getCurrentPages() //获取加载的页面 + let currentPage = pages[pages.length-1] //获取当前页面的对象 + let options = currentPage.options //如果要获取url中所带的参数可以查看options + return options +} +module.exports = { + getCurrentPageUrl, + getCurrentPageParam +} \ No newline at end of file diff --git a/utils/imLogin.js b/utils/imLogin.js new file mode 100644 index 0000000..cc09acc --- /dev/null +++ b/utils/imLogin.js @@ -0,0 +1,114 @@ +import TIM from '../lib/tim-wx-sdk'; +import TIMUploadPlugin from '../lib/tim-upload-plugin'; +import {lastSysMsg} from "../api/msg" +import {imSign} from "../api/common" +import {loginout} from "../api/personCenter" +import {setBarData} from "./util" + wx.$TUIKit=null; + wx.$TUIKitTIM=null; +let appglobal=null; +function imLogin(app){ + appglobal=app; + imSign().then(data=>{ + wx.$TUIKit = TIM.create({ + SDKAppID: appglobal.globalData.config.SDKAPPID, + }); + //const userSig = genTestUserSig(this.globalData.config).userSig; + wx.$chat_SDKAppID = appglobal.globalData.config.SDKAPPID; + wx.$TUIKitTIM = TIM; + + wx.$chat_userID = appglobal.globalData.config.userID; + //wx.$chat_userSig = userSig; + wx.$TUIKit.registerPlugin({ 'tim-upload-plugin': TIMUploadPlugin }); + wx.$TUIKit.setLogLevel(0); + wx.$chat_userSig =data; + let USER_ID=wx.getStorageSync('USER_ID'); + if(USER_ID){ + wx.$TUIKit.login({ + userID: wx.getStorageSync('USER_ID'), + userSig:data + }).then(res=>{ + console.log("登录成功"); + }).catch(function(imError) { + console.warn('login error:', imError); // 登录失败的相关信息 + }); + wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.SDK_READY,onSDKReady,this); + wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.SDK_READY,onSDKReady); + }else{ + console.log("IM未登录") + } + + }) +}; +function onSDKReady(app){ + onMessageReceived(); + wx.$TUIKit.off(TIM.EVENT.ERROR,errorMsg); + wx.$TUIKit.on(TIM.EVENT.ERROR,errorMsg,this); + wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.MESSAGE_RECEIVED,onMessageReceived); + wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.MESSAGE_RECEIVED,onMessageReceived,this); + wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.KICKED_OUT,onKickOut); + wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.KICKED_OUT,onKickOut,this); + wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED, onTotalUnreadMessageCountUpdated,this); +}; +function errorMsg(event){ + wx.showToast({ + title:event.data.message, + icon:'none' + }) +}; +function onTotalUnreadMessageCountUpdated(event){ + console.log(event.data); +}; +function onKickOut(event){ + wx.showToast({ + title: '账号在其他端登录,即将下线', + icon:'none' + }); + handleLogout(); + }; + function handleLogout(){ + if(wx.$TUIKit){ + wx.$TUIKit.destroy() + }; + loginout().then(data => { + appglobal.globalData.chatNumber=0; + appglobal.globalData.sysNumber=0; + appglobal.globalData.conversationList=[]; + wx.clearStorageSync(); + wx.reLaunch({ + url: '/pages/login/login' + }) + }) + }; + +function onMessageReceived(){ + getLastMsg(); +}; +function getConversationList(msg){ + wx.$TUIKit.getConversationList().then((res)=>{ + const {conversationList}=res.data; + console.log(conversationList); + let list=conversationList.filter(item=>item.conversationID!='C2Cadministrator'); + let unRead=0; + list.forEach((item)=>{ + unRead=unRead+item.unreadCount; + }) + appglobal.globalData.conversationList=list; + appglobal.globalData.chatNumber=Number(unRead); + setBarData(Number(unRead)+msg); + }); +}; +function getLastMsg(){ + lastSysMsg().then(data=>{ + let msg=data.count; + appglobal.globalData.sysNumber=msg; + getConversationList(msg); + }).catch(()=>{ + let msg=0; + appglobal.globalData.sysNumber=0; + getConversationList(msg) + }) +}; +module.exports={ + imLogin +} \ No newline at end of file diff --git a/utils/isPc.js b/utils/isPc.js new file mode 100644 index 0000000..4b324b1 --- /dev/null +++ b/utils/isPc.js @@ -0,0 +1,16 @@ + let client_type=1; + wx.getSystemInfo({ + success (res) { + if(res.platform=="windows" || res.platform=="mac" || res.platform=="devtools" ){ + client_type=2 + }else{ + client_type=1 + } + }, + fail(err){ + console.log(err) + } + }); + module.exports = { + client_type + } diff --git a/utils/modal.js b/utils/modal.js new file mode 100644 index 0000000..84fa37a --- /dev/null +++ b/utils/modal.js @@ -0,0 +1,57 @@ +const showModal=function(content, successCallback = function() {}, title = '提示', showCancel = false, comfirmText = '知道了', confirmColor = '#03a9f4', hasCancel = false, cancelText = '取消', cancelColor = '#000') { + var params = { + title: title, + content: content, + showCancel: showCancel, + confirmText: comfirmText, + confirmColor: confirmColor, + success: function(res) { + if (res.confirm) { + successCallback(); + } + } + } + if (hasCancel == true) { + params.cancelText = cancelText; + params.cancelColor = cancelColor; + } + wx.showModal(params); +} + +/** + * 封装toast + */ +function showToast (type, text, obj) { + let param = { duration: (obj && obj.duration) || 1500, mask: (obj && obj.isMask) || false } + switch(type) { + case 'text': { + param['title'] = text || '' + param['icon'] = 'none' + break + } + case 'loading': { + param['title'] = text || '' + param['icon'] = 'loading' + break + } + case 'success': { + param['title'] = text || '' + param['icon'] = 'success' + break + } + case 'error': { + param['title'] = text || '' + param['image'] = '/images/emoji.png' + break + } + default: { + break + } + } + wx.showToast(param) +} + +module.exports={ + showModal, + showToast +} \ No newline at end of file diff --git a/utils/request.js b/utils/request.js new file mode 100644 index 0000000..7b6b995 --- /dev/null +++ b/utils/request.js @@ -0,0 +1,135 @@ + +import {formatUrl} from "../utils/formatParams" +import {getCurrentPageUrl} from "../utils/getUrl" +import Dialog from '@vant/weapp/dialog/dialog'; +import {hostConfig} from "../utils/config" +let isLock=false; +let host=hostConfig().host; +//loding 是否加loading弹窗 +function request(url, method, data, loding = false) { + if(isLock) return; + if (loding) { + wx.showLoading({ + title: '加载中', + mask: true + }) + } + let token = wx.getStorageSync('AUTH_TOKEN'); + if (!token) { + let freelist = ["/login/wechat_mobile_login", '/login/mobile_login','/code/phone','/patient/index',"/popup","/sign/im"];//接口白名单 + let currentUrl=getCurrentPageUrl(); + if (freelist.indexOf(url) == -1 && currentUrl!="/pages/index/index") { + let redirectUrl=formatUrl(); + // console.log("currentUrl:"+currentUrl); + // console.log("urlreq"+url); + // console.log('url----:'+redirectUrl); + if(!isLock){ + isLock=true; + wx.reLaunch({ + url: '/pages/login/login?redirectUrl='+redirectUrl + }); + } + } + } + let header = { + 'content-type': 'application/json', + 'Authorization': 'Bearer ' + token + } + return new Promise((resolve, reject) => { + wx.request({ + url: host + url, + method: method, + data: data, + header: header, + success: function (res) { + + var Authorization_token = res.header.Authorization; + if (Authorization_token) { + wx.setStorageSync('AUTH_TOKEN', Authorization_token); //当token快过期时,服务器会返回新token,本地刷新 + } + if (loding) { + wx.hideLoading() + wx.stopPullDownRefresh(); + } + let msgUrl="/patient/message/system/last"; + if (Number(res.data.code) == 200 || Number(res.data.code) == 422) { + resolve(res.data.data); + + }else if(Number(res.data.code) == -1){ + let list = ["/patient/order/inquiry", '/patient/order/product', '/patient/order/prescription','/patient/order/detection']; + let index=url.lastIndexOf("/"); + let urlString=url.substring(0,index); + if (list.indexOf(urlString) != -1 && method == "GET") { + Dialog.confirm({ + title: '温馨提示', + showCancelButton: false, + confirmButtonText: "确定", + message: '订单无法查看,点击前往首页', + }).then(() => { + wx.reLaunch({ + url: '/pages/index/index', + }) + }) + }else{ + wx.showToast({ + title: res.data.message, + icon: 'none', + duration: 2000 + }) + } + }else if(Number(res.data.code) == 406 && msgUrl.indexOf(url)!=-1){ + reject(res.data.data) + }else if (Number(res.data.code) == 401 || Number(res.data.code) == 403 || Number(res.data.code) == 405 || Number(res.data.code) == 406) { + let redirectUrl=formatUrl(); + if(!isLock){ + isLock=true; + wx.reLaunch({ + url: '/pages/login/login?redirectUrl='+redirectUrl + }); + } + + } else { + wx.showToast({ + title: res.data.message, + icon: 'none', + duration: 2000 + }) + } + isLock=false; + }, + // fail: function (res) { + // wx.showToast({ + // title: '网络错误,请稍后再试', + // icon: 'none', + // duration: 2000 + // }) + // reject(false) + // } + }) + }) + +} + +function uploadFile(url, data) { + return new Promise((resolve, reject) => { + wx.uploadFile({ + url: host + url, + formData: data, + success(res) { + const result = res.data + resolve(result) + }, + // fail(res){ + // wx.showToast({ + // title: '网络错误,请稍后再试', + // icon: 'none', + // }) + // reject(false) + // } + }) + }) +} +module.exports = { + request, + uploadFile +} \ No newline at end of file diff --git a/utils/router.js b/utils/router.js new file mode 100644 index 0000000..168d355 --- /dev/null +++ b/utils/router.js @@ -0,0 +1,93 @@ +// router.js +//import {getCurrentPageUrl} from "./getUrl" +module.exports = { + navigateTo(object) { + let pages = getCurrentPages(); + let len = pages.length; + let dlt = 0; + let cur_url=object.url; + + object.fail=function(error){ + console.log(error) + }; + let is_otherCommon=false; + let currentOptions=cur_url.split("?")[1]; + for (let i = 0; i < len; i++) { + //判断是否是聊天页面 + if(pages[i].route=="TUIService/pages/index" && cur_url.indexOf("TUIService/pages/index")!=-1 ) { + let currentOptionsArr=currentOptions.split("&"); + let cur_options=currentOptionsArr[0].toString()+"&"+currentOptionsArr[1].toString(); + let options=pages[i].options; + //let params="currentConversationID="+options['currentConversationID']+"&order_inquiry_id="+options['order_inquiry_id']+"&inquiry_type="+options['inquiry_type'] + let params="currentConversationID="+options['currentConversationID']+"&order_inquiry_id="+options['order_inquiry_id']; + //判断历史路由栈中是否有打开过同一个问诊聊天 + if(cur_options==params){ + dlt = i+1 ; //目标页在栈中的位置 + break; + }else{ + is_otherCommon=true; + dlt = i+1 ; //目标页在栈中的位置 + break; + } + + }else if(pages[i].route=="pages/expertDetail/expertDetail" && cur_url.indexOf("pages/expertDetail/expertDetail")!=-1){ + let options=pages[i].options; + let params='doctor_id='+options['doctor_id']; + if(currentOptions.indexOf(params)!=-1){ + dlt = i+1 ; //目标页在栈中的位置 + break; + } + } + }; + if (!dlt) { //这个判断里面的跳转代码可根据自己项目实际需求场景进行修改 + if (len < 10) { + wx.navigateTo(object); + } else { + wx.redirectTo(object) + } + } else { //主要是else里面的跳转代码用来解决页面栈10层限制问题导致卡住的问题 + wx.navigateBack({ + delta: len - dlt, + fail(error){ + console.log(error) + }, + success(){ + // iOS使用navigateBack返回超过4级之后会导致页面点击事件失效以及都是聊天页但不是同一个用户,都对页面进行重新载入 + if(is_otherCommon || len - dlt>=5){ + wx.redirectTo(object) + } + + } + }); + } + + // if (getCurrentPages().length > 9) { + // wx.redirectTo(object) + // // this.reLaunch(object) + // } else { + + // wx.navigateTo(object) + // } + }, + goTo(object){ + //let pages=getCurrentPages(); + + }, + // 其他跳转不处理 + navigateBack(object) { + wx.navigateBack(object) + }, + + switchTab(object) { + wx.switchTab(object) + }, + + redirectTo(object) { + wx.redirectTo(object) + }, + + reLaunch(object) { + wx.reLaunch(object) + }, + +} diff --git a/utils/subscribeMsg.js b/utils/subscribeMsg.js new file mode 100644 index 0000000..33ba49a --- /dev/null +++ b/utils/subscribeMsg.js @@ -0,0 +1,12 @@ +// function subscribeMsg(id){ +// let id=id.toSring(); +// wx.requestSubscribeMessage({ +// tmplIds: [id], +// success (res) { +// console.log(res); +// } +// }) +// }; +// module.exports={ +// subscribeMsg +// } \ No newline at end of file diff --git a/utils/util.js b/utils/util.js new file mode 100644 index 0000000..d9819ac --- /dev/null +++ b/utils/util.js @@ -0,0 +1,62 @@ +const dayjs = require('./dayjs.min.js'); +import { getCurrentPageUrl} from "./getUrl.js" +const formatDate = function (value) { + return dayjs(value).format('YYYY-MM-DD HH:mm'); +} +const formatDateText = function (value) { + return dayjs(value).format('YYYY年MM月DD日'); +} +const throttle=function(fn,wait=1500){ + var flag = true; + var timer = null; + return function(){ + if(flag) { + fn.apply(this,arguments); + flag = false; + timer = setTimeout(() => { + flag = true + },wait) + } + } +} +function setBarData(total){ + let currentUrl = getCurrentPageUrl(); + if(currentUrl=='pages/index/index' || currentUrl=='pages/message/message' || currentUrl=='pages/my/my' ){ + if(total>0){ + if(total<=99){ + wx.setTabBarBadge({ + index:1, + text: total.toString() + }) + }else{ + wx.setTabBarBadge({ + index:1, + text:"99+" + }) + } + }else{ + wx.removeTabBarBadge({ + index:1 + }) + } + } + + + +} + +// function formatDate(date) { +// var year = date.getFullYear() +// var month = date.getMonth() + 1 +// var day = date.getDate() +// var hour = date.getHours() +// var minute = date.getMinutes() +// var second = date.getSeconds() +// return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':') +// } +module.exports = { + formatDate, + formatDateText, + throttle, + setBarData +}