open-index/open-npm huggingface dataset:
npm package: @heco-testnet-uniswap/sdk
Description: 🛠 An SDK for building applications on top of Uniswap.
Latest version: 1.0.0

# Uniswap SDK

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![Actions Status](https://github.com/Uniswap/uniswap-sdk/workflows/CI/badge.svg)](https://github.com/Uniswap/uniswap-sdk)
[![npm version](https://img.shields.io/npm/v/@uniswap/sdk/latest.svg)](https://www.npmjs.com/package/@uniswap/sdk/v/latest)
[![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/minzip/@uniswap/sdk/latest.svg)](https://bundlephobia.com/result?p=@uniswap/sdk@latest)

In-depth documentation on this SDK is available at [uniswap.org](https://uniswap.org/docs/v2/SDK/getting-started/).

## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

```sh
git clone https://github.com/Uniswap/uniswap-sdk.git
```

Move into the uniswap-sdk working directory

```sh
cd uniswap-sdk/
```

Install dependencies

```sh
yarn install
```

Run tests

```sh
yarn test
```

You should see output like the following:

```sh
yarn run v1.22.4
$ tsdx test
 PASS  test/constants.test.ts
 PASS  test/pair.test.ts
 PASS  test/fraction.test.ts
 PASS  test/miscellaneous.test.ts
 PASS  test/entities.test.ts
 PASS  test/trade.test.ts

Test Suites: 1 skipped, 6 passed, 6 of 7 total
Tests:       3 skipped, 82 passed, 85 total
Snapshots:   0 total
Time:        5.091s
Ran all test suites.
✨  Done in 6.61s.
```
npm package: @hecom-rn/incupdate
Description: Increment Update Module
Author: Hecom
Latest version: 1.0.19

# IncUpdate

[![npm version](https://img.shields.io/npm/v/@hecom-rn/incupdate.svg?style=flat)](https://www.npmjs.com/package/@hecom-rn/incupdate)
[![Build Status](https://app.travis-ci.com/hecom-rn/IncUpdate.svg?token=joMTN9jTiaCkyuooG6GJ&branch=master)](https://app.travis-ci.com/hecom-rn/IncUpdate)

这是管理增量更新的模块，目前用于人员部门表的维护，主要负责提供一个包含通用逻辑的实例，用于外界操作。

**接口**：

* `name: string`：模块名称。
* `initGlobal(): void`：全局初始化模块。
* `obj(type, pageSize, getPromise, indexKeys): object`：获取增量更新实例。
  * `type: string`：内部存储键，不同实例的键不同，如果只传了type参数，则表示要获取已有实例。
  * `pageSize: number`：分页加载的页大小。
  * `getPromise(timestamp): Promise`：获取更新的回调方法，如果全量加载，则`timestamp`为0，否则`timestamp`为上次更新时间戳。
  * 返回值对象：包含这几个方法，{init, uninit, load, get, getTime}，方法参数如下：
    * `init(forceUpdate): Promise`：初始化实例。
    * `uninit(forceClear): Promise`：反初始化实例。
    * `load(forceUpdate): Promise`：增量或全量更新。
    * `writeFile(): Promise`：将数据写入内存。
    * `get(key, indexKey, enableExport): Promise`：异步获取信息，`key`是要取的对象的键，`indexKey`表示是否使用自定义索引，`enableExport`表示是否导出对象。
    * `syncGet(key, indexKey, enableExport): any`：获取信息，`key`是要取的对象的键，`indexKey`表示是否使用自定义索引，`enableExport`表示是否导出对象。
npm package: @hecom-rn/organization
Description: Organization Module with Authority
Author: Hecom
Latest version: 1.4.1

# Organization

[![npm version](https://img.shields.io/npm/v/@hecom-rn/organization.svg?style=flat)](https://www.npmjs.com/package/@hecom-rn/organization)
[![Build Status](https://travis-ci.com/hecom-rn/Organization.svg?token=joMTN9jTiaCkyuooG6GJ&branch=master)](https://travis-ci.com/hecom-rn/Organization)

这是组织架构部分，管理一个全量包含离职的人员表，和一个全量不包含解散的部门表，然后传入权限项，根据权限项，动态生成一些带权限的操作。

**接口**：

* `name: string`：模块名称。
* `initGlobal(): void`：全局初始化模块。
* `getObj(userListAuth, orgListAuth): object`：获取带权限的操作对象，`userListAuth`是人员列表操作的权限，`orgListAuth`是部门列表操作的权限，返回的对象中包含如下方法：
  * `loadUser(forceUpdate): Promise`：全量或增量更新用户列表。
  * `loadOrg(forceUpdate): Promise`：全量或增量更新部门列表。
  * `getUser(): Promise<array>`：带权限的获取人员列表。
  * `getOrg(): Promise<array>`：带权限的获取部门列表(不包含停用部门)。
  * `getAllOrg(): Promise<array>`：带权限的获取部门列表(包含停用部门)。
  * `findUserByImId(imId): object`：根据人员`imId`获取人员信息。
  * `findUserByCode(code): object`：根据人员`code`获取人员信息。
  * `getWholeTree(hasSelf, parentCode, excludedCodes): Promise<object>`：获取整个人员部门树，`hasSelf`表示是否包含自己，`parentCode`表示上级部门`code`，`excludedCodes`表示排除哪些`code`。
  * `getAddlDeptTree(hasSelf, parentCode, excludedCodes): Promise<object>`：获取整个人员部门树，人员同时出现在所属部门和兼职部门中，参数同`getWholeTree`。
  * `getOrgTree(hasSelf, parentCode, excludedCodes): Promise<object>`：获取部门树(不包含停用部门)，参数同`getWholeTree`。
  * `getAllOrgTree(hasSelf, parentCode, excludedCodes): Promise<object>`：获取部门树(包含停用部门)，参数同`getWholeTree`。
* `obj(): object`：调用`getObj`生成的对象，无权限的全量数据。
npm package: @hecom-rn/react-native-general-actionsheet
Description: ActionSheet api on iOS and Android same as ActionSheetIOS.
Author: Xiaosong Gao
Latest version: 1.0.9

# react-native-general-actionsheet

[![npm version](https://img.shields.io/npm/v/@hecom-rn/react-native-general-actionsheet.svg?style=flat)](https://www.npmjs.com/package/@hecom-rn/react-native-general-actionsheet)
[![Build Status](https://app.travis-ci.com/hecom-rn/react-native-general-actionsheet.svg?branch=master)](https://app.travis-ci.com/hecom-rn/react-native-general-actionsheet)

[中文说明](https://www.jianshu.com/p/2377cca9a58c)

This is a general ActionSheet api. You can use [ActionSheetIOS](https://facebook.github.io/react-native/docs/actionsheetios) in iOS and use a custom view in Android. Or you can use custom view in both iOS and Android.

It only support `ActionSheet.showActionSheetWithOptions` now.

## ScreenShots

### Portrait

<p float="left">

<img src="/resource/iOS-1-P.png" height="400px">

<img src="/resource/iOS-2-P.png" height="400px">

<img src="/resource/Android-1-P.jpeg" height="400px">

<img src="/resource/Android-2-P.jpeg" height="400px">

</p>

### Landscape

<p float="left">

<img src="/resource/iOS-1-L.png" width="45%">

<img src="/resource/iOS-2-L.png" width="45%">

</p>

<p float="left">

<img src="/resource/Android-1-L.jpeg" width="45%">

<img src="/resource/Android-2-L.jpeg" width="45%">

</p>

## Install

Install by Yarn:

```shell
yarn add react-native-general-actionsheet
```

Install by NPM:

```shell
npm install --save react-native-general-actionsheet
```

## Usage

Use the module in file:

```javascript
import ActionSheet from 'react-native-general-actionsheet';

ActionSheet.showActionSheetWithOptions(options, callback);
```

Parameters `options` and `callback` is same as [ActionSheetIOS](https://facebook.github.io/react-native/docs/actionsheetios).

## Use `ActionSheetIOS`

You can change using `ActionSheetIOS` or not globally:

```javascript
import ActionSheet from 'react-native-general-actionsheet';

ActionSheet.useActionSheetIOS = true/false;
```

## Customize Style

You can change style of container globally.

```javascript
import ActionSheet from 'react-native-general-actionsheet';

ActionSheet.Container.defaultProps.xxx = yyy;
```

It supports following properties:

| Name | Type | Description |
| :-: | :-: | :- |
| backgroundColor | string | Background color of whole view |
| contentBackgroundColor | string | Background color of content view |
| separatorColor | string | Separator line color |
| fontSize | number | Button text font size |
| color | string | Button text color |
| titleStyle | object | Style of title text |
| messageStyle | object | Style of message text |
| destructiveButtonStyle | object | Style of destructive button |
| cancelButtonStyle | object | Style of cancel button |
| touchableUnderlayColor | string | Underlay color of button touch action |
| supportedOrientations | array | Supported orientations for iOS |
npm package: @hecom/aliyun
Description: Aliyun Utility
Author: Xiaosong Gao
Latest version: 1.0.2

# Aliyun

[![npm version](https://img.shields.io/npm/v/@hecom/aliyun.svg?style=flat)](https://www.npmjs.com/package/@hecom/aliyun)

这是阿里云相关工具的集合。

**接口**：

* `RESIZE_MODE: object`：图片压缩模式。
* `getThumbnail(url, height, width, scaleType) => string`：将一个阿里云图片链接加上宽高和压缩模式，返回新的链接。
* `setDefSizeAvatarUrl: (size) => void`：设置头像压缩大小。
* `getDefSizeAvatarUrl: (url) => string`：使用头像压缩大小，获取压缩后的图片链接。
npm package: @hecom/authority
Description: Authority of Application and Meta Object
Author: Xiaosong Gao
Latest version: 1.6.4

# Authority

[![npm version](https://img.shields.io/npm/v/@hecom/authority.svg?style=flat)](https://www.npmjs.com/package/@hecom/authority)
[![Build Status](https://travis-ci.org/hecom-rn/authority.svg?branch=master)](https://travis-ci.org/hecom-rn/authority)

这是应用和业务对象的权限模块，包括加载权限、判断权限以及变更通知等功能。

**接口**：

* `name: string`：模块名称。
* `initGlobal: () => void`：全局初始化模块。
* `load: (canDiff) => Promise`：重新加载权限列表，并根据`canDiff`决定判断是否需要发出相应的权限更新事件。
* `get: (level, innerAppName, actionName) => object`：根据层级结构的键，获取权限项。
* `app`：应用相关操作。
  * `levelName: (appName) => string`：获取应用权限的首层键。
  * `get: (appName, innerAppName, actionName) => object`：获取应用模块的权限。如果不存在，则返回`null`。
  * `register: (func, name, innerAppName, actionName) => string`：注册应用处理事件，返回事件Id。
  * `unregister: (funcId, name, innerAppName, actionName) => boolean`：注销应用处理事件。
  * `verify: (appName, innerAppName, actionName, data) => boolean`：验证应用模块的权限，如果传了`data`，则验证数据权限。
  * `verifyData: (metaName, objectid, actionName, data) => Promise<boolean>`：通过接口形式校验是否有数据权限，当有data时，会或上`verify`的结果。
* `obj`：元数据相关操作。结构和参数同`app`部分，`appName`改为`metaName`即可。
* `verifyField: (authFieldType, metaName, fieldname) => boolean`：验证字段权限，`authFieldType`是权限类型，参照`Foundation.AuthField`中的常量，然后指定元数据名称和字段名称。
* `verifyDept: (deptPath, deptCode, actionItem) => boolean`：验证部门是否在部门(含下级或不含下级)列表中。`deptPath`是待判断的部门路径，`deptCode`是待判断的部门Code，`actionItem`是权限项。
* `showForceLogoutAlert: () => void`：显示权限更新对话框，强制登出操作，多次操作有加锁，不会弹出多个对话框。
* `type`：权限值的判断。
  * `isAll: () => boolean`：是否是全部门。
  * `isDeptWithSub: () => boolean`：是否是部门含下级。
  * `isDeptWithoutSub: () => boolean`：是否是部门不含下级。
  * `isOnlyMe: () => boolean`：是否是仅自己。
  * `isZeroScope: () => boolean`：有数据权限但是数据范围是0。

**事件类型**：

* 接收环信透传传递的控制消息，用于权限更新。
* 权限更新事件：类型为`[authUpdateEvent, name, innerAppName, action]`，其中`authUpdateEvent`是事件分类，`name`是业务对象或应用的分组，`innerAppName`是内部权限的分配，`action`是具体操作。数据是`{oldObj, newObj, keys, isDeleted, isCreated, isUpdated}`，其中前两个是新旧权限项，`keys`是三层路径，可能小于三层，后三者表示是删除或新增或更新。
npm package: @hecom/badge
Description: Badge UI Component
Author: Xiaosong Gao
Latest version: 1.0.3

# Badge

[![npm version](https://img.shields.io/npm/v/@hecom/badge.svg?style=flat)](https://www.npmjs.com/package/@hecom/badge)
[![Build Status](https://travis-ci.org/hecom-rn/Badge.svg?branch=master)](https://travis-ci.org/hecom-rn/Badge)

这是一个角标的UI组件，有四种可能：

* 没有数字，只有一个圆圈，有外层隔离间隔。
* 没有数字，只有一个圆圈，无外层隔离间隔。
* 有数字，有外层隔离间隔。
* 有数字，无外层隔离间隔。

外层隔离间隔，是在数字视图外面再多上一层间隔，比如红色中心圆圈外面有一圈白色间隔。

**属性**：

* `count: number`：展示的数字。
* `maxCount: number`：计数的最大值，如"99"。如果比最大值大，则显示"99+"。
* `radius: number`：数字两侧的圆角的半径大小。
* `bgColor: string`：数字的背景色。
* `outSpace: number`：外层与内层直接的间隔。
* `outBgColor: string`：外层的背景色。
* `innerVerticalSpace: number`：数字与内层圆圈的上下边距，用于计算字号。
* `style: any`：自定义外部样式。
npm package: @hecom/button
Description: Button Register and Management
Author: Xiaosong Gao
Latest version: 1.0.0

# Button

[![npm version](https://img.shields.io/npm/v/@hecom/button.svg?style=flat)](https://www.npmjs.com/package/@hecom/button)

这是按钮模块的管理，包括注册、取消注册和获取方法。

**接口**：

* `name: string`：模块名称。
* `get: (appName, action, state, params) => function`：获取应用操作对应的按钮的处理方式。
* `registerGeneral: (appName, action, handle) => void`：注册通用的应用操作按钮的处理方式。
* `registerSpecial: (appName, action, special, handle) => string`：注册特殊的应用操作按钮的处理方式，返回`handleId`。
* `unregister: (appName, action, handleId) => boolean`：取消注册通用或特殊的应用操作按钮的处理方式。
* `Action`：`onFinish`的回调操作键，包括：
  * `RefreshList: string`：刷新列表。
  * `RefreshDetail: string`：刷新详情。
  * `PopToParent: string`：退回上一页

其中`special`特殊状态判断函数的参数、`handle`按钮操作处理函数的参数、`state`和`params`获取操作的结果的状态和结果参数，均为如下格式的对象：

* `buttonItem: object`：按钮的原始数据配置信息。
* `metaName: string`：业务对象的名称。
* `data: object`：一条业务数据信息。
* `onFinish: (options) => void`：处理后的返回回调方法，`options`是一个对象，包含`Actions`中的键，对应值为`boolean`类型，表示是否调用该功能。
npm package: @hecom/constantgroup
Description: Constant Group Management
Author: Hecom
Latest version: 1.3.0

# ConstantGroup

[![npm version](https://img.shields.io/npm/v/@hecom/constantgroup.svg?style=flat)](https://www.npmjs.com/package/@hecom/constantgroup)
[![Build Status](https://travis-ci.org/hecom-rn/constantgroup.svg?branch=master)](https://travis-ci.com/github/hecom-rn/ConstantGroup)

这是选项值集的管理模块，原始数据是平铺列表，需要经过转换生成一个树状结构。

## 安装

```shell
npm install --save @hecom/constantgroup
```

## 使用方法

```javascript
import ConstantGroup from '@hecom/constantgroup';
```

## 接口

* `load: (constantId) => Promise<object>`：强制加载指定`constantId`的选项值集，返回Promise包含生成的选项值集树。
* `loadIfInvalid: (constantId) => Promise<object>`：如果不存在已有的选项值集，则调用`load`强制加载，否则直接返回包含数据的Promise。
* `get: (constantId) => object`：获取指定`constantId`的选项值集树。
* `isValid: (constantId) => boolean`：判断指定`constantId`的选项值集在缓存中是否存在。
npm package: @hecom/detail
Description: Detail API of Object
Author: Xiaosong Gao
Latest version: 2.0.10

# Detail

[![npm version](https://img.shields.io/npm/v/@hecom/detail.svg?style=flat)](https://www.npmjs.com/package/@hecom/detail)
[![Build Status](https://travis-ci.org/hecom-rn/detail.svg?branch=master)](https://travis-ci.org/hecom-rn/detail)

这是业务对象的详情接口管理。
npm package: @hecom/draft
Description: Draft of Created Object Data
Author: Xiaosong Gao
Latest version: 1.0.1

# Draft

[![npm version](https://img.shields.io/npm/v/@hecom/draft.svg?style=flat)](https://www.npmjs.com/package/@hecom/draft)

这是新建业务数据时，保存和管理草稿的模块。单个草稿数据作为一条数据存入持久化存储中，这个存储库支持批量查询。

**接口**：

* `name: string`：模块名称。
* `initGlobal: () => Promise`：全局初始化模块。
* `list: () => array`：获取草稿列表，按时间从大到小排序。
* `get: (itemId) => object`：获取指定`itemId`的草稿项。
* `add: (metaName, content, itemId, others) => string`：新增或者编辑草稿，根据`itemId`判断，如果有则是编辑，否则是新增。返回结果的草稿项Id。
* `remove: (itemId) => void`：从草稿箱中移除指定`itemId`的草稿项。
npm package: @hecom/emotion-icons
Description: Emotion Icons Collection
Author: Xiaosong Gao
Latest version: 1.0.0

# EmotionIcons

[![npm version](https://img.shields.io/npm/v/@hecom/emotion-icons.svg?style=flat)](https://www.npmjs.com/package/@hecom/emotion-icons)

这是表情图标和文字的集合。

**接口**：

只有一个导出函数，没有参数，返回一个对象数组，每一项是`{image, text}`的格式。
npm package: @hecom/environment
Description: App Runtime Environment
Author: Baiyudong
Latest version: 1.0.3

# Environment

[![npm version](https://img.shields.io/npm/v/@hecom/environment.svg?style=flat)](https://www.npmjs.com/package/@hecom/environment)
[![Build Status](https://travis-ci.com/hecom-rn/Environment.svg?token=HQ6zeJyFEVrdNxpZ83aD&branch=master)](https://travis-ci.com/hecom-rn/Environment)

这是应用的环境设置模块。
npm package: @hecom/expression
Description: Calculate Expression
Author: Hecom
Latest version: 1.7.4

# Expression

[![npm version](https://img.shields.io/npm/v/@hecom/expression.svg?style=flat)](https://www.npmjs.com/package/@hecom/expression)
[![Build Status](https://travis-ci.com/hecom-rn/Expression.svg?branch=master)](https://travis-ci.com/hecom-rn/Expression)
这是表达式计算的方法模块。
npm package: @hecom/field
Description: Field Special Registry
Author: Xiaosong Gao
Latest version: 1.4.8

# Field

[![npm version](https://img.shields.io/npm/v/@hecom/field.svg?style=flat)](https://www.npmjs.com/package/@hecom/field)
[![Build Status](https://app.travis-ci.com/hecom-rn/Field.svg?branch=master)](https://app.travis-ci.com/hecom-rn/Field)

这是字段的注册管理模块，包括所有字段的操作的通用和特殊处理注册信息。
npm package: @hecom/fieldstyle
Description: List View Field Style
Author: Hecom
Latest version: 1.1.7

# FieldStyle

[![npm version](https://img.shields.io/npm/v/@hecom/fieldstyle.svg?style=flat)](https://www.npmjs.com/package/@hecom/fieldstyle)
[![Build Status](https://travis-ci.com/hecom-rn/FieldStyle.svg?token=HQ6zeJyFEVrdNxpZ83aD&branch=master)](https://travis-ci.com/hecom-rn/FieldStyle)

这是列表页单元格中字段的条件样式管理。
npm package: @hecom/home
Description: Home Module Management
Author: baiyudong
Latest version: 2.0.1

# Home

[![npm version](https://img.shields.io/npm/v/@hecom/home.svg?style=flat)](https://www.npmjs.com/package/@hecom/home)

这是主页配置管理模块，主要用于注册主页配置，各种UI以及点击事件。

**接口**：

* `name: string`：模块名称。
* `get: () => Config`：获取当前主页完整配置。
* `update: (func: (config: Config) => Config) => void`：通过函数更新主页配置。
* `setDefault: (config: Config) => void`：设置默认主页配置。
* `registerUi`：注册UI组件的处理方式，统一参数：`name`为组件名称，`func: (config) => ReactNode | null | void | boolean`为展示函数，`filter?: (config) => ReactNode | null | void | boolean`为可选的过滤函数，其中`config`为当前组件的运行时参数。
  * `page: (name, func, filter?) => void`：注册页面的展示方式。
  * `section: (name, func, filter?) => void`：注册分区的展示方式。
  * `cell: (name, func, filter?) => void`：注册单元格的展示方式。
  * `naviButton: (name, func, filter?) => void`：注册导航按钮的展示方式。
  * `function: (name, func, filter?) => void`：注册定制功能组件的展示方式。
* `registerAction: (name, func) => HandleId | void`：注册点击操作的处理方式，`name`为组件名称，`func: (config) => ReactNode | null | void | boolean`为处理函数，其中`config`为当前组件的运行时参数。
* `create`：创建组件配置项，
  * `functionCell: (name, label, icon, color, other?) => ItemConfig`：创建定制功能单元格配置项。
  * `naviButton: (name, icon, color, other?) => ItemConfig`：创建导航按钮配置项。
  * `rowSection: (cells, other?) => SectionConfig`：创建行形式分区配置项。
  * `functionSection: (name, other?) => SectionConfig`：创建定制功能分区配置项。
  * `sectionPage: (name, label, icon, selected_icon, sections, other?) => PageConfig`：创建分区形式的页面配置项。
  * `functionPage: (name, label, icon, selected_icon, other?) => PageConfig`：创建定制功能的页面配置项。
  * `tabHome: (init_name, tabs, other?) => Config`：创建标签页形式的主页配置项。
* `matchUi: (params) => ReactNode | null`：根据运行时的项目配置参数，在UI组件处理方式中寻找符合条件的处理项，并返回处理结果即组件视图。
* `matchAction: (name, params) => void`：根据运行时的项目配置参数，在点击操作处理方式中寻找符合条件的处理项，并执行操作动作。
* `type`：判断配置项类型的方法。
  * `isPage: (config) => boolean`：判断是否是页面配置。
  * `isSection: (config) => boolean`：判断是否是分区配置。
  * `isCell: (config) => boolean`：判断是否是单元格配置。
  * `isNaviButton: (config) => boolean`：判断是否是导航按钮配置。
  * `isFunction: (config) => boolean`：判断是否是定制功能配置。

**通用配置项信息**：

* `type: UiTypes`：配置项类型（page | section | cell | naviButton | function）。
* `name: string`：配置项标识。
* `auth?: Auth[]`：权限配置数组，只有满足所有权限才可以展示或执行。数组每一项是`{app: string, metaName?: string, innerApp?: string, action: string}`。判断`[app, innerApp, action]`或`[metaName, innerApp, action]`的权限。

**非通用配置项信息**：

每个类别下，都是包含通用部分的配置项信息。

* `ItemConfig`：单元格和导航按钮的配置。
  * `type: UiTypes.cell | UiTypes.naviButton`：类型。
  * `label?: string`：展示的文本标签。
  * `icon?: string`：文本左侧的图标。
  * `color?: string`：图标的颜色。
* `SectionConfig`：分区的配置。
  * `type: UiTypes.section | UiTypes.function`：类型。
  * `cells?: ItemConfig[]`（仅行形式分区）：包含的单元格数组。
* `PageConfig`：页面的配置。
  * `type: UiTypes.page | UiTypes.function`：类型。
  * `label: string`：标题。
  * `icon: any`：普通状态图标。
  * `selected_icon: any`：选中状态图标。
  * `sections?: SectionConfig[]`（仅分区形式页面）：分区列表。
* `Config`：主页配置。
  * `init_name?: string`：初始选中的标签页的名称。
  * `tabs?: PageConfig[]`：所有标签页的数组。
npm package: @hecom/image-arrow
Description: Arrow Image
Author: Xiaosong Gao
Latest version: 1.0.3

# ArrowImage

[![npm version](https://img.shields.io/npm/v/@hecom/image-arrow.svg?style=flat)](https://www.npmjs.com/package/@hecom/image-arrow)
[![Build Status](https://travis-ci.org/hecom-rn/ArrowImage.svg?branch=master)](https://travis-ci.org/hecom-rn/ArrowImage)

这是一个右箭头图片组件。
npm package: @hecom/image-avatar
Description: Avatar Image Component
Author: summer88123
Latest version: 2.0.12

# AvatarImage

[![npm version](https://img.shields.io/npm/v/@hecom/image-avatar.svg?style=flat)](https://www.npmjs.com/package/@hecom/image-avatar)
[![Build Status](https://app.travis-ci.com/hecom-rn/AvatarImage.svg?branch=master)](https://app.travis-ci.com/hecom-rn/AvatarImage)

这是一个正多边形头像组件，是支持群组头像。

![screen](https://github.com/hecom-rn/AvatarImage/blob/master/images/example.jpeg)
群组头像最多支持显示四个成员。

# 关于默认头像
未设置远程头像路径时，如果名字中有中文，则获取最后一个中文字符；如果没有中文，则获取第一个字符，作为头像文字

可用属性

|属性名|类型|默认值|说明|
|-----|----|-----|----|
|user|User|undefined|人员对象，单人头像时的快捷属性|
|users|User[]|[]|人员数组，群组头像时使用，如果users.length大于0，user属性不生效|
|size|number|48|视图的宽高|
|radius|number|size/12|圆角大小（使用二次贝塞尔曲线实现）|
|sepWidth|number|1|群组头像时内部分隔线的宽度|
|colors|string[]|['#3EAAFF', '#47C2E7', '#FD6364', '#FDC63F', '#BEE15D', '#28D9C1', '#FF9D50']|默认头像背景色|
|defOuterBorderColors|string[]|['#CBE7FF', '#DAF6FF', '#FFE1E1', '#FCF1D8', '#E6F5BE', '#D3F9F4', '#FFE4CD']|默认头像边框颜色|
|renderAvatar|func|undefined|自定义头像渲染方法|
|getThumbUrl|func|undefined|`(url:string)=> string`,获取缩略图方法|
|numberOfSides|number|6|正多边形边数|
|borderEnable|boolean|false|是否使用边框|
|border|Border|undefined|边框参数|

User类型
```
    interface User {
        code: number // 编号，用于确定默认头像颜色
        name: string // 名称
        avatar?: string // 头像
    }
```
Border类型
```
    interface Border {
        innerBorderWidth?: number // 内边框宽度，默认：1
        innerBorderColor?: string // 内边框颜色，默认：#FFFFFF
        outerBorderWidth?: number // 外边框宽度，默认：2
        outerBorderColor?: string // 外边框颜色，默认：#F1F1F1
        borderSpace?: number // 内外边框间距，默认：size / 24
    }
```
npm package: @hecom/image-default-head
Description: Default Head Image Utility
Author: Xiaosong Gao
Latest version: 1.0.3

# DefaultHeadImage

[![npm version](https://img.shields.io/npm/v/@hecom/image-default-head.svg?style=flat)](https://www.npmjs.com/package/@hecom/image-default-head)
[![Build Status](https://travis-ci.org/hecom-rn/DefaultHeadImage.svg?branch=master)](https://travis-ci.org/hecom-rn/DefaultHeadImage)

这是默认头像管理工具类。
npm package: @hecom/imcontrol
Description: IMControl of EaseMob
Author: Hecom
Latest version: 1.0.4

# IMControl

[![npm version](https://img.shields.io/npm/v/@hecom/imcontrol.svg?style=flat)](https://www.npmjs.com/package/@hecom/imcontrol)
[![Build Status](https://travis-ci.org/hecom-rn/IMControl.svg?branch=master)](https://travis-ci.org/hecom-rn/IMControl)

这是环信的消息接收和分发模块。

**事件类型**：

* 普通消息事件：类型为`[MessageType, imId]`，其中`imId`为接收消息的会话ID；数据为原始消息。
* 控制消息事件：类型为`[CommandType, type, appName, action]`，其中`type`为事件类型，`appName`和`action`为具体应用的操作；数据为原始控制消息。
* 通知消息事件：类型为`[NotificationType, action]`，其中`action`为通知的操作；数据为原始通知消息。

**接口**：

* `name: string`：模块名称。
* `init: (options) => Promise`：初始化模块，其中`options`是一个参数对象，包含如下键：
  * `isTest: boolean`：(必填)是否是测试环境。
  * `apnsCertName: string`：(必填)iOS的证书名称。
  * `testAppKey: string`：测试环境的环信AppKey。
  * `formalAppKey: string`：正式环境的环信AppKey。
  * `miAppKey`：Android的小米推送AppKey。
  * `miAppSecret`：Android的小米推送AppSecret。
* `register`：其中的子项，`message`、`command`、`notification`、`openNotification`，分别对应不同的消息类型，还有一个`defaultCommand`，表示默认的控制消息类型。每个子项都是一个函数，`(subType, func, withSub = false) => string`，传入`subType`消息子类型、对应函数`func`、以及是否是监听下级事件`withSub`，返回事件监听的Id。
* `unregister`：与`register`对应的子项，每个子项是一个函数，`(subType, funcId) => boolean`，用于取消注册相应事件的监听。
npm package: @hecom/incupdate
Description: Increment Update Module
Author: Xiaosong Gao
Latest version: 1.0.5

# IncUpdate

[![npm version](https://img.shields.io/npm/v/@hecom/incupdate.svg?style=flat)](https://www.npmjs.com/package/@hecom/incupdate)

这是管理增量更新的模块，目前用于人员部门表的维护，主要负责提供一个包含通用逻辑的实例，用于外界操作。

**接口**：

* `name: string`：模块名称。
* `initGlobal(): void`：全局初始化模块。
* `obj(type, pageSize, getPromise, indexKeys): object`：获取增量更新实例。
  * `type: string`：内部存储键，不同实例的键不同，如果只传了type参数，则表示要获取已有实例。
  * `pageSize: number`：分页加载的页大小。
  * `getPromise(timestamp): Promise`：获取更新的回调方法，如果全量加载，则`timestamp`为0，否则`timestamp`为上次更新时间戳。
  * 返回值对象：包含这几个方法，{init, uninit, load, get, getTime}，方法参数如下：
    * `init(forceUpdate): Promise`：初始化实例。
    * `uninit(forceClear): Promise`：反初始化实例。
    * `load(forceUpdate): Promise`：增量或全量更新。
    * `get(key, indexKey, enableExport): Promise`：异步获取信息，`key`是要取的对象的键，`indexKey`表示是否使用自定义索引，`enableExport`表示是否导出对象。
    * `syncGet(key, indexKey, enableExport): any`：获取信息，`key`是要取的对象的键，`indexKey`表示是否使用自定义索引，`enableExport`表示是否导出对象。
npm package: @hecom/initialization
Description: Application Initialization Management
Author: Xiaosong Gao
Latest version: 1.0.0

# Initialization

[![npm version](https://img.shields.io/npm/v/@hecom/initialization.svg?style=flat)](https://www.npmjs.com/package/@hecom/initialization)
[![Build Status](https://travis-ci.org/hecom-rn/Initialization.svg?branch=master)](https://travis-ci.org/hecom-rn/Initialization)

这是整个应用的初始化管理模块。
npm package: @hecom/list
Description: List APIs Management
Author: Xiaosong Gao
Latest version: 1.0.1

# List

[![npm version](https://img.shields.io/npm/v/@hecom/list.svg?style=flat)](https://www.npmjs.com/package/@hecom/list)

这是列表页面的接口管理模块。

**接口**：

* `load(...) => Promise<object>`：加载列表数据，返回值的`data`是数据列表，`isEnd`是是否分页结束，`origin`是完整的返回结果。接口参数如下：
  * `metaName: string`：业务对象名称。
  * `pageNo: number`：页码。
  * `pageSize: number`：页大小。
  * `fields: string[]`：字段名称列表。
  * `filter: object`：筛选条件。
  * `sorts: array`：排序条件列表。
  * `scope: number`：数据范围。
  * `others: object`：其他参数。
* `search(...) => Promise<object>`：搜索列表数据，返回值的`data`是搜索结果列表，`isEnd`是是否分页结束，`fields`是搜索结果字段，`origin`是完整的返回结果。接口参数如下：
  * `metaName: string`：业务对象名称。
  * `pageNo: number`：页码。
  * `pageSize: number`：页大小。
  * `keyword: string`：搜索关键字。
  * `others: object`：其他参数。
npm package: @hecom/listener
Description: 通用事件处理
Author: 白宇东
Latest version: 1.0.0

# listener

[![npm version](https://img.shields.io/npm/v/@hecom/listener.svg?style=flat)](https://www.npmjs.com/package/@hecom/listener)
[![Build Status](https://travis-ci.org/hecom-rn/listener.svg?branch=master)](https://travis-ci.org/hecom-rn/listener)

通用消息机制处理库，扩展了各个平台实现的消息机制，将常用的字符串类型`eventName`扩展为字符串数组，并且支持SubEvent。

**接口**

`init`: 设置平台相关的消息实现;

`register`: 注册消息;

`registerWithSubEvent`: 注册子事件消息，例如：当trigger一个Type为`['a','b','c']`的消息时，注册Type为`['a','b']`或者`['a']`的事件可以收到回调。

`unregister`: 取消注册消息，或者可通过Subscription.remove方法直接取消注册。
npm package: @hecom/loginprocess
Description: Login Process Module
Author: Hecom
Latest version: 3.1.2

# LoginProcess

[![npm version](https://img.shields.io/npm/v/@hecom/loginprocess.svg?style=flat)](https://www.npmjs.com/package/@hecom/loginprocess)
[![Build Status](https://travis-ci.org/hecom-rn/loginprocess.svg?branch=master)](https://travis-ci.org/hecom-rn/loginprocess)

这是登陆进度管理模块，包括触发事件、注册事件监听和占用的权重。

## 安装

```shell
npm install --save @hecom/loginprocess
```

## 使用方法

```javascript
import LoginProcess from '@hecom/loginprocess';
```

## 事件类型

* 登陆事件：类型为`[LoginEvent]`；数据为`forceUpdate`，表示是否强制更新。
* 登出事件：类型为`[LogoutEvent]`；数据为`forceClear`，表示是否强制清除持久化存储。

## 接口

* `register: (loginFunc, logoutFunc, flex, name) => void`：注册登陆或登出的接收通知的函数，以及进度条的进度项，包括权重`flex`和名称`name`。
* `registerEvent: (flex, name) => void`：只注册进度条的进度项，调用`register`完成操作。
* `triggerLogin: (forceUpdate) => void`：触发登陆事件，`forceUpdate`表示是否强制更新。
* `triggerLogout: (forceClear) => void`：触发登出事件，`forceClear`表示是否强制登出。
* `mark: (name, isSuccess, error) => void`：标记某个进度项为成功或失败状态。
* `startLoginProcess: () => promise`：开始登录时调用，返回登录状态。
npm package: @hecom/meta
Description: Meta Object Module
Author: Kevin Bai
Latest version: 2.5.19

# Meta

[![npm version](https://img.shields.io/npm/v/@hecom/meta.svg?style=flat)](https://www.npmjs.com/package/@hecom/meta)
[![Build Status](https://app.travis-ci.com/hecom-rn/Meta.svg?token=HQ6zeJyFEVrdNxpZ83aD&branch=master)](https://app.travis-ci.com/hecom-rn/Meta)
### 元数据管理模块。


**接口**：

* `name: string`：模块名称。
* `init({loadMeta}): void`：全局初始化模块，注入loadMeta实现，应在程序启动时调用。
* `uninit(): void`：注销，清空缓存的元数据。可根据需要在合适的场景调用（例如：退出登录时）。
* `load(metaName): Promise<meta>`：获取最新的元数据。meta代表元数据对象，下同。
* `loadIfInvalid(metaName): Promise<meta>`：如果不存在缓存，则获取最新元数据，否则返回缓存元数据。
* `isValid(metaName): boolean`：是否存在元数据缓存。
* `get(metaName): meta`：获取缓存元数据。
* `register(metaName, handleFunc): handleId`：注册元数据处理函数，获取缓存元数据前，可对指定metaName的元数据进行预处理。
  * `handleFunc(meta): newMeta`：元数据处理函数。
* `unregister(handleId)`：取消注册元数据处理函数。
* `getDetailInfo(metaName: string, key: string, mapKey: string):array|object`：获取meta\[key\]，如果是数组，则按照mapKey转为对象。
* `layoutOfBizType(metaName, biztypeId)`：获取指定元数据的指定业务类型的页面布局配置。
* `layoutKeyFields(metaName, biztypeId)`：获取指定元数据的指定业务类型的摘要字段。
* `selectOfBizType(metaName, biztypeId, fieldMeta)`：获取指定元数据的指定业务类型的指定字段（单选）的可用选项。
* `part`：获取指定部分的元数据信息。
  * `auth`：权限
  * `meta`：基本信息
  * `field`：字段列表
  * `biztype`：全部业务类型列表
  * `activeBizType`：可用业务类型列表
  * `relate`：关联对象信息列表
  * `button`：按钮信息列表
  * `fieldDependency`：字段依赖关系列表
  * `search`：搜索设置信息
npm package: @hecom/module-login
Description: Login UI Module
Author: Xiaosong Gao
Latest version: 1.0.6

# LoginModule

[![npm version](https://img.shields.io/npm/v/@hecom/module-login.svg?style=flat)](https://www.npmjs.com/package/@hecom/module-login)

这是登陆模块的UI页面和登陆流程的封装。

**接口**：

* `name: string`：模块名称。
* `page`：页面集合。
  * `Login: React.PureComponent`：登陆页面。
  * `Debug: React.PureComponent`：调试目录页面。
  * `ChangeServer: React.PureComponent`：修改服务器页面。
  * `ModifyPassword: React.PureComponent`：修改密码页面。
  * `VerificationCode: React.PureComponent`：验证码登陆页面。
* `pageKeys`：页面的`RouteName`集合。
  * `VerificationCode: string`：验证码登陆页面的`RouteName`。
  * `ModifyPassword: string`：修改密码页面的`RouteName`。
  * `Login: string`：登陆页面的`RouteName`。
  * `Debug: string`：调试目录页面的`RouteName`。
  * `ChangeServer: string`：修改服务器页面的`RouteName`。
* `pageMap: {[routeName: string]: React.PureComponent}`：路由的映射关系，如果要完全重写某个页面，覆盖相应键的值即可。
* `component`：组件集合。
  * `DataSyncActivity: React.PureComponent`：数据同步的加载组件。
* `getNavigator: () => StackNavigator`：获取登陆流程的入口导航器。
npm package: @hecom/navigation
Description: Navigation API
Author: Hecom
Latest version: 2.0.1

# Navigation

[![npm version](https://img.shields.io/npm/v/@hecom/navigation.svg?style=flat)](https://www.npmjs.com/package/@hecom/navigation)
[![Build Status](https://travis-ci.org/hecom-rn/navigation.svg?branch=master)](https://travis-ci.org/hecom-rn/navigation)

这是导航模块，使用`react-navigation`作为导航器，这里集成了一些API供用户使用。

**接口**：

* `setSwitchNav: (switchFunc) => void`：设置切换导航器方法。
* `get: () => object`：获取导航器对象。
* `push: (routeName, param) => void`：推入页面。
* `pop: () => void`：回退到上一页。
* `popByKey: (key) => void`：回退到指定`key`页面，这里`key`是导航器内部标识。
* `popByRoute: (routeName) => void`：回退到指定`routeName`页面。
* `popByDelta: (delta) => void`：回退指定增量的页面，其中`delta`小于0，如果等于-1，则等价于`pop`方法。
* `reset: (routeName, param) => void`：重置导航器的路由到指定页面，用于登陆部分和主页面部分的切换。
* `refresh: (isLoading, loadingStyle) => void`：等价于在页面中调用`this.apiRefresh`，更新刷新状态。
npm package: @hecom/organization
Description: Organization Module with Authority
Author: Xiaosong Gao
Latest version: 1.0.7

# Organization

[![npm version](https://img.shields.io/npm/v/@hecom/organization.svg?style=flat)](https://www.npmjs.com/package/@hecom/organization)

这是组织架构部分，管理一个全量包含离职的人员表，和一个全量不包含解散的部门表，然后传入权限项，根据权限项，动态生成一些带权限的操作。

**接口**：

* `name: string`：模块名称。
* `initGlobal(): void`：全局初始化模块。
* `getObj(userListAuth, orgListAuth): object`：获取带权限的操作对象，`userListAuth`是人员列表操作的权限，`orgListAuth`是部门列表操作的权限，返回的对象中包含如下方法：
  * `loadUser(forceUpdate): Promise`：全量或增量更新用户列表。
  * `loadOrg(forceUpdate): Promise`：全量或增量更新部门列表。
  * `getUser(): Promise<array>`：带权限的获取人员列表。
  * `getOrg(): Promise<array>`：带权限的获取部门列表。
  * `findUserByImId(imId): object`：根据人员`imId`获取人员信息。
  * `getWholeTree(hasSelf, parentCode, excludedCodes): Promise<object>`：获取整个人员部门树，`hasSelf`表示是否包含自己，`parentCode`表示上级部门`code`，`excludedCodes`表示排除哪些`code`。
  * `getOrgTree(hasSelf, parentCode, excludedCodes): Promise<object>`：获取部门树，参数同`getWholeTree`。
* `obj(): object`：调用`getObj`生成的对象，无权限的全量数据。
npm package: @hecom/react-native-address-book
Description: 调用原生通讯录获取联系人
Author: Hecom
Latest version: 1.0.0

# rn-simplified-popover

[![npm version](https://img.shields.io/npm/v/@hecom/react-native-address-book.svg)](https://www.npmjs.com/package/@hecom/react-native-address-book)
[![Build Status](https://travis-ci.org/hecom-rn/react-native-address-book.svg?branch=master)](https://travis-ci.org/hecom-rn/react-native-address-book)

## react-native-address-book
调用原生通讯录，获取联系人
npm package: @hecom/react-native-image-capinsets
Description: android support for Image `capInsets`
Author: Summer88123
Latest version: 0.5.4

# react-native-image-capinsets

[![npm version](https://img.shields.io/npm/v/@hecom/react-native-image-capinsets.svg?style=flat)](https://www.npmjs.com/package/@hecom/react-native-image-capinsets)
[![Build Status](https://travis-ci.org/summer88123/react-native-image-capinsets.svg?branch=master)](https://travis-ci.org/summer88123/react-native-image-capinsets)


adds support for a similar functionality as `<Image capInsets={...} />` to android.
behind the scenes it will generate a `NinePatchDrawable` and set as background for the android `ImageView`

## Installation

1. `npm i --save react-native-image-capinsets`
2. `react-native link react-native-image-capinsets`


## Examples

```javascript
import ImageCapInset from 'react-native-image-capinsets';

<ImageCapInset
  source={require('./bubble.png')}
  capInsets={{ top: 8, right: 8, bottom: 8, left: 8 }}
  />
```
npm package: @hecom/react-native-report-table
Description: report Table Component
Author: mashuai
Latest version: 1.0.3

# reportTable

报表 表格



## install

**Yarn add:** `react-native-reportTable`

> iOS

Podfile add (note that the sorting)

```
pod 'ZMJGanttChart', :git => 'https://github.com/GodVampire/ZMJGanttChart.git'
pod 'hecom-rn-reportTable', :path => '../node_modules/@hecom/reportTable/hecom-rn-reportTable.podspec'
```
npm package: @hecom/rn-simplified-popover
Description: ReactNative简化气泡组件
Author: Hecom
Latest version: 0.0.4

# rn-simplified-popover

[![npm version](https://img.shields.io/npm/v/@hecom/rn-simplified-popover.svg)](https://www.npmjs.com/package/@hecom/rn-simplified-popover)

## ReactNative气泡组件

![examplePng](https://github.com/hecom-rn/rn-simplified-popover/blob/master/example/example.png)


## 使用方法可以参考示例程序

# 属性说明
|属性名|类型|默认值|说明|是否必填|
|-----|----|----|-----|---|
|isVisible|boolean|false|组件是否展示|是|
|displayArea|Rect|window|背景区域大小|是|
|arrowSize|Size|Size(10, 5)|三角大小|否|
|placement|string|'auto'|位置(可传参数：'top','bottom','left','right')|否|
|fromRect|Rect|{ x: 0, y: 0, width: 0, height: 0 }|三角所指位置|是|
|onClose|func|() => { }|关闭回调|是|


Rect类型
```
class Rect {
    constructor(x, y, width, height) {
        this.x = x;
        this.y = y;
        this.width = width;
        this.height = height;
    }
}
```

Size类型
```
class Size {
    constructor(width, height) {
        this.width = width;
        this.height = height;
    }
}
```
npm package: @hecom/storage
Description: AsyncStorage Prefix and Parts Management
Author: Baiyudong
Latest version: 1.1.0

# Storage

[![npm version](https://img.shields.io/npm/v/@hecom/storage.svg?style=flat)](https://www.npmjs.com/package/@hecom/storage)
[![Build Status](https://travis-ci.com/hecom-rn/Storage.svg?branch=master)](https://travis-ci.com/hecom-rn/Storage)

这是对于持久化存储库[@react-native-async-storage/async-storage](https://github.com/react-native-async-storage/async-storage)的进一步封装，加入了前缀管理，以及存储区的判重逻辑，对外隐藏了前缀的实现。

前缀分为两种：一种是Common前缀，表示跟用户无关的数据存储；一种是User前缀，表示用户相关的数据存储。
npm package: @hecom/types
Description: Basic Types of Whole Project.
Author: Xiaosong Gao
Latest version: 1.0.3

# Types

[![npm version](https://img.shields.io/npm/v/@hecom/types.svg?style=flat)](https://www.npmjs.com/package/@hecom/types)
[![Build Status](https://travis-ci.org/hecom-rn/Types.svg?branch=master)](https://travis-ci.org/hecom-rn/Types)

这是工程的基础类型声明模块。
npm package: @hecom/url
Description: URL Basic Type Management
Author: Hecom
Latest version: 1.1.5

# URL

[![npm version](https://img.shields.io/npm/v/@hecom/url.svg?style=flat)](https://www.npmjs.com/package/@hecom/url)
[![Build Status](https://travis-ci.com/hecom-rn/URL.svg?token=HQ6zeJyFEVrdNxpZ83aD&branch=master)](https://travis-ci.com/hecom-rn/URL)

这是对于应用中的增删改查等基础功能URL的管理模块。
npm package: @hecom/userinfo
Description: User Information and Login or Logout Action
Author: Hecom
Latest version: 1.0.8

# UserInfo

[![npm version](https://img.shields.io/npm/v/@hecom/userinfo.svg?style=flat)](https://www.npmjs.com/package/@hecom/userinfo)
[![Build Status](https://travis-ci.org/hecom-rn/userinfo.svg?branch=master)](https://travis-ci.org/hecom-rn/userinfo)

这是当前用户登陆信息管理模块。还包括登陆和登出的统一接口，以及各种登陆登出流程的处理。

**接口**：

* `name: string`：模块名称。
* `initGlobal: () => Promise`：全局初始化模块。
* `addLoginHandler: (func) => void`：添加登陆的处理函数，这是在触发登陆成功事件之前调用的，`func`必须是`() => Promise`格式的函数。
* `login: (user, forceUpdate) => Promise`：用户登陆，写入`user`信息，触发登陆事件。
* `loginProcess: (objParams) => Promise`：登陆流程，`objParams`包含如下参数：
  * `username`：用户名。
  * `password`：密码。
  * `verifyCode`：验证码，如果此项不为空，则使用验证码登陆接口。
  * `onFinish`：成功回调函数，返回用户信息。
  * `apiRefresh`：刷新加载框状态的方法。
* `loginIM: (userInfo) => Promise`：根据用户信息登陆IM，如果`userInfo`为空，则使用内部当前用户信息。
* `logout: (prompt) => Promise`：登出用户，并跳转到登陆流程页面，`prompt`表示是否弹框提示。
* `isLogin: () => boolean`：是否是已登陆状态。
* `enterMain: () => Promise`：持久化存储已有的用户信息，并跳转到主流程页面。
* `get: () => object`：获取当前用户信息。
* `getLastUser: () => object`：获取上一个用户的遗留信息。
* `set: (key, value) => Promise`：设置当前用户的详细信息。
* `update: (userParts) => Promise`：批量设置当前用户信息
* `register`：注册事件。
  * `userChange: (func) => string`：注册用户详细信息改变的事件，返回事件Id。
* `unregister`：注销事件。
  * `userChange: (funcId) => boolean`：注销用户详细信息改变事件，返回成功与否。
* `part`：获取当前用户的详细信息。
  * `avatar: () => string`：自定义头像的URL地址。
  * `name: () => string`：用户名称。
  * `code: () => string`：用户Code。
  * `dept: () => object`：部门信息。
  * `entCode: () => string`：企业Code。
  * `uid: () => string`：UID。
  * `accessToken: () => string`：AccessToken。
  * `phone: () => string`：电话号码。
  * `imId: () => string`：环信IM的Id。

**事件类型**：

* 用户信息改变事件：类型为`[UserChangeEvent]`；无数据。
npm package: @hecom/util
Description: Utility in Application
Author: Xiaosong Gao
Latest version: 1.0.6

# Util

[![npm version](https://img.shields.io/npm/v/@hecom/util.svg?style=flat)](https://www.npmjs.com/package/@hecom/util)
[![Build Status](https://travis-ci.org/hecom-rn/Util.svg?branch=master)](https://travis-ci.org/hecom-rn/Util)

这是一些常用的工具类。
npm package: @hecom/wrapper-basic
Description: Basic Wrapper of Loading Icon
Author: Xiaosong Gao
Latest version: 1.1.4

# BasicWrapper

[![npm version](https://img.shields.io/npm/v/@hecom/wrapper-basic.svg?style=flat)](https://www.npmjs.com/package/@hecom/wrapper-basic)
[![Build Status](https://travis-ci.org/hecom-rn/BasicWrapper.svg?branch=master)](https://travis-ci.org/hecom-rn/BasicWrapper)

这是用于加载状态封装的高阶组件，增加了`apiRefresh`接口给待封装的组件，参数也被取出后传入。

只导出高阶组件，`(WrappedComponent) => React.PureComponent`格式。
npm package: @hecom/wrapper-load
Description: Loading Queue Wrapper
Author: Xiaosong Gao
Latest version: 1.1.5

# LoadWrapper

[![npm version](https://img.shields.io/npm/v/@hecom/wrapper-load.svg?style=flat)](https://www.npmjs.com/package/@hecom/wrapper-load)
[![Build Status](https://travis-ci.org/hecom-rn/LoadWrapper.svg?branch=master)](https://travis-ci.org/hecom-rn/LoadWrapper)

这是对于通用加载队列的封装高阶组件。

默认导出为一个用于封装的高阶组件，`(WrappedComponent, options) => React.PureComponent`，其中`WrappedComponent`是待封装的组件，`options`是配置参数对象，属性如下：

* `canBack`：是否可以回退到上一页，如果为导航栈第一页，则设置为`false`。
* `initFunc`：初始化方法，根据调用后的队列大小，来决定是否启动加载队列。`param`的格式如下：
  * `props`：导航内部的参数，是`navigation.state.params`。
  * `item`：当前正在处理的任务项。
  * `push`：在队列中增加一项任务，`key`是等待队列判重的键，`value`是任务队列的任务项。
  * `isWaiting`：判断键`key`是否正在等待队列中等待。
  * `finish`：结束当前任务，`status`表示任务是否成功，`isStop`表示是否停止加载进程。
* `processFunc`：处理任务的方法，`param`与`initFunc`的相同格式和含义。
* `componentFunc`：最后渲染`WrappedComponent`之前，对于`navigation.state.params`这个导航内部参数的处理，返回处理后的内部参数。
* `errorTitle`：错误页面的标题。
* `errorPageOptions`：参照`ErrorPage`的属性。
* `loadingViewStyle`：加载视图的样式。
npm package: @hecostarter/sdk
Description: 🛠 An SDK for building applications on top of HecoSwap.
Latest version: 1.0.0

# Uniswap SDK

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![Actions Status](https://github.com/Uniswap/uniswap-sdk/workflows/CI/badge.svg)](https://github.com/Uniswap/uniswap-sdk)
[![npm version](https://img.shields.io/npm/v/@uniswap/sdk/latest.svg)](https://www.npmjs.com/package/@uniswap/sdk/v/latest)
[![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/minzip/@uniswap/sdk/latest.svg)](https://bundlephobia.com/result?p=@uniswap/sdk@latest)

In-depth documentation on this SDK is available at [uniswap.org](https://uniswap.org/docs/v2/SDK/getting-started/).

## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

```sh
git clone https://github.com/Uniswap/uniswap-sdk.git
```

Move into the uniswap-sdk working directory

```sh
cd uniswap-sdk/
```

Install dependencies

```sh
yarn install
```

Run tests

```sh
yarn test
```

You should see output like the following:

```sh
yarn run v1.22.4
$ tsdx test
 PASS  test/constants.test.ts
 PASS  test/pair.test.ts
 PASS  test/fraction.test.ts
 PASS  test/miscellaneous.test.ts
 PASS  test/entities.test.ts
 PASS  test/trade.test.ts

Test Suites: 1 skipped, 6 passed, 6 of 7 total
Tests:       3 skipped, 82 passed, 85 total
Snapshots:   0 total
Time:        5.091s
Ran all test suites.
✨  Done in 6.61s.
```
npm package: @hectagondao/pancake-sdk
Description: 🛠 An SDK for building applications on top of Pancakeswap.
Author: Prometheus
Latest version: 1.0.0

# Pancakeswap SDK

Forked from the [Uniswap SDK](https://github.com/Uniswap/uniswap-v2-sdk/commit/a88048e9c4198a5bdaea00883ca00c8c8e582605).

You can refer to the Uniswap SDK documentation [uniswap.org](https://uniswap.org/docs/v2/SDK/getting-started/).

## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

```sh
git clone https://github.com/pancakeswap/pancake-swap-sdk.git
```

Move into the pancakeswap-sdk working directory

```sh
cd pancakeswap-sdk/
```

Install dependencies

```sh
yarn install
```

Run tests

```sh
yarn test
```

You should see output like the following:

```sh
yarn run v1.22.4
$ tsdx test
 PASS  test/constants.test.ts
 PASS  test/pair.test.ts
 PASS  test/fraction.test.ts
 PASS  test/miscellaneous.test.ts
 PASS  test/entities.test.ts
 PASS  test/trade.test.ts

Test Suites: 1 skipped, 6 passed, 6 of 7 total
Tests:       3 skipped, 82 passed, 85 total
Snapshots:   0 total
Time:        5.091s
Ran all test suites.
✨  Done in 6.61s.
```