2.0.30 • Published 6 months ago

yiyun-components v2.0.30

Weekly downloads
385
License
-
Repository
-
Last release
6 months ago

公共选择组件的接口

基于库体积的考虑,请自行引入公共css文件(如项目中已有elementui的css文件可忽略)

<link rel="stylesheet" href="https://unpkg.com/element-ui@2.15.9/lib/theme-chalk/index.css">

或者使用本项目提供的css,路径为cdn路径/yiyun-components/theme/index.css

通过script方式引入(使用lib文件夹下的browser.js)

<script src="yiyun-components/lib/browser.js"></script>
// 全局变量为yiyun

npm安装

npm install yiyun-components

在项目中引入

// 全部引入
import yiyun from 'yiyun-components'

// 按需引入
import 组件名 from 'yiyun-components/lib/组件名'

使用

选择设备:yiyun.selectEquipment()

单选:
    var data = await yiyun.selectEquipment(true,'你的token',[不可选id列表],[已选择id列表])
    ....
    或者:
    yiyun.selectEquipment(true,'你的token',[不可选id列表],[已选择id列表]).then((data){
        .....
    })

    data: {
        id: '',             // 设备id
        code: '',           // 设备标识
        name: '',           // 设备名称
        modelId: ''         // 设备型号id
        modelName: ''       // 设备型号名称
        status: 0           // 设备状态:0.停用 1.启用
    }
多选:
    var data = await yiyun.selectEquipment(false,'你的token',[不可选id列表],[已选择id列表])
    ....
    或者:
    yiyun.selectEquipment(false,'你的token',[不可选id列表],[已选择id列表]).then((data){
        .....
    })

    data: [{
        id: '',             // 设备id
        code: '',           // 设备标识
        name: '',           // 设备名称
        modelId: ''         // 设备型号id
        modelName: ''       // 设备型号名称
        status: 0           // 设备状态:0.停用 1.启用
    },{
        id: '',
        ...
    },...]

接口参数

参数名参数类型说明其他
isOnlybooltrue表示单选,false表示多选(必传)
Authorizationstringtoken字符串(必传)
disablearray禁用设备的id列表(可选)
selectedarray已选设备的id列表(可选)

返回结果

多选

参数类型说明其他
ArrayObject选择的设备对象数组

单选

参数类型说明其他
Object设备对象

设备对象的内容

参数名参数类型说明其他
idString设备id
codeString设备标识
nameString设备名称
modelIdString设备型号id
modelNameString设备型号名
statusint设备状态:0.停用 1.启用

调用地图: yiyun.initMap()

var yiyunMap
try {
    var res = await yiyun.initMap({
        id: '4YcVwbubaA3', //地图的id
        container: document.getElementById('map-container'), // 用于加载地图的dom节点
        Authorization: '', // 平台token
        onload: function (map) {   // 地图加载的回调,返回YiyunMap实例
          yiyunMap = map
        }
        beforeDraw: (cover) => {
          if (cover.type === 'area') {
            cover.setConfig({
              strokeColor: '#000C25',
              strokeWeight: 3,
              fillColor: '#000C25',
              fillOpacity: 0.3
            })
          } else if (cover.type === 'line') {
            cover.setConfig({
              strokeColor: '#000C25',
              strokeWeight: 6,
              strokeOpacity: 1,
              showDir: true
            })
          } else if (cover.type === 'label') {
            cover.setConfig({
              fontSize: 14,
              fontColor: '#000C25',
              content: '标签内容',
              fontAngle: 30
            })
          } else if (cover.type === 'icon') {
            cover.setConfig({
              icon: 'https://aaa.bbb.ccc/ddd.png'
            })
          } else if (cover.type === 'comp') {
            cover.setConfig({
               icon: 'https://aaa.bbb.ccc/ddd.png'
            })
          }
        },
    })
} catch (e) {

}
let line
yiyunMap.updateCover(
    yiyunMap.covers.areas[0],
    {
        strokeColor: '#000C25',
        strokeWeight: 3,
        fillColor: '#000C25',
        fillOpacity: 0.3
    }
)

line = yiyunMap.drawPolyline({
    path: [[121.622797,29.866232],[121.612501,29.883464],[121.653685,29.876544]],
    strokeColor: '#3389FF',
    strokeWeight: 6,
    strokeOpacity: 1,
    showDir: true
})

yiyunMap.clearMapItem(line)

接口参数

