diff --git a/web/src/ui/canvas/Canvas.jsx b/web/src/ui/canvas/Canvas.jsx
index c374bb20..858e4b39 100644
--- a/web/src/ui/canvas/Canvas.jsx
+++ b/web/src/ui/canvas/Canvas.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Canvas.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/common/Accordion.jsx b/web/src/ui/common/Accordion.jsx
index 06ce1b03..7cd5a60b 100644
--- a/web/src/ui/common/Accordion.jsx
+++ b/web/src/ui/common/Accordion.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 折叠面板
* @author tengge / https://github.com/tengge1
diff --git a/web/src/ui/common/Buttons.jsx b/web/src/ui/common/Buttons.jsx
index 87873177..5064bdf7 100644
--- a/web/src/ui/common/Buttons.jsx
+++ b/web/src/ui/common/Buttons.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 很多按钮
* @author tengge / https://github.com/tengge1
diff --git a/web/src/ui/common/Column.jsx b/web/src/ui/common/Column.jsx
index 9dfc91fb..7d0749c0 100644
--- a/web/src/ui/common/Column.jsx
+++ b/web/src/ui/common/Column.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 列
* @author tengge / https://github.com/tengge1
diff --git a/web/src/ui/common/Content.jsx b/web/src/ui/common/Content.jsx
index 5b676576..7c0d965e 100644
--- a/web/src/ui/common/Content.jsx
+++ b/web/src/ui/common/Content.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 内容
* @author tengge / https://github.com/tengge1
diff --git a/web/src/ui/common/Item.jsx b/web/src/ui/common/Item.jsx
index 1fe87d9f..ddced754 100644
--- a/web/src/ui/common/Item.jsx
+++ b/web/src/ui/common/Item.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 一项
* @author tengge / https://github.com/tengge1
diff --git a/web/src/ui/common/Menu.jsx b/web/src/ui/common/Menu.jsx
index f0314e07..a2669c6a 100644
--- a/web/src/ui/common/Menu.jsx
+++ b/web/src/ui/common/Menu.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 菜单
* @author tengge / https://github.com/tengge1
diff --git a/web/src/ui/common/Row.jsx b/web/src/ui/common/Row.jsx
index 692d145b..368c41a9 100644
--- a/web/src/ui/common/Row.jsx
+++ b/web/src/ui/common/Row.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 行
* @author tengge / https://github.com/tengge1
diff --git a/web/src/ui/common/Rows.jsx b/web/src/ui/common/Rows.jsx
index f002459e..27153576 100644
--- a/web/src/ui/common/Rows.jsx
+++ b/web/src/ui/common/Rows.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 很多行
* @author tengge / https://github.com/tengge1
diff --git a/web/src/ui/form/Button.jsx b/web/src/ui/form/Button.jsx
index 1883bf32..fd501fa5 100644
--- a/web/src/ui/form/Button.jsx
+++ b/web/src/ui/form/Button.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Button.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/form/CheckBox.jsx b/web/src/ui/form/CheckBox.jsx
index 2531944f..2766141a 100644
--- a/web/src/ui/form/CheckBox.jsx
+++ b/web/src/ui/form/CheckBox.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/CheckBox.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/form/Form.jsx b/web/src/ui/form/Form.jsx
index 28e4a1fb..ba852a74 100644
--- a/web/src/ui/form/Form.jsx
+++ b/web/src/ui/form/Form.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Form.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/form/FormControl.jsx b/web/src/ui/form/FormControl.jsx
index e334b5ad..42d23a35 100644
--- a/web/src/ui/form/FormControl.jsx
+++ b/web/src/ui/form/FormControl.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/FormControl.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/form/IconButton.jsx b/web/src/ui/form/IconButton.jsx
index 6ad1a2fc..49366589 100644
--- a/web/src/ui/form/IconButton.jsx
+++ b/web/src/ui/form/IconButton.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/IconButton.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/form/IconMenuButton.jsx b/web/src/ui/form/IconMenuButton.jsx
index 61f853d0..27b5aeec 100644
--- a/web/src/ui/form/IconMenuButton.jsx
+++ b/web/src/ui/form/IconMenuButton.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/IconMenuButton.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/form/ImageButton.jsx b/web/src/ui/form/ImageButton.jsx
index 54f1f68f..c6683cb5 100644
--- a/web/src/ui/form/ImageButton.jsx
+++ b/web/src/ui/form/ImageButton.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/ImageButton.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/form/Input.jsx b/web/src/ui/form/Input.jsx
index e20a3542..9a653a53 100644
--- a/web/src/ui/form/Input.jsx
+++ b/web/src/ui/form/Input.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Input.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/form/Label.jsx b/web/src/ui/form/Label.jsx
index 75ec3ebc..23d213af 100644
--- a/web/src/ui/form/Label.jsx
+++ b/web/src/ui/form/Label.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Label.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/form/LinkButton.jsx b/web/src/ui/form/LinkButton.jsx
index 0f42d235..18ca0c21 100644
--- a/web/src/ui/form/LinkButton.jsx
+++ b/web/src/ui/form/LinkButton.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/LinkButton.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/form/Radio.jsx b/web/src/ui/form/Radio.jsx
index 6ffe9ae9..48f89311 100644
--- a/web/src/ui/form/Radio.jsx
+++ b/web/src/ui/form/Radio.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Radio.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/form/SearchField.jsx b/web/src/ui/form/SearchField.jsx
index f30faeed..ae4cb907 100644
--- a/web/src/ui/form/SearchField.jsx
+++ b/web/src/ui/form/SearchField.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/SearchField.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/form/Select.jsx b/web/src/ui/form/Select.jsx
index 9e40f0d7..46142cb8 100644
--- a/web/src/ui/form/Select.jsx
+++ b/web/src/ui/form/Select.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Select.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/form/TextArea.jsx b/web/src/ui/form/TextArea.jsx
index e940e7ee..672de8bd 100644
--- a/web/src/ui/form/TextArea.jsx
+++ b/web/src/ui/form/TextArea.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/TextArea.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/form/Toggle.jsx b/web/src/ui/form/Toggle.jsx
index fa5c219a..dab1a46a 100644
--- a/web/src/ui/form/Toggle.jsx
+++ b/web/src/ui/form/Toggle.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Toggle.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/icon/Icon.jsx b/web/src/ui/icon/Icon.jsx
index 3b233680..4cb6bce1 100644
--- a/web/src/ui/icon/Icon.jsx
+++ b/web/src/ui/icon/Icon.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Icon.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/image/Image.jsx b/web/src/ui/image/Image.jsx
index e0040a78..cf4355b9 100644
--- a/web/src/ui/image/Image.jsx
+++ b/web/src/ui/image/Image.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Image.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/image/ImageList.jsx b/web/src/ui/image/ImageList.jsx
index 487a65d6..3389b414 100644
--- a/web/src/ui/image/ImageList.jsx
+++ b/web/src/ui/image/ImageList.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/ImageList.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
@@ -44,14 +53,14 @@ class ImageList extends React.Component {
return
+ >
{current.map(n => {
return
+ >
{n.src ?

}
+ />}
{showDeleteButton && n.showDeleteButton !== false &&
}
+ />}
;
})}
diff --git a/web/src/ui/image/ImageSelector.jsx b/web/src/ui/image/ImageSelector.jsx
index 49345451..c98d9536 100644
--- a/web/src/ui/image/ImageSelector.jsx
+++ b/web/src/ui/image/ImageSelector.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/ImageSelector.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/image/ImageUploader.jsx b/web/src/ui/image/ImageUploader.jsx
index ff8392c9..ad84c18e 100644
--- a/web/src/ui/image/ImageUploader.jsx
+++ b/web/src/ui/image/ImageUploader.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/ImageUploader.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/index.js b/web/src/ui/index.js
index 2062c9d8..867226cc 100644
--- a/web/src/ui/index.js
+++ b/web/src/ui/index.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './Config.css';
import '../../assets/css/icon/iconfont.css';
diff --git a/web/src/ui/layout/AbsoluteLayout.jsx b/web/src/ui/layout/AbsoluteLayout.jsx
index 023d6ee4..f0e8b455 100644
--- a/web/src/ui/layout/AbsoluteLayout.jsx
+++ b/web/src/ui/layout/AbsoluteLayout.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/AbsoluteLayout.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/layout/AccordionLayout.jsx b/web/src/ui/layout/AccordionLayout.jsx
index e1151734..4d4bb0ba 100644
--- a/web/src/ui/layout/AccordionLayout.jsx
+++ b/web/src/ui/layout/AccordionLayout.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/AccordionLayout.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/layout/BorderLayout.jsx b/web/src/ui/layout/BorderLayout.jsx
index 1cad7ede..a5f3cfcc 100644
--- a/web/src/ui/layout/BorderLayout.jsx
+++ b/web/src/ui/layout/BorderLayout.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/BorderLayout.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/layout/HBoxLayout.jsx b/web/src/ui/layout/HBoxLayout.jsx
index a33713c9..573e9936 100644
--- a/web/src/ui/layout/HBoxLayout.jsx
+++ b/web/src/ui/layout/HBoxLayout.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/HBoxLayout.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/layout/TabLayout.jsx b/web/src/ui/layout/TabLayout.jsx
index 9070731d..723b05ab 100644
--- a/web/src/ui/layout/TabLayout.jsx
+++ b/web/src/ui/layout/TabLayout.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/TabLayout.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/layout/VBoxLayout.jsx b/web/src/ui/layout/VBoxLayout.jsx
index 2ac07648..21bd2ad8 100644
--- a/web/src/ui/layout/VBoxLayout.jsx
+++ b/web/src/ui/layout/VBoxLayout.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/VBoxLayout.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/layout/private/AccordionPanel.jsx b/web/src/ui/layout/private/AccordionPanel.jsx
index e8ff6371..0f5ab8ed 100644
--- a/web/src/ui/layout/private/AccordionPanel.jsx
+++ b/web/src/ui/layout/private/AccordionPanel.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/AccordionPanel.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/menu/ContextMenu.jsx b/web/src/ui/menu/ContextMenu.jsx
index 1ef3754e..4bdfabe4 100644
--- a/web/src/ui/menu/ContextMenu.jsx
+++ b/web/src/ui/menu/ContextMenu.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/ContextMenu.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/menu/MenuBar.jsx b/web/src/ui/menu/MenuBar.jsx
index ee830683..296679e3 100644
--- a/web/src/ui/menu/MenuBar.jsx
+++ b/web/src/ui/menu/MenuBar.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/MenuBar.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/menu/MenuBarFiller.jsx b/web/src/ui/menu/MenuBarFiller.jsx
index c5217c10..0818ef82 100644
--- a/web/src/ui/menu/MenuBarFiller.jsx
+++ b/web/src/ui/menu/MenuBarFiller.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/MenuBarFiller.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/menu/MenuItem.jsx b/web/src/ui/menu/MenuItem.jsx
index 318605cc..aaaa8d62 100644
--- a/web/src/ui/menu/MenuItem.jsx
+++ b/web/src/ui/menu/MenuItem.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/MenuItem.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/menu/MenuItemSeparator.jsx b/web/src/ui/menu/MenuItemSeparator.jsx
index a1b7d95a..8a06c1ad 100644
--- a/web/src/ui/menu/MenuItemSeparator.jsx
+++ b/web/src/ui/menu/MenuItemSeparator.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/MenuItemSeparator.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/menu/MenuTab.jsx b/web/src/ui/menu/MenuTab.jsx
index 15805dd7..9349aa1e 100644
--- a/web/src/ui/menu/MenuTab.jsx
+++ b/web/src/ui/menu/MenuTab.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/MenuTab.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/panel/Panel.jsx b/web/src/ui/panel/Panel.jsx
index fa61b75c..c040083f 100644
--- a/web/src/ui/panel/Panel.jsx
+++ b/web/src/ui/panel/Panel.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Panel.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/progress/LoadMask.jsx b/web/src/ui/progress/LoadMask.jsx
index 18073704..cebf8b94 100644
--- a/web/src/ui/progress/LoadMask.jsx
+++ b/web/src/ui/progress/LoadMask.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/LoadMask.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/property/ButtonProperty.jsx b/web/src/ui/property/ButtonProperty.jsx
index 8be6bab5..95d30293 100644
--- a/web/src/ui/property/ButtonProperty.jsx
+++ b/web/src/ui/property/ButtonProperty.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/ButtonProperty.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/property/ButtonsProperty.jsx b/web/src/ui/property/ButtonsProperty.jsx
index 930502c5..a0d9c303 100644
--- a/web/src/ui/property/ButtonsProperty.jsx
+++ b/web/src/ui/property/ButtonsProperty.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/ButtonsProperty.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/property/CheckBoxProperty.jsx b/web/src/ui/property/CheckBoxProperty.jsx
index a28cbbcf..20e8bbd2 100644
--- a/web/src/ui/property/CheckBoxProperty.jsx
+++ b/web/src/ui/property/CheckBoxProperty.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/CheckBoxProperty.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/property/ColorProperty.jsx b/web/src/ui/property/ColorProperty.jsx
index ba6bcfde..71ce89ed 100644
--- a/web/src/ui/property/ColorProperty.jsx
+++ b/web/src/ui/property/ColorProperty.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/ColorProperty.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/property/DisplayProperty.jsx b/web/src/ui/property/DisplayProperty.jsx
index 7b6cebe9..cb2ee819 100644
--- a/web/src/ui/property/DisplayProperty.jsx
+++ b/web/src/ui/property/DisplayProperty.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/DisplayProperty.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/property/IntegerProperty.jsx b/web/src/ui/property/IntegerProperty.jsx
index e52fa33e..dd155ef9 100644
--- a/web/src/ui/property/IntegerProperty.jsx
+++ b/web/src/ui/property/IntegerProperty.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/IntegerProperty.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/property/NumberProperty.jsx b/web/src/ui/property/NumberProperty.jsx
index d19223e4..a4cd6b43 100644
--- a/web/src/ui/property/NumberProperty.jsx
+++ b/web/src/ui/property/NumberProperty.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/NumberProperty.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/property/PropertyGrid.jsx b/web/src/ui/property/PropertyGrid.jsx
index 518655fb..884556a3 100644
--- a/web/src/ui/property/PropertyGrid.jsx
+++ b/web/src/ui/property/PropertyGrid.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/PropertyGrid.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/property/PropertyGroup.jsx b/web/src/ui/property/PropertyGroup.jsx
index 49887415..6cf55438 100644
--- a/web/src/ui/property/PropertyGroup.jsx
+++ b/web/src/ui/property/PropertyGroup.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/PropertyGroup.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/property/SelectProperty.jsx b/web/src/ui/property/SelectProperty.jsx
index 88adf40b..1cc46afa 100644
--- a/web/src/ui/property/SelectProperty.jsx
+++ b/web/src/ui/property/SelectProperty.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/SelectProperty.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/property/TextProperty.jsx b/web/src/ui/property/TextProperty.jsx
index b1278764..67a608f5 100644
--- a/web/src/ui/property/TextProperty.jsx
+++ b/web/src/ui/property/TextProperty.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/TextProperty.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/property/TextureProperty.jsx b/web/src/ui/property/TextureProperty.jsx
index dd9f76b2..f8f49302 100644
--- a/web/src/ui/property/TextureProperty.jsx
+++ b/web/src/ui/property/TextureProperty.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/TextureProperty.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/svg/SVG.jsx b/web/src/ui/svg/SVG.jsx
index 688289b1..3f443dce 100644
--- a/web/src/ui/svg/SVG.jsx
+++ b/web/src/ui/svg/SVG.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/SVG.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/table/DataGrid.jsx b/web/src/ui/table/DataGrid.jsx
index 92581808..c2bb8761 100644
--- a/web/src/ui/table/DataGrid.jsx
+++ b/web/src/ui/table/DataGrid.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/DataGrid.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/table/Table.jsx b/web/src/ui/table/Table.jsx
index c0544993..8a05d207 100644
--- a/web/src/ui/table/Table.jsx
+++ b/web/src/ui/table/Table.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Table.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/table/TableBody.jsx b/web/src/ui/table/TableBody.jsx
index 8ed3343e..2e22cbc8 100644
--- a/web/src/ui/table/TableBody.jsx
+++ b/web/src/ui/table/TableBody.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/TableBody.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/table/TableCell.jsx b/web/src/ui/table/TableCell.jsx
index 202a0939..1d4b391f 100644
--- a/web/src/ui/table/TableCell.jsx
+++ b/web/src/ui/table/TableCell.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/TableCell.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/table/TableHead.jsx b/web/src/ui/table/TableHead.jsx
index 9d4fe7a4..583108d2 100644
--- a/web/src/ui/table/TableHead.jsx
+++ b/web/src/ui/table/TableHead.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/TableHead.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/table/TableRow.jsx b/web/src/ui/table/TableRow.jsx
index 40030247..d93bb9fb 100644
--- a/web/src/ui/table/TableRow.jsx
+++ b/web/src/ui/table/TableRow.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/TableRow.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/timeline/Timeline.jsx b/web/src/ui/timeline/Timeline.jsx
index 6ad82858..9b4101fe 100644
--- a/web/src/ui/timeline/Timeline.jsx
+++ b/web/src/ui/timeline/Timeline.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Timeline.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/toolbar/Toolbar.jsx b/web/src/ui/toolbar/Toolbar.jsx
index a731f02e..d20d3655 100644
--- a/web/src/ui/toolbar/Toolbar.jsx
+++ b/web/src/ui/toolbar/Toolbar.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Toolbar.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/toolbar/ToolbarFiller.jsx b/web/src/ui/toolbar/ToolbarFiller.jsx
index 4dd82c8a..a8cba636 100644
--- a/web/src/ui/toolbar/ToolbarFiller.jsx
+++ b/web/src/ui/toolbar/ToolbarFiller.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/ToolbarFiller.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/toolbar/ToolbarSeparator.jsx b/web/src/ui/toolbar/ToolbarSeparator.jsx
index 5098b2f1..ff62344b 100644
--- a/web/src/ui/toolbar/ToolbarSeparator.jsx
+++ b/web/src/ui/toolbar/ToolbarSeparator.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/ToolbarSeparator.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/tree/Tree.jsx b/web/src/ui/tree/Tree.jsx
index 9993cecf..510d094e 100644
--- a/web/src/ui/tree/Tree.jsx
+++ b/web/src/ui/tree/Tree.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Tree.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/window/Alert.jsx b/web/src/ui/window/Alert.jsx
index 68a5c5c6..951dc30f 100644
--- a/web/src/ui/window/Alert.jsx
+++ b/web/src/ui/window/Alert.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Alert.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/window/Confirm.jsx b/web/src/ui/window/Confirm.jsx
index 3b9192db..404532e8 100644
--- a/web/src/ui/window/Confirm.jsx
+++ b/web/src/ui/window/Confirm.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Confirm.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/window/Message.jsx b/web/src/ui/window/Message.jsx
index 61c822b2..31e570ec 100644
--- a/web/src/ui/window/Message.jsx
+++ b/web/src/ui/window/Message.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Message.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/window/Photo.jsx b/web/src/ui/window/Photo.jsx
index 82951d46..c8e053f4 100644
--- a/web/src/ui/window/Photo.jsx
+++ b/web/src/ui/window/Photo.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Photo.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/window/Prompt.jsx b/web/src/ui/window/Prompt.jsx
index db009f5d..b0b9bab9 100644
--- a/web/src/ui/window/Prompt.jsx
+++ b/web/src/ui/window/Prompt.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Prompt.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/window/Toast.jsx b/web/src/ui/window/Toast.jsx
index d4fcc30d..17c6919d 100644
--- a/web/src/ui/window/Toast.jsx
+++ b/web/src/ui/window/Toast.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Toast.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/window/Video.jsx b/web/src/ui/window/Video.jsx
index ce4b2503..559f8515 100644
--- a/web/src/ui/window/Video.jsx
+++ b/web/src/ui/window/Video.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Video.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/ui/window/Window.jsx b/web/src/ui/window/Window.jsx
index fa8edd6c..3628a40e 100644
--- a/web/src/ui/window/Window.jsx
+++ b/web/src/ui/window/Window.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/Window.css';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
diff --git a/web/src/utils/Ajax.js b/web/src/utils/Ajax.js
index c35d07d8..2341335f 100644
--- a/web/src/utils/Ajax.js
+++ b/web/src/utils/Ajax.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import MIMETypeUtils from './MIMETypeUtils';
/**
diff --git a/web/src/utils/CanvasUtils.js b/web/src/utils/CanvasUtils.js
index d4f5138d..9653a59f 100644
--- a/web/src/utils/CanvasUtils.js
+++ b/web/src/utils/CanvasUtils.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 画布工具类
*/
diff --git a/web/src/utils/Converter.js b/web/src/utils/Converter.js
index 8133f928..5654134c 100644
--- a/web/src/utils/Converter.js
+++ b/web/src/utils/Converter.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* canvas转DataURL
* @author cuixiping / https://blog.csdn.net/cuixiping/article/details/45932793
diff --git a/web/src/utils/CookieUtils.js b/web/src/utils/CookieUtils.js
index 0053e351..e3bb1232 100644
--- a/web/src/utils/CookieUtils.js
+++ b/web/src/utils/CookieUtils.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import { Cookies } from '../third_party';
const CookieUtils = {
diff --git a/web/src/utils/CoordinateUtils.js b/web/src/utils/CoordinateUtils.js
index 1d07ccdf..e1dcf24c 100644
--- a/web/src/utils/CoordinateUtils.js
+++ b/web/src/utils/CoordinateUtils.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 坐标工具
*/
diff --git a/web/src/utils/CssLoader.js b/web/src/utils/CssLoader.js
index 67f15741..71d16b27 100644
--- a/web/src/utils/CssLoader.js
+++ b/web/src/utils/CssLoader.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* CSS下载器
* @author tengge / https://github.com/tengge1
diff --git a/web/src/utils/CssUtils.js b/web/src/utils/CssUtils.js
index befe112d..dece2c1d 100644
--- a/web/src/utils/CssUtils.js
+++ b/web/src/utils/CssUtils.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* CSS工具类
*/
diff --git a/web/src/utils/DownloadUtils.js b/web/src/utils/DownloadUtils.js
index a7508673..a886e98d 100644
--- a/web/src/utils/DownloadUtils.js
+++ b/web/src/utils/DownloadUtils.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
function fakeClick(obj) {
let ev = document.createEvent('MouseEvents');
ev.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
diff --git a/web/src/utils/Earcut.js b/web/src/utils/Earcut.js
index 78570530..4bfb7b72 100644
--- a/web/src/utils/Earcut.js
+++ b/web/src/utils/Earcut.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* @author Mugen87 / https://github.com/Mugen87
* Port from https://github.com/mapbox/earcut (v2.1.2)
diff --git a/web/src/utils/Ease.js b/web/src/utils/Ease.js
index 82ff7b32..55ecac0c 100644
--- a/web/src/utils/Ease.js
+++ b/web/src/utils/Ease.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/* eslint-disable */
/*
* Ease
diff --git a/web/src/utils/GeometryUtils.js b/web/src/utils/GeometryUtils.js
index 36b83835..f6265e81 100644
--- a/web/src/utils/GeometryUtils.js
+++ b/web/src/utils/GeometryUtils.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 判断是否是three.js内置类
* @author tengge / https://github.com/tengge1
diff --git a/web/src/utils/ImageUtils.js b/web/src/utils/ImageUtils.js
index b2d113bf..6f72b347 100644
--- a/web/src/utils/ImageUtils.js
+++ b/web/src/utils/ImageUtils.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 产生一个单像素画布
* @param {String} color 默认颜色
diff --git a/web/src/utils/JsLoader.js b/web/src/utils/JsLoader.js
index 937e7c38..da2b5b95 100644
--- a/web/src/utils/JsLoader.js
+++ b/web/src/utils/JsLoader.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* JS下载器
* @author tengge / https://github.com/tengge1
diff --git a/web/src/utils/LanguageLoader.js b/web/src/utils/LanguageLoader.js
index 68e5c5bb..dbb08030 100644
--- a/web/src/utils/LanguageLoader.js
+++ b/web/src/utils/LanguageLoader.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import { i18next, Backend } from '../third_party';
/**
diff --git a/web/src/utils/MIMETypeUtils.js b/web/src/utils/MIMETypeUtils.js
index 27be849f..c3a50168 100644
--- a/web/src/utils/MIMETypeUtils.js
+++ b/web/src/utils/MIMETypeUtils.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 获取MIME-Type后缀名
* @param {String} mimeType MIME-Type
diff --git a/web/src/utils/MaterialUtils.js b/web/src/utils/MaterialUtils.js
index 076c1576..834f069f 100644
--- a/web/src/utils/MaterialUtils.js
+++ b/web/src/utils/MaterialUtils.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 创建材质球图片
* @param {THREE.Material} material 材质
diff --git a/web/src/utils/MathUtils.js b/web/src/utils/MathUtils.js
index 60af1133..564bac82 100644
--- a/web/src/utils/MathUtils.js
+++ b/web/src/utils/MathUtils.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 精度
* @author mrdoob / http://mrdoob.com/
diff --git a/web/src/utils/MeshUtils.js b/web/src/utils/MeshUtils.js
index 6fd87899..a9ea1155 100644
--- a/web/src/utils/MeshUtils.js
+++ b/web/src/utils/MeshUtils.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 模型工具类
*/
diff --git a/web/src/utils/Server.js b/web/src/utils/Server.js
index d68d0d5f..c62d8304 100644
--- a/web/src/utils/Server.js
+++ b/web/src/utils/Server.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 服务端功能
* @author tengge / https://github.com/tengge1
diff --git a/web/src/utils/Storage.js b/web/src/utils/Storage.js
index d1d74fe1..6ed44691 100644
--- a/web/src/utils/Storage.js
+++ b/web/src/utils/Storage.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 存储类
*/
diff --git a/web/src/utils/StringUtils.js b/web/src/utils/StringUtils.js
index f47640f8..d035ae61 100644
--- a/web/src/utils/StringUtils.js
+++ b/web/src/utils/StringUtils.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
var link = document.createElement('a');
link.style.display = 'none';
document.body.appendChild(link); // Firefox workaround, see #6594
diff --git a/web/src/utils/TimeUtils.js b/web/src/utils/TimeUtils.js
index 75caa11c..c663e15a 100644
--- a/web/src/utils/TimeUtils.js
+++ b/web/src/utils/TimeUtils.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 时间工具
* @author tengge / https://github.com/tengge1
diff --git a/web/src/utils/TypefaceUtils.js b/web/src/utils/TypefaceUtils.js
index c1f07a44..148204e3 100644
--- a/web/src/utils/TypefaceUtils.js
+++ b/web/src/utils/TypefaceUtils.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 字体工具类
* @author tengge / https://github.com/tengge1
diff --git a/web/src/utils/UploadUtils.js b/web/src/utils/UploadUtils.js
index 9f537066..d8c511ce 100644
--- a/web/src/utils/UploadUtils.js
+++ b/web/src/utils/UploadUtils.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
/**
* 文件上传器
* @author tengge / https://github.com/tengge1
diff --git a/web/src/utils/VideoRecorder.js b/web/src/utils/VideoRecorder.js
index dab97eeb..86588783 100644
--- a/web/src/utils/VideoRecorder.js
+++ b/web/src/utils/VideoRecorder.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import TimeUtils from './TimeUtils';
/**
diff --git a/web/src/visual/BaseComponent.js b/web/src/visual/BaseComponent.js
index 22805b5f..5969d2a4 100644
--- a/web/src/visual/BaseComponent.js
+++ b/web/src/visual/BaseComponent.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
var ID = -1;
/**
diff --git a/web/src/visual/VisualDOM.jsx b/web/src/visual/VisualDOM.jsx
index e6a8df86..7963ab13 100644
--- a/web/src/visual/VisualDOM.jsx
+++ b/web/src/visual/VisualDOM.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import './css/VisualDOM.css';
import Wrapper from './utils/Wrapper.jsx';
diff --git a/web/src/visual/basic/SvgClipPath.jsx b/web/src/visual/basic/SvgClipPath.jsx
index d8a44f94..3e10e0c3 100644
--- a/web/src/visual/basic/SvgClipPath.jsx
+++ b/web/src/visual/basic/SvgClipPath.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import { SvgControl, SVG } from './third_party';
/**
diff --git a/web/src/visual/basic/SvgColorProfile.jsx b/web/src/visual/basic/SvgColorProfile.jsx
index 114de804..f5af0b76 100644
--- a/web/src/visual/basic/SvgColorProfile.jsx
+++ b/web/src/visual/basic/SvgColorProfile.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import { SvgControl, SVG } from './third_party';
/**
diff --git a/web/src/visual/basic/SvgFilter.jsx b/web/src/visual/basic/SvgFilter.jsx
index 2ace455c..47b7868c 100644
--- a/web/src/visual/basic/SvgFilter.jsx
+++ b/web/src/visual/basic/SvgFilter.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import { SvgControl, SVG } from './third_party';
/**
diff --git a/web/src/visual/basic/SvgScript.jsx b/web/src/visual/basic/SvgScript.jsx
index becf6992..26063c98 100644
--- a/web/src/visual/basic/SvgScript.jsx
+++ b/web/src/visual/basic/SvgScript.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import { SvgControl, SVG } from './third_party';
/**
diff --git a/web/src/visual/basic/SvgStyle.jsx b/web/src/visual/basic/SvgStyle.jsx
index ee113a02..3f12e3ca 100644
--- a/web/src/visual/basic/SvgStyle.jsx
+++ b/web/src/visual/basic/SvgStyle.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import { SvgControl, SVG } from './third_party';
/**
diff --git a/web/src/visual/basic/SvgView.jsx b/web/src/visual/basic/SvgView.jsx
index 39f54979..0a45abbd 100644
--- a/web/src/visual/basic/SvgView.jsx
+++ b/web/src/visual/basic/SvgView.jsx
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2017-2020 The ShadowEditor Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a MIT-style
+ * license that can be found in the LICENSE file.
+ *
+ * For more information, please visit: https://github.com/tengge1/ShadowEditor
+ * You can also visit: https://gitee.com/tengge1/ShadowEditor
+ */
import { SvgControl, SVG } from './third_party';
/**