diff --git a/packages/react-renderer/README.md b/packages/react-renderer/README.md index 2778b215e..1252f5e03 100644 --- a/packages/react-renderer/README.md +++ b/packages/react-renderer/README.md @@ -1,62 +1,3 @@ -# iceluna-sdk +# Ali Low-Code React Renderer -> iceluna 底层引擎渲染能力。 - -## Table of Contents - -- [Background](#background) -- [Install](#install) -- [Develop](#Develop) -- [Structure](#Structure) -- [Publish](#Publish) -- [Maintainers](#maintainers) -- [Contributing](#contributing) -- [License](#license) - -## Background -iceluna 是由淘系技术部研发,面向中后台应用低代码搭建的通用解决方案,集前端应用工程创建、开发、调试及发布的全链路一体化的低代码搭建平台。同时,基于集团中后台 《搭建基础协议》 和 《物料协议》 标准之上,生产低代码搭建物料,沉淀搭建基础设施,助力上层不同业务领域 孵化低代码搭建产品,目标 打造成为基于集团标准的低代码搭建中台。 - -iceluna 代码整个项目结构如下图。 -![iceluna代码仓库结构](https://img.alicdn.com/tfs/TB1KJThsHr1gK0jSZR0XXbP8XXa-660-322.png) - -该项目 iceluna-SDK 为 iceluna 通用解决方案的提供最底层,最核心的渲染引擎能力。为 iceluna 体系上层可视化编辑器提供基础引擎能力。 - -## Install - -```sh -# 前提:tnpm install @ali/iceluna-cli -g -tnpm i -``` - -## Develop -1. 执行 `tnpm link`, 在全局建立符号链接。 -2. 到[IDE项目](http://gitlab.alibaba-inc.com/iceluna/iceluna-IDE)启动前,执行 `tnpm link @ali/iceluna-sdk`,建立连接。 -3. 按照 `iceluna-IDE` 方式调试 - -## Structure -``` -. -└── src - ├── comp - ├── context - ├── engine - ├── hoc - ├── utils -``` - -## Publish - -## Maintainers - -[@月飞](dingtalk://dingtalkclient/action/sendmsg?dingtalk_id=qhkv9cp), [@下羊](dingtalk://dingtalkclient/action/sendmsg?dingtalk_id=r93lhx4) - -## Contributing - -See [the contributing file](CONTRIBUTING.md)! - -PRs accepted. - - -## License - -MIT © 2019 +> 低代码引擎渲染模块。 diff --git a/packages/react-renderer/demo/config/components.js b/packages/react-renderer/demo/config/components.js new file mode 100644 index 000000000..f2dc1fb91 --- /dev/null +++ b/packages/react-renderer/demo/config/components.js @@ -0,0 +1,175 @@ +import Div from '@ali/iceluna-components-div'; +import Text from '@ali/iceluna-components-text'; +import A from '@ali/iceluna-components-a'; +import Image from '@ali/iceluna-components-image'; + +import { + Balloon, + Button, + Checkbox, + Dropdown, + Grid, + Menu, + Select, + Tab, + Table, + Radio, + Pagination, + Input, + Icon, + Switch, + Tree, + NumberPicker, + Collapse, + Range, + Dialog, + Overlay, + Search, + Loading, + MenuButton, + Badge, + Message, + Slider, + SplitButton, + Paragraph, + Nav, + Breadcrumb, + Step, + DatePicker, + TimePicker, + Rating, + Upload, + Tag, + Card, + Calendar, + Progress, + Cascader, + ConfigProvider, + Animate, + CascaderSelect, + Transfer, + TreeSelect, + Timeline, + VirtualList, +} from '@alifd/next'; + +const { Row, Col } = Grid; +const { + Item: MenuItem, + Group: MenuGroup, + SubMenu, + PopupItem: MenuPopupItem, + CheckboxItem: MenuCheckboxItem, + RadioItem: MenuRadioItem, + Divider: MenuDivider, +} = Menu; +const { Item: TabItem } = Tab; +const { Column: TableColumn, ColumnGroup: TableColumnGroup } = Table; +const { Group: ButtonGroup } = Button; +const { Group: RadioGroup } = Radio; +const { Node: TreeNode } = Tree; +const { Panel: CollapsePanel } = Collapse; +const { Tooltip } = Balloon; +const { AutoComplete: SelectAutoComplete, OptionGroup: SelectOptionGroup, Option: SelectOption } = Select; +const { Item: MenuButtonItem } = MenuButton; +const { Item: StepItem } = Step; +const { Item: NavItem, SubNav, PopupItem: NavPopItem, Group: NavGroup } = Nav; +const { Item: BreadcrumbItem } = Breadcrumb; +const { MonthPicker, RangePicker, YearPicker } = DatePicker; +const { Card: UploadCard, Dragger: UploadDragger, Selecter: UploadSelecter } = Upload; +const { Closeable: TagCloseable, Selectable: TagSelectable } = Tag; +const { Popup } = Overlay; +const { Node: TreeSelectNode } = TreeSelect; +const { Item: TimelineItem } = Timeline; + +export default { + Div, + A, + Text, + Image, + + Balloon, + Tooltip, + Button, + ButtonGroup, + Checkbox, + Row, + Col, + Select, + SelectAutoComplete, + SelectOptionGroup, + SelectOption, + Dropdown, + Menu, + MenuItem, + MenuGroup, + MenuDivider, + SubMenu, + MenuPopupItem, + MenuCheckboxItem, + MenuRadioItem, + MenuButton, + MenuButtonItem, + Loading, + Tab, + TabItem, + Table, + TableColumn, + TableColumnGroup, + Radio, + RadioGroup, + Pagination, + Input, + Icon, + Switch, + Tree, + TreeNode, + NumberPicker, + Collapse, + Dialog, + Overlay, + Popup, + CollapsePanel, + Range, + Search, + Badge, + Message, + Slider, + SplitButton, + Paragraph, + Nav, + NavItem, + NavPopItem, + NavGroup, + SubNav, + Breadcrumb, + BreadcrumbItem, + Rating, + Step, + StepItem, + DatePicker, + MonthPicker, + RangePicker, + YearPicker, + TimePicker, + Upload, + UploadCard, + UploadDragger, + UploadSelecter, + Tag, + TagCloseable, + TagSelectable, + Card, + Calendar, + Progress, + Cascader, + ConfigProvider, + Animate, + CascaderSelect, + Transfer, + TreeSelect, + TreeSelectNode, + Timeline, + TimelineItem, + VirtualList, +}; diff --git a/packages/react-renderer/demo/config/constants.js b/packages/react-renderer/demo/config/constants.js new file mode 100644 index 000000000..63c51ae7c --- /dev/null +++ b/packages/react-renderer/demo/config/constants.js @@ -0,0 +1,3 @@ +export default { + name: 'renderer-demo' +}; diff --git a/packages/react-renderer/demo/config/utils.js b/packages/react-renderer/demo/config/utils.js new file mode 100644 index 000000000..86c804851 --- /dev/null +++ b/packages/react-renderer/demo/config/utils.js @@ -0,0 +1,11 @@ +import { Message, Dialog } from '@alifd/next'; +import moment from 'moment'; + +export default { + Message, + Dialog, + moment, + test: function(msg) { + this.Message.notice(msg); + } +}; diff --git a/packages/react-renderer/demo/list.md b/packages/react-renderer/demo/list.md new file mode 100644 index 000000000..9609755a2 --- /dev/null +++ b/packages/react-renderer/demo/list.md @@ -0,0 +1,37 @@ +--- +title: 列表 +order: 1 +--- + +````jsx +import React, { PureComponent } from 'react'; +import ReactDOM from 'react-dom'; +import ReactRenderer from '@ali/lowcode-react-renderer'; +import schema from './schemas/list'; +import components from './config/components'; +import utils from './config/utils'; +import constants from './config/constants'; + +class Demo extends PureComponent { + static displayName = 'renderer-demo'; + render() { + return ( +
+ +
+ ); + } +} + +ReactDOM.render(( + +), mountNode); +```` diff --git a/packages/react-renderer/demo/schemas/list.js b/packages/react-renderer/demo/schemas/list.js new file mode 100644 index 000000000..fda45d3f0 --- /dev/null +++ b/packages/react-renderer/demo/schemas/list.js @@ -0,0 +1,224 @@ +export default { + componentName: 'Page', + fileName: 'tab_article', + props: { + style: { + paddingTop: 20, + paddingRight: 20, + paddingLeft: 20 + } + }, + children: [ + { + componentName: 'Div', + props: { + style: { + marginTop: 5, + marginBottom: 15, + borderBottom: '1px solid rgba(244,244,244)' + } + }, + children: [ + { + componentName: 'Div', + props: { + style: { + marginBottom: 15 + } + }, + children: [ + { + componentName: 'Text', + props: { + text: '{{this.item.title}}', + style: { + color: 'rgba(51,51,51)' + } + } + }, + { + componentName: 'Text', + props: { + text: '{{this.item.datetime}}', + style: { + fontSize: '12px', + color: '#666', + float: 'right' + } + } + } + ] + }, + { + componentName: 'Div', + props: { + style: { + paddingBottom: 15, + fontSize: '13px', + color: '#666' + } + }, + children: '{{this.item.description}}' + }, + { + componentName: 'Div', + props: { + style: { + marginBottom: 15 + } + }, + children: [ + { + componentName: 'Button', + props: { + type: 'normal', + style: { + marginRight: 5, + marginLeft: 5 + }, + size: 'small' + }, + children: '{{this.item}}', + loop: '{{this.item.tags}}' + }, + { + componentName: 'Div', + props: { + style: { + marginBottom: 15, + float: 'right' + } + }, + children: [ + { + componentName: 'Div', + props: { + style: { + display: 'inline-block', + marginRight: 5, + marginBottom: 15, + marginLeft: 5, + fontSize: 12, + color: '#666', + float: 'none' + } + }, + children: '{{"点赞:"+this.item.star}}' + }, + { + componentName: 'Div', + props: { + style: { + display: 'inline-block', + marginRight: 5, + marginBottom: 15, + marginLeft: 5, + fontSize: 12, + color: '#666', + float: 'none' + } + }, + children: '{{"喜爱:"+this.item.like}}' + }, + { + componentName: 'Div', + props: { + style: { + display: 'inline-block', + marginRight: 5, + marginBottom: 15, + marginLeft: 5, + fontSize: 12, + color: '#66', + float: 'none' + } + }, + children: '{{"评论:"+this.item.comment}}' + } + ] + } + ] + } + ], + loop: '{{this.state.dataSource}}' + }, + { + componentName: 'Pagination', + props: { + shape: 'normal', + type: 'normal', + size: 'medium', + style: { + marginTop: 10, + marginBottom: 30, + textAlign: 'right' + }, + onChange: function onChange(current, e) { + //页码发生改变时的回调函数 + //@param {Number} current 改变后的页码数 + //@param {Object} e 点击事件对象 + this.page.reloadDataSource(); + } + } + } + ], + dataSource: { + dataHandler: function dataHandler(dataMap) { + const dataSource = [ + { + title: '越夏越嗨皮-7月官方营销活动-技能提升方向', + description: + '商家通过V任务选择主播并达成合作,费用按照商品链接计算,一个商品为一个价格,建议主播在一场直播里最多接60个商品,并提供不少于两个小时的直播服务,每个商品讲解时间不少于5分钟。 ', + tags: ['直播', '大促', '简介'], + datetime: '2017年12月12日 18:00', + star: Math.floor(Math.random() * 100) + 100, + like: Math.floor(Math.random() * 100) + 200, + comment: Math.floor(Math.random() * 100) + 100 + }, + { + title: '越夏越嗨皮-7月官方营销活动-技能提升方向', + description: + '商家通过V任务选择主播并达成合作,费用按照商品链接计算,一个商品为一个价格,建议主播在一场直播里最多接60个商品,并提供不少于两个小时的直播服务,每个商品讲解时间不少于5分钟。 ', + tags: ['直播', '大促', '简介'], + datetime: '2017年12月12日 18:00', + star: Math.floor(Math.random() * 100) + 100, + like: Math.floor(Math.random() * 100) + 200, + comment: Math.floor(Math.random() * 100) + 100 + }, + { + title: '越夏越嗨皮-7月官方营销活动-技能提升方向', + description: + '商家通过V任务选择主播并达成合作,费用按照商品链接计算,一个商品为一个价格,建议主播在一场直播里最多接60个商品,并提供不少于两个小时的直播服务,每个商品讲解时间不少于5分钟。 ', + tags: ['直播', '大促', '简介'], + datetime: '2017年12月12日 18:00', + star: Math.floor(Math.random() * 100) + 100, + like: Math.floor(Math.random() * 100) + 200, + comment: Math.floor(Math.random() * 100) + 100 + }, + { + title: '越夏越嗨皮-7月官方营销活动-技能提升方向', + description: + '商家通过V任务选择主播并达成合作,费用按照商品链接计算,一个商品为一个价格,建议主播在一场直播里最多接60个商品,并提供不少于两个小时的直播服务,每个商品讲解时间不少于5分钟。 ', + tags: ['直播', '大促', '简介'], + datetime: '2017年12月12日 18:00', + star: Math.floor(Math.random() * 100) + 100, + like: Math.floor(Math.random() * 100) + 200, + comment: Math.floor(Math.random() * 100) + 100 + }, + { + title: '越夏越嗨皮-7月官方营销活动-技能提升方向', + description: + '商家通过V任务选择主播并达成合作,费用按照商品链接计算,一个商品为一个价格,建议主播在一场直播里最多接60个商品,并提供不少于两个小时的直播服务,每个商品讲解时间不少于5分钟。 ', + tags: ['直播', '大促', '简介'], + datetime: '2017年12月12日 18:00', + star: Math.floor(Math.random() * 100) + 100, + like: Math.floor(Math.random() * 100) + 200, + comment: Math.floor(Math.random() * 100) + 100 + } + ]; + return { + dataSource + }; + } + } +}; diff --git a/packages/react-renderer/demo/schemas/table.js b/packages/react-renderer/demo/schemas/table.js new file mode 100644 index 000000000..305805588 --- /dev/null +++ b/packages/react-renderer/demo/schemas/table.js @@ -0,0 +1,366 @@ +export default { + componentName: 'Page', + fileName: 'filterTable', + props: { + style: { + paddingRight: 20, + paddingLeft: 20 + } + }, + children: [ + { + componentName: 'Table', + props: { + hasBorder: false, + hasHeader: true, + dataSource: [ + { + id: 1, + title: '2017秋冬新款背带裙复古格子连衣裙清新背心裙a字裙短裙子', + url: 'https://item.taobao.com/item.htm?id=558559528377', + type: '清单', + publishTime: '17-04-28 20:29:20', + publishStatus: '已发布', + pushStatus: '已推送至订阅号', + operation: { + edit: true + } + }, + { + id: 2, + title: '2017秋冬新款 高质感特定纱线欧美宽松马海毛羊毛毛衣', + url: 'https://item.taobao.com/item.htm?id=558559528377', + type: '清单', + publishTime: '17-04-28 20:29:20', + publishStatus: '已发布', + pushStatus: '已推送至订阅号', + operation: { + edit: true + } + }, + { + id: 3, + title: '日式天然玉米皮草编碗垫锅垫隔热垫茶垫加厚餐垫GD-29', + url: 'https://item.taobao.com/item.htm?id=558559528377', + type: '清单', + publishTime: '17-04-28 20:29:20', + publishStatus: '已发布', + pushStatus: '已推送至订阅号', + operation: { + edit: true + } + }, + { + id: 4, + title: '2017秋冬新款 绑带腰封设计感超顺滑质感落肩铜氨丝连衣裙', + url: 'https://item.taobao.com/item.htm?id=558559528377', + type: '清单', + publishTime: '17-04-28 20:29:20', + publishStatus: '已发布', + pushStatus: '已推送至订阅号', + operation: { + edit: true + } + }, + { + id: 5, + title: '日式糖果色陶瓷柄不锈钢餐具西餐牛扒刀叉勺子咖啡勺', + url: 'https://item.taobao.com/item.htm?id=558559528377', + type: '清单', + publishTime: '17-04-28 20:29:20', + publishStatus: '已发布', + pushStatus: '已推送至订阅号', + operation: { + edit: true + } + }, + { + id: 6, + title: '日式和风深蓝素色文艺餐巾餐垫围裙锅垫隔热手套厨房桌布', + url: 'https://item.taobao.com/item.htm?id=558559528377', + type: '清单', + publishTime: '17-04-28 20:29:20', + publishStatus: '已发布', + pushStatus: '已推送至订阅号', + operation: { + edit: true + } + }, + { + id: 7, + title: '日式雪点樱花手绘陶瓷餐具米饭碗拉面碗寿司盘子汤碗', + url: 'https://item.taobao.com/item.htm?id=558559528377', + type: '清单', + publishTime: '17-04-28 20:29:20', + publishStatus: '已发布', + pushStatus: '已推送至订阅号', + operation: { + edit: true + } + }, + { + id: 8, + title: '川岛屋 釉下彩复古日式陶瓷盘子菜盘圆盘调味碟 米饭碗日式餐具', + url: 'https://item.taobao.com/item.htm?id=558559528377', + type: '清单', + publishTime: '17-04-28 20:29:20', + publishStatus: '已发布', + pushStatus: '已推送至订阅号', + operation: { + edit: true + } + } + ] + }, + children: [ + { + componentName: 'TableColumn', + props: { + dataIndex: 'title', + title: '问题描述', + resizable: false + } + }, + { + componentName: 'TableColumn', + props: { + title: '问题分类', + dataIndex: 'type' + } + }, + { + componentName: 'TableColumn', + props: { + title: '发布时间', + dataIndex: 'publishTime' + } + }, + { + componentName: 'TableColumn', + props: { + title: '状态', + dataIndex: 'publishStatus', + cell: [ + { + componentName: 'Button', + props: { + type: 'normal', + size: 'small', + component: 'div', + text: true, + ghost: false, + style: { + width: '30px', + fontSize: '12px', + color: '#666', + cursor: 'auto', + background: '#f7f8fa' + } + }, + children: '已发布', + condition: false + }, + { + componentName: 'Text', + props: { + text: '已发布', + style: { + paddingTop: 2, + paddingRight: 5, + paddingBottom: 2, + paddingLeft: 5, + fontSize: '12px', + color: '#666', + borderRadius: 3, + cursor: 'auto', + background: '#f7f8fa' + } + } + } + ] + } + }, + { + componentName: 'TableColumn', + props: { + title: '操作', + cell: [ + { + componentName: 'Button', + props: { + type: 'normal', + component: 'a', + size: 'medium', + loading: false, + text: true, + style: { + paddingRight: 10, + paddingLeft: 10, + color: '#2077ff' + } + }, + children: '解决' + }, + { + componentName: 'Button', + props: { + type: 'normal', + component: 'a', + text: true, + style: { + paddingRight: 10, + paddingLeft: 10, + color: '#2077ff' + } + }, + children: '详情' + }, + { + componentName: 'Button', + props: { + type: 'normal', + text: true, + component: 'a', + style: { + paddingRight: 10, + paddingLeft: 10, + color: '#2077ff' + } + }, + children: '分类' + } + ] + } + } + ], + loopArgs: ['', ''] + }, + { + componentName: 'Div', + props: { + style: { + textAlign: 'right' + } + }, + children: [ + { + componentName: 'Pagination', + props: { + shape: 'normal', + type: 'normal', + size: 'medium', + style: { + marginTop: 20 + } + } + } + ] + } + ], + dataSource: { + dataHandler: function dataHandler(dataMap) { + let dataSource = [ + { + id: 1, + title: '2017秋冬新款背带裙复古格子连衣裙清新背心裙a字裙短裙子', + url: 'https://item.taobao.com/item.htm?id=558559528377', + type: '清单', + publishTime: '17-04-28 20:29:20', + publishStatus: '已发布', + pushStatus: '已推送至订阅号', + operation: { + edit: true + } + }, + { + id: 2, + title: '2017秋冬新款 高质感特定纱线欧美宽松马海毛羊毛毛衣', + url: 'https://item.taobao.com/item.htm?id=558559528377', + type: '清单', + publishTime: '17-04-28 20:29:20', + publishStatus: '已发布', + pushStatus: '已推送至订阅号', + operation: { + edit: true + } + }, + { + id: 3, + title: '日式天然玉米皮草编碗垫锅垫隔热垫茶垫加厚餐垫GD-29', + url: 'https://item.taobao.com/item.htm?id=558559528377', + type: '清单', + publishTime: '17-04-28 20:29:20', + publishStatus: '已发布', + pushStatus: '已推送至订阅号', + operation: { + edit: true + } + }, + { + id: 4, + title: '2017秋冬新款 绑带腰封设计感超顺滑质感落肩铜氨丝连衣裙', + url: 'https://item.taobao.com/item.htm?id=558559528377', + type: '清单', + publishTime: '17-04-28 20:29:20', + publishStatus: '已发布', + pushStatus: '已推送至订阅号', + operation: { + edit: true + } + }, + { + id: 5, + title: '日式糖果色陶瓷柄不锈钢餐具西餐牛扒刀叉勺子咖啡勺', + url: 'https://item.taobao.com/item.htm?id=558559528377', + type: '清单', + publishTime: '17-04-28 20:29:20', + publishStatus: '已发布', + pushStatus: '已推送至订阅号', + operation: { + edit: true + } + }, + { + id: 6, + title: '日式和风深蓝素色文艺餐巾餐垫围裙锅垫隔热手套厨房桌布', + url: 'https://item.taobao.com/item.htm?id=558559528377', + type: '清单', + publishTime: '17-04-28 20:29:20', + publishStatus: '已发布', + pushStatus: '已推送至订阅号', + operation: { + edit: true + } + }, + { + id: 7, + title: '日式雪点樱花手绘陶瓷餐具米饭碗拉面碗寿司盘子汤碗', + url: 'https://item.taobao.com/item.htm?id=558559528377', + type: '清单', + publishTime: '17-04-28 20:29:20', + publishStatus: '已发布', + pushStatus: '已推送至订阅号', + operation: { + edit: true + } + }, + { + id: 8, + title: '川岛屋 釉下彩复古日式陶瓷盘子菜盘圆盘调味碟 米饭碗日式餐具', + url: 'https://item.taobao.com/item.htm?id=558559528377', + type: '清单', + publishTime: '17-04-28 20:29:20', + publishStatus: '已发布', + pushStatus: '已推送至订阅号', + operation: { + edit: true + } + } + ]; + return { + ...dataMap, + dataSource + }; + } + } +}; diff --git a/packages/react-renderer/demo/table.md b/packages/react-renderer/demo/table.md new file mode 100644 index 000000000..c5e6362a2 --- /dev/null +++ b/packages/react-renderer/demo/table.md @@ -0,0 +1,37 @@ +--- +title: 表格 +order: 1 +--- + +````jsx +import React, { PureComponent } from 'react'; +import ReactDOM from 'react-dom'; +import ReactRenderer from '@ali/lowcode-react-renderer'; +import schema from './schemas/table'; +import components from './config/components'; +import utils from './config/utils'; +import constants from './config/constants'; + +class Demo extends PureComponent { + static displayName = 'renderer-demo'; + render() { + return ( +
+ +
+ ); + } +} + +ReactDOM.render(( + +), mountNode); +```` diff --git a/packages/react-renderer/package.json b/packages/react-renderer/package.json index 1e5318c21..5224a0790 100644 --- a/packages/react-renderer/package.json +++ b/packages/react-renderer/package.json @@ -1,7 +1,7 @@ { "name": "@ali/lowcode-react-renderer", "version": "0.8.13", - "description": "react renderer for ali lowcode engine", + "description": "React Renderer for Ali Low-Code Engine", "main": "lib/index.js", "module": "es/index.js", "files": [ @@ -9,7 +9,10 @@ "es" ], "scripts": { - "build": "build-scripts build --skip-demo" + "test": "echo \"Error: run tests from root\" && exit 1", + "start": "../../node_modules/.bin/build-scripts start", + "build": "../../node_modules/.bin/build-scripts build", + "prepublishOnly": "npm run build" }, "repository": { "type": "git", @@ -20,39 +23,40 @@ "engine", "react" ], - "author": "xiayang.xy", - "license": "ISC", "dependencies": { "@ali/b3-one": "^0.0.17", "@ali/bzb-request": "^2.6.0-beta.13", "@ali/iceluna-comp-div": "^1.0.0", - "@ali/iceluna-rax": "0.0.5", "@ali/lib-mtop": "^2.5.1", "@alifd/next": "^1.18.17", "debug": "^4.1.1", - "driver-universal": "^3.1.2", "events": "^3.0.0", "fetch-jsonp": "^1.1.3", "intl-messageformat": "^8.3.1", "jsonuri": "^2.1.2", "keymaster": "^1.6.2", - "localforage": "^1.7.3", "lodash": "^4.17.11", "moment": "^2.24.0", - "rax": "^1.1.1", - "rax-find-dom-node": "^1.0.1", "react-is": "^16.10.1", "serialize-javascript": "^1.7.0", "socket.io-client": "^2.2.0", "whatwg-fetch": "^3.0.0" }, "devDependencies": { + "@ali/iceluna-components-a": "^0.1.0", + "@ali/iceluna-components-div": "^0.1.0", + "@ali/iceluna-components-image": "^0.1.0", + "@ali/iceluna-components-text": "^0.1.0", "@alib/build-scripts": "^0.1.18", "build-plugin-component": "^0.2.10", "build-plugin-fusion": "^0.1.0", - "build-plugin-moment-locales": "^0.1.0" + "build-plugin-moment-locales": "^0.1.0", + "moment": "^2.24.0", + "react": "^16.4.1", + "react-dom": "^16.4.1" }, "publishConfig": { "registry": "http://registry.npm.alibaba-inc.com" - } + }, + "homepage": "https://unpkg.alibaba-inc.com/@ali/lowcode-react-renderer@0.8.13/build/index.html" }