参数名参数类型说明其他
idString地图的ID必填
containerdom用于加载地图的dom节点必填
Authorizationstring平台token必填
centerArray地图中心点选填 例:lng,lat,默认为地图实例所设置的中心点
zoomint地图的缩放等级选填 地图定点类型的缩放范围3-20,默认14;本地上传的图片类型的地图缩放范围为10-20 默认15
useOldSdkbool是否使用旧版高德地图Sdk选填
onload((map) => {})func地图加载后回调函数,返回YiyunMap实例选填
beforeDraw((cover) => {})function覆盖物绘制前的回调,返回的cover为覆盖物对象选填 可以在回调用中调用cover.setConfig(config)在覆盖物渲染之前修改渲染样式
afterDraw((cover) => {})function覆盖物绘制后的回调,返回的cover为覆盖物对象选填

异常说明

参数名参数类型说明
codeString异常状态码 1001:dom节点不存在 1002:参数错误 1003:未找到对应的地图实例 1004:获取地图实例失败
msgString异常说明
YiyunMap实例说明
参数名参数类型说明其他
idString地图的ID
nameString地图的名称
coversObject地图覆盖物查看说明
moveTo(obj)function移动地图中心点接收cover,或者经纬度数组lng,lat
zoomTo(int)function修改地图的zoom地图定点类型的缩放范围3-20,默认14;本地上传的图片类型的地图缩放范围为10-20 默认15
setTheme(string)function设置地图的风格'normal'(标准)、'macaron'(马卡龙)、'graffiti'(涂鸦)、'whitesmoke'(远山黛)、'fresh'(草色青)、'darkblue'(极夜蓝)、'wine'(酱籽)、'dart'(幻影黑)
updateCover(cover,config)function更新覆盖物在地图上的显示样式接收cover以及覆盖物的渲染配置config
drawPolyline(lineOption)function绘制路径,返回高德地图覆盖物实例lineOption说明:{path,strokeColor,strokeWeight,strokeOpacity,showDir} path: 经纬度点集合([lng,lat,lng,lat,……])其他查看覆盖物的渲染配置
clearMapItem(_mapItem)function移除地图上的覆盖物接收高德地图覆盖物实例(通过drawPolyline返回获取或者各类cover中的_mapItem)
interact(obj)function覆盖物交互接收cover
getCenter()function获取地图当前的中心点返回{lng,lat}
getZoom(digits)function获取地图当前的缩放等级digits (Number) zoom级别的小数位精度 默认为2
showCover(cover)function显示某一覆盖物接收cover
hideCover(cover)function隐藏某一覆盖物接收cover
covers对象的说明
参数名参数类型说明其他
areasArray区块覆盖物的数组 类型说明
linesArray路径覆盖物的数组 类型说明
pointsArray标记覆盖物的数组 类型说明
labelsArray标签覆盖物的数组 类型说明
componentsArray组件覆盖物的数组 类型说明
各类型cover的说明:
area:
参数名参数类型说明
idString区块id
fillColorString当前区块的颜色,使用16进制颜色代码赋值
nameString区块名字
objObject绑定的对象实例 查看说明
pointsObject区块的类型以及位置信息说明
typeStringcover的类型,值为"area"。该字段只在beforeDraw返回的cover对象中赋值
setConfig(config)function设置覆盖物的渲染配置。该方法只在beforeDraw返回的cover对象中赋值。查看config配置参数
_mapItemAMap.Overlay高德地图覆盖物实例,该字段在afterDraw之后赋值
line:
参数名参数类型说明
idString区块id
fillColorString当前路径的颜色,使用16进制颜色代码赋值
nameString路径名字
objObject绑定的对象实例 查看说明
pointsObject路径位置信息说明
typeStringcover的类型,值为"line"。该字段只在beforeDraw返回的cover对象中赋值
setConfig(config)function设置覆盖物的渲染配置。该方法只在beforeDraw返回的cover对象中赋值。查看config配置参数
_mapItemOverlay.Polyline高德地图覆盖物实例,该字段在afterDraw之后赋值
point:
参数名参数类型说明
idString图标
iconString图标的url
nameString图标名字
objObject绑定的对象实例 查看说明
pointsObject图标的位置信息
typeStringcover的类型,值为"point"。该字段只在beforeDraw返回的cover对象中赋值
setConfig(config)function设置覆盖物的渲染配置。该方法只在beforeDraw返回的cover对象中赋值。查看config配置参数
_mapItemAMap.Marker高德地图覆盖物实例,该字段在afterDraw之后赋值
label:
参数名参数类型说明
idString标签id
contentString标签内容
fontColorString当前区块的颜色,使用16进制颜色代码赋值
fontSizeint字号
fontAngleString标签旋转角度
pointsObject标签位置信息说明
typeStringcover的类型,值为"label"。该字段只在beforeDraw返回的cover对象中赋值
setConfig(config)function设置覆盖物的渲染配置。该方法只在beforeDraw返回的cover对象中赋值。查看config配置参数
_mapItemAMap.Marker高德地图覆盖物实例,该字段在afterDraw之后赋值
component:
参数名参数类型说明
idString组件id
nameString组件名字
pointsObject组件位置信息说明
compObject组件的实例的详情 查看说明
typeStringcover的类型,值为"comp"。该字段只在beforeDraw返回的cover对象中赋值
setConfig(config)function设置覆盖物的渲染配置。该方法只在beforeDraw返回的cover对象中赋值。查看config配置参数
_mapItemAMap.Marker高德地图覆盖物实例,该字段在afterDraw之后赋值
覆盖物的渲染配置(Config)的说明
参数名参数类型说明其他
strokeColorString线条颜色,使用16进制颜色代码赋值适用于area、line
strokeWeightint线条宽度适用于area、line
strokeOpacityint线条透明度适用于line
fillColorstring区块填充色适用于area
fillOpacityint区块填充色透明度适用于area
showDirbool是否显示路径的白色箭头适用于line
fontSizeintlabel的字体大小适用于label
fontColorstringlabel的字体颜色,使用16进制颜色代码赋值适用于label
fontAngleintlabel的角度适用于label
contentstringlabel的内容适用于label
iconstring图标的地址或者base64适用于point、comp
绑定的对象实例(obj)的说明
参数名参数类型说明
objIdString对象id
objAppIdString实例相关的app的id
objAppNameString实例相关的app的name
objErrorint对象的错误码
objExampleIdString实例id
objExampleNameString实例名字
组件实例(comp)的说明
参数名参数类型说明
compAppIdString组件相关的app的id
compAppNameString组件相关的app的name
compErrorint组件的错误码
compIconString组件的图标地址
compIdString组件Id
objIdString对象id
objAppIdString实例相关的app的id
objAppNameString实例相关的app的name
objErrorint对象的错误码
objExampleIdString实例id
objExampleNameString实例名字

