mirror of
https://github.com/NetEase/tango.git
synced 2026-09-04 23:17:58 +08:00
Compare commits
10 Commits
@music163/
...
@music163/
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0f1711868d | ||
|
|
06cd3b3a18 | ||
|
|
2664613ab2 | ||
|
|
e39a913a87 | ||
|
|
52864b5400 | ||
|
|
27166ec949 | ||
|
|
1a8d15c9da | ||
|
|
43b99de01c | ||
|
|
1c1ad9e5eb | ||
|
|
776837079a |
@@ -173,6 +173,60 @@ class App extends React.Component {
|
||||
<FormilyFormItem name="select1" component="Select" label="表单项" />
|
||||
</FormilyForm>
|
||||
</Section>
|
||||
<Section title="原生 DOM" tid="section4">
|
||||
<div
|
||||
style={{
|
||||
border: "1px solid #ccc",
|
||||
borderRadius: "5px",
|
||||
backgroundColor: "#f4f4f4",
|
||||
}}
|
||||
>
|
||||
<form onSubmit={tango.stores.app.submitForm} style={{
|
||||
padding: "10px",
|
||||
}}>
|
||||
<div>
|
||||
<label>Username:</label>
|
||||
<input
|
||||
type="text"
|
||||
id="username"
|
||||
name="username"
|
||||
style={{ margin: "5px" }}
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label>Password:</label>
|
||||
<input
|
||||
type="password"
|
||||
id="password"
|
||||
name="password"
|
||||
style={{ margin: "5px" }}
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label>Role:</label>
|
||||
<select id="role" name="role" style={{ margin: "5px" }}>
|
||||
<option value="admin">Admin</option>
|
||||
<option value="user">User</option>
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<button
|
||||
type="submit"
|
||||
style={{
|
||||
marginTop: '5px',
|
||||
padding: "3px 10px",
|
||||
backgroundColor: "#007bff",
|
||||
color: "#fff",
|
||||
border: "none",
|
||||
borderRadius: "5px",
|
||||
}}
|
||||
>
|
||||
Submit
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</Section>
|
||||
</Page>
|
||||
);
|
||||
}
|
||||
@@ -227,38 +281,21 @@ const storeApp = `
|
||||
import { defineStore } from '@music163/tango-boot';
|
||||
|
||||
export default defineStore({
|
||||
|
||||
title: 'Page Title',
|
||||
|
||||
array: [1, 2, 3],
|
||||
|
||||
test: function() {
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
console.log('test');
|
||||
},
|
||||
|
||||
submitForm: function(event) {
|
||||
event.preventDefault();
|
||||
const formData = new FormData(event.target);
|
||||
const username = formData.get("username");
|
||||
const password = formData.get("password");
|
||||
const role = formData.get("role");
|
||||
console.log("Submitted Data:", { username, password, role });
|
||||
}
|
||||
}, 'app');
|
||||
`;
|
||||
|
||||
@@ -85,8 +85,82 @@ basePrototypes['Section'].siblingNames = [
|
||||
'Section',
|
||||
];
|
||||
|
||||
export const nativeDomPrototypes = () => {
|
||||
const doms = [
|
||||
'div',
|
||||
'span',
|
||||
'h1',
|
||||
'h2',
|
||||
'p',
|
||||
'a',
|
||||
'img',
|
||||
'ul',
|
||||
'ol',
|
||||
'li',
|
||||
'input',
|
||||
'button',
|
||||
'form',
|
||||
'table',
|
||||
'tr',
|
||||
'td',
|
||||
'header',
|
||||
'footer',
|
||||
'nav',
|
||||
'section',
|
||||
'article',
|
||||
'aside',
|
||||
'main',
|
||||
'video',
|
||||
'audio',
|
||||
'label',
|
||||
'select',
|
||||
'option',
|
||||
'textarea',
|
||||
'iframe',
|
||||
];
|
||||
const componentPrototypes: Dict<IComponentPrototype> = doms.reduce(
|
||||
(acc: Dict<IComponentPrototype>, tag) => {
|
||||
acc[tag] = {
|
||||
name: tag,
|
||||
title: tag,
|
||||
hasChildren: true,
|
||||
package: '',
|
||||
type: 'element',
|
||||
props: [
|
||||
{
|
||||
name: 'style',
|
||||
title: '样式',
|
||||
group: 'style',
|
||||
setter: 'expressionSetter',
|
||||
},
|
||||
{
|
||||
name: 'className',
|
||||
title: '类名',
|
||||
setter: 'textSetter',
|
||||
},
|
||||
{
|
||||
name: 'id',
|
||||
title: 'ID',
|
||||
setter: 'textSetter',
|
||||
},
|
||||
{
|
||||
name: 'onClick',
|
||||
title: '点击事件',
|
||||
setter: 'actionSetter',
|
||||
group: 'event',
|
||||
},
|
||||
],
|
||||
};
|
||||
return acc;
|
||||
},
|
||||
{},
|
||||
);
|
||||
return componentPrototypes;
|
||||
};
|
||||
|
||||
// iconfont: https://www.iconfont.cn/manage/index?manage_type=myprojects&projectId=2891794
|
||||
const prototypes: Dict<IComponentPrototype> = {
|
||||
...nativeDomPrototypes(),
|
||||
...(basePrototypes as any),
|
||||
SnippetSuccessResult,
|
||||
Snippet2ColumnLayout,
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import React from 'react';
|
||||
import React, { StrictMode } from 'react';
|
||||
import { Outlet } from 'umi';
|
||||
import './index.less';
|
||||
|
||||
export default function Layout() {
|
||||
return (
|
||||
<div>
|
||||
<StrictMode>
|
||||
<Outlet />
|
||||
</div>
|
||||
</StrictMode>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,12 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.0.1](https://github.com/netease/tango/compare/@music163/tango-context@1.0.0...@music163/tango-context@1.0.1) (2024-04-22)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- allow reload state tree & display pageStore in variable tree ([#135](https://github.com/netease/tango/issues/135)) ([2664613](https://github.com/netease/tango/commit/2664613ab263aead2a5239fa012454fc7fd5ff99))
|
||||
|
||||
# [1.0.0-alpha.10](https://github.com/netease/tango/compare/@music163/tango-context@1.0.0-alpha.9...@music163/tango-context@1.0.0-alpha.10) (2024-04-09)
|
||||
|
||||
**Note:** Version bump only for package @music163/tango-context
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@music163/tango-context",
|
||||
"version": "1.0.0-alpha.10",
|
||||
"version": "1.0.1",
|
||||
"description": "react context for tango-apps",
|
||||
"keywords": [
|
||||
"react",
|
||||
@@ -31,8 +31,8 @@
|
||||
"react": ">= 16.8"
|
||||
},
|
||||
"dependencies": {
|
||||
"@music163/tango-core": "^1.0.0-alpha.10",
|
||||
"@music163/tango-helpers": "^1.0.0-alpha.6",
|
||||
"@music163/tango-core": "^1.0.1",
|
||||
"@music163/tango-helpers": "^1.0.0-alpha.7",
|
||||
"mobx-react-lite": "4.0.5"
|
||||
},
|
||||
"publishConfig": {
|
||||
|
||||
@@ -35,8 +35,14 @@ export const useWorkspaceData = () => {
|
||||
const modelVariables: IVariableTreeNode[] = []; // 绑定变量列表
|
||||
const storeActionVariables: IVariableTreeNode[] = []; // 模型中的所有 actions
|
||||
const storeVariables: IVariableTreeNode[] = []; // 模型中的所有变量
|
||||
const pageStoreVariables: IVariableTreeNode[] = []; // 页面中的组件实例变量
|
||||
const serviceVariables: IVariableTreeNode[] = []; // 服务中的所有变量
|
||||
|
||||
pageStoreVariables.push({
|
||||
title: 'pageStore',
|
||||
key: 'pageStore',
|
||||
});
|
||||
|
||||
Object.values(workspace.storeModules).forEach((file) => {
|
||||
const prefix = `stores.${file.name}`;
|
||||
const states: IVariableTreeNode[] = file.states.map((item) => ({
|
||||
@@ -109,6 +115,7 @@ export const useWorkspaceData = () => {
|
||||
}
|
||||
|
||||
let expressionVariables: IVariableTreeNode[] = [
|
||||
buildVariableOptions('当前页面组件实例', '$pageStore', pageStoreVariables),
|
||||
buildVariableOptions('数据模型', '$stores', storeVariables),
|
||||
buildVariableOptions('服务函数', '$services', serviceVariables),
|
||||
];
|
||||
|
||||
@@ -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.1](https://github.com/netease/tango/compare/@music163/tango-core@1.0.0...@music163/tango-core@1.0.1) (2024-04-22)
|
||||
|
||||
**Note:** Version bump only for package @music163/tango-core
|
||||
|
||||
# [1.0.0-alpha.10](https://github.com/netease/tango/compare/@music163/tango-core@1.0.0-alpha.9...@music163/tango-core@1.0.0-alpha.10) (2024-04-09)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@music163/tango-core",
|
||||
"version": "1.0.0-alpha.10",
|
||||
"version": "1.0.1",
|
||||
"description": "tango core",
|
||||
"author": "wwsun <ww.sun@outlook.com>",
|
||||
"homepage": "",
|
||||
@@ -28,7 +28,7 @@
|
||||
"@babel/parser": "^7.23.5",
|
||||
"@babel/traverse": "^7.23.5",
|
||||
"@babel/types": "^7.23.5",
|
||||
"@music163/tango-helpers": "^1.0.0-alpha.6",
|
||||
"@music163/tango-helpers": "^1.0.0-alpha.7",
|
||||
"@types/babel__generator": "^7.6.7",
|
||||
"@types/babel__traverse": "^7.20.4",
|
||||
"mobx": "6.12.0",
|
||||
|
||||
@@ -75,15 +75,20 @@ export function inferFileType(filename: string): FileType {
|
||||
/**
|
||||
* 判断组件名是否合法
|
||||
* @example Button -> valid
|
||||
* @example div -> invalid
|
||||
* @example isStrict ? div -> invalid : div -> valid
|
||||
* @param name
|
||||
* @param isStrict 是否严格模式(严格模式不匹配原生标签)
|
||||
* @returns
|
||||
*/
|
||||
export function isValidComponentName(name: string) {
|
||||
export function isValidComponentName(name: string, isStrict = false) {
|
||||
if (!name) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!isStrict) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const firstChar = name.charAt(0);
|
||||
return firstChar === firstChar.toUpperCase();
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import { IWorkspace } from './interfaces';
|
||||
|
||||
export type SimulatorNameType = 'desktop' | 'phone';
|
||||
|
||||
export type DesignerViewType = 'design' | 'code';
|
||||
export type DesignerViewType = 'design' | 'code' | 'dual';
|
||||
|
||||
interface ISimulatorType {
|
||||
name: SimulatorNameType;
|
||||
|
||||
@@ -161,6 +161,10 @@ describe('string helpers', () => {
|
||||
it('isValidComponentName', () => {
|
||||
expect(isValidComponentName('Button')).toBeTruthy();
|
||||
expect(isValidComponentName('Button.Group')).toBeTruthy();
|
||||
expect(isValidComponentName('div')).toBeTruthy();
|
||||
expect(isValidComponentName('')).toBeFalsy();
|
||||
expect(isValidComponentName(null)).toBeFalsy();
|
||||
expect(isValidComponentName(undefined)).toBeFalsy();
|
||||
});
|
||||
|
||||
it('inferFileType', () => {
|
||||
|
||||
@@ -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.2](https://github.com/netease/tango/compare/@music163/tango-designer@1.0.1...@music163/tango-designer@1.0.2) (2024-04-22)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- allow reload state tree & display pageStore in variable tree ([#135](https://github.com/netease/tango/issues/135)) ([2664613](https://github.com/netease/tango/commit/2664613ab263aead2a5239fa012454fc7fd5ff99))
|
||||
|
||||
## [1.0.1](https://github.com/netease/tango/compare/@music163/tango-designer@1.0.0...@music163/tango-designer@1.0.1) (2024-04-16)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- render-setter expression value bug ([#133](https://github.com/netease/tango/issues/133)) ([27166ec](https://github.com/netease/tango/commit/27166ec94976979cb59130788399d90977cf0aec))
|
||||
- variable tree remove button event handling ([#134](https://github.com/netease/tango/issues/134)) ([52864b5](https://github.com/netease/tango/commit/52864b540095025232ae237134d6be5701d20549))
|
||||
|
||||
# [1.0.0-alpha.18](https://github.com/netease/tango/compare/@music163/tango-designer@1.0.0-alpha.17...@music163/tango-designer@1.0.0-alpha.18) (2024-04-09)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@music163/tango-designer",
|
||||
"version": "1.0.0-alpha.18",
|
||||
"version": "1.0.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": "^1.0.0-alpha.10",
|
||||
"@music163/tango-core": "^1.0.0-alpha.10",
|
||||
"@music163/tango-helpers": "^1.0.0-alpha.6",
|
||||
"@music163/tango-sandbox": "^1.0.0-alpha.10",
|
||||
"@music163/tango-setting-form": "^1.0.0-alpha.14",
|
||||
"@music163/tango-ui": "^1.0.0-alpha.12",
|
||||
"@music163/tango-context": "^1.0.1",
|
||||
"@music163/tango-core": "^1.0.1",
|
||||
"@music163/tango-helpers": "^1.0.0-alpha.7",
|
||||
"@music163/tango-sandbox": "^1.0.1",
|
||||
"@music163/tango-setting-form": "^1.0.2",
|
||||
"@music163/tango-ui": "^1.0.2",
|
||||
"antd": "^4.24.2",
|
||||
"cash-dom": "^8.1.2",
|
||||
"classnames": "^2.3.2",
|
||||
|
||||
@@ -204,7 +204,8 @@ export function VariableTree(props: VariableTreeProps) {
|
||||
{node.showRemoveButton && (
|
||||
<Popconfirm
|
||||
title={`确认删除吗 ${node.title}?该操作会导致引用此模型的代码报错,请谨慎操作!`}
|
||||
onConfirm={() => {
|
||||
onConfirm={(e) => {
|
||||
e.stopPropagation();
|
||||
if (isStoreVariablePath(node.key)) {
|
||||
onRemoveStoreVariable(node.key);
|
||||
} else {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import React from 'react';
|
||||
import { observer, useDesigner } from '@music163/tango-context';
|
||||
import { SelectAction } from '@music163/tango-ui';
|
||||
import { AimOutlined } from '@ant-design/icons';
|
||||
import { SelectAction, CodeOutlined } from '@music163/tango-ui';
|
||||
|
||||
export const ViewSourceAction = observer(() => {
|
||||
const designer = useDesigner();
|
||||
@@ -12,7 +11,7 @@ export const ViewSourceAction = observer(() => {
|
||||
designer.setActiveView('code');
|
||||
}}
|
||||
>
|
||||
<AimOutlined />
|
||||
<CodeOutlined />
|
||||
</SelectAction>
|
||||
);
|
||||
});
|
||||
|
||||
@@ -2,6 +2,7 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
||||
import { ActionSelect, InputCode } from '@music163/tango-ui';
|
||||
import { FormItemComponentProps } from '@music163/tango-setting-form';
|
||||
import { Box } from 'coral-system';
|
||||
import { value2expressionCode } from '@music163/tango-core';
|
||||
|
||||
interface IRenderOption {
|
||||
label: string;
|
||||
@@ -26,10 +27,11 @@ export function RenderSetter({
|
||||
options = [],
|
||||
fallbackOption,
|
||||
}: FormItemComponentProps & RenderSetterProps) {
|
||||
const [inputValue, setInputValue] = useState(value);
|
||||
|
||||
const [inputValue, setInputValue] = useState(() => {
|
||||
return value2expressionCode(value);
|
||||
});
|
||||
useEffect(() => {
|
||||
setInputValue(value);
|
||||
setInputValue(value2expressionCode(value));
|
||||
}, [value]);
|
||||
|
||||
const optionsMap = useMemo(() => {
|
||||
@@ -53,9 +55,9 @@ export function RenderSetter({
|
||||
return (
|
||||
<Box>
|
||||
<ActionSelect text={text} options={options} onSelect={onSelect} />
|
||||
{value && (
|
||||
{inputValue && (
|
||||
<InputCode
|
||||
value={value}
|
||||
value={inputValue}
|
||||
onChange={(val) => setInputValue(val)}
|
||||
onBlur={() => onChange(inputValue)}
|
||||
/>
|
||||
|
||||
@@ -23,11 +23,7 @@ export function OutlinePanel({ showStateView = true, ...treeProps }: OutlineView
|
||||
>
|
||||
<ComponentsTree {...treeProps} />
|
||||
</CollapsePanel>
|
||||
{showStateView && (
|
||||
<CollapsePanel title="页面状态" stickyHeader maxHeight="90%" overflowY="auto">
|
||||
<StateTree />
|
||||
</CollapsePanel>
|
||||
)}
|
||||
{showStateView && <StateTree />}
|
||||
</Box>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import React, { useEffect, useReducer } from 'react';
|
||||
import { observer } from '@music163/tango-context';
|
||||
import { isFunction, isObject, pick } from '@music163/tango-helpers';
|
||||
import { JsonView } from '@music163/tango-ui';
|
||||
import { CollapsePanel, IconButton, JsonView } from '@music163/tango-ui';
|
||||
import { ReloadOutlined } from '@ant-design/icons';
|
||||
import { useSandboxQuery } from '../../context';
|
||||
|
||||
function processTango(obj: any = {}, index = 0) {
|
||||
@@ -26,7 +27,7 @@ export const StateTree = observer(() => {
|
||||
const [, forceUpdate] = useReducer((x) => x + 1, 0);
|
||||
const tangoContext = pick(sandboxQuery.window['tango'] || {}, [
|
||||
'stores',
|
||||
'page',
|
||||
'pageStore',
|
||||
'services',
|
||||
'config',
|
||||
]);
|
||||
@@ -34,6 +35,7 @@ export const StateTree = observer(() => {
|
||||
forceUpdate();
|
||||
};
|
||||
useEffect(() => {
|
||||
// FIXME: 优化这段代码,应该监听 tangoContext 的变化,来刷新
|
||||
const settingForm = document.querySelector('.SettingPanel');
|
||||
const ob = new MutationObserver(callback);
|
||||
if (settingForm) {
|
||||
@@ -48,13 +50,31 @@ export const StateTree = observer(() => {
|
||||
};
|
||||
}, []);
|
||||
return (
|
||||
<JsonView
|
||||
src={processTango(tangoContext)}
|
||||
collapsed={1}
|
||||
name="tango"
|
||||
displayObjectSize={false}
|
||||
indentWidth={2}
|
||||
enableCopy
|
||||
/>
|
||||
<CollapsePanel
|
||||
title="页面状态"
|
||||
stickyHeader
|
||||
maxHeight="90%"
|
||||
overflowY="auto"
|
||||
extra={
|
||||
<IconButton
|
||||
tooltip="同步状态"
|
||||
size="small"
|
||||
icon={<ReloadOutlined />}
|
||||
onClick={(e) => {
|
||||
e.stopPropagation();
|
||||
forceUpdate();
|
||||
}}
|
||||
/>
|
||||
}
|
||||
>
|
||||
<JsonView
|
||||
src={processTango(tangoContext)}
|
||||
collapsed={1}
|
||||
name="tango"
|
||||
displayObjectSize={false}
|
||||
indentWidth={2}
|
||||
enableCopy
|
||||
/>
|
||||
</CollapsePanel>
|
||||
);
|
||||
});
|
||||
|
||||
@@ -1,13 +1,25 @@
|
||||
import React from 'react';
|
||||
import React, { useCallback } from 'react';
|
||||
import { Group } from 'coral-system';
|
||||
import { Modal } from 'antd';
|
||||
import { ToggleButton, CodeOutlined } from '@music163/tango-ui';
|
||||
import { ToggleButton, CodeOutlined, DualOutlined } 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();
|
||||
const designer = useDesigner();
|
||||
|
||||
const activeFileCheck = useCallback(() => {
|
||||
if (workspace.activeFile !== workspace.activeViewFile) {
|
||||
Modal.confirm({
|
||||
title: '当前打开的文件与视图不匹配,是否切换到当前视图对应的文件?',
|
||||
onOk: () => {
|
||||
workspace.setActiveFile(workspace.activeViewFile);
|
||||
},
|
||||
});
|
||||
}
|
||||
}, [workspace]);
|
||||
|
||||
return (
|
||||
<Group attached>
|
||||
<ToggleButton
|
||||
@@ -26,19 +38,24 @@ export const ModeSwitchTool = observer(() => {
|
||||
onClick={() => {
|
||||
designer.setActiveView('code'); // 切换到源码视图
|
||||
designer.setActiveSidebarPanel(''); // 关闭左侧面板
|
||||
if (workspace.activeFile !== workspace.activeViewFile) {
|
||||
Modal.confirm({
|
||||
title: '当前打开的文件与视图不匹配,是否切换到当前视图对应的文件?',
|
||||
onOk: () => {
|
||||
workspace.setActiveFile(workspace.activeViewFile);
|
||||
},
|
||||
});
|
||||
}
|
||||
activeFileCheck();
|
||||
}}
|
||||
tooltip="源码视图"
|
||||
>
|
||||
<CodeOutlined />
|
||||
</ToggleButton>
|
||||
<ToggleButton
|
||||
shape="ghost"
|
||||
selected={designer.activeView === 'dual'}
|
||||
onClick={() => {
|
||||
designer.setActiveView('dual'); // 切换到双屏视图
|
||||
designer.setActiveSidebarPanel(''); // 关闭左侧面板
|
||||
activeFileCheck();
|
||||
}}
|
||||
tooltip="双屏视图"
|
||||
>
|
||||
<DualOutlined />
|
||||
</ToggleButton>
|
||||
</Group>
|
||||
);
|
||||
});
|
||||
|
||||
@@ -13,7 +13,7 @@ export const PreviewTool = observer(() => {
|
||||
onClick={() => {
|
||||
const nextIsPreview = !designer.isPreview;
|
||||
designer.toggleIsPreview(nextIsPreview);
|
||||
if (nextIsPreview) {
|
||||
if (nextIsPreview && designer.activeView === 'code') {
|
||||
designer.setActiveView('design');
|
||||
}
|
||||
}}
|
||||
|
||||
@@ -9,7 +9,6 @@ export function WorkspacePanel({ children }: WorkspacePanelProps) {
|
||||
<Box
|
||||
flex="1"
|
||||
display="flex"
|
||||
flexDirection="column"
|
||||
overflow="hidden"
|
||||
bg="colors.custom.viewportBg"
|
||||
position="relative"
|
||||
|
||||
@@ -21,7 +21,7 @@ export const WorkspaceView = observer((props: WorkspaceViewProps) => {
|
||||
return (
|
||||
<Box
|
||||
className={`ViewPanel ${mode}`}
|
||||
display={display}
|
||||
display={designer.activeView === 'dual' ? 'block' : display}
|
||||
flex="1"
|
||||
overflow={overflow}
|
||||
position="relative"
|
||||
|
||||
@@ -3,6 +3,12 @@
|
||||
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.7](https://github.com/netease/tango/compare/@music163/tango-helpers@1.0.0-alpha.6...@music163/tango-helpers@1.0.0-alpha.7) (2024-04-22)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- allow reload state tree & display pageStore in variable tree ([#135](https://github.com/netease/tango/issues/135)) ([2664613](https://github.com/netease/tango/commit/2664613ab263aead2a5239fa012454fc7fd5ff99))
|
||||
|
||||
# [1.0.0-alpha.6](https://github.com/netease/tango/compare/@music163/tango-helpers@1.0.0-alpha.5...@music163/tango-helpers@1.0.0-alpha.6) (2024-04-09)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@music163/tango-helpers",
|
||||
"version": "1.0.0-alpha.6",
|
||||
"version": "1.0.0-alpha.7",
|
||||
"description": "Shared types, helpers, and hooks of tango-apps",
|
||||
"keywords": [
|
||||
"shared",
|
||||
|
||||
@@ -50,7 +50,7 @@ export function isNil(val: any) {
|
||||
* @returns
|
||||
*/
|
||||
export function isStoreVariablePath(key: string) {
|
||||
return /^stores\.[a-zA-Z0-9]+\.\w+$/.test(key);
|
||||
return key === 'pageStore' || /^stores\.[a-zA-Z0-9]+\.\w+$/.test(key);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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.1](https://github.com/netease/tango/compare/@music163/tango-sandbox@1.0.0...@music163/tango-sandbox@1.0.1) (2024-04-22)
|
||||
|
||||
**Note:** Version bump only for package @music163/tango-sandbox
|
||||
|
||||
# [1.0.0-alpha.10](https://github.com/netease/tango/compare/@music163/tango-sandbox@1.0.0-alpha.9...@music163/tango-sandbox@1.0.0-alpha.10) (2024-04-09)
|
||||
|
||||
**Note:** Version bump only for package @music163/tango-sandbox
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@music163/tango-sandbox",
|
||||
"version": "1.0.0-alpha.10",
|
||||
"version": "1.0.1",
|
||||
"description": "sandbox of tango apps",
|
||||
"author": "wwsun <ww.sun@outlook.com>",
|
||||
"homepage": "",
|
||||
@@ -29,8 +29,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@ant-design/icons": "^4.8.0",
|
||||
"@music163/tango-core": "^1.0.0-alpha.10",
|
||||
"@music163/tango-helpers": "^1.0.0-alpha.6",
|
||||
"@music163/tango-core": "^1.0.1",
|
||||
"@music163/tango-helpers": "^1.0.0-alpha.7",
|
||||
"crypto-js": "^4.1.1",
|
||||
"lodash.isequal": "4.5.0",
|
||||
"react-frame-component": "^5.2.4"
|
||||
|
||||
@@ -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.2](https://github.com/netease/tango/compare/@music163/tango-setting-form@1.0.1...@music163/tango-setting-form@1.0.2) (2024-04-22)
|
||||
|
||||
**Note:** Version bump only for package @music163/tango-setting-form
|
||||
|
||||
## [1.0.1](https://github.com/netease/tango/compare/@music163/tango-setting-form@1.0.0...@music163/tango-setting-form@1.0.1) (2024-04-16)
|
||||
|
||||
**Note:** Version bump only for package @music163/tango-setting-form
|
||||
|
||||
# [1.0.0-alpha.14](https://github.com/netease/tango/compare/@music163/tango-setting-form@1.0.0-alpha.13...@music163/tango-setting-form@1.0.0-alpha.14) (2024-04-09)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@music163/tango-setting-form",
|
||||
"version": "1.0.0-alpha.14",
|
||||
"version": "1.0.2",
|
||||
"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": "^1.0.0-alpha.10",
|
||||
"@music163/tango-helpers": "^1.0.0-alpha.6",
|
||||
"@music163/tango-ui": "^1.0.0-alpha.12",
|
||||
"@music163/tango-core": "^1.0.1",
|
||||
"@music163/tango-helpers": "^1.0.0-alpha.7",
|
||||
"@music163/tango-ui": "^1.0.2",
|
||||
"antd": "^4.24.2",
|
||||
"coral-system": "^1.0.5",
|
||||
"mobx": "6.12.0",
|
||||
|
||||
@@ -62,10 +62,6 @@ export interface FormControlGroupProps extends FormLabelProps {
|
||||
* 是否勾选
|
||||
*/
|
||||
checked?: boolean;
|
||||
/**
|
||||
* checkbox 默认是否勾选
|
||||
*/
|
||||
defaultChecked?: boolean;
|
||||
}
|
||||
|
||||
export function FormControlGroup({
|
||||
@@ -78,9 +74,9 @@ export function FormControlGroup({
|
||||
children,
|
||||
onCheck,
|
||||
checked,
|
||||
defaultChecked = false,
|
||||
}: FormControlGroupProps) {
|
||||
const [collapsed, setCollapsed] = useState(isNil(checked) ? !defaultChecked : !checked);
|
||||
// 默认折叠
|
||||
const [collapsed, setCollapsed] = useState(true);
|
||||
return (
|
||||
<CollapsePanel
|
||||
collapsed={collapsed}
|
||||
|
||||
@@ -3,6 +3,16 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.0.2](https://github.com/netease/tango/compare/@music163/tango-ui@1.0.1...@music163/tango-ui@1.0.2) (2024-04-22)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- allow reload state tree & display pageStore in variable tree ([#135](https://github.com/netease/tango/issues/135)) ([2664613](https://github.com/netease/tango/commit/2664613ab263aead2a5239fa012454fc7fd5ff99))
|
||||
|
||||
## [1.0.1](https://github.com/netease/tango/compare/@music163/tango-ui@1.0.0...@music163/tango-ui@1.0.1) (2024-04-16)
|
||||
|
||||
**Note:** Version bump only for package @music163/tango-ui
|
||||
|
||||
# [1.0.0-alpha.12](https://github.com/netease/tango/compare/@music163/tango-ui@1.0.0-alpha.11...@music163/tango-ui@1.0.0-alpha.12) (2024-04-09)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@music163/tango-ui",
|
||||
"version": "1.0.0-alpha.12",
|
||||
"version": "1.0.2",
|
||||
"description": "ui widgets of tango",
|
||||
"keywords": [
|
||||
"react",
|
||||
@@ -38,14 +38,14 @@
|
||||
"@codemirror/lang-javascript": "^6.2.1",
|
||||
"@codemirror/lint": "^6.4.2",
|
||||
"@codemirror/search": "^6.5.5",
|
||||
"@music163/tango-helpers": "^1.0.0-alpha.6",
|
||||
"@music163/tango-helpers": "^1.0.0-alpha.7",
|
||||
"@uiw/react-codemirror": "^4.21.21",
|
||||
"antd": "^4.24.2",
|
||||
"classnames": "^2.5.1",
|
||||
"coral-system": "^1.0.5",
|
||||
"eslint-linter-browserify": "^8.51.0",
|
||||
"react-json-view": "^1.21.3",
|
||||
"react-monaco-editor-lite": "^1.2.4"
|
||||
"react-monaco-editor-lite": "^1.3.2"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
|
||||
@@ -68,6 +68,7 @@ export interface ActionProps extends HTMLCoralProps<any> {
|
||||
*/
|
||||
className?: string;
|
||||
children?: React.ReactNode;
|
||||
onClick?: React.MouseEventHandler;
|
||||
}
|
||||
|
||||
export function Action({
|
||||
|
||||
17
packages/ui/src/icons/dual-outlined.tsx
Normal file
17
packages/ui/src/icons/dual-outlined.tsx
Normal file
@@ -0,0 +1,17 @@
|
||||
import React from 'react';
|
||||
import { createIcon } from './create-icon';
|
||||
|
||||
const DualOutlinedSvg = () => (
|
||||
<svg
|
||||
viewBox="0 0 1025 1024"
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="1em"
|
||||
height="1em"
|
||||
fill="currentColor"
|
||||
>
|
||||
<path d="M912 64H112c-26.5 0-48 21.5-48 48v800c0 26.5 21.5 48 48 48h800c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM136 193h340v695H136V193z m412 695V193h340v695H548z" />
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const DualOutlined = createIcon(DualOutlinedSvg, 'DualOutlined');
|
||||
@@ -8,3 +8,4 @@ export * from './open-panel-left-outlined';
|
||||
export * from './open-panel-right-outlined';
|
||||
export * from './undo-outlined';
|
||||
export * from './redo-outlined';
|
||||
export * from './dual-outlined';
|
||||
|
||||
@@ -21,7 +21,7 @@ export function SelectAction({ tooltip, children, ...rest }: SelectActionProps)
|
||||
bg="brand"
|
||||
color="white"
|
||||
px="s"
|
||||
fontSize="body"
|
||||
fontSize="subtitle"
|
||||
css={selectionActionStyle}
|
||||
{...rest}
|
||||
>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"$schema": "https://typedoc.org/schema.json",
|
||||
"name": "Tango LowCode Builder",
|
||||
"entryPoints": ["packages/core", "packages/designer", "packages/helpers"],
|
||||
"entryPoints": ["packages/core", "packages/designer","packages/setting-form", "packages/helpers"],
|
||||
"entryPointStrategy": "packages",
|
||||
"exclude": ["packages/**/tests/**/*"],
|
||||
"out": "docs",
|
||||
|
||||
105
yarn.lock
105
yarn.lock
@@ -1374,7 +1374,7 @@
|
||||
exec-sh "^0.3.2"
|
||||
minimist "^1.2.0"
|
||||
|
||||
"@codemirror/autocomplete@^6.0.0", "@codemirror/autocomplete@^6.10.2", "@codemirror/autocomplete@^6.11.1":
|
||||
"@codemirror/autocomplete@^6.0.0", "@codemirror/autocomplete@^6.11.1":
|
||||
version "6.11.1"
|
||||
resolved "https://registry.npmmirror.com/@codemirror/autocomplete/-/autocomplete-6.11.1.tgz#c733900eee58ac2de817317b9fd1e91b857c4329"
|
||||
integrity sha512-L5UInv8Ffd6BPw0P3EF7JLYAMeEbclY7+6Q11REt8vhih8RuLreKtPy/xk8wPxs4EQgYqzI7cdgpiYwWlbS/ow==
|
||||
@@ -1428,7 +1428,7 @@
|
||||
"@codemirror/view" "^6.0.0"
|
||||
crelt "^1.0.5"
|
||||
|
||||
"@codemirror/search@^6.0.0", "@codemirror/search@^6.5.4", "@codemirror/search@^6.5.5":
|
||||
"@codemirror/search@^6.0.0", "@codemirror/search@^6.5.5":
|
||||
version "6.5.5"
|
||||
resolved "https://registry.npmmirror.com/@codemirror/search/-/search-6.5.5.tgz#cf97e201da364da2285c2a250167af25bbd2a4a2"
|
||||
integrity sha512-PIEN3Ke1buPod2EHbJsoQwlbpkz30qGZKcnmH1eihq9+bPQx8gelauUwLYaY4vBOuBAuEhmpDLii4rj/uO0yMA==
|
||||
@@ -2726,63 +2726,6 @@
|
||||
react-router "5"
|
||||
react-router-config "5"
|
||||
|
||||
"@music163/tango-core@^0.2.11":
|
||||
version "0.2.11"
|
||||
resolved "https://registry.npmjs.org/@music163/tango-core/-/tango-core-0.2.11.tgz#b3fba390b69d3b3feeb6ec6c587622abbabbdbf4"
|
||||
integrity sha512-Lxeztkcbb8suhQVgEtcoFmiPVlGtFk4iliqgTzapInJJe2IabaBJR/JHiBLcCsfDsL8ajoG+GX8gh4VoJNAPTg==
|
||||
dependencies:
|
||||
"@babel/generator" "^7.23.0"
|
||||
"@babel/parser" "^7.23.0"
|
||||
"@babel/traverse" "^7.23.2"
|
||||
"@babel/types" "^7.23.0"
|
||||
"@music163/tango-helpers" "^0.1.8"
|
||||
"@types/babel__generator" "^7.6.6"
|
||||
"@types/babel__traverse" "^7.20.3"
|
||||
mobx "6.9.0"
|
||||
path-browserify "^1.0.1"
|
||||
|
||||
"@music163/tango-helpers@^0.1.8":
|
||||
version "0.1.8"
|
||||
resolved "https://registry.npmjs.org/@music163/tango-helpers/-/tango-helpers-0.1.8.tgz#158171fa2255814cacb8d91aea48e119915a8421"
|
||||
integrity sha512-fxL7lcrg46trH6HwCg6UyAR2JnCHbmnqsrYr4yZ7duk5O6muPKsw1FXJ32LdlMg1nIYQ9TkkKRO9f78ggRPhBA==
|
||||
dependencies:
|
||||
hoist-non-react-statics "^3.3.2"
|
||||
lodash.get "^4.4.2"
|
||||
lodash.set "^4.3.2"
|
||||
|
||||
"@music163/tango-setting-form@*":
|
||||
version "0.2.16"
|
||||
resolved "https://registry.npmjs.org/@music163/tango-setting-form/-/tango-setting-form-0.2.16.tgz#71176e0e667a8beb17d53ce334ea6661799ddb76"
|
||||
integrity sha512-h0xIGsdr0Vy4vQhSEeFhrBT1Ve+72HLU0+QyyILKDnHZKYf+NYwo/5LEF7zbmsjIO0E1qdjm/H9OVlI4kM9oYg==
|
||||
dependencies:
|
||||
"@ant-design/icons" "^4.8.0"
|
||||
"@music163/tango-core" "^0.2.11"
|
||||
"@music163/tango-helpers" "^0.1.8"
|
||||
"@music163/tango-ui" "^0.1.12"
|
||||
antd "^4.24.2"
|
||||
coral-system "^1.0.5"
|
||||
mobx "6.9.0"
|
||||
mobx-react-lite "4.0.2"
|
||||
|
||||
"@music163/tango-ui@*", "@music163/tango-ui@^0.1.12":
|
||||
version "0.1.12"
|
||||
resolved "https://registry.npmjs.org/@music163/tango-ui/-/tango-ui-0.1.12.tgz#0831cb8b56c56f71dfc9db0f4d014b611c989982"
|
||||
integrity sha512-51SYOEeUey/ffPaM1y55hWZTelu5CwER4YzAbfQYrQ61wfR2+pGm19xkhKsnAH2GrxR7ON7F+GoujwlzyduAbA==
|
||||
dependencies:
|
||||
"@ant-design/icons" "^4.8.0"
|
||||
"@codemirror/autocomplete" "^6.10.2"
|
||||
"@codemirror/lang-javascript" "^6.2.1"
|
||||
"@codemirror/lint" "^6.4.2"
|
||||
"@codemirror/search" "^6.5.4"
|
||||
"@music163/tango-helpers" "^0.1.8"
|
||||
"@uiw/react-codemirror" "^4.21.20"
|
||||
antd "^4.24.2"
|
||||
antd-easy-form "^1.1.3"
|
||||
coral-system "^1.0.5"
|
||||
eslint-linter-browserify "^8.51.0"
|
||||
react-json-view "^1.21.3"
|
||||
react-monaco-editor-lite "^1.2.3"
|
||||
|
||||
"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1":
|
||||
version "5.1.1-v1"
|
||||
resolved "https://registry.npmmirror.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129"
|
||||
@@ -4174,7 +4117,7 @@
|
||||
"@types/babel__template" "*"
|
||||
"@types/babel__traverse" "*"
|
||||
|
||||
"@types/babel__generator@*", "@types/babel__generator@^7.6.6", "@types/babel__generator@^7.6.7":
|
||||
"@types/babel__generator@*", "@types/babel__generator@^7.6.7":
|
||||
version "7.6.8"
|
||||
resolved "https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab"
|
||||
integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==
|
||||
@@ -4189,7 +4132,7 @@
|
||||
"@babel/parser" "^7.1.0"
|
||||
"@babel/types" "^7.0.0"
|
||||
|
||||
"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6", "@types/babel__traverse@^7.20.3", "@types/babel__traverse@^7.20.4":
|
||||
"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6", "@types/babel__traverse@^7.20.4":
|
||||
version "7.20.4"
|
||||
resolved "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.20.4.tgz#ec2c06fed6549df8bc0eb4615b683749a4a92e1b"
|
||||
integrity sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==
|
||||
@@ -4814,7 +4757,7 @@
|
||||
"@codemirror/state" "^6.0.0"
|
||||
"@codemirror/view" "^6.0.0"
|
||||
|
||||
"@uiw/react-codemirror@^4.21.20", "@uiw/react-codemirror@^4.21.21":
|
||||
"@uiw/react-codemirror@^4.21.21":
|
||||
version "4.21.21"
|
||||
resolved "https://registry.npmmirror.com/@uiw/react-codemirror/-/react-codemirror-4.21.21.tgz#986b18dbd6dc69aa470fc3d4e47b89b504af6778"
|
||||
integrity sha512-PaxBMarufMWoR0qc5zuvBSt76rJ9POm9qoOaJbqRmnNL2viaF+d+Paf2blPSlm1JSnqn7hlRjio+40nZJ9TKzw==
|
||||
@@ -5701,14 +5644,6 @@ ansi-to-html@^0.6.11:
|
||||
dependencies:
|
||||
entities "^2.0.0"
|
||||
|
||||
antd-easy-form@^1.1.3:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.npmmirror.com/antd-easy-form/-/antd-easy-form-1.1.3.tgz#84fa26f05310d8d34e80b617801e88097da57a6d"
|
||||
integrity sha512-jkTzV9qP8ECbSqwrU0/VxuFPsmBnHWCCLlFu3HA26/jQNXtBTKEuS5c26LGfCXwpuf/Z1YBtA6qWlVESASIUBQ==
|
||||
dependencies:
|
||||
"@ant-design/icons" "^4.8.0"
|
||||
react-is "^18.2.0"
|
||||
|
||||
antd@4:
|
||||
version "4.24.16"
|
||||
resolved "https://registry.npmmirror.com/antd/-/antd-4.24.16.tgz#19206b6082e25a9900ba486655f9a55fe405d672"
|
||||
@@ -13441,13 +13376,6 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
|
||||
resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
|
||||
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
|
||||
|
||||
mobx-react-lite@4.0.2:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.npmmirror.com/mobx-react-lite/-/mobx-react-lite-4.0.2.tgz#bf4df238d17491cddb1021a49f79f8af50ed4260"
|
||||
integrity sha512-5o7for7/5QLpgzKvA3ZjrO8TmfkZgVcSjwYalGlW6OkK/fCxmVlwbFeoWJQzWbkWSxlcaatTO0j4riAUvWoqMg==
|
||||
dependencies:
|
||||
use-sync-external-store "^1.2.0"
|
||||
|
||||
mobx-react-lite@4.0.5:
|
||||
version "4.0.5"
|
||||
resolved "https://registry.npmmirror.com/mobx-react-lite/-/mobx-react-lite-4.0.5.tgz#e2cb98f813e118917bcc463638f5bf6ea053a67b"
|
||||
@@ -13460,11 +13388,6 @@ mobx@6.12.0:
|
||||
resolved "https://registry.npmmirror.com/mobx/-/mobx-6.12.0.tgz#72b2685ca5af031aaa49e77a4d76ed67fcbf9135"
|
||||
integrity sha512-Mn6CN6meXEnMa0a5u6a5+RKrqRedHBhZGd15AWLk9O6uFY4KYHzImdt8JI8WODo1bjTSRnwXhJox+FCUZhCKCQ==
|
||||
|
||||
mobx@6.9.0:
|
||||
version "6.9.0"
|
||||
resolved "https://registry.npmmirror.com/mobx/-/mobx-6.9.0.tgz#8a894c26417c05bed2cf7499322e589ee9787397"
|
||||
integrity sha512-HdKewQEREEJgsWnErClfbFoVebze6rGazxFLU/XUyrII8dORfVszN1V0BMRnQSzcgsNNtkX8DHj3nC6cdWE9YQ==
|
||||
|
||||
modify-values@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmmirror.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022"
|
||||
@@ -16080,20 +16003,10 @@ react-merge-refs@^1.1.0:
|
||||
resolved "https://registry.npmmirror.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz#73d88b892c6c68cbb7a66e0800faa374f4c38b06"
|
||||
integrity sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==
|
||||
|
||||
react-monaco-editor-lite@^1.2.3:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.npmmirror.com/react-monaco-editor-lite/-/react-monaco-editor-lite-1.2.3.tgz#a5da8813d45973bf9014624a65c2e07106d5205c"
|
||||
integrity sha512-/rH3YDN5orsv55FY2zkvLnBBvISEHvAPGRflqtseMzPgQY0Dd1Mc+x8XMHXt9WRUnZbkJGgGfLAA1LDMEY8zLw==
|
||||
dependencies:
|
||||
monaco-editor "^0.38.0"
|
||||
monaco-editor-textmate "^4.0.0"
|
||||
monaco-textmate "^3.0.1"
|
||||
onigasm "^2.2.5"
|
||||
|
||||
react-monaco-editor-lite@^1.2.4:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.npmmirror.com/react-monaco-editor-lite/-/react-monaco-editor-lite-1.2.4.tgz#d8616c137a1fb35456a703dc0c140dc43fe777ff"
|
||||
integrity sha512-Hr4ozGVgv/zsWU0Lre8+S4khv1dLKHz/CGDSyNyvqEG323avkKyJ0ez4DG39wHGQ+Ax/bpgMb6b87UODeLq91w==
|
||||
react-monaco-editor-lite@^1.3.2:
|
||||
version "1.3.2"
|
||||
resolved "https://registry.npmmirror.com/react-monaco-editor-lite/-/react-monaco-editor-lite-1.3.2.tgz#cc39c2ecca0a35c35b6b26ba99e092e050cb76f9"
|
||||
integrity sha512-yC293ekxOrrhAgDETNGL9MaKN5C8AYJnetTJx68PWFO7B2f3rLkdV9W23bIly3oHXgWAfAilurj0n2WZk1Pvpg==
|
||||
dependencies:
|
||||
monaco-editor "^0.38.0"
|
||||
monaco-editor-textmate "^4.0.0"
|
||||
|
||||
Reference in New Issue
Block a user