From 2f21a0d4d538b04184c4c4c6b4e051c8f54b864d Mon Sep 17 00:00:00 2001 From: kangwei Date: Fri, 27 Mar 2020 15:09:45 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=F0=9F=A4=96=20update=20demo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/demo/.editorconfig | 12 - packages/demo/.eslintignore | 11 - packages/demo/.eslintrc.js | 16 - packages/demo/.gitignore | 20 - packages/demo/.prettierrc | 4 - packages/demo/.stylelintignore | 7 - packages/demo/.stylelintrc.js | 3 - packages/demo/ice.config.js | 5 +- packages/demo/jsconfig.json | 9 - packages/demo/package.json | 20 +- packages/demo/public/index.html | 2 +- packages/demo/src/config/assets.js | 1985 ----------------- packages/demo/src/config/components.js | 17 +- packages/demo/src/config/locale/en-US.js | 1 - packages/demo/src/config/locale/index.js | 10 - packages/demo/src/config/locale/ja-JP.js | 1 - packages/demo/src/config/locale/zh-CN.js | 1 - packages/demo/src/config/locale/zh-TW.js | 1 - packages/demo/src/config/skeleton.js | 5 +- packages/demo/src/index.tsx | 10 +- packages/demo/src/plugins/designer/index.scss | 4 - packages/demo/src/plugins/designer/index.tsx | 213 -- packages/demo/statics/assets.json | 1082 --------- packages/demo/tests/index.js | 1 - packages/demo/tsconfig.json | 25 +- packages/editor-core/src/index.ts | 4 +- packages/plugin-designer/src/index.tsx | 114 +- packages/plugin-designer/tsconfig.json | 15 +- 28 files changed, 81 insertions(+), 3517 deletions(-) delete mode 100644 packages/demo/.editorconfig delete mode 100644 packages/demo/.eslintignore delete mode 100644 packages/demo/.eslintrc.js delete mode 100644 packages/demo/.gitignore delete mode 100644 packages/demo/.prettierrc delete mode 100644 packages/demo/.stylelintignore delete mode 100644 packages/demo/.stylelintrc.js delete mode 100644 packages/demo/jsconfig.json delete mode 100644 packages/demo/src/config/assets.js delete mode 100644 packages/demo/src/config/locale/en-US.js delete mode 100644 packages/demo/src/config/locale/index.js delete mode 100644 packages/demo/src/config/locale/ja-JP.js delete mode 100644 packages/demo/src/config/locale/zh-CN.js delete mode 100644 packages/demo/src/config/locale/zh-TW.js delete mode 100644 packages/demo/src/plugins/designer/index.scss delete mode 100644 packages/demo/src/plugins/designer/index.tsx delete mode 100644 packages/demo/statics/assets.json delete mode 100644 packages/demo/tests/index.js diff --git a/packages/demo/.editorconfig b/packages/demo/.editorconfig deleted file mode 100644 index 5760be583..000000000 --- a/packages/demo/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -# http://editorconfig.org -root = true - -[*] -indent_style = space -indent_size = 2 -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[*.md] -trim_trailing_whitespace = false diff --git a/packages/demo/.eslintignore b/packages/demo/.eslintignore deleted file mode 100644 index 3b437e614..000000000 --- a/packages/demo/.eslintignore +++ /dev/null @@ -1,11 +0,0 @@ -# 忽略目录 -build/ -tests/ -demo/ - -# node 覆盖率文件 -coverage/ - -# 忽略文件 -**/*-min.js -**/*.min.js diff --git a/packages/demo/.eslintrc.js b/packages/demo/.eslintrc.js deleted file mode 100644 index 4d6be3c66..000000000 --- a/packages/demo/.eslintrc.js +++ /dev/null @@ -1,16 +0,0 @@ -const { tslint, deepmerge } = require('@ice/spec'); - -module.exports = deepmerge(tslint, { - rules: { - "global-require": 0, - "comma-dangle": 0, - "no-unused-expressions": 0, - "object-shorthand": 0, - "jsx-a11y/anchor-has-content": 0, - "react/sort-comp": 0, - "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx", ".tsx", "ts"] }], - "@typescript-eslint/interface-name-prefix": 0, - "@typescript-eslint/no-explicit-any": 0, - "@typescript-eslint/explicit-member-accessibility": 0 - }, -}); diff --git a/packages/demo/.gitignore b/packages/demo/.gitignore deleted file mode 100644 index c590da5b0..000000000 --- a/packages/demo/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -# See https://help.github.com/ignore-files/ for more about ignoring files. - -# dependencies -/node_modules - -# production -/build -/dist - -# misc -.idea/ -.happypack -.DS_Store - -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# ignore d.ts auto generated by css-modules-typescript-loader -*.module.scss.d.ts \ No newline at end of file diff --git a/packages/demo/.prettierrc b/packages/demo/.prettierrc deleted file mode 100644 index d3c963559..000000000 --- a/packages/demo/.prettierrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "printWidth": 120, - "singleQuote": true -} \ No newline at end of file diff --git a/packages/demo/.stylelintignore b/packages/demo/.stylelintignore deleted file mode 100644 index 82af6f60d..000000000 --- a/packages/demo/.stylelintignore +++ /dev/null @@ -1,7 +0,0 @@ -# 忽略目录 -build/ -tests/ -demo/ - -# node 覆盖率文件 -coverage/ diff --git a/packages/demo/.stylelintrc.js b/packages/demo/.stylelintrc.js deleted file mode 100644 index eeb605b33..000000000 --- a/packages/demo/.stylelintrc.js +++ /dev/null @@ -1,3 +0,0 @@ -const { stylelint } = require('@ice/spec'); - -module.exports = stylelint; diff --git a/packages/demo/ice.config.js b/packages/demo/ice.config.js index af5f7c068..5dbfbcc99 100644 --- a/packages/demo/ice.config.js +++ b/packages/demo/ice.config.js @@ -3,13 +3,10 @@ const path = require('path'); module.exports = { entry: { 'index': 'src/index.tsx', - 'simulator-renderer': '../designer/src/builtins/simulator/renderer/index.ts' + 'simulator-renderer': '../react-simulator-renderer/src/index.ts' }, "vendor": false, publicPath: './', - alias: { - '@': path.resolve(__dirname, './src'), - }, plugins: [ ['ice-plugin-fusion', { themePackage: '@alife/theme-lowcode-light', diff --git a/packages/demo/jsconfig.json b/packages/demo/jsconfig.json deleted file mode 100644 index 9e0f3c03d..000000000 --- a/packages/demo/jsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": ".", - "jsx": "react", - "paths": { - "@/*": ["./src/*"] - } - } -} diff --git a/packages/demo/package.json b/packages/demo/package.json index 42a8da6a9..d48b8c905 100644 --- a/packages/demo/package.json +++ b/packages/demo/package.json @@ -27,31 +27,19 @@ "store": "^2.0.12" }, "devDependencies": { - "@ice/spec": "^1.0.1", "@types/debug": "^4.1.5", "@types/events": "^3.0.0", "@types/react": "^16.8.3", "@types/react-dom": "^16.8.2", "@types/store": "^2.0.2", "css-modules-typescript-loader": "^2.0.4", - "eslint": "^6.0.1", - "husky": "^4.2.3", "ice-plugin-fusion": "^0.1.4", "ice-plugin-moment-locales": "^0.1.0", - "ice-scripts": "^2.0.0", - "prettier": "^1.19.1", - "stylelint": "^10.1.0" + "ice-scripts": "^2.0.0" }, "scripts": { "start": "ice-scripts dev", - "build": "ice-scripts build", - "lint": "npm run eslint && npm run stylelint", - "eslint": "eslint --cache --ext .js,.jsx ./", - "stylelint": "stylelint ./**/*.scss", - "prettier": "prettier --write \"./src/**/*.{ts,tsx,js,jsx,ejs,less,css,scss,json}\" " - }, - "engines": { - "node": ">=8.0.0" + "build": "ice-scripts build" }, "iceworks": { "type": "react", @@ -59,9 +47,5 @@ }, "ideMode": { "name": "ice-react" - }, - "repository": { - "type": "git", - "url": "https://github.com/ice-lab/react-materials/tree/master/scaffolds/ice-ts" } } diff --git a/packages/demo/public/index.html b/packages/demo/public/index.html index 04c747a37..e64754f38 100644 --- a/packages/demo/public/index.html +++ b/packages/demo/public/index.html @@ -16,6 +16,6 @@ -
+
diff --git a/packages/demo/src/config/assets.js b/packages/demo/src/config/assets.js deleted file mode 100644 index 3668cc44f..000000000 --- a/packages/demo/src/config/assets.js +++ /dev/null @@ -1,1985 +0,0 @@ -export default { - version: '1.0.0', - packages: { - '@alifd/next': { - title: 'fusion组件库', - package: '@alifd/next', - version: '1.19.18', - urls: [ - 'https://unpkg.antfin-inc.com/@alife/next@1.19.18/dist/next.js', - 'https://unpkg.antfin-inc.com/@alife/next@1.19.18/dist/next.css' - ], - library: 'Next' - } - }, - components: { - Page: { - componentName: 'Page', - title: '页面', - configure: { - events: { - supportedLifecycles: [ - { - description: '初始化时', - name: 'constructor' - }, - { - description: '装载后', - name: 'componentDidMount' - }, - { - description: '更新时', - name: 'componentDidMount' - }, - { - description: '卸载时', - name: 'componentWillUnmount' - } - ] - }, - component: { - isContainer: true - } - } - }, - Div: { - componentName: 'Div', - title: '容器', - configure: { - component: { - isContainer: true - } - } - }, - Button: { - componentName: 'Button', - title: '按钮', - devMode: 'proCode', - npm: { - package: '@alifd/next', - version: '1.19.18', - destructuring: true, - exportName: 'Button' - }, - props: [ - { - name: 'prefix', - propType: 'string', - defaultValue: 'next-' - }, - { - name: 'rtl', - propType: 'bool' - }, - { - name: 'type', - propType: { - type: 'oneOf', - value: ['primary', 'secondary', 'normal'] - }, - description: '按钮的类型', - defaultValue: 'normal' - }, - { - name: 'size', - propType: { - type: 'oneOf', - value: ['small', 'medium', 'large'] - }, - description: '按钮的尺寸', - defaultValue: 'medium' - }, - { - name: 'iconSize', - propType: { - type: 'oneOf', - value: ['xxs', 'xs', 'small', 'medium', 'large', 'xl', 'xxl', 'xxxl'] - }, - description: '按钮中 Icon 的尺寸,用于替代 Icon 的默认大小' - }, - { - name: 'htmlType', - propType: { - type: 'oneOf', - value: ['submit', 'reset', 'button'] - }, - description: "当 component = 'button' 时,设置 button 标签的 type 值", - defaultValue: 'button' - }, - { - name: 'component', - propType: { - type: 'oneOf', - value: ['button', 'a', 'div', 'span'] - }, - description: '设置标签类型', - defaultValue: 'button' - }, - { - name: 'loading', - propType: 'bool', - description: '设置按钮的载入状态', - defaultValue: false - }, - { - name: 'ghost', - propType: { - type: 'oneOf', - value: [true, false, 'light', 'dark'] - }, - description: '是否为幽灵按钮', - defaultValue: false - }, - { - name: 'text', - propType: 'bool', - description: '是否为文本按钮', - defaultValue: false - }, - { - name: 'warning', - propType: 'bool', - description: '是否为警告按钮', - defaultValue: false - }, - { - name: 'disabled', - propType: 'bool', - description: '是否禁用', - defaultValue: false - }, - { - name: 'onClick', - propType: 'func', - description: '点击按钮的回调\n@param {Object} e Event Object' - }, - { - name: 'className', - propType: 'string' - }, - { - name: 'onMouseUp', - propType: 'func' - }, - { - name: 'children', - propType: 'node' - }, - { - name: 'style', - propType: 'object' - } - ], - }, - 'Button.Group': { - componentName: 'Button.Group', - title: '按钮组', - devMode: 'proCode', - npm: { - package: '@alifd/next', - version: '1.19.18', - destructuring: true, - exportName: 'Button', - subName: 'Group' - }, - props: [ - { - name: 'rtl', - propType: 'bool' - }, - { - name: 'prefix', - propType: 'string', - defaultValue: 'next-' - }, - { - name: 'size', - propType: 'string', - description: '统一设置 Button 组件的按钮大小', - defaultValue: 'medium' - }, - { - name: 'className', - propType: 'string' - }, - { - name: 'children', - propType: 'node' - } - ], - configure: { - component: { - isContainer: true, - nestingRule: { - childWhitelist: 'Button' - } - } - } - }, - Input: { - componentName: 'Input', - title: '输入框', - devMode: 'proCode', - npm: { - package: '@alifd/next', - version: '1.19.18', - destructuring: true, - exportName: 'Input' - }, - props: [ - { - name: 'label', - propType: 'node', - description: 'label' - }, - { - name: 'hasClear', - propType: 'bool', - description: '是否出现clear按钮' - }, - { - name: 'hasBorder', - propType: 'bool', - description: '是否有边框', - defaultValue: 'true' - }, - { - name: 'state', - propType: { - type: 'oneOf', - value: ['error', 'loading', 'success', 'warning'] - }, - description: '状态\n@enumdesc 错误, 校验中, 成功, 警告' - }, - { - name: 'size', - propType: { - type: 'oneOf', - value: ['small', 'medium', 'large'] - }, - description: '尺寸\n@enumdesc 小, 中, 大', - defaultValue: 'medium' - }, - { - name: 'onPressEnter', - propType: 'func', - description: '按下回车的回调', - defaultValue: 'func.noop' - }, - { - name: 'onClear', - propType: 'func' - }, - { - name: 'htmlType', - propType: 'string', - description: '原生type' - }, - { - name: 'htmlSize', - propType: 'string' - }, - { - name: 'hint', - propType: 'string', - description: '水印 (Icon的type类型,和hasClear占用一个地方)' - }, - { - name: 'innerBefore', - propType: 'node', - description: '文字前附加内容' - }, - { - name: 'innerAfter', - propType: 'node', - description: '文字后附加内容' - }, - { - name: 'addonBefore', - propType: 'node', - description: '输入框前附加内容' - }, - { - name: 'addonAfter', - propType: 'node', - description: '输入框后附加内容' - }, - { - name: 'addonTextBefore', - propType: 'node', - description: '输入框前附加文字' - }, - { - name: 'addonTextAfter', - propType: 'node', - description: '输入框后附加文字' - }, - { - name: 'autoComplete', - propType: 'string', - description: '(原生input支持)', - defaultValue: 'off' - }, - { - name: 'autoFocus', - propType: 'bool', - description: '自动聚焦(原生input支持)' - }, - { - name: 'inputRender', - propType: 'func', - defaultValue: 'el => el' - }, - { - name: 'extra', - propType: 'node' - }, - { - name: 'innerBeforeClassName', - propType: 'string' - }, - { - name: 'innerAfterClassName', - propType: 'string' - }, - { - name: 'isPreview', - propType: 'bool', - description: '是否为预览态', - defaultValue: 'false' - }, - { - name: 'renderPreview', - propType: 'func', - description: '预览态模式下渲染的内容\n@param {number} value 评分值' - } - ] - }, - Form: { - componentName: 'Form', - title: '表单容器', - devMode: 'proCode', - npm: { - package: '@alifd/next', - version: '1.19.18', - destructuring: true, - exportName: 'Form' - }, - props: [ - { - name: 'prefix', - propType: 'string', - description: '样式前缀', - defaultValue: 'next-' - }, - { - name: 'inline', - propType: 'bool', - description: '内联表单' - }, - { - name: 'size', - propType: { - type: 'oneOf', - value: ['large', 'medium', 'small'] - }, - description: - '单个 Item 的 size 自定义,优先级高于 Form 的 size, 并且当组件与 Item 一起使用时,组件自身设置 size 属性无效。\n@enumdesc 大, 中, 小', - defaultValue: 'medium' - }, - { - name: 'fullWidth', - propType: 'bool', - description: '单个 Item 中表单类组件宽度是否是100%' - }, - { - name: 'labelAlign', - propType: { - type: 'oneOf', - value: ['top', 'left', 'inset'] - }, - description: '标签的位置\n@enumdesc 上, 左, 内', - defaultValue: 'left' - }, - { - name: 'labelTextAlign', - propType: { - type: 'oneOf', - value: ['left', 'right'] - }, - description: '标签的左右对齐方式\n@enumdesc 左, 右' - }, - { - name: 'field', - propType: 'any', - description: 'field 实例, 传 false 会禁用 field' - }, - { - name: 'saveField', - propType: 'func', - description: '保存 Form 自动生成的 field 对象' - }, - { - name: 'labelCol', - propType: 'object', - description: '控制第一级 Item 的 labelCol' - }, - { - name: 'wrapperCol', - propType: 'object', - description: '控制第一级 Item 的 wrapperCol' - }, - { - name: 'onSubmit', - propType: 'func', - description: 'form内有 `htmlType="submit"` 的元素的时候会触发' - }, - { - name: 'children', - propType: 'any', - description: '子元素' - }, - { - name: 'className', - propType: 'string', - description: '扩展class' - }, - { - name: 'style', - propType: 'object', - description: '自定义内联样式' - }, - { - name: 'value', - propType: 'object', - description: '表单数值' - }, - { - name: 'onChange', - propType: 'func', - description: - '表单变化回调\n@param {Object} values 表单数据\n@param {Object} item 详细\n@param {String} item.name 变化的组件名\n@param {String} item.value 变化的数据\n@param {Object} item.field field 实例' - }, - { - name: 'component', - propType: { - type: 'oneOfType', - value: ['string', 'func'] - }, - description: '设置标签类型', - defaultValue: 'form' - }, - { - name: 'fieldOptions', - propType: 'object' - }, - { - name: 'rtl', - propType: 'bool' - }, - { - name: 'device', - propType: { - type: 'oneOf', - value: ['phone', 'tablet', 'desktop'] - }, - description: '预设屏幕宽度', - defaultValue: 'desktop' - }, - { - name: 'responsive', - propType: 'bool', - description: '是否开启内置的响应式布局 (使用ResponsiveGrid)' - }, - { - name: 'isPreview', - propType: 'bool', - description: '是否开启预览态' - } - ], - configure: { - component: { - isContainer: true - } - } - }, - 'Form.Item': { - componentName: 'Form.Item', - title: '表单项', - devMode: 'proCode', - npm: { - package: '@alifd/next', - version: '1.19.18', - destructuring: true, - exportName: 'Form', - subName: 'Item' - }, - props: [ - { - name: 'prefix', - propType: 'string', - description: '样式前缀', - defaultValue: 'next-' - }, - { - name: 'rtl', - propType: 'bool' - }, - { - name: 'label', - propType: 'node', - description: 'label 标签的文本' - }, - { - name: 'labelCol', - propType: 'object', - description: - 'label 标签布局,通 `` 组件,设置 span offset 值,如 {span: 8, offset: 16},该项仅在垂直表单有效' - }, - { - name: 'wrapperCol', - propType: 'object', - description: '需要为输入控件设置布局样式时,使用该属性,用法同 labelCol' - }, - { - name: 'help', - propType: 'node', - description: '自定义提示信息,如不设置,则会根据校验规则自动生成.' - }, - { - name: 'extra', - propType: 'node', - description: - '额外的提示信息,和 help 类似,当需要错误信息和提示文案同时出现时,可以使用这个。 位于错误信息后面' - }, - { - name: 'validateState', - propType: { - type: 'oneOf', - value: ['error', 'success', 'loading', 'warning'] - }, - description: '校验状态,如不设置,则会根据校验规则自动生成\n@enumdesc 失败, 成功, 校验中, 警告' - }, - { - name: 'hasFeedback', - propType: 'bool', - description: '配合 validateState 属性使用,是否展示 success/loading 的校验状态图标, 目前只有Input支持', - defaultValue: false - }, - { - name: 'style', - propType: 'object', - description: '自定义内联样式' - }, - { - name: 'id', - propType: 'string' - }, - { - name: 'children', - propType: { - type: 'oneOfType', - value: ['node', 'func'] - }, - description: 'node 或者 function(values)' - }, - { - name: 'size', - propType: { - type: 'oneOf', - value: ['large', 'small', 'medium'] - }, - description: - '单个 Item 的 size 自定义,优先级高于 Form 的 size, 并且当组件与 Item 一起使用时,组件自身设置 size 属性无效。' - }, - { - name: 'fullWidth', - propType: 'bool', - description: '单个 Item 中表单类组件宽度是否是100%' - }, - { - name: 'labelAlign', - propType: { - type: 'oneOf', - value: ['top', 'left', 'inset'] - }, - description: '标签的位置\n@enumdesc 上, 左, 内' - }, - { - name: 'labelTextAlign', - propType: { - type: 'oneOf', - value: ['left', 'right'] - }, - description: '标签的左右对齐方式\n@enumdesc 左, 右' - }, - { - name: 'className', - propType: 'string', - description: '扩展class' - }, - { - name: 'required', - propType: 'bool', - description: '[表单校验] 不能为空' - }, - { - name: 'asterisk', - propType: 'bool', - description: 'required 的星号是否显示' - }, - { - name: 'requiredMessage', - propType: 'string', - description: 'required 自定义错误信息' - }, - { - name: 'requiredTrigger', - propType: { - type: 'oneOfType', - value: ['string', 'array'] - }, - description: 'required 自定义触发方式' - }, - { - name: 'min', - propType: 'number', - description: '[表单校验] 最小值' - }, - { - name: 'max', - propType: 'number', - description: '[表单校验] 最大值' - }, - { - name: 'minmaxMessage', - propType: 'string', - description: 'min/max 自定义错误信息' - }, - { - name: 'minmaxTrigger', - propType: { - type: 'oneOfType', - value: ['string', 'array'] - }, - description: 'min/max 自定义触发方式' - }, - { - name: 'minLength', - propType: 'number', - description: '[表单校验] 字符串最小长度 / 数组最小个数' - }, - { - name: 'maxLength', - propType: 'number', - description: '[表单校验] 字符串最大长度 / 数组最大个数' - }, - { - name: 'minmaxLengthMessage', - propType: 'string', - description: 'minLength/maxLength 自定义错误信息' - }, - { - name: 'minmaxLengthTrigger', - propType: { - type: 'oneOfType', - value: ['string', 'array'] - }, - description: 'minLength/maxLength 自定义触发方式' - }, - { - name: 'length', - propType: 'number', - description: '[表单校验] 字符串精确长度 / 数组精确个数' - }, - { - name: 'lengthMessage', - propType: 'string', - description: 'length 自定义错误信息' - }, - { - name: 'lengthTrigger', - propType: { - type: 'oneOfType', - value: ['string', 'array'] - }, - description: 'length 自定义触发方式' - }, - { - name: 'pattern', - propType: 'any', - description: '正则校验' - }, - { - name: 'patternMessage', - propType: 'string', - description: 'pattern 自定义错误信息' - }, - { - name: 'patternTrigger', - propType: { - type: 'oneOfType', - value: ['string', 'array'] - }, - description: 'pattern 自定义触发方式' - }, - { - name: 'format', - propType: { - type: 'oneOf', - value: ['number', 'email', 'url', 'tel'] - }, - description: '[表单校验] 四种常用的 pattern' - }, - { - name: 'formatMessage', - propType: 'string', - description: 'format 自定义错误信息' - }, - { - name: 'formatTrigger', - propType: { - type: 'oneOfType', - value: ['string', 'array'] - }, - description: 'format 自定义触发方式' - }, - { - name: 'validator', - propType: 'func', - description: '[表单校验] 自定义校验函数' - }, - { - name: 'validatorTrigger', - propType: { - type: 'oneOfType', - value: ['string', 'array'] - }, - description: 'validator 自定义触发方式' - }, - { - name: 'autoValidate', - propType: 'bool', - description: '是否修改数据时自动触发校验' - }, - { - name: 'device', - propType: { - type: 'oneOf', - value: ['phone', 'tablet', 'desktop'] - }, - description: '预设屏幕宽度' - }, - { - name: 'responsive', - propType: 'bool' - }, - { - name: 'colSpan', - propType: 'number', - description: '在响应式布局模式下,表单项占多少列' - }, - { - name: 'labelWidth', - propType: { - type: 'oneOfType', - value: ['string', 'number'] - }, - description: '在响应式布局下,且label在左边时,label的宽度是多少', - defaultValue: 100 - }, - { - name: 'isPreview', - propType: 'bool', - description: '是否开启预览态' - }, - { - name: 'renderPreview', - propType: 'func', - description: '预览态模式下渲染的内容\n@param {any} value 根据包裹的组件的 value 类型而决定' - } - ], - configure: { - component: { - isContainer: true, - nestingRule: { - parentWhitelist: 'Form' - } - } - } - }, - NumberPicker: { - componentName: 'NumberPicker', - title: '数字输入', - devMode: 'proCode', - npm: { - package: '@alifd/next', - version: '1.19.18', - destructuring: true, - exportName: 'NumberPicker' - }, - props: [ - { - name: 'prefix', - propType: 'string', - description: '样式前缀', - defaultValue: 'next-' - }, - { - name: 'type', - propType: { - type: 'oneOf', - value: ['normal', 'inline'] - }, - description: '设置类型\n@enumdesc 普通, 内联', - defaultValue: 'normal' - }, - { - name: 'size', - propType: { - type: 'oneOf', - value: ['large', 'medium'] - }, - description: '大小', - defaultValue: 'medium' - }, - { - name: 'value', - propType: 'number', - description: '当前值' - }, - { - name: 'defaultValue', - propType: 'number', - description: '默认值' - }, - { - name: 'disabled', - propType: 'bool', - description: '是否禁用' - }, - { - name: 'step', - propType: { - type: 'oneOfType', - value: ['number', 'string'] - }, - description: '步长', - defaultValue: 1 - }, - { - name: 'precision', - propType: 'number', - description: '保留小数点后位数', - defaultValue: 0 - }, - { - name: 'editable', - propType: 'bool', - description: '用户是否可以输入', - defaultValue: true - }, - { - name: 'autoFocus', - propType: 'bool', - description: '自动焦点' - }, - { - name: 'onChange', - propType: 'func', - description: '数值被改变的事件\n@param {Number} value 数据\n@param {Event} e DOM事件对象' - }, - { - name: 'onKeyDown', - propType: 'func', - description: '键盘按下' - }, - { - name: 'onFocus', - propType: 'func', - description: '焦点获得' - }, - { - name: 'onBlur', - propType: 'func', - description: '焦点失去' - }, - { - name: 'onCorrect', - propType: 'func', - description: '数值订正后的回调\n@param {Object} obj {currentValue,oldValue:String}' - }, - { - name: 'onDisabled', - propType: 'func' - }, - { - name: 'max', - propType: 'number', - description: '最大值', - defaultValue: null - }, - { - name: 'min', - propType: 'number', - description: '最小值', - defaultValue: null - }, - { - name: 'className', - propType: 'string', - description: '自定义class' - }, - { - name: 'style', - propType: 'object', - description: '自定义内联样式' - }, - { - name: 'state', - propType: { - type: 'oneOf', - value: ['error'] - } - }, - { - name: 'format', - propType: 'func', - description: '格式化当前值\n@param {Number} value\n@return {String|Number}' - }, - { - name: 'upBtnProps', - propType: 'object', - description: '增加按钮的props' - }, - { - name: 'downBtnProps', - propType: 'object', - description: '减少按钮的props' - }, - { - name: 'label', - propType: 'node', - description: '内联 label' - }, - { - name: 'innerAfter', - propType: 'node', - description: 'inner after' - }, - { - name: 'rtl', - propType: 'bool' - }, - { - name: 'isPreview', - propType: 'bool', - description: '是否为预览态' - }, - { - name: 'renderPreview', - propType: 'func', - description: '预览态模式下渲染的内容\n@param {number} value 评分值' - }, - { - name: 'device', - propType: { - type: 'oneOf', - value: ['phone', 'tablet', 'desktop'] - }, - description: '预设屏幕宽度' - } - ] - }, - Select: { - componentName: 'Select', - title: '下拉', - devMode: 'proCode', - npm: { - package: '@alifd/next', - version: '1.19.18', - destructuring: true, - exportName: 'Select' - }, - props: [ - { - name: 'mode', - propType: { - type: 'oneOf', - value: ['single', 'multiple', 'tag'] - }, - description: '选择器模式', - defaultValue: 'single' - }, - { - name: 'value', - propType: 'any', - description: '当前值,用于受控模式' - }, - { - name: 'defaultValue', - propType: 'any', - description: '初始的默认值' - }, - { - name: 'onChange', - propType: 'func', - description: - "Select发生改变时触发的回调\n@param {*} value 选中的值\n@param {String} actionType 触发的方式, 'itemClick', 'enter', 'tag'\n@param {*} item 选中的值的对象数据 (useDetailValue=false有效)" - }, - { - name: 'dataSource', - propType: { - type: 'arrayOf', - value: { - type: 'oneOfType', - value: [ - { - type: 'shape', - value: [ - { - name: 'value', - propType: 'any' - }, - { - name: 'label', - propType: 'any' - }, - { - name: 'disabled', - propType: 'bool' - }, - { - name: 'children', - propType: 'array' - } - ] - }, - 'bool', - 'number', - 'string' - ] - } - }, - description: '传入的数据源,可以动态渲染子项,详见 [dataSource的使用](#dataSource的使用)' - }, - { - name: 'hasBorder', - propType: 'bool', - description: '是否有边框' - }, - { - name: 'hasArrow', - propType: 'bool', - description: '是否有下拉箭头', - defaultValue: true - }, - { - name: 'showSearch', - propType: 'bool', - description: '展开后是否能搜索(tag 模式下固定为true)', - defaultValue: false - }, - { - name: 'onSearch', - propType: 'func', - description: '当搜索框值变化时回调\n@param {String} value 数据' - }, - { - name: 'onSearchClear', - propType: 'func', - description: - "当搜索框值被清空时候的回调\n@param {String} actionType 触发的方式, 'select'(选择清空), 'popupClose'(弹窗关闭清空)" - }, - { - name: 'hasSelectAll', - propType: { - type: 'oneOfType', - value: ['bool', 'string'] - }, - description: '多选模式下是否有全选功能' - }, - { - name: 'fillProps', - propType: 'string', - description: '填充到选择框里的值的 key\b\b' - }, - { - name: 'useDetailValue', - propType: 'bool', - description: 'onChange 返回的 value 使用 dataSource 的对象' - }, - { - name: 'cacheValue', - propType: 'bool', - description: 'dataSource 变化的时是否保留已选的内容', - defaultValue: true - }, - { - name: 'valueRender', - propType: 'func', - description: - '渲染 Select 展现内容的方法\n@param {Object} item 渲染节点的item\n@return {ReactNode} 展现内容\n@default item => item.label \\|\\| item.value' - }, - { - name: 'itemRender', - propType: 'func', - description: - '渲染 MenuItem 内容的方法\n@param {Object} item 渲染节点的item\n@param {String} searchValue 搜索关键字(如果开启搜索)\n@return {ReactNode} item node' - }, - { - name: 'notFoundContent', - propType: 'node', - description: '弹层内容为空的文案' - }, - { - name: 'style', - propType: 'object' - }, - { - name: 'searchValue', - propType: 'string', - description: '受控搜索值,一般不需要设置\n@type {[type]}' - }, - { - name: 'tagInline', - propType: 'bool', - description: '是否一行显示,仅在 mode 为 multiple 的时候生效', - defaultValue: false - }, - { - name: 'maxTagCount', - propType: 'number', - description: '最多显示多少个 tag' - }, - { - name: 'maxTagPlaceholder', - propType: 'func', - description: - '隐藏多余 tag 时显示的内容,在 maxTagCount 生效时起作用\n@param {number} selectedValues 当前已选中的元素\n@param {number} totalValues 总待选元素' - }, - { - name: 'hiddenSelected', - propType: 'bool', - description: '选择后是否立即隐藏菜单 (mode=multiple/tag 模式生效)' - }, - { - name: 'onRemove', - propType: 'func', - description: 'tag 删除回调\n@param {object} item 渲染节点的item' - }, - { - name: 'onFocus', - propType: 'func', - description: '焦点事件' - }, - { - name: 'onBlur', - propType: 'func', - description: '失去焦点事件' - }, - { - name: 'onMouseEnter', - propType: 'func' - }, - { - name: 'onMouseLeave', - propType: 'func' - }, - { - name: 'onKeyDown', - propType: 'func' - }, - { - name: 'locale', - propType: 'object' - } - ], - configure: { - component: { - isContainer: true, - nestingRule: { - childWhitelist: 'Select.Option' - }, - rectSelector: '.next-select', - }, - props: [ - { - name: 'mode', - title: '选择器模式', - setter: { - componentName: 'RadioGroupSetter', - props: { - defaultValue: 'single', - dataSource: [ - { - value: 'single', - label: 'single' - }, - { - value: 'multiple', - label: 'multiple' - }, - { - value: 'tag', - label: 'tag' - } - ] - } - } - }, - { - name: 'mode', - title: '选择器模式', - setter: { - componentName: 'SelectSetter', - props: { - defaultValue: 'single', - dataSource: [ - { - value: 'single', - label: 'single' - }, - { - value: 'multiple', - label: 'multiple' - }, - { - value: 'tag', - label: 'tag' - } - ] - } - } - }, - { - name: 'value', - title: '受控值', - setter: 'StringSetter' - }, - { - name: 'hasBorder', - title: '是否有边框', - setter: { - componentName: 'BoolSetter', - props: { - defaultValue: true - } - } - }, - { - name: 'maxTagCount', - title: '最多显示多少个 tag', - setter: 'NumberSetter' - }, - { - name: 'maxTagCount', - title: '最多显示多少个 tag', - setter: 'ExpressionSetter' - }, - { - name: 'MixinSetter', - placeholder: '混合', - setter: { - componentName: 'MixinSetter', - props: { - types: [ - { - name: 'StringSetter', - // 当前mixin setter API - props: {} - }, - { - name: 'TextAreaSetter', - props: {} - }, - { - name: 'SelectSetter', - // 当前mixin setter API - props: { - hasClear: true, - dataSource: [ - { - label: '上', - value: 't' - }, - { - label: '右', - value: 'r' - }, - { - label: '下', - value: 'b' - }, - { - label: '左', - value: 'l' - } - ] - } - }, - { - name: 'NumberSetter', - props: {} - }, - { - name: 'BoolSetter', - props: {} - } - ], - defaultType: 'SelectSetter' - } - } - }, - { - type: 'group', - name: '扩展 Setter', - items: [ - { - name: 'TextAreaSetter', - setter: 'TextAreaSetter' - }, - { - name: 'date', - title: '测试日期', - setter: 'DateSetter' - }, - { - name: 'date', - title: '测试日期-年', - setter: 'DateYearSetter' - }, - { - name: 'date', - title: '测试日期-月', - setter: 'DateMonthSetter' - }, - { - name: 'date', - title: '测试日期-区间', - setter: 'DateRangeSetter' - } - ] - }, - { - type: 'group', - name: 'ArraySetter', - items: [ - { - name: 'arrayValue1', - title: '字符数组', - setter: { - componentName: 'ArraySetter', - props: { - itemSetter: { - componentName: 'StringSetter', - initialValue: '' - } - } - } - }, - { - name: 'arrayValue2', - title: '数字数组', - setter: { - componentName: 'ArraySetter', - props: { - itemSetter: { - componentName: 'NumberSetter', - initialValue: 0 - } - } - } - }, - { - name: 'arrayValue3', - title: '混合数组', - setter: { - componentName: 'ArraySetter', - props: { - itemSetter: { - componentName: 'MixinSetter', - props: { - types: [ - { - name: 'StringSetter', - // 当前mixin setter API - props: {} - }, - { - name: 'ExpressionSetter', - props: {} - }, - { - name: 'RadioGroupSetter', - // 当前mixin setter API - props: { - hasClear: true, - dataSource: [ - { - label: '上', - value: 't' - }, - { - label: '右', - value: 'r' - }, - { - label: '下', - value: 'b' - }, - { - label: '左', - value: 'l' - } - ] - } - } - ], - defaultType: 'SelectSetter' - } - } - } - } - }, - { - name: 'arrayValue4', - title: '对象数组', - setter: { - componentName: 'ArraySetter', - props: { - itemSetter: { - componentName: 'ObjectSetter', - props: { - config: { - items: [ - { - name: 'username', - title: '姓名', - setter: 'StringSetter', - important: true - }, - { - name: 'phone', - title: '电话', - setter: 'StringSetter', - important: true - }, - { - name: 'age', - title: '年龄', - setter: 'NumberSetter' - }, - { - name: 'married', - title: '婚否', - setter: 'BoolSetter' - }, - { - type: 'group', - title: 'work', - items: [ - { - name: 'job', - title: '工作岗位', - setter: { - componentName: 'SelectSetter', - props: { - dataSource: [ - { - label: '工程师', - value: 1 - }, - { - label: '高级工程师', - value: 2 - }, - { - label: '资深工程师', - value: 3 - } - ] - } - } - }, - { - name: 'address', - title: '工作地点', - setter: 'TextAreaSetter' - } - ] - } - ] - } - }, - initialValue: {} - } - } - } - }, - { - name: 'arrayValue5', - title: '对象数组', - setter: { - componentName: 'ArraySetter', - props: { - itemSetter: { - componentName: 'ObjectSetter', - props: { - config: { - items: [ - { - name: 'username', - title: '姓名', - setter: 'StringSetter', - important: true - }, - { - name: 'age', - title: '年龄', - setter: 'NumberSetter', - important: true - }, - { - name: 'married', - title: '婚否', - setter: 'BoolSetter', - important: true - }, - { - name: 'log', - title: '到访记录', - setter: { - componentName: 'ArraySetter', - props: { - itemSetter: 'StringSetter' - } - }, - important: true - }, - { - type: 'group', - title: 'work', - items: [ - { - name: 'job', - title: '工作岗位', - setter: { - componentName: 'SelectSetter', - props: { - dataSource: [ - { - label: '工程师', - value: 1 - }, - { - label: '高级工程师', - value: 2 - }, - { - label: '资深工程师', - value: 3 - } - ] - } - } - }, - { - name: 'address', - title: '工作地点', - setter: 'TextAreaSetter' - } - ] - } - ] - } - }, - initialValue: {} - }, - mode: 'popup' - } - } - } - ], - extraProps: { - defaultCollapsed: false - } - }, - { - type: 'group', - name: 'ObjectSetter', - items: [ - { - name: 'objectValue1', - title: '对象数据1', - setter: { - componentName: 'ObjectSetter', - props: { - config: { - items: [ - { - name: 'username', - title: '姓名', - setter: 'StringSetter', - important: true - }, - { - name: 'age', - title: '年龄', - setter: 'NumberSetter', - important: true - }, - { - name: 'married', - title: '婚否', - setter: 'BoolSetter', - important: true - }, - { - name: 'log', - title: '到访记录', - setter: { - componentName: 'ArraySetter', - props: { - itemSetter: 'StringSetter' - } - }, - important: true - }, - { - type: 'group', - title: 'work', - items: [ - { - name: 'job', - title: '工作岗位', - setter: { - componentName: 'SelectSetter', - props: { - dataSource: [ - { - label: '工程师', - value: 1 - }, - { - label: '高级工程师', - value: 2 - }, - { - label: '资深工程师', - value: 3 - } - ] - } - } - }, - { - name: 'address', - title: '工作地点', - setter: 'TextAreaSetter' - } - ] - } - ] - } - }, - initialValue: {} - } - }, - { - name: 'objectValue2', - title: '对象数据2', - setter: { - componentName: 'ObjectSetter', - props: { - mode: 'popup', - config: { - items: [ - { - name: 'username', - title: '姓名', - setter: 'StringSetter', - important: true - }, - { - name: 'age', - title: '年龄', - setter: 'NumberSetter', - important: true - }, - { - name: 'married', - title: '婚否', - setter: 'BoolSetter', - important: true - }, - { - name: 'log', - title: '到访记录', - setter: { - componentName: 'ArraySetter', - props: { - itemSetter: 'StringSetter' - } - }, - important: true - }, - { - type: 'group', - title: 'work', - items: [ - { - name: 'job', - title: '工作岗位', - setter: { - componentName: 'SelectSetter', - props: { - dataSource: [ - { - label: '工程师', - value: 1 - }, - { - label: '高级工程师', - value: 2 - }, - { - label: '资深工程师', - value: 3 - } - ] - } - } - }, - { - name: 'address', - title: '工作地点', - setter: 'TextAreaSetter' - } - ] - } - ] - } - }, - initialValue: {} - } - } - ] - } - ] - } - }, - 'Select.Option': { - componentName: 'Select.Option', - title: '选择项', - devMode: 'proCode', - npm: { - package: '@alifd/next', - version: '1.19.18', - destructuring: true, - exportName: 'Select', - subName: 'Option' - }, - props: [ - { - name: 'value', - propType: { - type: 'any', - isRequired: true - }, - description: '选项值' - }, - { - name: 'disabled', - propType: 'bool', - description: '是否禁用' - }, - { - name: 'children', - propType: 'any' - } - ], - configure: { - component: { - isContainer: true, - nestingRule: { - parentWhitelist: 'Select' - } - } - } - }, - Dialog: { - componentName: 'Dialog', - title: '弹窗', - devMode: 'proCode', - npm: { - package: '@alifd/next', - version: '1.19.18', - destructuring: true, - exportName: 'Dialog' - }, - props: [{ - name: 'title', - propType: 'string' - }], - configure: { - component: { - rectSelector: '.next-dialog' - } - } - } - }, - componentList: [ - { - title: '基础', - icon: '', - children: [ - { - componentName: 'Button', - title: '按钮', - icon: '', - package: '@alife/next', - libraryId: 2, - snippets: [ - { - title: 'private', - screenshot: 'https://img.alicdn.com/tfs/TB16gZhi.H1gK0jSZSyXXXtlpXa-192-144.png', - schema: { - componentName: 'Button', - props: { - type: 'primary' - }, - children: 'Primary' - } - }, - { - title: 'secondary', - screenshot: 'https://img.alicdn.com/tfs/TB11Hkji1H2gK0jSZFEXXcqMpXa-192-144.png', - schema: { - componentName: 'Button', - props: { - type: 'secondary' - }, - children: 'secondary' - } - }, - { - title: 'normal', - screenshot: '', - schema: { - componentName: 'Button', - props: { - type: 'normal' - }, - children: 'normal' - } - } - ] - } - ] - }, - { - title: '表单', - icon: '', - children: [ - { - componentName: 'Input', - libraryId: 2, - title: '输入框', - icon: '', - package: '@alife/next', - snippets: [ - { - title: '普通', - screenshot: '', - schema: { - componentName: 'Input', - props: {} - } - } - ] - }, - { - componentName: 'Select', - libraryId: 2, - title: '选择框', - icon: '', - package: '@alife/next', - snippets: [ - { - title: '默认', - screenshot: '', - schema: { - componentName: 'Select', - props: {} - } - } - ] - }, - { - componentName: 'NumberPicker', - libraryId: 2, - title: '数字', - icon: '', - package: '@alife/next', - snippets: [ - { - title: '默认', - screenshot: '', - schema: { - componentName: 'NumberPicker', - props: {} - } - } - ] - } - ] - }, - { - title: '其他', - icon: '', - children: [ - { - componentName: 'Div', - libraryId: 3, - title: '容器', - icon: '', - snippets: [ - { - title: '默认', - screenshot: '', - schema: { - componentName: 'Div', - props: {} - } - } - ] - }, - { - componentName: 'Dialog', - libraryId: 3, - title: '弹窗', - icon: '', - snippets: [ - { - title: '弹窗', - screenshot: '', - schema: { - componentName: 'Dialog', - props: { - title: '这是一个dialog', - visible: true - }, - children: [ - { - compoentName: 'Div' - } - ] - } - } - ] - } - ] - } - ] -}; diff --git a/packages/demo/src/config/components.js b/packages/demo/src/config/components.js index 4dcb82b9b..c933d7cd4 100644 --- a/packages/demo/src/config/components.js +++ b/packages/demo/src/config/components.js @@ -1,19 +1,18 @@ -import componentsPane from '@ali/lowcode-plugin-components-pane'; -import Settings from '../../../plugin-settings'; import undoRedo from '@ali/lowcode-plugin-undo-redo'; -import Designer from '../plugins/designer'; import logo from '@ali/lowcode-plugin-logo'; import save from '@ali/lowcode-plugin-save'; -import OutlineTree from '../../../plugin-outline-tree'; - +import Designer from '@ali/lowcode-plugin-designer'; +import SettingsPane from '@ali/lowcode-plugin-settings-pane'; +import componentsPane from '@ali/lowcode-plugin-components-pane'; +import OutlinePane from '@ali/lowcode-plugin-outline-pane'; import { PluginFactory } from '@ali/lowcode-editor-core'; export default { logo: PluginFactory(logo), save: PluginFactory(save), - designer: PluginFactory(Designer), - settings: PluginFactory(Settings), - outlineTree: PluginFactory(OutlineTree), undoRedo: PluginFactory(undoRedo), - componentsPane: PluginFactory(componentsPane) + designer: PluginFactory(Designer), + componentsPane: PluginFactory(componentsPane), + settingsPane: PluginFactory(SettingsPane), + OutlinePane: PluginFactory(OutlinePane), }; diff --git a/packages/demo/src/config/locale/en-US.js b/packages/demo/src/config/locale/en-US.js deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/demo/src/config/locale/en-US.js +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/demo/src/config/locale/index.js b/packages/demo/src/config/locale/index.js deleted file mode 100644 index f4ad6c5da..000000000 --- a/packages/demo/src/config/locale/index.js +++ /dev/null @@ -1,10 +0,0 @@ -import en_us from './en-US'; -import zh_cn from './zh-CN'; -import zh_tw from './zh-TW'; -import ja_jp from './ja-JP'; -export default { - 'en-US': en_us, - 'zh-CN': zh_cn, - 'zh-TW': zh_tw, - 'ja-JP': ja_jp -}; diff --git a/packages/demo/src/config/locale/ja-JP.js b/packages/demo/src/config/locale/ja-JP.js deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/demo/src/config/locale/ja-JP.js +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/demo/src/config/locale/zh-CN.js b/packages/demo/src/config/locale/zh-CN.js deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/demo/src/config/locale/zh-CN.js +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/demo/src/config/locale/zh-TW.js b/packages/demo/src/config/locale/zh-TW.js deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/demo/src/config/locale/zh-TW.js +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/demo/src/config/skeleton.js b/packages/demo/src/config/skeleton.js index 46fbd550f..edc38ff9e 100644 --- a/packages/demo/src/config/skeleton.js +++ b/packages/demo/src/config/skeleton.js @@ -79,7 +79,7 @@ export default { } }, { - pluginKey: 'outlineTree', + pluginKey: 'outlinePane', type: 'PanelIcon', props: { align: 'top', @@ -87,6 +87,7 @@ export default { title: '大纲树' }, config: { + package: '@ali/lowcode-plugin-outline-pane', version: '^1.0.0' }, pluginProps: {} @@ -94,7 +95,7 @@ export default { ], rightArea: [ { - pluginKey: 'settings', + pluginKey: 'settingsPane', type: 'Panel', props: {}, config: { diff --git a/packages/demo/src/index.tsx b/packages/demo/src/index.tsx index 37b7de293..67f7202ac 100644 --- a/packages/demo/src/index.tsx +++ b/packages/demo/src/index.tsx @@ -4,16 +4,16 @@ import Skeleton from '@ali/lowcode-editor-skeleton'; import config from './config/skeleton'; import components from './config/components'; import utils from './config/utils'; +import '@ali/lowcode-setters'; import './config/locale'; -import '../../plugin-setters'; import './global.scss'; import './config/theme.scss'; -const ICE_CONTAINER = document.getElementById('ice-container'); +const LCE_CONTAINER = document.getElementById('lce-container'); -if (!ICE_CONTAINER) { - throw new Error('当前页面不存在
节点.'); +if (!LCE_CONTAINER) { + throw new Error('当前页面不存在
节点.'); } -ReactDOM.render(, ICE_CONTAINER); +ReactDOM.render(, LCE_CONTAINER); diff --git a/packages/demo/src/plugins/designer/index.scss b/packages/demo/src/plugins/designer/index.scss deleted file mode 100644 index 395bb8961..000000000 --- a/packages/demo/src/plugins/designer/index.scss +++ /dev/null @@ -1,4 +0,0 @@ -.lowcode-plugin-designer { - width: 100%; - height: 100%; -} diff --git a/packages/demo/src/plugins/designer/index.tsx b/packages/demo/src/plugins/designer/index.tsx deleted file mode 100644 index 52be98ec1..000000000 --- a/packages/demo/src/plugins/designer/index.tsx +++ /dev/null @@ -1,213 +0,0 @@ -import React, { PureComponent } from 'react'; - -import Editor from '@ali/lowcode-editor-core'; -import { PluginConfig } from '@ali/lowcode-editor-core/lib/definitions'; -import assets from '../../config/assets'; -// @ts-ignore -import Designer from '../../../../designer'; - -import './index.scss'; - -export interface PluginProps { - editor: Editor; - config: PluginConfig; -} - -const SCHEMA = { - version: '1.0', - componentsMap: [], - componentsTree: [ - { - componentName: 'Page', - fileName: 'test', - dataSource: { - list: [] - }, - state: { - text: 'outter' - }, - props: { - ref: 'outterView', - autoLoading: true, - style: { - padding: 20 - } - }, - children: [ - { - componentName: 'Form', - props: { - labelCol: 3, - style: {}, - ref: 'testForm' - }, - children: [ - { - componentName: 'Form.Item', - props: { - label: '姓名:', - name: 'name', - initValue: '李雷' - }, - children: [ - { - componentName: 'Input', - props: { - placeholder: '请输入', - size: 'medium', - style: { - width: 320 - } - } - } - ] - }, - { - componentName: 'Form.Item', - props: { - label: '年龄:', - name: 'age', - initValue: '22' - }, - children: [ - { - componentName: 'NumberPicker', - props: { - size: 'medium', - type: 'normal' - } - } - ] - }, - { - componentName: 'Form.Item', - props: { - label: { - type: 'JSSlot', - value: { - componentName: 'Div', - children: '职业:', - } - }, - name: 'profession' - }, - children: [ - { - componentName: 'Select', - props: { - dataSource: [ - { - label: '教师', - value: 't' - }, - { - label: '医生', - value: 'd' - }, - { - label: '歌手', - value: 's' - } - ] - } - } - ] - }, - { - componentName: 'Div', - props: { - style: { - textAlign: 'center' - } - }, - children: [ - { - componentName: 'Button.Group', - props: {}, - children: [ - { - componentName: 'Button', - props: { - type: 'primary', - style: { - margin: '0 5px 0 5px' - }, - htmlType: 'submit' - }, - children: '提交', - condition: true, - loop: [1,2,3], - conditionGroup: '1' - }, - { - componentName: 'Button', - props: { - type: 'normal', - style: { - margin: '0 5px 0 5px' - }, - htmlType: 'reset' - }, - children: '重置', - condition: false, - conditionGroup: '1' - } - ] - } - ] - } - ] - } - ] - } - ] -}; - -export default class DesignerPlugin extends PureComponent { - displayName: 'LowcodePluginDesigner'; - - componentDidMount(): void { - const { editor } = this.props; - editor.on('schema.reset', this.handleSchemaReset); - } - - componentWillUmount(): void { - const { editor } = this.props; - editor.off('schema.reset', this.handleSchemaReset); - } - - handleSchemaReset = (schema: object): void => { - // const {editor} = this.props; - // if (this.designer) { - // this.designer.setSchema(schema); - // } else { - // editor.once('designer.ready', (designer): void => { - // designer.setSchema(schema); - // }); - // } - }; - - handleDesignerMount = (designer): void => { - const { editor } = this.props; - this.designer = designer; - editor.set('designer', designer); - editor.emit('designer.ready', designer); - }; - - render(): React.ReactNode { - const { editor } = this.props; - // const assets = editor.get('assets') || {}; - return ( - - ); - } -} diff --git a/packages/demo/statics/assets.json b/packages/demo/statics/assets.json deleted file mode 100644 index 97d2ded1a..000000000 --- a/packages/demo/statics/assets.json +++ /dev/null @@ -1,1082 +0,0 @@ -{ - "errorLevel": "", - "errorMsg": "", - "content": { - "externals": [ - { - "urls": ["https://unpkg.alibaba-inc.com/jquery@3.4.1"], - "library": "jQuery", - "packageName": "jquery", - "version": "3.4.1" - }, - { - "urls": ["https://g.alicdn.com/code/lib/moment.js/2.24.0/moment.js"], - "library": "moment", - "packageName": "moment", - "version": "2.24.0" - }, - { - "urls": ["https://unpkg.alibaba-inc.com/classnames@2.2.6"], - "library": "classNames", - "packageName": "classnames", - "version": "2.2.6" - }, - { - "urls": ["https://unpkg.alibaba-inc.com/lodash@4.17.15"], - "library": "_", - "packageName": "lodash", - "version": "4.17.15" - }, - { - "urls": [ - "https://unpkg.alibaba-inc.com/@alifd/next@1.18.17/dist/next.min.js", - "https://unpkg.alibaba-inc.com/@alifd/next@1.18.17/dist/next.min.css" - ], - "library": "Next", - "packageName": "@alifd/next", - "version": "1.18.17" - } - ], - "systemType": "", - "componentDependencies": [ - { - "prototypeViewsUrl": ["https://dev.g.alicdn.com/limitless/vision-specs-uxcore/0.1.2/views.js"], - "alias": "", - "prototypeConfigsUrl": ["https://dev.g.alicdn.com/limitless/vision-specs-uxcore/0.1.2/configs.js"], - "urls": [ - "https://g.alicdn.com/mylib/@ali/deep-umd/1.1.0/deep.js", - "https://g.alicdn.com/mylib/@ali/deep-umd/1.1.0/deep.css", - "https://g.alicdn.com/mylib/uxcore/0.22.16/build/uxcore.min.js", - "https://g.alicdn.com/mylib/uxcore/0.22.16/assets/orange.min.css", - "https://g.alicdn.com/platform/c/??lodash/4.6.1/lodash.min.js,highcharts/5.0.12/highcharts.js,highcharts/5.0.12/highcharts-more.js,highcharts/5.0.12/modules/map.js,highcharts/5.0.12/modules/funnel.js,natty-storage/2.0.2/dist/natty-storage.min.js,natty-fetch/2.6.0/dist/natty-fetch.pc.min.js,tinymce/4.2.5/tinymce-full.js" - ], - "library": "Deep", - "components": [ - { - "snippets": [ - { - "code": "\n \n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/6017e204fa1e-48fd-955d-8f5062c5c878.png", - "label": "贴顶容器" - } - ], - "description": "Affix", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Affix", "version": "1.17.2" }, - "componentName": "Affix", - "title": "Affix", - "category": "Util" - }, - { - "snippets": [ - { - "code": "\n \n", - "screenshot": "https://img.alicdn.com/tfs/TB1pD3ajYH1gK0jSZFwXXc7aXXa-282-122.png", - "label": "自定义徽记" - }, - { - "code": "\n \n", - "screenshot": "https://img.alicdn.com/tfs/TB1I6Y_j.T1gK0jSZFhXXaAtVXa-298-122.png", - "label": "红点徽记" - } - ], - "description": "Badge", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Badge", "version": "1.17.2" }, - "componentName": "Badge", - "title": "Badge", - "category": "DataDisplay" - }, - { - "snippets": [ - { - "code": "click} triggerType=\"click\">\n
\n 内容\n
\n
", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/925370d9e36e-4d1a-89c0-0f89e8386a68.png", - "label": "气泡" - } - ], - "description": "Balloon", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Balloon", "version": "1.17.2" }, - "componentName": "Balloon", - "title": "Balloon", - "category": "Feedback" - }, - { - "snippets": [ - { - "code": "\n \n \n \n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/fb0e6543eadd-4f99-b99a-4c4a869c777b.png", - "label": "Banner容器" - } - ], - "description": "BannerContainer", - "npm": { - "package": "@ali/deep", - "destructuring": true, - "exportName": "BannerContainer", - "version": "1.17.2" - }, - "componentName": "BannerContainer", - "title": "BannerContainer", - "category": "Util" - }, - { - "snippets": [ - { - "code": "\n Home\n All Categories\n Women’s Clothing\n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/96a92d99cec3-4a1f-8b49-dc091bd993d3.png", - "label": "面包屑" - } - ], - "description": "Breadcrumb", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Breadcrumb", "version": "1.17.2" }, - "componentName": "Breadcrumb", - "title": "Breadcrumb", - "category": "Navigation" - }, - { - "snippets": [ - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/8034dcfc92dd-44f2-9782-88baeda2bdc8.png", - "label": "主按钮" - }, - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/0164f9e7dd4d-4a95-a484-8bfef42a92d7.png", - "label": "次要按钮" - }, - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/b35f3a77c251-4347-8f49-790b7c4c46c1.png", - "label": "普通按钮" - }, - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/d15e5e25632d-42de-b2d8-6ec2769c0b42.png", - "label": "警告按钮" - }, - { - "code": "\n \n \n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/fd02c6a2acf2-496c-aa8f-b98e83e6e89b.png", - "label": "按钮组" - } - ], - "description": "Button", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Button", "version": "1.17.2" }, - "componentName": "Button", - "title": "Button", - "category": "General" - }, - { - "snippets": [ - { - "code": " {return 'date'}} monthCellRender={(date) => {return 'month'}} />", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/1ef89042a1c8-4f83-82fd-f4de24e8d9e4.png", - "label": "自定义月日历" - }, - { - "code": " {}} />", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/b864c57e4fb9-48fd-9ef6-de643cc09c1b.png", - "label": "普通月日历" - }, - { - "code": " {}} shape=\"card\" />", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/b1fac4eb51ad-46f9-b07d-8f5e031a9915.png", - "label": "卡片月日历" - } - ], - "description": "Calendar", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Calendar", "version": "1.17.2" }, - "componentName": "Calendar", - "title": "Calendar", - "category": "DataDisplay" - }, - { - "snippets": [ - { - "code": "\n
卡片内容
\n
", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/272ad28ee183-4808-bfbc-14157289468c.png", - "label": "卡片" - }, - { - "code": "\n \"father\n
\n

Father's Day

\n

Thank you, papa

\n
\n
", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/80df2b0b5fff-4585-ac7c-b961967a3e25.png", - "label": "自定义样式" - } - ], - "description": "Card", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Card", "version": "1.17.2" }, - "componentName": "Card", - "title": "Card", - "category": "DataDisplay" - }, - { - "snippets": [ - { - "code": " {}}\n/>", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/646456c40079-4037-8572-be15d0631d37.png", - "label": "级联面板" - } - ], - "description": "Cascader", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Cascader", "version": "1.17.2" }, - "componentName": "Cascader", - "title": "Cascader", - "category": "DataDisplay" - }, - { - "snippets": [ - { - "code": " {}}\n/>", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/5e68c27d5a4e-47d6-8cf1-643c8caae23e.png", - "label": "级联选择" - } - ], - "description": "CascaderSelect", - "npm": { - "package": "@ali/deep", - "destructuring": true, - "exportName": "CascaderSelect", - "version": "1.17.2" - }, - "componentName": "CascaderSelect", - "title": "CascaderSelect", - "category": "DataEntry" - }, - { - "snippets": [ - { - "code": "\n React\n Vue\n Angular\n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/347e2f1ba65e-4051-817b-b539a81114f4.png", - "label": "竖直复选框" - }, - { - "code": "\n React\n Vue\n Angular\n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/d2c8abeb3c13-4684-950e-d5b1094a872c.png", - "label": "水平复选框" - } - ], - "description": "Checkbox", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Checkbox", "version": "1.17.2" }, - "componentName": "Checkbox", - "title": "Checkbox", - "category": "DataEntry" - }, - { - "snippets": [ - { - "code": "\n \n
    \n
  • Promotions are marketing campaigns ran by Marketplace
  • \n
  • Participate to sale your products during that promotion and make a profit
  • \n
\n
\n
", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/c2055b9ba1f3-4e29-8d5a-b41cb99ef5f0.png", - "label": "折叠面板" - } - ], - "description": "Collapse", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Collapse", "version": "1.17.2" }, - "componentName": "Collapse", - "title": "Collapse", - "category": "DataDisplay" - }, - { - "snippets": [ - { - "code": "
", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/59287b350f80-424d-882c-869c2e93c36a.png", - "label": "块级容器( div )" - }, - { - "code": "

", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/7b7a5d895232-4a2d-b418-689422b45851.png", - "label": "块级容器( p )" - }, - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/3accf919aaf6-4d8c-9100-a479cfa065d7.png", - "label": "行内容器(span)" - } - ], - "description": "Container", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Container", "version": "1.17.2" }, - "componentName": "Container", - "title": "Container", - "category": "General" - }, - { - "snippets": [ - { - "code": " console.log(val)} />", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/96979bf43937-4cc2-9afc-6573d416b1e4.png", - "label": "日期选择" - } - ], - "description": "DatePicker", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "DatePicker", "version": "1.17.2" }, - "componentName": "DatePicker", - "title": "DatePicker", - "category": "DataEntry" - }, - { - "snippets": [ - { - "code": "Customize footer}\n visible={true}\n>\n Start your business here by searching a popular product\n", - "screenshot": "https://img.alicdn.com/tfs/TB1Lg7wjbY1gK0jSZTEXXXDQVXa-356-167.png", - "label": "定制底部" - }, - { - "code": " {}}\n onCancel={() => {}}\n onClose={() => {}}>\n Start your business here by searching a popular product\n", - "screenshot": "https://img.alicdn.com/tfs/TB1rRMwjkT2gK0jSZFkXXcIQFXa-359-175.png", - "label": "普通对话框" - } - ], - "description": "Dialog", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Dialog", "version": "1.17.2" }, - "componentName": "Dialog", - "title": "Dialog", - "category": "Feedback" - }, - { - "snippets": [ - { - "code": "\n Start your business here by searching a popular product\n", - "screenshot": "https://img.alicdn.com/tfs/TB1QIExjbj1gK0jSZFOXXc7GpXa-401-228.png", - "label": "抽屉组件" - } - ], - "description": "Drawer", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Drawer", "version": "1.17.2" }, - "componentName": "Drawer", - "title": "Drawer", - "category": "Feedback" - }, - { - "snippets": [ - { - "code": "Hello dropdown} triggerType={[\"click\", \"hover\"]} afterOpen={() => console.log('after open')}>\n

\n Option 1\n Option 2\n Option 3\n Option 4\n \n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/fd8fc78a550e-4aa1-912f-063f6cab9221.png", - "label": "下拉浮层" - } - ], - "description": "Dropdown", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Dropdown", "version": "1.17.2" }, - "componentName": "Dropdown", - "title": "Dropdown", - "category": "Util" - }, - { - "snippets": [ - { - "code": " {\n console.info('onChange', value);\n }}\n/>", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/e659e7994e51-409a-ac83-d22e5d49ec79.png", - "label": "人员搜索" - } - ], - "description": "EmployeeSearch", - "npm": { - "package": "@ali/deep", - "destructuring": true, - "exportName": "EmployeeSearch", - "version": "1.17.2" - }, - "componentName": "EmployeeSearch", - "title": "EmployeeSearch", - "category": "Util" - }, - { - "snippets": [ - { - "code": "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/a3d963c917ae-4842-9cb7-9479f92e37e3.png", - "label": "过滤表单" - } - ], - "description": "Filter", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Filter", "version": "1.17.2" }, - "componentName": "Filter", - "title": "Filter", - "category": "DataEntry" - }, - { - "snippets": [ - { - "code": "
\n \n \n \n \n \n \n \n Agree\n \n \n {}} type='primary'>登 录\n \n
", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/c4794e01e320-41ed-a6ca-1ec1807cd870.png", - "label": "垂直布局" - }, - { - "code": "
\n \n \n \n \n \n \n \n Agree\n \n \n {}} type='primary'>登 录\n \n
", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/bf1be4fb0ee1-4701-bd2a-953c0b269ea8.png", - "label": "水平布局" - }, - { - "code": "\n \n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/f0aca8768c4c-488c-a9ea-83fca2d76d7f.png", - "label": "InputField" - }, - { - "code": "\n \n", - "screenshot": "https://img.alicdn.com/tfs/TB1MV60jWL7gK0jSZFBXXXZZpXa-420-168.png", - "label": "SelectField" - }, - { - "code": "\n {}} size=\"small\" />\n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/1b691b020b9b-4c0d-a20c-6ed989a95bc8.png", - "label": "SwitchField" - }, - { - "code": "\n \n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/57864796dc82-40d6-8bdb-e4a972d046a6.png", - "label": "TextAreaField" - }, - { - "code": "\n {}}/>\n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/2367ec669891-4cec-af16-3844c0259fff.png", - "label": "NumberPickedField" - }, - { - "code": "\n {}}\n >\n Normal\n Button\n \n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/346e34ada913-4431-b21b-23671e51e4f9.png", - "label": "RadioField" - }, - { - "code": "\n {}}\n >\n Normal\n Button\n \n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/d3a55146b060-4329-90d0-81a55aa59d8a.png", - "label": "CheckboxField" - }, - { - "code": "\n console.log(val)} />\n", - "screenshot": "https://img.alicdn.com/tfs/TB1vHj5j7Y2gK0jSZFgXXc5OFXa-496-172.png", - "label": "TimePickerField" - }, - { - "code": "\n console.log(val)} />\n", - "screenshot": "https://img.alicdn.com/tfs/TB1aD24j1H2gK0jSZFEXXcqMpXa-504-170.png", - "label": "DatePickerField" - }, - { - "code": "\n {}} />\n", - "screenshot": "https://img.alicdn.com/tfs/TB1Otz5j7L0gK0jSZFxXXXWHVXa-654-162.png", - "label": "CascaderSelectField" - }, - { - "code": "\n \n", - "screenshot": "https://img.alicdn.com/tfs/TB10sn5j.T1gK0jSZFhXXaAtVXa-526-182.png", - "label": "RangeField" - }, - { - "code": "\n console.log('change:', val)} onHoverChange={val => console.log('hover:', val)} />\n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/ef69d4f104fd-49b9-a075-b5cc03c8b4ec.png", - "label": "RatingField" - }, - { - "code": "\n \n \n \n", - "screenshot": "https://img.alicdn.com/tfs/TB1yij9j.Y1gK0jSZFCXXcwqXXa-490-204.png", - "label": "UploadFileField" - }, - { - "code": "\n \n \n \n", - "screenshot": "https://img.alicdn.com/tfs/TB16Jf.jYj1gK0jSZFuXXcrHpXa-912-334.png", - "label": "UploadImageField" - }, - { - "code": "\n {}} style={{ width: 200 }}>\n \n \n \n \n \n \n \n \n \n \n", - "screenshot": "https://img.alicdn.com/tfs/TB1rDEXjW61gK0jSZFlXXXDKFXa-528-192.png", - "label": "TreeSelectField" - }, - { - "code": "\n {}} titles={['Title', 'Title']} />\n", - "screenshot": "https://img.alicdn.com/tfs/TB1JD7XjYH1gK0jSZFwXXc7aXXa-974-578.png", - "label": "TransferField" - } - ], - "description": "Form", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Form", "version": "1.17.2" }, - "componentName": "Form", - "title": "Form", - "category": "DataEntry" - }, - { - "snippets": [ - { - "code": "\n col-24\n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/5327054a3e17-460f-93e6-d049b988f058.png", - "label": "一列栅格" - }, - { - "code": "\n col-12\n col-12\n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/554718b6a306-40d1-9053-6e219236dd64.png", - "label": "两列栅格" - }, - { - "code": "\n col-8\n col-8\n col-8\n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/a3f20ad98fe4-4239-891f-81064e23cb4b.png", - "label": "三列栅格" - } - ], - "description": "Grid", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Grid", "version": "1.17.2" }, - "componentName": "Grid", - "title": "Grid", - "category": "General" - }, - { - "snippets": [ - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/5d9fad2badf5-4201-a13f-51292d2c9e53.png", - "label": "图标" - } - ], - "description": "Icon", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Icon", "version": "1.17.2" }, - "componentName": "Icon", - "title": "Icon", - "category": "General" - }, - { - "snippets": [ - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/1829cf9de81f-4edc-994c-8dfa6c0a77bd.png", - "label": "模块缺省" - }, - { - "code": "
\n 返回} />\n
", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/fa23fe8d62ee-4f9e-b65c-0b330f1cb503.png", - "label": "整页缺省" - } - ], - "description": "Illustration", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Illustration", "version": "1.17.2" }, - "componentName": "Illustration", - "title": "Illustration", - "category": "Util" - }, - { - "snippets": [ - { - "code": "{ console.log(1) }}\n/>", - "screenshot": "https://img.alicdn.com/tfs/TB17hf6jED1gK0jSZFGXXbd3FXa-526-201.png", - "label": "图片预览" - } - ], - "description": "ImageViewer", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "ImageViewer", "version": "1.17.2" }, - "componentName": "ImageViewer", - "title": "ImageViewer", - "category": "Util" - }, - { - "snippets": [ - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/1eb8bd84ada7-4749-b05c-2202303c583a.png", - "label": "普通文本框" - }, - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/8c2d24fd4aad-4041-8563-a163d1926bd5.png", - "label": "自定义文本框" - } - ], - "description": "Input", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Input", "version": "1.17.2" }, - "componentName": "Input", - "title": "Input", - "category": "DataEntry" - }, - { - "snippets": [ - { - "code": "\n
test
\n
", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/69177456b4ec-4481-b674-e3816a91be80.png", - "label": "加载中" - } - ], - "description": "Loading", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Loading", "version": "1.17.2" }, - "componentName": "Loading", - "title": "Loading", - "category": "Feedback" - }, - { - "snippets": [ - { - "code": "\n Option 1\n Disabled option 2\n \n Sub option 1\n Sub option 2\n \n \n Group option 1\n Group option 2\n \n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/57b687a9c817-41f6-a8ac-f48c539936b2.png", - "label": "竖直菜单" - }, - { - "code": "\n First\n Second\n \n Sub option 1\n Sub option 2\n \n Sub sub option 1\n Sub sub option 2\n \n \n \n Sub option 1\n Sub option 2\n \n Sub sub option 1\n Sub sub option 2\n \n \n Third\n ", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/4d84204cf205-445b-8281-2ddbf0d5f3e8.png", - "label": "水平菜单" - } - ], - "description": "Menu", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Menu", "version": "1.17.2" }, - "componentName": "Menu", - "title": "Menu", - "category": "DataDisplay" - }, - { - "snippets": [ - { - "code": "
\n下拉按钮 \n下拉按钮 \n下拉按钮 \n
", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/a943a90f5253-4a91-b40e-1aa01c13212d.png", - "label": "菜单按钮" - }, - { - "code": "{}}>\n Undo\n Redo\n \n \n Cut\n Copy\n Paste\n \n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/a13bfffaa3a3-4ee0-bf55-cdcd1e601c1e.png", - "label": "菜单按钮组" - } - ], - "description": "MenuButton", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "MenuButton", "version": "1.17.2" }, - "componentName": "MenuButton", - "title": "MenuButton", - "category": "General" - }, - { - "snippets": [ - { - "code": "
\n\n Content Content Content Content\n\n\n Content Content Content Content\n \n \n Content Content Content Content\n \n \n Content Content Content Content\n \n
", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/8e764eb4ba18-4edf-9e5b-2d7828d3905a.png", - "label": "信息提示" - } - ], - "description": "Message", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Message", "version": "1.17.2" }, - "componentName": "Message", - "title": "Message", - "category": "Feedback" - }, - { - "snippets": [ - { - "code": " {}}>\n 张三\n", - "screenshot": "https://img.alicdn.com/tfs/TB1qLGsjUH1gK0jSZSyXXXtlpXa-796-330.png", - "label": "人员名片" - } - ], - "description": "NameCard", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "NameCard", "version": "1.17.2" }, - "componentName": "NameCard", - "title": "NameCard", - "category": "Util" - }, - { - "snippets": [ - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/6f85786c724b-4595-9841-1eefbe480b4e.png", - "label": "消息通知" - } - ], - "description": "Notification", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Notification", "version": "1.17.2" }, - "componentName": "Notification", - "title": "Notification", - "category": "Feedback" - }, - { - "snippets": [ - { - "code": " {}}/>", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/8d57ba6439de-46e4-9de4-a19522d396b8.png", - "label": "数字选择" - } - ], - "description": "NumberPicker", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "NumberPicker", "version": "1.17.2" }, - "componentName": "NumberPicker", - "title": "NumberPicker", - "category": "DataEntry" - }, - { - "snippets": [ - { - "code": "操作}\nextraContent={
其它内容
}\nsubContent={
ContentComponent
}\n logo={\"\"/}\n device={'pc'}\n prefix={'deep'}\ncrumb={\n Home\n All Categories\n Women’s Clothing\n Blouses & Shirts\n \n T-shirts  78,999 Results\n \n }\n containerWidth=\"800\"\n/>", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/6257ce18e7b5-4897-8dd9-434d21f6f4d9.png", - "label": "页头" - } - ], - "description": "PageHeader", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "PageHeader", "version": "1.17.2" }, - "componentName": "PageHeader", - "title": "PageHeader", - "category": "Util" - }, - { - "snippets": [ - { - "code": " {console.log(value)}} total={50} />", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/54f50b09c869-4c47-933c-f21421b6bb74.png", - "label": "普通分页" - }, - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/581cc577608d-4ad2-a8f5-941d26409ea2.png", - "label": "上下翻页" - }, - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/4cb5c1c15af9-4506-9b1a-8512269ade42.png", - "label": "迷你分页" - } - ], - "description": "Pagination", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Pagination", "version": "1.17.2" }, - "componentName": "Pagination", - "title": "Pagination", - "category": "Navigation" - }, - { - "snippets": [ - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/1c4732b8c315-48f4-b5db-c3b5f4e62a92.png", - "label": "水平进度条" - }, - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/04781fc69afe-4601-982e-17ad6eba9a1d.png", - "label": "环形进度条" - } - ], - "description": "Progress", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Progress", "version": "1.17.2" }, - "componentName": "Progress", - "title": "Progress", - "category": "DataDisplay" - }, - { - "snippets": [ - { - "code": "\n React\n Vue\n Angular\n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/db93145c9c06-43b0-9486-cf091c20b8a8.png", - "label": "按钮型单选" - }, - { - "code": "\n React\n Vue\n Angular\n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/0e13d4a87861-4f40-8ad6-39816438f8f6.png", - "label": "普通单选" - } - ], - "description": "Radio", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Radio", "version": "1.17.2" }, - "componentName": "Radio", - "title": "Radio", - "category": "DataEntry" - }, - { - "snippets": [ - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/6d84710441c8-4f0f-8994-bef498a98b2f.png", - "label": "普通区间" - }, - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/ed4d5d66a773-4d5b-8a52-349ddb176abd.png", - "label": "tip提示区间" - }, - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/fb49ea2e52d5-49c9-bd1e-7304d1d31aba.png", - "label": "双控制按钮区间" - } - ], - "description": "Range", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Range", "version": "1.17.2" }, - "componentName": "Range", - "title": "Range", - "category": "DataEntry" - }, - { - "snippets": [ - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/72c283de9965-476b-8be0-93447ed2b2bd.png", - "label": "评价" - } - ], - "description": "Rating", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Rating", "version": "1.17.2" }, - "componentName": "Rating", - "title": "Rating", - "category": "DataEntry" - }, - { - "snippets": [ - { - "code": " {}} style={{width: '400px'}}/>", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/fb91105ed65d-4e10-9036-43aee1c7ace1.png", - "label": "搜索框" - } - ], - "description": "Search", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Search", "version": "1.17.2" }, - "componentName": "Search", - "title": "Search", - "category": "DataEntry" - }, - { - "snippets": [ - { - "code": "", - "screenshot": "https://img.alicdn.com/tfs/TB1NadEka61gK0jSZFlXXXDKFXa-738-186.png", - "label": "下拉选择器(标签模式)" - }, - { - "code": "", - "screenshot": "https://img.alicdn.com/tfs/TB12tXDkbY1gK0jSZTEXXXDQVXa-706-174.png", - "label": "下拉选择器" - } - ], - "description": "Select", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Select", "version": "1.17.2" }, - "componentName": "Select", - "title": "Select", - "category": "DataEntry" - }, - { - "snippets": [ - { - "code": "", - "screenshot": "https://img.alicdn.com/tfs/TB1fhqsjUH1gK0jSZSyXXXtlpXa-2878-174.png", - "label": "导航框架" - } - ], - "description": "Shell", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Shell", "version": "1.17.2" }, - "componentName": "Shell", - "title": "Shell", - "category": "Util" - }, - { - "snippets": [ - { - "code": "\n
{''}
\n
{''}
\n
{''}
\n
{''}
\n
", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/22555a656d0d-497a-8394-ef22aa1a2c67.png", - "label": "轮播图" - }, - { - "code": "\n

1

\n

2

\n

3

\n

4

\n

5

\n

6

\n

7

\n
", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/650c1029d06d-4abf-b621-234819a90eed.png", - "label": "轮播组图" - } - ], - "description": "Slider", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Slider", "version": "1.17.2" }, - "componentName": "Slider", - "title": "Slider", - "category": "DataDisplay" - }, - { - "snippets": [ - { - "code": "分隔按钮", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/41541c9a6f3c-435d-beb9-8ab4ac2204dd.png", - "label": "分隔按钮" - }, - { - "code": "分隔按钮", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/612bc8f052f9-49c7-85a9-3066468c39ce.png", - "label": "主分隔按钮" - } - ], - "description": "SplitButton", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "SplitButton", "version": "1.17.2" }, - "componentName": "SplitButton", - "title": "SplitButton", - "category": "General" - }, - { - "snippets": [ - { - "code": " {}} unCheckedChildren=\"off\" />", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/abbb333f2a7a-4369-810d-8895fbb31c9d.png", - "label": "默认开启" - }, - { - "code": " {}} unCheckedChildren=\"off please\" />", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/67e524d2e137-4779-9e18-b0ee0a26bba5.png", - "label": "默认关闭" - } - ], - "description": "Switch", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Switch", "version": "1.17.2" }, - "componentName": "Switch", - "title": "Switch", - "category": "DataEntry" - }, - { - "snippets": [ - { - "code": "\n Home content\n Doc content\n Help Content\n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/16d632e407d8-4cff-8265-8615e0bcdc38.png", - "label": "普通选项卡" - }, - { - "code": "\n Home content\n Doc content\n Help Content\n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/a739af4ccd2a-41d5-a304-34c0f55d9403.png", - "label": "胶囊型选项卡" - }, - { - "code": "\n Home content\n Doc content\n Help Content\n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/c8f0953633c7-44b8-ac64-fd6a5ddbd04f.png", - "label": "包裹型选项卡" - }, - { - "code": "\n Home content\n Doc content\n Help Content\n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/f9fa5286802d-4163-8b27-0cb5fbe52c3d.png", - "label": "文本型选项卡" - } - ], - "description": "Tab", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Tab", "version": "1.17.2" }, - "componentName": "Tab", - "title": "Tab", - "category": "Navigation" - }, - { - "snippets": [ - { - "code": "\n \n \n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/80df8ea4d93a-47c8-a170-e90efe956734.png", - "label": "表格" - } - ], - "description": "Table", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Table", "version": "1.17.2" }, - "componentName": "Table", - "title": "Table", - "category": "DataDisplay" - }, - { - "snippets": [ - { - "code": "\n Selectable1\n Selectable1\n Selectable1\n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/07a673e30e04-4132-a01f-4029403f4ea5.png", - "label": "可选择标签组" - }, - { - "code": "\n Normal large Tag\n Primary large Tag\n Tag With Icon\n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/08611b80fe3a-4120-b5be-936c6e0204c6.png", - "label": "普通标签组" - } - ], - "description": "Tag", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Tag", "version": "1.17.2" }, - "componentName": "Tag", - "title": "Tag", - "category": "DataDisplay" - }, - { - "snippets": [ - { - "code": "\n \n \n \n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/c7b7c3b588ba-491e-bf57-06b07b4310cc.png", - "label": "垂直步骤条" - }, - { - "code": "\n \n \n \n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/cd76b43e93aa-4479-96d5-f67f21ba9cd5.png", - "label": "时间左侧" - } - ], - "description": "Timeline", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Timeline", "version": "1.17.2" }, - "componentName": "Timeline", - "title": "Timeline", - "category": "DataDisplay" - }, - { - "snippets": [ - { - "code": " console.log(val)} />", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/0d4a46c9ee47-49ac-a4c2-8bc6fde71cf1.png", - "label": "时间选择器" - } - ], - "description": "TimePicker", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "TimePicker", "version": "1.17.2" }, - "componentName": "TimePicker", - "title": "TimePicker", - "category": "DataEntry" - }, - { - "snippets": [ - { - "code": " {}}\n titles={['Title', 'Title']}\n/>", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/521d73dcf044-4c96-b081-b45703a4d6a7.png", - "label": "穿梭框" - } - ], - "description": "Transfer", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Transfer", "version": "1.17.2" }, - "componentName": "Transfer", - "title": "Transfer", - "category": "DataEntry" - }, - { - "snippets": [ - { - "code": "\n \n \n \n \n \n \n \n \n \n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/2c1619fca799-4e1b-8f51-d3a361281823.png", - "label": "树形选择" - } - ], - "description": "Tree", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Tree", "version": "1.17.2" }, - "componentName": "Tree", - "title": "Tree", - "category": "DataDisplay" - }, - { - "snippets": [ - { - "code": " {}} style={{ width: 200 }}>\n \n \n \n \n \n \n \n \n \n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/7679e63dc8fe-4909-bcfb-274ae68e8a1a.png", - "label": "插槽模式" - }, - { - "code": "", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/45015b973042-4ee5-a01d-07536e96dce0.png", - "label": "数据生成" - } - ], - "description": "TreeSelect", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "TreeSelect", "version": "1.17.2" }, - "componentName": "TreeSelect", - "title": "TreeSelect", - "category": "DataEntry" - }, - { - "snippets": [ - { - "code": " {}}\n onChange={() => {}}\n onSuccess={() => {}}\n multiple\n defaultValue={[{\n name: 'IMG.png',\n state: 'done',\n size: 1024,\n downloadURL: 'https://img.alicdn.com/tps/TB19O79MVXXXXcZXVXXXXXXXXXX-1024-1024.jpg',\n fileURL: 'https://img.alicdn.com/tps/TB19O79MVXXXXcZXVXXXXXXXXXX-1024-1024.jpg',\n imgURL: 'https://img.alicdn.com/tps/TB19O79MVXXXXcZXVXXXXXXXXXX-1024-1024.jpg'\n }]}\n>\n Upload File\n", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/bd23fe0b470d-4b83-94d0-9b8d0c5dfc43.png", - "label": "文件上传" - }, - { - "code": " {}}\n onChange={() => {}}\n onSuccess={() => {}}\n onError={() => {}}\n defaultValue={[{\n uid: '0',\n name: 'IMG.png',\n state: 'done',\n url: 'https://img.alicdn.com/tps/TB19O79MVXXXXcZXVXXXXXXXXXX-1024-1024.jpg',\n downloadURL: 'https://img.alicdn.com/tps/TB19O79MVXXXXcZXVXXXXXXXXXX-1024-1024.jpg',\n imgURL: 'https://img.alicdn.com/tps/TB19O79MVXXXXcZXVXXXXXXXXXX-1024-1024.jpg'\n }, {\n uid: '1',\n name: 'IMG.png',\n percent: 50,\n state: 'uploading',\n url: 'https://img.alicdn.com/tps/TB19O79MVXXXXcZXVXXXXXXXXXX-1024-1024.jpg',\n downloadURL: 'https://img.alicdn.com/tps/TB19O79MVXXXXcZXVXXXXXXXXXX-1024-1024.jpg',\n imgURL: 'https://img.alicdn.com/tps/TB19O79MVXXXXcZXVXXXXXXXXXX-1024-1024.jpg'\n }, {\n uid: '2',\n name: 'IMG.png',\n state: 'error',\n url: 'https://img.alicdn.com/tps/TB19O79MVXXXXcZXVXXXXXXXXXX-1024-1024.jpg',\n downloadURL: 'https://img.alicdn.com/tps/TB19O79MVXXXXcZXVXXXXXXXXXX-1024-1024.jpg',\n imgURL: 'https://img.alicdn.com/tps/TB19O79MVXXXXcZXVXXXXXXXXXX-1024-1024.jpg'\n }]}\n/>", - "screenshot": "https://limitless-static-daily.alibaba-inc.com/limitless/lib/image/0c2e2307f370-4f89-bf4b-288b0f8ecbd6.png", - "label": "图片上传" - } - ], - "description": "Upload", - "npm": { "package": "@ali/deep", "destructuring": true, "exportName": "Upload", "version": "1.17.2" }, - "componentName": "Upload", - "title": "Upload", - "category": "DataEntry" - } - ], - "packageName": "@ali/deep", - "version": "1.17.2" - } - ], - "appKey": "xxxxxxxxx" - }, - "errorCode": "", - "success": true, - "throwable": "" -} diff --git a/packages/demo/tests/index.js b/packages/demo/tests/index.js deleted file mode 100644 index 346e384d2..000000000 --- a/packages/demo/tests/index.js +++ /dev/null @@ -1 +0,0 @@ -// test file diff --git a/packages/demo/tsconfig.json b/packages/demo/tsconfig.json index 3f5e62810..720bf0261 100644 --- a/packages/demo/tsconfig.json +++ b/packages/demo/tsconfig.json @@ -1,30 +1,9 @@ { - "compileOnSave": false, - "buildOnSave": false, + "extends": "../../tsconfig.json", "compilerOptions": { - "baseUrl": ".", "outDir": "build", - "module": "esnext", "target": "es6", - "jsx": "react", - "moduleResolution": "node", - "allowSyntheticDefaultImports": true, - "lib": ["es6", "dom"], - "sourceMap": true, - "allowJs": true, - "rootDir": "src", - "forceConsistentCasingInFileNames": true, - "noImplicitReturns": true, - "noImplicitThis": true, - "noImplicitAny": false, - "importHelpers": true, - "strictNullChecks": true, - "suppressImplicitAnyIndexErrors": true, - "noUnusedLocals": true, - "skipLibCheck": true, - "paths": { - "@/*": ["./src/*"] - } + "jsx": "react" }, "include": ["src/*"], "exclude": ["node_modules", "build", "public"] diff --git a/packages/editor-core/src/index.ts b/packages/editor-core/src/index.ts index fba0e30c9..92e36fa4b 100644 --- a/packages/editor-core/src/index.ts +++ b/packages/editor-core/src/index.ts @@ -1,7 +1,7 @@ import Editor from './editor'; import * as utils from './utils'; -import * as definitions from './definitions'; +export * from './definitions'; export { default as PluginFactory } from './pluginFactory'; export { default as EditorContext } from './context'; @@ -9,4 +9,4 @@ export { default as AreaManager } from './areaManager'; export default Editor; -export { utils, definitions }; +export { Editor, utils }; diff --git a/packages/plugin-designer/src/index.tsx b/packages/plugin-designer/src/index.tsx index f70f621d5..91c7b9152 100644 --- a/packages/plugin-designer/src/index.tsx +++ b/packages/plugin-designer/src/index.tsx @@ -1,11 +1,6 @@ import React, { PureComponent } from 'react'; - -import Editor from '@ali/lowcode-editor-core'; -import { PluginConfig } from '@ali/lowcode-editor-core/lib/definitions'; - -// @ts-ignore -import Designer from '../../designer'; - +import { Editor, PluginConfig } from '@ali/lowcode-editor-core'; +import { DesignerView, Designer } from '@ali/lowcode-designer'; import './index.scss'; export interface PluginProps { @@ -21,17 +16,17 @@ const SCHEMA = { componentName: 'Page', fileName: 'test', dataSource: { - list: [] + list: [], }, state: { - text: 'outter' + text: 'outter', }, props: { ref: 'outterView', autoLoading: true, style: { - padding: 20 - } + padding: 20, + }, }, children: [ { @@ -39,7 +34,7 @@ const SCHEMA = { props: { labelCol: 3, style: {}, - ref: 'testForm' + ref: 'testForm', }, children: [ { @@ -47,7 +42,7 @@ const SCHEMA = { props: { label: '姓名:', name: 'name', - initValue: '李雷' + initValue: '李雷', }, children: [ { @@ -56,34 +51,34 @@ const SCHEMA = { placeholder: '请输入', size: 'medium', style: { - width: 320 - } - } - } - ] + width: 320, + }, + }, + }, + ], }, { componentName: 'Form.Item', props: { label: '年龄:', name: 'age', - initValue: '22' + initValue: '22', }, children: [ { componentName: 'NumberPicker', props: { size: 'medium', - type: 'normal' - } - } - ] + type: 'normal', + }, + }, + ], }, { componentName: 'Form.Item', props: { label: '职业:', - name: 'profession' + name: 'profession', }, children: [ { @@ -92,27 +87,27 @@ const SCHEMA = { dataSource: [ { label: '教师', - value: 't' + value: 't', }, { label: '医生', - value: 'd' + value: 'd', }, { label: '歌手', - value: 's' - } - ] - } - } - ] + value: 's', + }, + ], + }, + }, + ], }, { componentName: 'Div', props: { style: { - textAlign: 'center' - } + textAlign: 'center', + }, }, children: [ { @@ -124,59 +119,60 @@ const SCHEMA = { props: { type: 'primary', style: { - margin: '0 5px 0 5px' + margin: '0 5px 0 5px', }, - htmlType: 'submit' + htmlType: 'submit', }, - children: '提交' + children: '提交', }, { componentName: 'Button', props: { type: 'normal', style: { - margin: '0 5px 0 5px' + margin: '0 5px 0 5px', }, - htmlType: 'reset' + htmlType: 'reset', }, - children: '重置' - } - ] - } - ] - } - ] - } - ] - } - ] + children: '重置', + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], }; export default class DesignerPlugin extends PureComponent { - displayName: 'LowcodePluginDesigner'; + static displayName: 'LowcodePluginDesigner'; componentDidMount(): void { - const {editor} = this.props; + const { editor } = this.props; editor.on('schema.reset', this.handleSchemaReset); } componentWillUmount(): void { - const {editor} = this.props; + const { editor } = this.props; editor.off('schema.reset', this.handleSchemaReset); } - handleSchemaReset = (schema: object): void => { - const {editor} = this.props; + private designer?: Designer; + handleSchemaReset = (schema: any): void => { + const { editor } = this.props; if (this.designer) { this.designer.setSchema(schema); } else { - editor.once('designer.ready', (designer): void => { + editor.once('designer.ready', (designer: Designer): void => { designer.setSchema(schema); }); } - } + }; - handleDesignerMount = (designer): void => { + handleDesignerMount = (designer: Designer): void => { const { editor } = this.props; this.designer = designer; editor.set('designer', designer); @@ -187,7 +183,7 @@ export default class DesignerPlugin extends PureComponent { const { editor } = this.props; const assets = editor.get('assets') || {}; return ( -