工厂模型公共选择: yiyun.nodeSelect()

    树结构调用方式:
    try {
        let res = await yiyun.nodeSelect(
            {
                nodeId: "指定节点id",
                Authorization: "token",
                isOnly: false,
                selectedNode: ["选中节点id", ...]
            }
        )
    } catch (err) {
        // 取消
    }
    ....
    或者:
    yiyun.nodeSelect({
        nodeId: "指定节点id",
        Authorization: "token",
        isOnly: false,
        selectedNode: ["选中节点id", ...]
    }).then((res) => {
        // 确定
    }).catch((err) => {
        // 取消
    })

    列表结构调用方式:
    try {
        let res = await yiyun.nodeSelect(
            {
                type: "对应层级"
                nodeId: "指定节点id",
                Authorization: "token",
                isOnly: false,
                selectedNode: ["选中节点id", ...]
            }
        )
    } catch (err) {
        // 取消
    }
    ....
    或者:
    yiyun.nodeSelect({
        type: "对应层级"
        nodeId: "指定节点id",
        Authorization: "token",
        isOnly: false,
        selectedNode: ["选中节点id", ...]
    }).then((res) => {
        // 确定
    }).catch((err) => {
        // 取消
    })

    单选 res {}
    多选 res [{},...]

    {
        id: '节点id',
        name: '节点名称',
        level: '节点等级',
        pid: '父节点id',
        isError: '节点数据是否无效',
        createTime: '创建时间',
        children: '子节点集合'
    }

接口参数

参数名参数类型说明其他
typenumber可选,不传表示树结构,列表结构分别传:2(站点)、3(区域)、4(工作中心)、5(工作单元)
nodeIdString可选,指定节点id,默认为空
Authorizationstring必传,token
isOnlybool可选,true单选,false多选,默认为false
selectedNodearray可选,需要选中节点的id数组
levelnumber树结构时,传某个级别,返回小于等于该级别的数据

返回结果

多选

参数类型说明其他
ArrayObject选择的节点对象数组

单选

参数类型说明其他
Object节点对象

