Compare commits

...

7 Commits

Author SHA1 Message Date
wwsun
f2919c1aa0 chore(release): publish
- @music163/tango-designer@1.0.0-alpha.2
 - tango-spec@1.0.2
2023-12-13 15:59:20 +08:00
wwsun
5dd5ab62a8 chore: up 2023-12-13 15:57:54 +08:00
Wells
5e7e285452 fix: update variable tree with help messages and styling & add tangoConfig schema
* fix: update variable tree with help messages and styling

* chore: add spec package

* fix: update schema

* chore: disabled umi https2

---------

Co-authored-by: wwsun <ww.sww@outlook.com>
2023-12-13 14:03:07 +08:00
wwsun
b3a458a914 chore(release): publish
- @music163/tango-context@1.0.0-alpha.1
 - @music163/tango-core@1.0.0-alpha.1
 - @music163/tango-designer@1.0.0-alpha.1
 - @music163/tango-sandbox@1.0.0-alpha.1
 - @music163/tango-setting-form@1.0.0-alpha.1
 - @music163/tango-ui@1.0.0-alpha.1
2023-12-12 11:12:09 +08:00
Wells
1acfa6864b fix: render form item without setter & enhance tools (#76)
* fix: render form item without setter

* fix: update toggle-button style

* fix: update tools

* fix: remove useless code

---------

Co-authored-by: wwsun <ww.sww@outlook.com>
2023-12-12 11:10:17 +08:00
Wells
baf071f130 chore: use umi4 (#75)
Co-authored-by: wwsun <ww.sww@outlook.com>
2023-12-08 15:46:51 +08:00
Wells
6b1d55a11f RC (#74)
* chore: up

* chore: update release scripts

* chore: up

* chore: update lerna config

* chore(release): publish

 - @music163/tango-context@1.0.0-alpha.0
 - @music163/tango-core@1.0.0-alpha.0
 - @music163/tango-designer@1.0.0-alpha.0
 - @music163/tango-sandbox@1.0.0-alpha.0
 - @music163/tango-setting-form@1.0.0-alpha.0
 - @music163/tango-ui@1.0.0-alpha.0

---------

Co-authored-by: wwsun <ww.sww@outlook.com>
2023-12-07 12:40:18 +08:00
44 changed files with 4154 additions and 2522 deletions

2
.npmrc Normal file
View File

@@ -0,0 +1,2 @@
registry=https://registry.npmmirror.com/

View File

@@ -1,2 +0,0 @@
PORT=6006
HOST=local.netease.com

9
apps/playground/.gitignore vendored Normal file
View File

@@ -0,0 +1,9 @@
/node_modules
/.env.local
/.umirc.local.ts
/config/config.local.ts
/src/.umi
/src/.umi-production
/src/.umi-test
/dist
.swc

View File

@@ -1,33 +1,17 @@
import path from 'path';
import { defineConfig } from 'umi';
const resolvePackageIndex = (relativeEntry: string) =>
path.resolve(__dirname, '../../../packages/', relativeEntry);
path.resolve(__dirname, '../../packages/', relativeEntry);
export default {
export default defineConfig({
routes: [
{
exact: true,
path: '/',
component: 'index',
name: '首页',
},
{ path: '/', component: 'index' },
{ path: '/docs', component: 'docs' },
],
devServer: {
host: 'local.netease.com',
port: 8008,
https: {
key: path.resolve(__dirname, 'local.netease.com-key.pem'),
cert: path.resolve(__dirname, 'local.netease.com.pem'),
},
headers: { 'Origin-Agent-Cluster': '?0' },
},
targets: {
chrome: 79,
firefox: false,
safari: false,
edge: false,
ios: false,
},
npmClient: 'yarn',
mfsu: false,
codeSplitting: false,
alias: {
'@music163/tango-helpers': resolvePackageIndex('helpers/src/index.ts'),
'@music163/tango-core': resolvePackageIndex('core/src/index.ts'),
@@ -44,6 +28,21 @@ export default {
moment: 'moment',
antd: 'antd',
},
headScripts: [
'https://cdn.jsdelivr.net/npm/react@18.2.0/umd/react.development.js',
'https://cdn.jsdelivr.net/npm/react-dom@18.2.0/umd/react-dom.development.js',
'https://cdn.jsdelivr.net/npm/react-is@18.2.0/umd/react-is.production.min.js',
'https://cdn.jsdelivr.net/npm/moment/min/moment-with-locales.js',
'https://cdn.jsdelivr.net/npm/styled-components@5.3.11/dist/styled-components.js',
'https://cdn.jsdelivr.net/npm/antd@4.24.13/dist/antd-with-locales.min.js',
'https://cdn.jsdelivr.net/npm/prettier@2.6.0/standalone.js',
'https://cdn.jsdelivr.net/npm/prettier@2.6.0/parser-babel.js',
],
https: {
key: path.resolve(__dirname, 'local.netease.com-key.pem'),
cert: path.resolve(__dirname, 'local.netease.com.pem'),
http2: false,
},
chainWebpack: (config: any) => {
// @see https://github.com/graphql/graphql-js/issues/1272#issuecomment-393903706
config.module
@@ -61,4 +60,5 @@ export default {
config.module.rule('js').include.add(resolvePackageIndex('ui/src'));
return config;
},
};
monorepoRedirect: {},
});

View File

@@ -1,5 +0,0 @@
# `playground`
搭建平台演示示例
## 说明

View File

@@ -2,24 +2,23 @@
"name": "playground",
"version": "0.0.0",
"private": true,
"description": "playground of tango-apps",
"license": "MIT",
"author": "wwsun <ww.sun@outlook.com>",
"files": [
"lib"
],
"author": "Wells <ww.sun@outlook.com>",
"scripts": {
"build": "COMPRESS=none umi build",
"start": "umi dev"
"dev": "HOST=local.netease.com PORT=8001 umi dev",
"build": "umi build",
"postinstall": "umi setup",
"setup": "umi setup",
"start": "npm run dev"
},
"dependencies": {
"@ant-design/icons": "^4.8.0",
"@music163/tango-designer": "*",
"@music163/tango-helpers": "*",
"antd": "^4.24.2",
"coral-system": "^1.0.5"
"coral-system": "^1.0.5",
"umi": "^4.0.89"
},
"devDependencies": {
"umi": "^3.5.24"
"@types/react": "^18.0.33",
"@types/react-dom": "^18.0.11",
"typescript": "^5.0.3"
}
}

10
apps/playground/plugin.ts Normal file
View File

@@ -0,0 +1,10 @@
import type { IApi } from 'umi';
export default (api: IApi) => {
api.addMiddlewares(() => {
return (req, res, next) => {
res.setHeader('Origin-Agent-Cluster', '?0');
next();
};
});
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

View File

@@ -6,29 +6,30 @@ import { registerSetter } from '@music163/tango-designer';
import type { ComponentPrototypeType } from '@music163/tango-helpers';
import { FooSetter } from '../components';
export * from './mock-files';
export const bootHelperVariables = [
{
key: '$helpers',
title: '工具函数',
children: [
{
title: 'setStoreValue',
title: '设置变量值',
key: '() => tango.setStoreValue("variableName", "variableValue")',
type: 'function',
help: '设置状态值tango.setStoreValue("variableName", "variableValue")',
},
{
title: 'getStoreValue',
title: '获取变量值',
key: '() => tango.getStoreValue("variableName")',
type: 'function',
help: '获取状态值',
},
{ title: 'openModal', key: '() => tango.openModal("")', type: 'function' },
{ title: 'closeModal', key: '() => tango.closeModal("")', type: 'function' },
{ title: 'navigateTo', key: '() => tango.navigateTo("/")', type: 'function' },
{ title: 'showToast', key: '() => tango.showToast("hello")', type: 'function' },
{ title: 'formatDate', key: '() => tango.formatDate("2022-12-12")', type: 'function' },
{ title: 'formatNumber', key: '() => tango.formatDate(9999)', type: 'function' },
{ title: '打开弹窗', key: '() => tango.openModal("")', type: 'function' },
{ title: '关闭弹窗', key: '() => tango.closeModal("")', type: 'function' },
{ title: '切换路由', key: '() => tango.navigateTo("/")', type: 'function' },
{
title: 'copyToClipboard',
title: '拷贝到剪贴板',
key: '() => tango.copyToClipboard("hello")',
type: 'function',
},

View File

@@ -2,4 +2,5 @@
@import '~antd/dist/antd.less'; // 引入官方提供的 less 样式入口文件
@primary-color: #2f54eb;
@border-radius-base: 2px;
@border-radius-base: 2px;

View File

@@ -0,0 +1,11 @@
import React from 'react';
import { Outlet } from 'umi';
import './index.less';
export default function Layout() {
return (
<div>
<Outlet />
</div>
);
}

View File

@@ -0,0 +1,9 @@
const DocsPage = () => {
return (
<div>
<p>This is umi docs.</p>
</div>
);
};
export default DocsPage;

View File

@@ -1,21 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Tango Playground</title>
</head>
<body>
<div id="root"></div>
<script src="https://cdn.jsdelivr.net/npm/react@16.14.0/umd/react.development.js"></script>
<script src="https://cdn.jsdelivr.net/npm/react-dom@16.14.0/umd/react-dom.development.js"></script>
<script src="https://cdn.jsdelivr.net/npm/react-is@16.13.1/umd/react-is.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/moment/min/moment-with-locales.js"></script>
<script src="https://cdn.jsdelivr.net/npm/styled-components@5.3.11/dist/styled-components.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@babel/standalone@7.15.6/babel.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prettier@2.6.0/standalone.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prettier@2.6.0/parser-babel.js"></script>
<script src="https://cdn.jsdelivr.net/npm/antd@4.24.13/dist/antd-with-locales.min.js"></script>
</body>
</html>

View File

@@ -15,9 +15,7 @@ import {
themeLight,
} from '@music163/tango-designer';
import { createEngine, Workspace } from '@music163/tango-core';
import { Logo, ProjectDetail, bootHelperVariables } from './share';
import { sampleFiles } from '../mock/project';
import './index.less';
import { Logo, ProjectDetail, bootHelperVariables, sampleFiles } from '../helpers';
import {
ApiOutlined,
AppstoreAddOutlined,

View File

@@ -1,3 +1,3 @@
{
"extends": "../../tsconfig.json"
"extends": "./src/.umi/tsconfig.json"
}

1
apps/playground/typings.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
import 'umi/typings';

View File

@@ -1,6 +1,6 @@
import React from 'react';
import { ToggleButton, UndoOutlined, RedoOutlined } from '@music163/tango-ui';
import { Box, Flex } from 'coral-system';
import { Box, Group, Flex } from 'coral-system';
export default {
title: 'UI/ToggleButton',
@@ -9,7 +9,7 @@ export default {
export function Basic() {
return (
<Box>
<Flex gap="l" bg="#efefef" p="l">
<Box display="flex" columnGap="l" p="l">
<ToggleButton>
<UndoOutlined />
</ToggleButton>
@@ -19,7 +19,25 @@ export function Basic() {
<ToggleButton disabled>
<RedoOutlined />
</ToggleButton>
</Flex>
</Box>
<Box display="flex" columnGap="l" p="l">
<ToggleButton type="primary">
<UndoOutlined />
</ToggleButton>
<ToggleButton type="primary" selected>
<RedoOutlined />
</ToggleButton>
<ToggleButton type="primary" disabled>
<RedoOutlined />
</ToggleButton>
</Box>
</Box>
);
}
export function DarkMode() {
return (
<Box>
<Flex gap="l" bg="#222" p="l">
<ToggleButton shape="ghost">
<UndoOutlined />
@@ -31,6 +49,33 @@ export function Basic() {
<UndoOutlined />
</ToggleButton>
</Flex>
<Flex gap="l" bg="#222" p="l">
<ToggleButton shape="text">
<UndoOutlined />
</ToggleButton>
<ToggleButton shape="text" selected>
<RedoOutlined />
</ToggleButton>
<ToggleButton shape="text" disabled>
<RedoOutlined />
</ToggleButton>
</Flex>
</Box>
);
}
export function ButtonGroup() {
return (
<Group attached>
<ToggleButton>
<UndoOutlined />
</ToggleButton>
<ToggleButton selected>
<RedoOutlined />
</ToggleButton>
<ToggleButton disabled>
<RedoOutlined />
</ToggleButton>
</Group>
);
}

View File

@@ -1,6 +1,5 @@
{
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
"useWorkspaces": true,
"version": "independent",
"packages": ["packages/*"],
"npmClient": "yarn",

View File

@@ -6,7 +6,7 @@
"apps/*"
],
"scripts": {
"start": "yarn workspace playground start",
"start": "yarn workspace playground dev",
"start:docs": "yarn workspace storybook storybook",
"start:site": "yarn workspace website start",
"deploy:site": "yarn workspace website deploy",
@@ -18,18 +18,19 @@
"test:watch": "jest --watch",
"eslint": "eslint packages/**/src/*.{ts,tsx} --cache",
"publish": "lerna publish",
"ver": "lerna version --no-private --conventional-commits",
"release": "yarn eslint && yarn build && yarn run ver && lerna publish from-git",
"ver": "lerna version --no-private",
"release": "yarn eslint && yarn build && lerna version --no-private --conventional-commits && lerna publish from-git",
"release:npm": "yarn eslint && yarn build && yarn run ver && lerna publish from-git",
"release:beta": "yarn eslint && yarn build && yarn run ver && lerna publish from-package --dist-tag beta",
"up": "yarn upgrade-interactive --latest",
"prepare": "husky install"
},
"devDependencies": {
"@babel/preset-env": "^7.23.2",
"@babel/preset-react": "^7.22.15",
"@babel/preset-typescript": "^7.23.2",
"@commitlint/cli": "^17.5.0",
"@commitlint/config-conventional": "^17.3.0",
"@babel/preset-env": "^7.23.6",
"@babel/preset-react": "^7.23.3",
"@babel/preset-typescript": "^7.23.3",
"@commitlint/cli": "^18.4.3",
"@commitlint/config-conventional": "^18.4.3",
"@types/jest": "^29.5.7",
"@types/lodash-es": "^4.17.10",
"@types/lodash.get": "^4.4.8",
@@ -38,13 +39,13 @@
"@types/react": "^18.2.34",
"@types/react-dom": "^18.2.14",
"@types/styled-components": "^5.1.29",
"@typescript-eslint/eslint-plugin": "^6.9.1",
"@typescript-eslint/parser": "^6.9.1",
"conventional-changelog-cli": "^2.2.2",
"@typescript-eslint/eslint-plugin": "^6.13.2",
"@typescript-eslint/parser": "^6.13.2",
"conventional-changelog-cli": "^4.1.0",
"copyfiles": "^2.4.1",
"eslint": "^8.52.0",
"eslint": "^8.55.0",
"eslint-config-ali": "^14.0.2",
"eslint-config-prettier": "^9.0.0",
"eslint-config-prettier": "^9.1.0",
"eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-import": "^2.29.0",
"eslint-plugin-react": "^7.33.2",
@@ -53,14 +54,17 @@
"husky": "^8.0.3",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"lerna": "^6.6.1",
"lint-staged": "^14.0.1",
"prettier": "^2.8.7",
"lerna": "^8.0.0",
"lint-staged": "^15.2.0",
"prettier": "^3.1.0",
"react": "^17.0.0",
"react-dom": "^17.0.0",
"styled-components": "^5.3.6",
"typedoc": "^0.25.4",
"typescript": "^5.3.2"
"typescript": "^5.3.3"
},
"engines": {
"node": ">=18"
},
"lint-staged": {
"*.{js,jsx,ts,tsx}": [

View File

@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.0.0-alpha.1](https://github.com/netease/tango/compare/@music163/tango-context@0.2.12...@music163/tango-context@1.0.0-alpha.1) (2023-12-12)
**Note:** Version bump only for package @music163/tango-context
## [0.2.12](https://github.com/netease/tango/compare/@music163/tango-context@0.2.11...@music163/tango-context@0.2.12) (2023-12-04)
**Note:** Version bump only for package @music163/tango-context

View File

@@ -1,6 +1,6 @@
{
"name": "@music163/tango-context",
"version": "0.2.12",
"version": "1.0.0-alpha.1",
"description": "react context for tango-apps",
"keywords": [
"react",
@@ -31,7 +31,7 @@
"react": ">= 16.8"
},
"dependencies": {
"@music163/tango-core": "^0.2.11",
"@music163/tango-core": "^1.0.0-alpha.1",
"@music163/tango-helpers": "^0.1.8",
"mobx-react-lite": "4.0.5"
},

View File

@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.0.0-alpha.1](https://github.com/netease/tango/compare/@music163/tango-core@0.2.11...@music163/tango-core@1.0.0-alpha.1) (2023-12-12)
**Note:** Version bump only for package @music163/tango-core
## [0.2.11](https://github.com/netease/tango/compare/@music163/tango-core@0.2.10...@music163/tango-core@0.2.11) (2023-12-04)
### Bug Fixes

View File

@@ -1,6 +1,6 @@
{
"name": "@music163/tango-core",
"version": "0.2.11",
"version": "1.0.0-alpha.1",
"description": "tango core",
"author": "wwsun <ww.sun@outlook.com>",
"homepage": "",

View File

@@ -3,6 +3,19 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.0.0-alpha.2](https://github.com/netease/tango/compare/@music163/tango-designer@1.0.0-alpha.1...@music163/tango-designer@1.0.0-alpha.2) (2023-12-13)
### Bug Fixes
- update variable tree with help messages and styling & add tangoConfig schema ([5e7e285](https://github.com/netease/tango/commit/5e7e285452b46888b447991b0e8548b6392acb3a))
# [1.0.0-alpha.1](https://github.com/netease/tango/compare/@music163/tango-designer@0.5.14...@music163/tango-designer@1.0.0-alpha.1) (2023-12-12)
### Bug Fixes
- add showSearch and showGroups to SettingForm & update internal icons ([#73](https://github.com/netease/tango/issues/73)) ([a8357f4](https://github.com/netease/tango/commit/a8357f45b8b0c1f2b91a856918f6bdecdc65aa73))
- render form item without setter & enhance tools ([#76](https://github.com/netease/tango/issues/76)) ([1acfa68](https://github.com/netease/tango/commit/1acfa6864b1faad1a441facc426d8d94b6b090b5))
## [0.5.14](https://github.com/netease/tango/compare/@music163/tango-designer@0.5.13...@music163/tango-designer@0.5.14) (2023-12-04)
**Note:** Version bump only for package @music163/tango-designer

View File

@@ -1,6 +1,6 @@
{
"name": "@music163/tango-designer",
"version": "0.5.14",
"version": "1.0.0-alpha.2",
"description": "lowcode designer",
"keywords": [
"react"
@@ -33,12 +33,12 @@
"dependencies": {
"@ant-design/icons": "^4.8.0",
"@music163/request": "^0.1.2",
"@music163/tango-context": "^0.2.12",
"@music163/tango-core": "^0.2.11",
"@music163/tango-context": "^1.0.0-alpha.1",
"@music163/tango-core": "^1.0.0-alpha.1",
"@music163/tango-helpers": "^0.1.8",
"@music163/tango-sandbox": "^0.1.16",
"@music163/tango-setting-form": "^0.2.16",
"@music163/tango-ui": "^0.1.12",
"@music163/tango-sandbox": "^1.0.0-alpha.1",
"@music163/tango-setting-form": "^1.0.0-alpha.1",
"@music163/tango-ui": "^1.0.0-alpha.1",
"antd": "^4.24.2",
"cash-dom": "^8.1.2",
"classnames": "^2.3.2",

View File

@@ -11,6 +11,7 @@ import {
Empty,
Popconfirm,
Tooltip,
Alert,
} from 'antd';
import { Box, Text, css } from 'coral-system';
import {
@@ -166,7 +167,7 @@ export function EditableVariableTree({
height={height}
position="relative"
>
<Box p="l" width="40%" borderRight="solid" borderColor="line.normal">
<Box p="l" width="40%">
<Box mb="m" position="sticky" top="0" bg="white" zIndex={2}>
<Input.Group compact>
<Search
@@ -201,68 +202,75 @@ export function EditableVariableTree({
/>
</Box>
{node ? (
<Panel
title={
{
preview: '变量值预览',
add: '添加变量',
define: '变量定义',
}[mode]
}
extra={
hasPanelSwitch && mode !== 'add' ? (
<Radio.Group
optionType="button"
buttonStyle="solid"
size="small"
value={mode}
onChange={(e) => setMode(e.target.value)}
options={previewOptions}
<Box width="60%" position="sticky" top="0">
{node.help && (
<Alert
type="info"
message={`使用说明:${node.help}`}
closable
style={{ marginBottom: 12 }}
/>
)}
<Panel
shape="solid"
title={
{
preview: '变量值预览',
add: '添加变量',
define: '变量定义',
}[mode]
}
extra={
hasPanelSwitch && mode !== 'add' ? (
<Radio.Group
optionType="button"
buttonStyle="solid"
size="small"
value={mode}
onChange={(e) => setMode(e.target.value)}
options={previewOptions}
/>
) : null
}
bodyProps={{ px: 'm' }}
>
{mode === 'preview' && (
<ValuePreview
value={getPreviewValue(node)}
onSelect={(valuePath) => {
return ['tango', node.key.replaceAll('.', '?.'), valuePath].join('.');
}}
/>
) : null
}
width="60%"
borderRadius="m"
position="sticky"
top="0"
bodyProps={{ px: 'm' }}
>
{mode === 'preview' && (
<ValuePreview
value={getPreviewValue(node)}
onSelect={(valuePath) => {
return ['tango', node.key.replaceAll('.', '?.'), valuePath].join('.');
}}
/>
)}
{mode === 'define' && (
<NodeDefineForm
node={node}
onSave={onSave}
onDelete={(item) => {
const [type, storeName, stateName] = item.key.split('.');
onDeleteVariable(storeName, stateName);
setNode(null);
}}
/>
)}
{mode === 'add' && (
<AddNodeForm
parentNode={node}
onCancel={() => {
setMode(defaultMode);
setNode(null);
}}
onSubmit={(storeName, data) => {
onAddVariable(storeName, data);
setMode(defaultMode);
setNode(null);
}}
/>
)}
</Panel>
)}
{mode === 'define' && (
<NodeDefineForm
node={node}
onSave={onSave}
onDelete={(item) => {
const [type, storeName, stateName] = item.key.split('.');
onDeleteVariable(storeName, stateName);
setNode(null);
}}
/>
)}
{mode === 'add' && (
<AddNodeForm
parentNode={node}
onCancel={() => {
setMode(defaultMode);
setNode(null);
}}
onSubmit={(storeName, data) => {
onAddVariable(storeName, data);
setMode(defaultMode);
setNode(null);
}}
/>
)}
</Panel>
</Box>
) : (
<Panel title="提示" flex="1" position="sticky" top="0">
<Panel shape="solid" title="提示" flex="1" position="sticky" top="0">
<Empty image={Empty.PRESENTED_IMAGE_SIMPLE} description="请从左侧列表中选择一个变量" />
</Panel>
)}
@@ -469,11 +477,11 @@ interface NodePreviewProps {
export function ValuePreview({ value, onSelect }: NodePreviewProps) {
if (isNil(value)) {
return <span></span>;
return <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} description="暂时没有可预览的数据" />;
}
if (isFunction(value)) {
return <span></span>;
return <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} description="暂不支持预览函数" />;
}
if (typeof value === 'object') {
@@ -503,7 +511,7 @@ function NodeDefineForm({ node, onSave = noop, onDelete = noop }: NodeDefineProp
const [error, setError] = useState('');
const [editable, { on, off }] = useBoolean();
if (isNil(node.raw)) {
return <Empty description="缺失定义数据" />;
return <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} description="缺失定义数据" />;
}
return (
<Box>

View File

@@ -1,8 +1,9 @@
import React from 'react';
import { Group } from 'coral-system';
import { Modal } from 'antd';
import { ToggleButton } from '@music163/tango-ui';
import { ToggleButton, CodeOutlined } from '@music163/tango-ui';
import { observer, useDesigner, useWorkspace } from '@music163/tango-context';
import { BorderOutlined } from '@ant-design/icons';
export const ModeSwitchTool = observer(() => {
const workspace = useWorkspace();
@@ -17,7 +18,7 @@ export const ModeSwitchTool = observer(() => {
}}
tooltip="设计视图"
>
<BorderOutlined />
</ToggleButton>
<ToggleButton
shape="ghost"
@@ -36,7 +37,7 @@ export const ModeSwitchTool = observer(() => {
}}
tooltip="源码视图"
>
<CodeOutlined />
</ToggleButton>
</Group>
);

View File

@@ -26,6 +26,7 @@ export const TogglePanelTool = observer(() => {
tooltip="隐藏/显示右侧面板"
shape="ghost"
onClick={() => designer.toggleRightPanel()}
disabled={designer.activeView === 'code'}
>
{designer.showRightPanel ? <OpenPanelFilledRightOutlined /> : <OpenPanelRightOutlined />}
</ToggleButton>

View File

@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.0.0-alpha.1](https://github.com/netease/tango/compare/@music163/tango-sandbox@0.1.16...@music163/tango-sandbox@1.0.0-alpha.1) (2023-12-12)
**Note:** Version bump only for package @music163/tango-sandbox
## [0.1.16](https://github.com/netease/tango/compare/@music163/tango-sandbox@0.1.15...@music163/tango-sandbox@0.1.16) (2023-12-04)
**Note:** Version bump only for package @music163/tango-sandbox

View File

@@ -1,6 +1,6 @@
{
"name": "@music163/tango-sandbox",
"version": "0.1.16",
"version": "1.0.0-alpha.1",
"description": "sandbox of tango apps",
"author": "wwsun <ww.sun@outlook.com>",
"homepage": "",
@@ -29,7 +29,7 @@
},
"dependencies": {
"@ant-design/icons": "^4.8.0",
"@music163/tango-core": "^0.2.11",
"@music163/tango-core": "^1.0.0-alpha.1",
"@music163/tango-helpers": "^0.1.8",
"crypto-js": "^4.1.1",
"lodash.isequal": "4.5.0",

View File

@@ -3,6 +3,13 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.0.0-alpha.1](https://github.com/netease/tango/compare/@music163/tango-setting-form@0.2.16...@music163/tango-setting-form@1.0.0-alpha.1) (2023-12-12)
### Bug Fixes
- add showSearch and showGroups to SettingForm & update internal icons ([#73](https://github.com/netease/tango/issues/73)) ([a8357f4](https://github.com/netease/tango/commit/a8357f45b8b0c1f2b91a856918f6bdecdc65aa73))
- render form item without setter & enhance tools ([#76](https://github.com/netease/tango/issues/76)) ([1acfa68](https://github.com/netease/tango/commit/1acfa6864b1faad1a441facc426d8d94b6b090b5))
## [0.2.16](https://github.com/netease/tango/compare/@music163/tango-setting-form@0.2.15...@music163/tango-setting-form@0.2.16) (2023-12-04)
**Note:** Version bump only for package @music163/tango-setting-form

View File

@@ -1,6 +1,6 @@
{
"name": "@music163/tango-setting-form",
"version": "0.2.16",
"version": "1.0.0-alpha.1",
"description": "setting form of tango-apps",
"author": "wwsun <ww.sun@outlook.com>",
"homepage": "",
@@ -28,9 +28,9 @@
},
"dependencies": {
"@ant-design/icons": "^4.8.0",
"@music163/tango-core": "^0.2.11",
"@music163/tango-core": "^1.0.0-alpha.1",
"@music163/tango-helpers": "^0.1.8",
"@music163/tango-ui": "^0.1.12",
"@music163/tango-ui": "^1.0.0-alpha.1",
"antd": "^4.24.2",
"coral-system": "^1.0.5",
"mobx": "6.12.0",

View File

@@ -148,15 +148,7 @@ export function SettingForm({
...rest,
...getProp?.(model),
};
const FormChild = isValidNestProps(childProto.props)
? SettingFormObject
: childProto.setter
? SettingFormItem
: null;
if (!FormChild) {
return null;
}
const FormChild = isValidNestProps(childProto.props) ? SettingFormObject : SettingFormItem;
return <FormChild key={item.name} {...childProto} />;
}),
[model],

View File

@@ -0,0 +1,10 @@
# Change Log
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## 1.0.2 (2023-12-13)
### Bug Fixes
- update variable tree with help messages and styling & add tangoConfig schema ([5e7e285](https://github.com/NetEase/tango/commit/5e7e285452b46888b447991b0e8548b6392acb3a))

3
packages/spec/README.md Normal file
View File

@@ -0,0 +1,3 @@
# Tango Config Spec
This is the specification for the Tango Config format.

View File

@@ -0,0 +1,27 @@
{
"name": "tango-spec",
"version": "1.0.2",
"description": "tango config spec",
"keywords": [
"json",
"schema"
],
"author": "wwsun <ww.sww@outlook.com>",
"homepage": "https://github.com/NetEase/tango#readme",
"license": "MIT",
"main": "index.js",
"repository": {
"type": "git",
"url": "git+https://github.com/NetEase/tango.git"
},
"scripts": {
"test": "node ./__tests__/spec.test.js"
},
"bugs": {
"url": "https://github.com/NetEase/tango/issues"
},
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org/"
}
}

View File

@@ -0,0 +1,118 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://unpkg.com/tango-spec/tango-config.json",
"title": "JSON Schema of tango.config.json",
"description": "tango.config.json is a configuration file for NetEase Tango apps",
"type": "object",
"properties": {
"packages": {
"type": "object",
"patternProperties": {
"^(?:@[a-z0-9-~][a-z0-9-._~]*/)?[a-z0-9-~][a-z0-9-._~]*$": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "package description"
},
"version": {
"type": "string",
"description": "package version"
},
"library": {
"type": "string",
"description": "package library"
},
"type": {
"type": "string",
"description": "package type",
"enum": ["dependency", "bizDependency", "baseDependency"]
},
"resources": {
"type": "array",
"items": {
"type": "string"
},
"description": "package resources"
},
"designerResources": {
"type": "array",
"items": {
"type": "string"
},
"description": "package designer resources"
}
},
"additionalProperties": false,
"required": ["version", "library"]
}
},
"additionalProperties": false
},
"dataSource": {
"type": "object",
"properties": {
"ox": {
"type": "object",
"description": "music ox data provider",
"properties": {
"key": {
"type": "string",
"description": "dataSource provider name"
},
"value": {
"type": "array",
"items": {
"type": "object",
"properties": {
"app": {
"type": "string",
"description": "app name"
},
"branch": {
"type": "string",
"description": "branch name"
}
},
"additionalProperties": false,
"required": ["app", "branch"]
}
}
}
}
}
},
"proxy": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "the path of proxy rule"
},
"value": {
"type": "object",
"properties": {
"target": {
"type": "string",
"description": "the target of proxy rule"
},
"changeOrigin": {
"type": "boolean",
"description": "whether change origin of proxy rule"
}
},
"additionalProperties": false,
"required": ["target"]
}
}
},
"externalResources": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": true,
"required": ["packages"]
}

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.0.0-alpha.1](https://github.com/netease/tango/compare/@music163/tango-ui@0.1.12...@music163/tango-ui@1.0.0-alpha.1) (2023-12-12)
### Bug Fixes
- add showSearch and showGroups to SettingForm & update internal icons ([#73](https://github.com/netease/tango/issues/73)) ([a8357f4](https://github.com/netease/tango/commit/a8357f45b8b0c1f2b91a856918f6bdecdc65aa73))
- disable search keymap of InputCode ([#72](https://github.com/netease/tango/issues/72)) ([9db6358](https://github.com/netease/tango/commit/9db635858876ee0b9612e4b2ccd996280fc35d3b))
- render form item without setter & enhance tools ([#76](https://github.com/netease/tango/issues/76)) ([1acfa68](https://github.com/netease/tango/commit/1acfa6864b1faad1a441facc426d8d94b6b090b5))
## [0.1.12](https://github.com/netease/tango/compare/@music163/tango-ui@0.1.11...@music163/tango-ui@0.1.12) (2023-11-28)
### Bug Fixes

View File

@@ -1,6 +1,6 @@
{
"name": "@music163/tango-ui",
"version": "0.1.12",
"version": "1.0.0-alpha.1",
"description": "ui widgets of tango",
"keywords": [
"react",

View File

@@ -64,18 +64,18 @@ const buttonStyle = css`
&.shape-outline {
background-color: #fff;
border: 1px solid #d9d9d9;
border: 1px solid var(--tango-colors-line2);
border-radius: var(--tango-radii-s);
&.disabled {
color: rgba(0, 0, 0, 0.25);
background-color: #f5f5f5;
color: var(--tango-colors-text4);
background-color: var(--tango-colors-fill1);
}
&.selected.type-normal {
color: var(--tango-colors-gray-100);
background-color: var(--tango-colors-gray-30);
border-color: var(--tango-colors-gray-30);
background-color: var(--tango-colors-fill3);
border-color: var(--tango-colors-line2);
}
&.selected.type-primary {

6023
yarn.lock

File diff suppressed because it is too large Load Diff