组织架构公共选择: yiyun.organizationSelect()

    组织架构单选:
    yiyun.organizationSelect(
        {
            isOnly: true,
            mode: '选择模式', // 包括人、岗位、部门
            needMember: true,
            isActiveMember: false,
            needPost: true,
            orgId: '',
            authorization: '你的token',
            disabled: ["禁用id",...],
            selected: { id: "已选id", name: "已选名称" },
            close: function () {
            },
            confirm: function (data) {
            }
        }
    )
    ....
    组织架构多选:
    yiyun.organizationSelect(
        {
            isOnly: false,
            mode: '选择模式', // 包括人、岗位、部门、人_岗位、人_部门
            needMember: true,
            isActiveMember: false,
            needPost: true,
            orgId: '',
            authorization: '你的token',
            disabled: ["禁用id",...],
            selected: [{ id: "已选id", name: "已选名称" },...],
            close: function () {
            },
            confirm: function (data) {
            }
        }
    )
    ....
    组织架构部门对应成员多选:
    yiyun.organizationSelect({
        isOnly: false,
        mode: 'member',
        orgId: '',
        authorization: '你的token',
        disabled: ["禁用id",...],
        selected: [{ id: "已选id", name: "已选名称" },...],
        deptId: '部门id', // 必须传对应部门id
        state: 1,
        close: function () {
        },
        confirm: function (data) {
        }
    })
    ....
    组织架构部门对应成员单选:
    yiyun.organizationSelect({
        isOnly: true,
        mode: 'member',
        orgId: '',
        authorization: '你的token',
        disabled: ["禁用id",...],
        selected: { id: "已选id", name: "已选名称" },
        deptId: '部门id', // 必须传对应部门id
        state: 1,
        close: function () {
        },
        confirm: function (data) {
        }
    })

    单选 res {}
    多选 res [{},...]
    人 {
           id: '成员Id',
           name: '成员名称',
           headPortrait: '头像',
           userId: '用户Id'  
        }
    岗位 {
            id: '岗位Id'
            name: '岗位名称',
            level: '岗位层级',
        }
    部门 {
            id: '部门Id',
            name: '部门名称',
            code: '部门码',
            parentId: '父部门Id',
        }

接口参数

参数名参数类型说明其他
isOnlybool可选,true表示单选,false表示多选,默认为多选
modestring必传,包括人(member)、岗位(position)、部门(dept)、人-岗位(member_position)、人-部门(member&dept)(member_dept 不再维护)5种模式
Authorizationstring必传,token
orgIdstring可选,需要查询的组织Id,空表示查询当前用户的企业,默认为空
needMemberbool不传部门id时为必传,部门下是否需要带成员
isActiveMemberbool不传部门id时为必传,是否只显示已经激活的成员
needMemberbool不传部门id时为必传,部门下是否需要带岗位
disabledarray可选,默认为空数组,数组中每一项为禁用id,当选择模式为'member&dept'时,传入{members:{...},depts:{...}},数组中对象内容为{ id: "禁用的id", name: "禁用的名称" }
selectedarray或object可选,单选默认为{},多选默认为[],单选和多选的每一项格式为{ id: "已选id", name: "已选名称" } ,当选择模式为'member&dept'时,传入{members:{...},depts:{...}},数组中对象内容保持不变
deptIdstring选择部门对应的成员时传入
stateint需要选部门下的成员时,-2.全部(默认) -1.已离职 0.未入职 1.在职
maxValuenumber需要选部门下的成员时,最多可选人数,不传表示全部
messagestring超过maxValue时,提示的字符串,不传提示默认
appIdstring应用授权权限模式时,必需传对应应用id
groupIdstring传对应应用id时,必须传应用下的某个组id
closefunc点取消按钮对应的回调
confirmfunc点确定按钮对应的回调,参数为选中的项

返回结果

多选

参数类型说明其他
ArrayObject选择的节点对象数组

单选

参数类型说明其他
Object节点对象

当选择模式为member&dept时

参数类型说明其他
Object对象结构为{ members: [], depts: [] }

组织架构Api接口:

    let res = await yiyun.getOrganizationOfMember(
        token, // token
        orgId, // 需要查询的组织Id,空表示查询当前用户的企业
        isActiveMember // 是否只显示已经激活的成员,true表示只显示已激活(已绑定),false表示显示全部
    )
    res = [
        {
            id: '部门id',
            parentId: '父部门Id',
            code: '部门码',
            name: '部门名称',
            createTime: '创建时间戳',
            memberCount: '当前部门下的成员数量(包括下下级)',
            type: '类型:member表示人,dept表示部门',
            children: [...] // 包含子部门和部门下的人,以此类推
        },
        ...
        ,   
        {
            id: '成员Id',
            name: '成员名称',
            headPortrait: '头像',
            userId: '用户Id',
            type: '类型:member表示人,dept表示部门',
        }
    ]

    let res = await yiyun.getOrganizationOfPosition(
        token, // token
        orgId // 需要查询的组织Id,空表示查询当前用户的企业
    )
    res = [
         {
            id: '岗位Id',
            name: '岗位名称',
            level: '岗位层级',
            createTime: '创建时间戳',
            memberCount: '岗位上的人数',
            depts: [ // 相关的岗位(根据成员的部门-岗位得到的)
                { id: '岗位Id', name: '岗位名称' },
                ...
            ]
         },
         ...
    ]

    let res = await yiyun.getOrganizationOfDept(
        token, // token
        orgId // 需要查询的组织Id,空表示查询当前用户的企业
    )
    res = [
        {
            id: '部门id',
            parentId: '父部门Id',
            code: '部门码',
            name: '部门名称',
            createTime: '创建时间戳',
            memberCount: '当前部门下的成员数量(包括下下级)',
            children: [...] // 包含子部门列表,子部门可能存在子部门,以此类推
        },
        ...
    ]

    let res = await yiyun.getOrganizationOfMemberPosition(
        token, // token
        orgId, // 需要查询的组织Id,空表示查询当前用户的企业
        isActiveMember // 是否只显示已经激活的成员,true表示只显示已激活(已绑定),false表示显示全部
    )

    res = [
        {
            id: '部门id',
            parentId: '父部门Id',
            code: '部门码',
            name: '部门名称',
            createTime: '创建时间戳',
            memberCount: '当前部门下的成员数量(包括下下级)',
            type: 'dept',
            children: [
                ...,
                {
                    id: '岗位Id',
                    name: '岗位名称',
                    level: '岗位层级',
                    type: 'position'
                }
                ...,
            ] // 包含子部门、部门下的人及部门下的岗位,以此类推
        },
        ...
        ,   
        {
            id: '成员Id',
            name: '成员名称',
            headPortrait: '头像',
            userId: '用户Id',
            type: 'member',
        }
    ]

    let res = await yiyun.getOrganizationOfMemberByDept(
        token, // token
        orgId, // 需要查询的组织Id,空表示查询当前用户的企业
        deptId // 部门Id
    )
    res = [  
        {
            id: '成员Id',
            name: '成员名称',
            headPortrait: '头像',
            userId: '用户Id'
        },
        ...
    ]

审批流程设置组件 const { save } = yiyun.approvalFlowConfig(config)

1.10.0 新增

config插件调用参数

{
    "authorization": 平台用户登入的Authorization

    "appId": String appId,必填 应用id

    "isAllowAll": Boolean 允许审批人员为全企业成员,false时,只有app权限人员出现在审批步骤中,默认false

    "allowStepApvlType": Int32[] 允许的审批步骤中审批人类型 0 按人员 1按岗位 2 按部门岗位 8.直属上级 9.部门主管 10.连续多级主管,未设置默认[0,1,2,8,9,10]

    "isAllowAddCC": Boolean 允许添加抄送人,默认false

    "isAllowAddTransactor": Boolean 允许添加办理人,默认false

    "isAllowSetIsAuto2": Boolean 是否允许设置自动跳过2(类型为1.按岗位、2.部门岗位 9.部门主管时:成员空自动跳过),默认false,

    "defaultIsAuto2": Boolean 自动跳过2的默认值,默认false,

    "isAllowSetIsAuto3": Boolean 是否允许设置自动跳过3,审批人与发起人为同一人时的处理(类型 9.部门主管 10.连续多级部门主管),默认false,

    "defaultIsAuto3": Boolean 自动跳过3的默认值,默认false,

    "isAllowSetMemberSignType": Boolean 是否允许设置会签、或签(类型0.按人员,1按岗位, 2 按部门岗位, 4.发起人自选, 5.审批人自选, 9.部门主管, 10.连续多级部门主管),默认false,

    "defaultMemberSignType": Int32 设置会签、或签的默认值 0.或签 1.会签,默认0,

    "flowId":String 流程id(有值时,表示修改),
    "containerId": String 组件容器id,
    "onSuccess": Function, 成功时回调, (flowId) => {}
}

返回值

{
    save: (beforeSave:Function,可选,方法参数为步骤列表,返回false或Promise.reject()可阻止保存) => {},保存流程,成功则调用配置中的onSuccess
}

插件内部逻辑与审批一样,根据插件调用参数显示/隐藏部分设置功能和设置默认值
2.0.28

6 months ago

2.0.29

6 months ago

2.0.30

6 months ago

2.0.26

6 months ago

2.0.27

6 months ago

2.0.25

6 months ago

2.0.24

1 year ago

2.0.22

1 year ago

2.0.23

1 year ago

2.0.20

1 year ago

2.0.21

1 year ago

2.0.19

1 year ago

2.0.15

2 years ago

2.0.16

2 years ago

2.0.17

2 years ago

2.0.18

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.5

2 years ago

2.0.4

2 years ago

2.0.7

2 years ago

2.0.6

2 years ago

2.0.9

2 years ago

2.0.8

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.11.3

2 years ago

1.11.2

2 years ago

1.11.1

2 years ago

1.11.0

2 years ago

2.0.13

2 years ago

2.0.14

2 years ago

2.0.11

2 years ago

2.0.12

2 years ago

1.10.20

2 years ago

2.0.10

2 years ago

1.10.15

2 years ago

1.10.16

2 years ago

1.10.13

2 years ago

1.10.14

2 years ago

1.10.19

2 years ago

1.10.17

2 years ago

1.10.18

2 years ago

1.10.11

2 years ago

1.10.12

2 years ago

1.10.10

2 years ago

1.10.9

2 years ago

1.10.8

2 years ago

1.10.7

2 years ago

1.10.6

2 years ago

1.10.5

2 years ago

1.10.4

2 years ago

1.10.3

2 years ago

1.10.2

2 years ago

1.10.1

2 years ago

1.10.0

2 years ago

1.9.51

3 years ago

1.9.50

3 years ago

1.9.49

3 years ago

1.9.48

3 years ago

1.9.47

3 years ago

1.9.46

3 years ago

1.9.45

3 years ago

1.9.44

3 years ago

1.9.43

3 years ago

1.9.42

3 years ago

1.9.41

3 years ago

1.9.40

3 years ago

1.9.39

3 years ago

1.9.38

3 years ago

1.9.37

3 years ago

1.9.36

3 years ago

1.9.35

3 years ago

1.9.34

3 years ago

1.9.33

3 years ago

1.9.32

3 years ago

1.9.31

3 years ago

1.9.30

3 years ago

1.9.29

3 years ago

1.9.28

3 years ago

1.9.27

3 years ago

1.9.26

3 years ago

1.9.25

3 years ago

1.9.24

3 years ago

1.9.23

3 years ago

1.9.22

3 years ago

1.9.21

3 years ago

1.9.19

3 years ago

1.9.18

4 years ago

1.9.17

4 years ago

1.9.15

4 years ago

1.9.14

4 years ago

1.9.13

4 years ago

1.9.12

4 years ago

1.9.11

4 years ago

1.9.10

4 years ago

1.9.9

4 years ago

1.9.8

4 years ago

1.9.7

4 years ago

1.9.6

4 years ago

1.9.5

4 years ago

1.9.4

4 years ago

1.9.3

4 years ago

1.9.1

4 years ago

1.9.2

4 years ago

1.9.0

4 years ago

1.8.17

4 years ago

1.8.18

4 years ago

1.8.19

4 years ago

1.8.15

4 years ago

1.8.16

4 years ago

1.8.14

4 years ago

1.8.13

4 years ago

1.8.12

4 years ago

1.8.11

4 years ago

1.8.10

4 years ago

1.8.8

4 years ago

1.8.7

4 years ago

1.8.6

4 years ago

1.8.5

4 years ago

1.8.4

4 years ago

1.8.3

4 years ago

1.8.2

4 years ago

1.8.1

4 years ago

1.8.0

4 years ago

1.7.1

4 years ago

1.7.0

4 years ago

1.6.9

4 years ago

1.6.8

4 years ago

1.6.7

4 years ago

1.6.6

4 years ago

1.6.5

4 years ago

1.6.4

4 years ago

1.6.3

4 years ago

1.6.2

4 years ago

1.6.1

4 years ago

1.6.0

4 years ago

1.5.0

4 years ago

1.4.0

4 years ago

1.3.0

4 years ago

1.2.0

4 years ago

1.1.0

4 years ago

1.0.0

4 years ago