@@ -26,7 +26,7 @@
v-model="udfName"
:disabled="progress !== 0"
style="width: 535px"
- :placeholder="$t('Please enter resource name')"
+ :placeholder="$t('Please enter name')"
autocomplete="off">
@@ -96,7 +96,7 @@
_verifyName () {
return new Promise((resolve, reject) => {
this.store.dispatch('resource/resourceVerifyName', {
- fullName: '/'+this.udfName,
+ fullName: '/'+this.currentDir+'/'+this.udfName,
type: 'UDF'
}).then(res => {
resolve()
diff --git a/dolphinscheduler-ui/src/js/module/i18n/locale/en_US.js b/dolphinscheduler-ui/src/js/module/i18n/locale/en_US.js
index cec9859bb9..c9541c63b4 100755
--- a/dolphinscheduler-ui/src/js/module/i18n/locale/en_US.js
+++ b/dolphinscheduler-ui/src/js/module/i18n/locale/en_US.js
@@ -428,9 +428,11 @@ export default {
Running: 'Running',
'Waiting for dependency to complete': 'Waiting for dependency to complete',
Selected: 'Selected',
+ CurrentHour: 'CurrentHour',
Last1Hour: 'Last1Hour',
Last2Hours: 'Last2Hours',
Last3Hours: 'Last3Hours',
+ Last24Hours: 'Last24Hours',
today: 'today',
Last1Days: 'Last1Days',
Last2Days: 'Last2Days',
@@ -597,15 +599,18 @@ export default {
'Custom Job': 'Custom Job',
'Custom Script': 'Custom Script',
'Cannot select the same node for successful branch flow and failed branch flow': 'Cannot select the same node for successful branch flow and failed branch flow',
- 'Successful branch flow and failed branch flow are required': 'Successful branch flow and failed branch flow are required',
+ 'Successful branch flow and failed branch flow are required': 'conditions node Successful and failed branch flow are required',
'Unauthorized or deleted resources': 'Unauthorized or deleted resources',
'Please delete all non-existent resources': 'Please delete all non-existent resources',
'Enable': 'Enable',
- 'Disable': 'Disable',
'Timeout Settings': 'Timeout Settings',
'Connect Timeout':'Connect Timeout',
'Socket Timeout':'Socket Timeout',
'Connect timeout be a positive integer': 'Connect timeout be a positive integer',
'Socket Timeout be a positive integer': 'Socket Timeout be a positive integer',
- 'ms':'ms'
+ 'ms':'ms',
+ 'Disable': 'Disable',
+ 'The Worker group no longer exists, please select the correct Worker group!': 'The Worker group no longer exists, please select the correct Worker group!',
+ 'Please confirm whether the workflow has been saved before downloading': 'Please confirm whether the workflow has been saved before downloading',
+ 'User name length is between 3 and 39': 'User name length is between 3 and 39'
}
diff --git a/dolphinscheduler-ui/src/js/module/i18n/locale/zh_CN.js b/dolphinscheduler-ui/src/js/module/i18n/locale/zh_CN.js
index 540452efe4..f7a2f9b335 100755
--- a/dolphinscheduler-ui/src/js/module/i18n/locale/zh_CN.js
+++ b/dolphinscheduler-ui/src/js/module/i18n/locale/zh_CN.js
@@ -169,7 +169,7 @@ export default {
'Project Name': '项目名称',
'Please enter name': '请输入名称',
'Owned Users': '所属用户',
- 'Process Pid': '进程pid',
+ 'Process Pid': '进程Pid',
'Zk registration directory': 'zk注册目录',
cpuUsage: 'cpuUsage',
memoryUsage: 'memoryUsage',
@@ -423,9 +423,11 @@ export default {
Running: '正在运行',
'Waiting for dependency to complete': '等待依赖完成',
Selected: '已选',
+ CurrentHour: '当前小时',
Last1Hour: '前1小时',
Last2Hours: '前2小时',
Last3Hours: '前3小时',
+ Last24Hours: '前24小时',
today: '今天',
Last1Days: '昨天',
Last2Days: '前两天',
@@ -597,11 +599,14 @@ export default {
'Custom Job': '自定义任务',
'Custom Script': '自定义脚本',
'Cannot select the same node for successful branch flow and failed branch flow': '成功分支流转和失败分支流转不能选择同一个节点',
- 'Successful branch flow and failed branch flow are required': '成功分支流转和失败分支流转必填',
+ 'Successful branch flow and failed branch flow are required': 'conditions节点成功和失败分支流转必填',
'Unauthorized or deleted resources': '未授权或已删除资源',
'Please delete all non-existent resources': '请删除所有未授权或已删除资源',
'Enable': '启用',
'Disable': '停用',
+ 'The Worker group no longer exists, please select the correct Worker group!': '该Worker分组已经不存在,请选择正确的Worker分组!',
+ 'Please confirm whether the workflow has been saved before downloading': '下载前请确定工作流是否已保存',
+ 'User name length is between 3 and 39': '用户名长度在3~39之间',
'Timeout Settings': '超时设置',
'Connect Timeout':'连接超时',
'Socket Timeout':'Socket超时',
diff --git a/dolphinscheduler-ui/src/lib/external/email.js b/dolphinscheduler-ui/src/lib/external/email.js
index f3f932af6a..5b85655271 100644
--- a/dolphinscheduler-ui/src/lib/external/email.js
+++ b/dolphinscheduler-ui/src/lib/external/email.js
@@ -14,4 +14,4 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-export default ['test@analysys.com.cn']
+export default ['xx@xx.com']
diff --git a/dolphinscheduler-ui/src/sass/common/_animation.scss b/dolphinscheduler-ui/src/sass/common/_animation.scss
deleted file mode 100644
index d9870cf49a..0000000000
--- a/dolphinscheduler-ui/src/sass/common/_animation.scss
+++ /dev/null
@@ -1,3658 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-@charset "UTF-8";
-@-webkit-keyframes bounce {
- from,
- 20%,
- 53%,
- 80%,
- to {
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-
- 40%,
- 43% {
- -webkit-animation-timing-function: cubic-bezier(.755, .05, .855, .06);
- animation-timing-function: cubic-bezier(.755, .05, .855, .06);
- -webkit-transform: translate3d(0, -30px, 0);
- transform: translate3d(0, -30px, 0);
- }
-
- 70% {
- -webkit-animation-timing-function: cubic-bezier(.755, .05, .855, .06);
- animation-timing-function: cubic-bezier(.755, .05, .855, .06);
- -webkit-transform: translate3d(0, -15px, 0);
- transform: translate3d(0, -15px, 0);
- }
-
- 90% {
- -webkit-transform: translate3d(0, -4px, 0);
- transform: translate3d(0, -4px, 0);
- }
-}
-
-@keyframes bounce {
- from,
- 20%,
- 53%,
- 80%,
- to {
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-
- 40%,
- 43% {
- -webkit-animation-timing-function: cubic-bezier(.755, .05, .855, .06);
- animation-timing-function: cubic-bezier(.755, .05, .855, .06);
- -webkit-transform: translate3d(0, -30px, 0);
- transform: translate3d(0, -30px, 0);
- }
-
- 70% {
- -webkit-animation-timing-function: cubic-bezier(.755, .05, .855, .06);
- animation-timing-function: cubic-bezier(.755, .05, .855, .06);
- -webkit-transform: translate3d(0, -15px, 0);
- transform: translate3d(0, -15px, 0);
- }
-
- 90% {
- -webkit-transform: translate3d(0, -4px, 0);
- transform: translate3d(0, -4px, 0);
- }
-}
-
-.bounce {
- -webkit-animation-name: bounce;
- animation-name: bounce;
- -webkit-transform-origin: center bottom;
- transform-origin: center bottom;
-}
-
-@-webkit-keyframes flash {
- from,
- 50%,
- to {
- opacity: 1;
- }
-
- 25%,
- 75% {
- opacity: 0;
- }
-}
-
-@keyframes flash {
- from,
- 50%,
- to {
- opacity: 1;
- }
-
- 25%,
- 75% {
- opacity: 0;
- }
-}
-
-.flash {
- -webkit-animation-name: flash;
- animation-name: flash;
-}
-/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
-
-@-webkit-keyframes pulse {
- from {
- -webkit-transform: scale3d(1, 1, 1);
- transform: scale3d(1, 1, 1);
- }
-
- 50% {
- -webkit-transform: scale3d(1.05, 1.05, 1.05);
- transform: scale3d(1.05, 1.05, 1.05);
- }
-
- to {
- -webkit-transform: scale3d(1, 1, 1);
- transform: scale3d(1, 1, 1);
- }
-}
-
-@keyframes pulse {
- from {
- -webkit-transform: scale3d(1, 1, 1);
- transform: scale3d(1, 1, 1);
- }
-
- 50% {
- -webkit-transform: scale3d(1.05, 1.05, 1.05);
- transform: scale3d(1.05, 1.05, 1.05);
- }
-
- to {
- -webkit-transform: scale3d(1, 1, 1);
- transform: scale3d(1, 1, 1);
- }
-}
-
-.pulse {
- -webkit-animation-name: pulse;
- animation-name: pulse;
-}
-
-@-webkit-keyframes rubberBand {
- from {
- -webkit-transform: scale3d(1, 1, 1);
- transform: scale3d(1, 1, 1);
- }
-
- 30% {
- -webkit-transform: scale3d(1.25, .75, 1);
- transform: scale3d(1.25, .75, 1);
- }
-
- 40% {
- -webkit-transform: scale3d(.75, 1.25, 1);
- transform: scale3d(.75, 1.25, 1);
- }
-
- 50% {
- -webkit-transform: scale3d(1.15, .85, 1);
- transform: scale3d(1.15, .85, 1);
- }
-
- 65% {
- -webkit-transform: scale3d(.95, 1.05, 1);
- transform: scale3d(.95, 1.05, 1);
- }
-
- 75% {
- -webkit-transform: scale3d(1.05, .95, 1);
- transform: scale3d(1.05, .95, 1);
- }
-
- to {
- -webkit-transform: scale3d(1, 1, 1);
- transform: scale3d(1, 1, 1);
- }
-}
-
-@keyframes rubberBand {
- from {
- -webkit-transform: scale3d(1, 1, 1);
- transform: scale3d(1, 1, 1);
- }
-
- 30% {
- -webkit-transform: scale3d(1.25, .75, 1);
- transform: scale3d(1.25, .75, 1);
- }
-
- 40% {
- -webkit-transform: scale3d(.75, 1.25, 1);
- transform: scale3d(.75, 1.25, 1);
- }
-
- 50% {
- -webkit-transform: scale3d(1.15, .85, 1);
- transform: scale3d(1.15, .85, 1);
- }
-
- 65% {
- -webkit-transform: scale3d(.95, 1.05, 1);
- transform: scale3d(.95, 1.05, 1);
- }
-
- 75% {
- -webkit-transform: scale3d(1.05, .95, 1);
- transform: scale3d(1.05, .95, 1);
- }
-
- to {
- -webkit-transform: scale3d(1, 1, 1);
- transform: scale3d(1, 1, 1);
- }
-}
-
-.rubberBand {
- -webkit-animation-name: rubberBand;
- animation-name: rubberBand;
-}
-
-@-webkit-keyframes shake {
- from,
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-
- 10%,
- 30%,
- 50%,
- 70%,
- 90% {
- -webkit-transform: translate3d(-10px, 0, 0);
- transform: translate3d(-10px, 0, 0);
- }
-
- 20%,
- 40%,
- 60%,
- 80% {
- -webkit-transform: translate3d(10px, 0, 0);
- transform: translate3d(10px, 0, 0);
- }
-}
-
-@keyframes shake {
- from,
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-
- 10%,
- 30%,
- 50%,
- 70%,
- 90% {
- -webkit-transform: translate3d(-10px, 0, 0);
- transform: translate3d(-10px, 0, 0);
- }
-
- 20%,
- 40%,
- 60%,
- 80% {
- -webkit-transform: translate3d(10px, 0, 0);
- transform: translate3d(10px, 0, 0);
- }
-}
-
-.shake {
- -webkit-animation-name: shake;
- animation-name: shake;
-}
-
-@-webkit-keyframes headShake {
- 0% {
- -webkit-transform: translateX(0);
- transform: translateX(0);
- }
-
- 6.5% {
- -webkit-transform: translateX(-6px) rotateY(-9deg);
- transform: translateX(-6px) rotateY(-9deg);
- }
-
- 18.5% {
- -webkit-transform: translateX(5px) rotateY(7deg);
- transform: translateX(5px) rotateY(7deg);
- }
-
- 31.5% {
- -webkit-transform: translateX(-3px) rotateY(-5deg);
- transform: translateX(-3px) rotateY(-5deg);
- }
-
- 43.5% {
- -webkit-transform: translateX(2px) rotateY(3deg);
- transform: translateX(2px) rotateY(3deg);
- }
-
- 50% {
- -webkit-transform: translateX(0);
- transform: translateX(0);
- }
-}
-
-@keyframes headShake {
- 0% {
- -webkit-transform: translateX(0);
- transform: translateX(0);
- }
-
- 6.5% {
- -webkit-transform: translateX(-6px) rotateY(-9deg);
- transform: translateX(-6px) rotateY(-9deg);
- }
-
- 18.5% {
- -webkit-transform: translateX(5px) rotateY(7deg);
- transform: translateX(5px) rotateY(7deg);
- }
-
- 31.5% {
- -webkit-transform: translateX(-3px) rotateY(-5deg);
- transform: translateX(-3px) rotateY(-5deg);
- }
-
- 43.5% {
- -webkit-transform: translateX(2px) rotateY(3deg);
- transform: translateX(2px) rotateY(3deg);
- }
-
- 50% {
- -webkit-transform: translateX(0);
- transform: translateX(0);
- }
-}
-
-.headShake {
- -webkit-animation-timing-function: ease-in-out;
- animation-timing-function: ease-in-out;
- -webkit-animation-name: headShake;
- animation-name: headShake;
-}
-
-@-webkit-keyframes swing {
- 20% {
- -webkit-transform: rotate3d(0, 0, 1, 15deg);
- transform: rotate3d(0, 0, 1, 15deg);
- }
-
- 40% {
- -webkit-transform: rotate3d(0, 0, 1, -10deg);
- transform: rotate3d(0, 0, 1, -10deg);
- }
-
- 60% {
- -webkit-transform: rotate3d(0, 0, 1, 5deg);
- transform: rotate3d(0, 0, 1, 5deg);
- }
-
- 80% {
- -webkit-transform: rotate3d(0, 0, 1, -5deg);
- transform: rotate3d(0, 0, 1, -5deg);
- }
-
- to {
- -webkit-transform: rotate3d(0, 0, 1, 0deg);
- transform: rotate3d(0, 0, 1, 0deg);
- }
-}
-
-@keyframes swing {
- 20% {
- -webkit-transform: rotate3d(0, 0, 1, 15deg);
- transform: rotate3d(0, 0, 1, 15deg);
- }
-
- 40% {
- -webkit-transform: rotate3d(0, 0, 1, -10deg);
- transform: rotate3d(0, 0, 1, -10deg);
- }
-
- 60% {
- -webkit-transform: rotate3d(0, 0, 1, 5deg);
- transform: rotate3d(0, 0, 1, 5deg);
- }
-
- 80% {
- -webkit-transform: rotate3d(0, 0, 1, -5deg);
- transform: rotate3d(0, 0, 1, -5deg);
- }
-
- to {
- -webkit-transform: rotate3d(0, 0, 1, 0deg);
- transform: rotate3d(0, 0, 1, 0deg);
- }
-}
-
-.swing {
- -webkit-transform-origin: top center;
- transform-origin: top center;
- -webkit-animation-name: swing;
- animation-name: swing;
-}
-
-@-webkit-keyframes tada {
- from {
- -webkit-transform: scale3d(1, 1, 1);
- transform: scale3d(1, 1, 1);
- }
-
- 10%,
- 20% {
- -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
- transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
- }
-
- 30%,
- 50%,
- 70%,
- 90% {
- -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
- transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
- }
-
- 40%,
- 60%,
- 80% {
- -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
- transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
- }
-
- to {
- -webkit-transform: scale3d(1, 1, 1);
- transform: scale3d(1, 1, 1);
- }
-}
-
-@keyframes tada {
- from {
- -webkit-transform: scale3d(1, 1, 1);
- transform: scale3d(1, 1, 1);
- }
-
- 10%,
- 20% {
- -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
- transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
- }
-
- 30%,
- 50%,
- 70%,
- 90% {
- -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
- transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
- }
-
- 40%,
- 60%,
- 80% {
- -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
- transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
- }
-
- to {
- -webkit-transform: scale3d(1, 1, 1);
- transform: scale3d(1, 1, 1);
- }
-}
-
-.tada {
- -webkit-animation-name: tada;
- animation-name: tada;
-}
-/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
-
-@-webkit-keyframes wobble {
- from {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-
- 15% {
- -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
- transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
- }
-
- 30% {
- -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
- transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
- }
-
- 45% {
- -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
- transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
- }
-
- 60% {
- -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
- transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
- }
-
- 75% {
- -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
- transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes wobble {
- from {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-
- 15% {
- -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
- transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
- }
-
- 30% {
- -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
- transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
- }
-
- 45% {
- -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
- transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
- }
-
- 60% {
- -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
- transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
- }
-
- 75% {
- -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
- transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.wobble {
- -webkit-animation-name: wobble;
- animation-name: wobble;
-}
-
-@-webkit-keyframes jello {
- from,
- 11.1%,
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-
- 22.2% {
- -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
- transform: skewX(-12.5deg) skewY(-12.5deg);
- }
-
- 33.3% {
- -webkit-transform: skewX(6.25deg) skewY(6.25deg);
- transform: skewX(6.25deg) skewY(6.25deg);
- }
-
- 44.4% {
- -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
- transform: skewX(-3.125deg) skewY(-3.125deg);
- }
-
- 55.5% {
- -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
- transform: skewX(1.5625deg) skewY(1.5625deg);
- }
-
- 66.6% {
- -webkit-transform: skewX(-.78125deg) skewY(-.78125deg);
- transform: skewX(-.78125deg) skewY(-.78125deg);
- }
-
- 77.7% {
- -webkit-transform: skewX(.390625deg) skewY(.390625deg);
- transform: skewX(.390625deg) skewY(.390625deg);
- }
-
- 88.8% {
- -webkit-transform: skewX(-.1953125deg) skewY(-.1953125deg);
- transform: skewX(-.1953125deg) skewY(-.1953125deg);
- }
-}
-
-@keyframes jello {
- from,
- 11.1%,
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-
- 22.2% {
- -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
- transform: skewX(-12.5deg) skewY(-12.5deg);
- }
-
- 33.3% {
- -webkit-transform: skewX(6.25deg) skewY(6.25deg);
- transform: skewX(6.25deg) skewY(6.25deg);
- }
-
- 44.4% {
- -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
- transform: skewX(-3.125deg) skewY(-3.125deg);
- }
-
- 55.5% {
- -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
- transform: skewX(1.5625deg) skewY(1.5625deg);
- }
-
- 66.6% {
- -webkit-transform: skewX(-.78125deg) skewY(-.78125deg);
- transform: skewX(-.78125deg) skewY(-.78125deg);
- }
-
- 77.7% {
- -webkit-transform: skewX(.390625deg) skewY(.390625deg);
- transform: skewX(.390625deg) skewY(.390625deg);
- }
-
- 88.8% {
- -webkit-transform: skewX(-.1953125deg) skewY(-.1953125deg);
- transform: skewX(-.1953125deg) skewY(-.1953125deg);
- }
-}
-
-.jello {
- -webkit-animation-name: jello;
- animation-name: jello;
- -webkit-transform-origin: center;
- transform-origin: center;
-}
-
-@-webkit-keyframes heartBeat {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-
- 14% {
- -webkit-transform: scale(1.3);
- transform: scale(1.3);
- }
-
- 28% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-
- 42% {
- -webkit-transform: scale(1.3);
- transform: scale(1.3);
- }
-
- 70% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-
-@keyframes heartBeat {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-
- 14% {
- -webkit-transform: scale(1.3);
- transform: scale(1.3);
- }
-
- 28% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-
- 42% {
- -webkit-transform: scale(1.3);
- transform: scale(1.3);
- }
-
- 70% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-
-.heartBeat {
- -webkit-animation-name: heartBeat;
- animation-name: heartBeat;
- -webkit-animation-duration: 1.3s;
- animation-duration: 1.3s;
- -webkit-animation-timing-function: ease-in-out;
- animation-timing-function: ease-in-out;
-}
-
-@-webkit-keyframes bounceIn {
- from,
- 20%,
- 40%,
- 60%,
- 80%,
- to {
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- }
-
- 0% {
- opacity: 0;
- -webkit-transform: scale3d(.3, .3, .3);
- transform: scale3d(.3, .3, .3);
- }
-
- 20% {
- -webkit-transform: scale3d(1.1, 1.1, 1.1);
- transform: scale3d(1.1, 1.1, 1.1);
- }
-
- 40% {
- -webkit-transform: scale3d(.9, .9, .9);
- transform: scale3d(.9, .9, .9);
- }
-
- 60% {
- opacity: 1;
- -webkit-transform: scale3d(1.03, 1.03, 1.03);
- transform: scale3d(1.03, 1.03, 1.03);
- }
-
- 80% {
- -webkit-transform: scale3d(.97, .97, .97);
- transform: scale3d(.97, .97, .97);
- }
-
- to {
- opacity: 1;
- -webkit-transform: scale3d(1, 1, 1);
- transform: scale3d(1, 1, 1);
- }
-}
-
-@keyframes bounceIn {
- from,
- 20%,
- 40%,
- 60%,
- 80%,
- to {
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- }
-
- 0% {
- opacity: 0;
- -webkit-transform: scale3d(.3, .3, .3);
- transform: scale3d(.3, .3, .3);
- }
-
- 20% {
- -webkit-transform: scale3d(1.1, 1.1, 1.1);
- transform: scale3d(1.1, 1.1, 1.1);
- }
-
- 40% {
- -webkit-transform: scale3d(.9, .9, .9);
- transform: scale3d(.9, .9, .9);
- }
-
- 60% {
- opacity: 1;
- -webkit-transform: scale3d(1.03, 1.03, 1.03);
- transform: scale3d(1.03, 1.03, 1.03);
- }
-
- 80% {
- -webkit-transform: scale3d(.97, .97, .97);
- transform: scale3d(.97, .97, .97);
- }
-
- to {
- opacity: 1;
- -webkit-transform: scale3d(1, 1, 1);
- transform: scale3d(1, 1, 1);
- }
-}
-
-.bounceIn {
- -webkit-animation-duration: .75s;
- animation-duration: .75s;
- -webkit-animation-name: bounceIn;
- animation-name: bounceIn;
-}
-
-@-webkit-keyframes bounceInDown {
- from,
- 60%,
- 75%,
- 90%,
- to {
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- }
-
- 0% {
- opacity: 0;
- -webkit-transform: translate3d(0, -3000px, 0);
- transform: translate3d(0, -3000px, 0);
- }
-
- 60% {
- opacity: 1;
- -webkit-transform: translate3d(0, 25px, 0);
- transform: translate3d(0, 25px, 0);
- }
-
- 75% {
- -webkit-transform: translate3d(0, -10px, 0);
- transform: translate3d(0, -10px, 0);
- }
-
- 90% {
- -webkit-transform: translate3d(0, 5px, 0);
- transform: translate3d(0, 5px, 0);
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes bounceInDown {
- from,
- 60%,
- 75%,
- 90%,
- to {
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- }
-
- 0% {
- opacity: 0;
- -webkit-transform: translate3d(0, -3000px, 0);
- transform: translate3d(0, -3000px, 0);
- }
-
- 60% {
- opacity: 1;
- -webkit-transform: translate3d(0, 25px, 0);
- transform: translate3d(0, 25px, 0);
- }
-
- 75% {
- -webkit-transform: translate3d(0, -10px, 0);
- transform: translate3d(0, -10px, 0);
- }
-
- 90% {
- -webkit-transform: translate3d(0, 5px, 0);
- transform: translate3d(0, 5px, 0);
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.bounceInDown {
- -webkit-animation-name: bounceInDown;
- animation-name: bounceInDown;
-}
-
-@-webkit-keyframes bounceInLeft {
- from,
- 60%,
- 75%,
- 90%,
- to {
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- }
-
- 0% {
- opacity: 0;
- -webkit-transform: translate3d(-3000px, 0, 0);
- transform: translate3d(-3000px, 0, 0);
- }
-
- 60% {
- opacity: 1;
- -webkit-transform: translate3d(25px, 0, 0);
- transform: translate3d(25px, 0, 0);
- }
-
- 75% {
- -webkit-transform: translate3d(-10px, 0, 0);
- transform: translate3d(-10px, 0, 0);
- }
-
- 90% {
- -webkit-transform: translate3d(5px, 0, 0);
- transform: translate3d(5px, 0, 0);
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes bounceInLeft {
- from,
- 60%,
- 75%,
- 90%,
- to {
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- }
-
- 0% {
- opacity: 0;
- -webkit-transform: translate3d(-3000px, 0, 0);
- transform: translate3d(-3000px, 0, 0);
- }
-
- 60% {
- opacity: 1;
- -webkit-transform: translate3d(25px, 0, 0);
- transform: translate3d(25px, 0, 0);
- }
-
- 75% {
- -webkit-transform: translate3d(-10px, 0, 0);
- transform: translate3d(-10px, 0, 0);
- }
-
- 90% {
- -webkit-transform: translate3d(5px, 0, 0);
- transform: translate3d(5px, 0, 0);
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.bounceInLeft {
- -webkit-animation-name: bounceInLeft;
- animation-name: bounceInLeft;
-}
-
-@-webkit-keyframes bounceInRight {
- from,
- 60%,
- 75%,
- 90%,
- to {
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- }
-
- from {
- opacity: 0;
- -webkit-transform: translate3d(3000px, 0, 0);
- transform: translate3d(3000px, 0, 0);
- }
-
- 60% {
- opacity: 1;
- -webkit-transform: translate3d(-25px, 0, 0);
- transform: translate3d(-25px, 0, 0);
- }
-
- 75% {
- -webkit-transform: translate3d(10px, 0, 0);
- transform: translate3d(10px, 0, 0);
- }
-
- 90% {
- -webkit-transform: translate3d(-5px, 0, 0);
- transform: translate3d(-5px, 0, 0);
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes bounceInRight {
- from,
- 60%,
- 75%,
- 90%,
- to {
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- }
-
- from {
- opacity: 0;
- -webkit-transform: translate3d(3000px, 0, 0);
- transform: translate3d(3000px, 0, 0);
- }
-
- 60% {
- opacity: 1;
- -webkit-transform: translate3d(-25px, 0, 0);
- transform: translate3d(-25px, 0, 0);
- }
-
- 75% {
- -webkit-transform: translate3d(10px, 0, 0);
- transform: translate3d(10px, 0, 0);
- }
-
- 90% {
- -webkit-transform: translate3d(-5px, 0, 0);
- transform: translate3d(-5px, 0, 0);
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.bounceInRight {
- -webkit-animation-name: bounceInRight;
- animation-name: bounceInRight;
-}
-
-@-webkit-keyframes bounceInUp {
- from,
- 60%,
- 75%,
- 90%,
- to {
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- }
-
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, 3000px, 0);
- transform: translate3d(0, 3000px, 0);
- }
-
- 60% {
- opacity: 1;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
-
- 75% {
- -webkit-transform: translate3d(0, 10px, 0);
- transform: translate3d(0, 10px, 0);
- }
-
- 90% {
- -webkit-transform: translate3d(0, -5px, 0);
- transform: translate3d(0, -5px, 0);
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes bounceInUp {
- from,
- 60%,
- 75%,
- 90%,
- to {
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- animation-timing-function: cubic-bezier(.215, .61, .355, 1);
- }
-
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, 3000px, 0);
- transform: translate3d(0, 3000px, 0);
- }
-
- 60% {
- opacity: 1;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
-
- 75% {
- -webkit-transform: translate3d(0, 10px, 0);
- transform: translate3d(0, 10px, 0);
- }
-
- 90% {
- -webkit-transform: translate3d(0, -5px, 0);
- transform: translate3d(0, -5px, 0);
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.bounceInUp {
- -webkit-animation-name: bounceInUp;
- animation-name: bounceInUp;
-}
-
-@-webkit-keyframes bounceOut {
- 20% {
- -webkit-transform: scale3d(.9, .9, .9);
- transform: scale3d(.9, .9, .9);
- }
-
- 50%,
- 55% {
- opacity: 1;
- -webkit-transform: scale3d(1.1, 1.1, 1.1);
- transform: scale3d(1.1, 1.1, 1.1);
- }
-
- to {
- opacity: 0;
- -webkit-transform: scale3d(.3, .3, .3);
- transform: scale3d(.3, .3, .3);
- }
-}
-
-@keyframes bounceOut {
- 20% {
- -webkit-transform: scale3d(.9, .9, .9);
- transform: scale3d(.9, .9, .9);
- }
-
- 50%,
- 55% {
- opacity: 1;
- -webkit-transform: scale3d(1.1, 1.1, 1.1);
- transform: scale3d(1.1, 1.1, 1.1);
- }
-
- to {
- opacity: 0;
- -webkit-transform: scale3d(.3, .3, .3);
- transform: scale3d(.3, .3, .3);
- }
-}
-
-.bounceOut {
- -webkit-animation-duration: .75s;
- animation-duration: .75s;
- -webkit-animation-name: bounceOut;
- animation-name: bounceOut;
-}
-
-@-webkit-keyframes bounceOutDown {
- 20% {
- -webkit-transform: translate3d(0, 10px, 0);
- transform: translate3d(0, 10px, 0);
- }
-
- 40%,
- 45% {
- opacity: 1;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, 2000px, 0);
- transform: translate3d(0, 2000px, 0);
- }
-}
-
-@keyframes bounceOutDown {
- 20% {
- -webkit-transform: translate3d(0, 10px, 0);
- transform: translate3d(0, 10px, 0);
- }
-
- 40%,
- 45% {
- opacity: 1;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, 2000px, 0);
- transform: translate3d(0, 2000px, 0);
- }
-}
-
-.bounceOutDown {
- -webkit-animation-name: bounceOutDown;
- animation-name: bounceOutDown;
-}
-
-@-webkit-keyframes bounceOutLeft {
- 20% {
- opacity: 1;
- -webkit-transform: translate3d(20px, 0, 0);
- transform: translate3d(20px, 0, 0);
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(-2000px, 0, 0);
- transform: translate3d(-2000px, 0, 0);
- }
-}
-
-@keyframes bounceOutLeft {
- 20% {
- opacity: 1;
- -webkit-transform: translate3d(20px, 0, 0);
- transform: translate3d(20px, 0, 0);
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(-2000px, 0, 0);
- transform: translate3d(-2000px, 0, 0);
- }
-}
-
-.bounceOutLeft {
- -webkit-animation-name: bounceOutLeft;
- animation-name: bounceOutLeft;
-}
-
-@-webkit-keyframes bounceOutRight {
- 20% {
- opacity: 1;
- -webkit-transform: translate3d(-20px, 0, 0);
- transform: translate3d(-20px, 0, 0);
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(2000px, 0, 0);
- transform: translate3d(2000px, 0, 0);
- }
-}
-
-@keyframes bounceOutRight {
- 20% {
- opacity: 1;
- -webkit-transform: translate3d(-20px, 0, 0);
- transform: translate3d(-20px, 0, 0);
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(2000px, 0, 0);
- transform: translate3d(2000px, 0, 0);
- }
-}
-
-.bounceOutRight {
- -webkit-animation-name: bounceOutRight;
- animation-name: bounceOutRight;
-}
-
-@-webkit-keyframes bounceOutUp {
- 20% {
- -webkit-transform: translate3d(0, -10px, 0);
- transform: translate3d(0, -10px, 0);
- }
-
- 40%,
- 45% {
- opacity: 1;
- -webkit-transform: translate3d(0, 20px, 0);
- transform: translate3d(0, 20px, 0);
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, -2000px, 0);
- transform: translate3d(0, -2000px, 0);
- }
-}
-
-@keyframes bounceOutUp {
- 20% {
- -webkit-transform: translate3d(0, -10px, 0);
- transform: translate3d(0, -10px, 0);
- }
-
- 40%,
- 45% {
- opacity: 1;
- -webkit-transform: translate3d(0, 20px, 0);
- transform: translate3d(0, 20px, 0);
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, -2000px, 0);
- transform: translate3d(0, -2000px, 0);
- }
-}
-
-.bounceOutUp {
- -webkit-animation-name: bounceOutUp;
- animation-name: bounceOutUp;
-}
-
-@-webkit-keyframes fadeIn {
- from {
- opacity: 0;
- }
-
- to {
- opacity: 1;
- }
-}
-
-@keyframes fadeIn {
- from {
- opacity: 0;
- }
-
- to {
- opacity: 1;
- }
-}
-
-.fadeIn {
- -webkit-animation-name: fadeIn;
- animation-name: fadeIn;
-}
-
-@-webkit-keyframes fadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -100%, 0);
- transform: translate3d(0, -100%, 0);
- }
-
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes fadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -100%, 0);
- transform: translate3d(0, -100%, 0);
- }
-
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.fadeInDown {
- -webkit-animation-name: fadeInDown;
- animation-name: fadeInDown;
-}
-
-@-webkit-keyframes fadeInDownBig {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -2000px, 0);
- transform: translate3d(0, -2000px, 0);
- }
-
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes fadeInDownBig {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -2000px, 0);
- transform: translate3d(0, -2000px, 0);
- }
-
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.fadeInDownBig {
- -webkit-animation-name: fadeInDownBig;
- animation-name: fadeInDownBig;
-}
-
-@-webkit-keyframes fadeInLeft {
- from {
- opacity: 0;
- -webkit-transform: translate3d(-100%, 0, 0);
- transform: translate3d(-100%, 0, 0);
- }
-
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes fadeInLeft {
- from {
- opacity: 0;
- -webkit-transform: translate3d(-100%, 0, 0);
- transform: translate3d(-100%, 0, 0);
- }
-
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.fadeInLeft {
- -webkit-animation-name: fadeInLeft;
- animation-name: fadeInLeft;
-}
-
-@-webkit-keyframes fadeInLeftBig {
- from {
- opacity: 0;
- -webkit-transform: translate3d(-2000px, 0, 0);
- transform: translate3d(-2000px, 0, 0);
- }
-
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes fadeInLeftBig {
- from {
- opacity: 0;
- -webkit-transform: translate3d(-2000px, 0, 0);
- transform: translate3d(-2000px, 0, 0);
- }
-
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.fadeInLeftBig {
- -webkit-animation-name: fadeInLeftBig;
- animation-name: fadeInLeftBig;
-}
-
-@-webkit-keyframes fadeInRight {
- from {
- opacity: 0;
- -webkit-transform: translate3d(100%, 0, 0);
- transform: translate3d(100%, 0, 0);
- }
-
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes fadeInRight {
- from {
- opacity: 0;
- -webkit-transform: translate3d(100%, 0, 0);
- transform: translate3d(100%, 0, 0);
- }
-
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.fadeInRight {
- -webkit-animation-name: fadeInRight;
- animation-name: fadeInRight;
-}
-
-@-webkit-keyframes fadeInRightBig {
- from {
- opacity: 0;
- -webkit-transform: translate3d(2000px, 0, 0);
- transform: translate3d(2000px, 0, 0);
- }
-
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes fadeInRightBig {
- from {
- opacity: 0;
- -webkit-transform: translate3d(2000px, 0, 0);
- transform: translate3d(2000px, 0, 0);
- }
-
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.fadeInRightBig {
- -webkit-animation-name: fadeInRightBig;
- animation-name: fadeInRightBig;
-}
-
-@-webkit-keyframes fadeInUp {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, 100%, 0);
- transform: translate3d(0, 100%, 0);
- }
-
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes fadeInUp {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, 100%, 0);
- transform: translate3d(0, 100%, 0);
- }
-
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.fadeInUp {
- -webkit-animation-name: fadeInUp;
- animation-name: fadeInUp;
-}
-
-@-webkit-keyframes fadeInUpBig {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, 2000px, 0);
- transform: translate3d(0, 2000px, 0);
- }
-
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes fadeInUpBig {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, 2000px, 0);
- transform: translate3d(0, 2000px, 0);
- }
-
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.fadeInUpBig {
- -webkit-animation-name: fadeInUpBig;
- animation-name: fadeInUpBig;
-}
-
-@-webkit-keyframes fadeOut {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- }
-}
-
-@keyframes fadeOut {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- }
-}
-
-.fadeOut {
- -webkit-animation-name: fadeOut;
- animation-name: fadeOut;
-}
-
-@-webkit-keyframes fadeOutDown {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, 100%, 0);
- transform: translate3d(0, 100%, 0);
- }
-}
-
-@keyframes fadeOutDown {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, 100%, 0);
- transform: translate3d(0, 100%, 0);
- }
-}
-
-.fadeOutDown {
- -webkit-animation-name: fadeOutDown;
- animation-name: fadeOutDown;
-}
-
-@-webkit-keyframes fadeOutDownBig {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, 2000px, 0);
- transform: translate3d(0, 2000px, 0);
- }
-}
-
-@keyframes fadeOutDownBig {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, 2000px, 0);
- transform: translate3d(0, 2000px, 0);
- }
-}
-
-.fadeOutDownBig {
- -webkit-animation-name: fadeOutDownBig;
- animation-name: fadeOutDownBig;
-}
-
-@-webkit-keyframes fadeOutLeft {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(-100%, 0, 0);
- transform: translate3d(-100%, 0, 0);
- }
-}
-
-@keyframes fadeOutLeft {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(-100%, 0, 0);
- transform: translate3d(-100%, 0, 0);
- }
-}
-
-.fadeOutLeft {
- -webkit-animation-name: fadeOutLeft;
- animation-name: fadeOutLeft;
-}
-
-@-webkit-keyframes fadeOutLeftBig {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(-2000px, 0, 0);
- transform: translate3d(-2000px, 0, 0);
- }
-}
-
-@keyframes fadeOutLeftBig {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(-2000px, 0, 0);
- transform: translate3d(-2000px, 0, 0);
- }
-}
-
-.fadeOutLeftBig {
- -webkit-animation-name: fadeOutLeftBig;
- animation-name: fadeOutLeftBig;
-}
-
-@-webkit-keyframes fadeOutRight {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(100%, 0, 0);
- transform: translate3d(100%, 0, 0);
- }
-}
-
-@keyframes fadeOutRight {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(100%, 0, 0);
- transform: translate3d(100%, 0, 0);
- }
-}
-
-.fadeOutRight {
- -webkit-animation-name: fadeOutRight;
- animation-name: fadeOutRight;
-}
-
-@-webkit-keyframes fadeOutRightBig {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(2000px, 0, 0);
- transform: translate3d(2000px, 0, 0);
- }
-}
-
-@keyframes fadeOutRightBig {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(2000px, 0, 0);
- transform: translate3d(2000px, 0, 0);
- }
-}
-
-.fadeOutRightBig {
- -webkit-animation-name: fadeOutRightBig;
- animation-name: fadeOutRightBig;
-}
-
-@-webkit-keyframes fadeOutUp {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, -100%, 0);
- transform: translate3d(0, -100%, 0);
- }
-}
-
-@keyframes fadeOutUp {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, -100%, 0);
- transform: translate3d(0, -100%, 0);
- }
-}
-
-.fadeOutUp {
- -webkit-animation-name: fadeOutUp;
- animation-name: fadeOutUp;
-}
-
-@-webkit-keyframes fadeOutUpBig {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, -2000px, 0);
- transform: translate3d(0, -2000px, 0);
- }
-}
-
-@keyframes fadeOutUpBig {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, -2000px, 0);
- transform: translate3d(0, -2000px, 0);
- }
-}
-
-.fadeOutUpBig {
- -webkit-animation-name: fadeOutUpBig;
- animation-name: fadeOutUpBig;
-}
-
-@-webkit-keyframes flip {
- from {
- -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0)
- rotate3d(0, 1, 0, -360deg);
- transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);
- -webkit-animation-timing-function: ease-out;
- animation-timing-function: ease-out;
- }
-
- 40% {
- -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
- rotate3d(0, 1, 0, -190deg);
- transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
- rotate3d(0, 1, 0, -190deg);
- -webkit-animation-timing-function: ease-out;
- animation-timing-function: ease-out;
- }
-
- 50% {
- -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
- rotate3d(0, 1, 0, -170deg);
- transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
- rotate3d(0, 1, 0, -170deg);
- -webkit-animation-timing-function: ease-in;
- animation-timing-function: ease-in;
- }
-
- 80% {
- -webkit-transform: perspective(400px) scale3d(.95, .95, .95) translate3d(0, 0, 0)
- rotate3d(0, 1, 0, 0deg);
- transform: perspective(400px) scale3d(.95, .95, .95) translate3d(0, 0, 0)
- rotate3d(0, 1, 0, 0deg);
- -webkit-animation-timing-function: ease-in;
- animation-timing-function: ease-in;
- }
-
- to {
- -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0)
- rotate3d(0, 1, 0, 0deg);
- transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
- -webkit-animation-timing-function: ease-in;
- animation-timing-function: ease-in;
- }
-}
-
-@keyframes flip {
- from {
- -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0)
- rotate3d(0, 1, 0, -360deg);
- transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);
- -webkit-animation-timing-function: ease-out;
- animation-timing-function: ease-out;
- }
-
- 40% {
- -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
- rotate3d(0, 1, 0, -190deg);
- transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
- rotate3d(0, 1, 0, -190deg);
- -webkit-animation-timing-function: ease-out;
- animation-timing-function: ease-out;
- }
-
- 50% {
- -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
- rotate3d(0, 1, 0, -170deg);
- transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
- rotate3d(0, 1, 0, -170deg);
- -webkit-animation-timing-function: ease-in;
- animation-timing-function: ease-in;
- }
-
- 80% {
- -webkit-transform: perspective(400px) scale3d(.95, .95, .95) translate3d(0, 0, 0)
- rotate3d(0, 1, 0, 0deg);
- transform: perspective(400px) scale3d(.95, .95, .95) translate3d(0, 0, 0)
- rotate3d(0, 1, 0, 0deg);
- -webkit-animation-timing-function: ease-in;
- animation-timing-function: ease-in;
- }
-
- to {
- -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0)
- rotate3d(0, 1, 0, 0deg);
- transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
- -webkit-animation-timing-function: ease-in;
- animation-timing-function: ease-in;
- }
-}
-
-.animated.flip {
- -webkit-backface-visibility: visible;
- backface-visibility: visible;
- -webkit-animation-name: flip;
- animation-name: flip;
-}
-
-@-webkit-keyframes flipInX {
- from {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
- transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
- -webkit-animation-timing-function: ease-in;
- animation-timing-function: ease-in;
- opacity: 0;
- }
-
- 40% {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
- transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
- -webkit-animation-timing-function: ease-in;
- animation-timing-function: ease-in;
- }
-
- 60% {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
- transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
- opacity: 1;
- }
-
- 80% {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
- transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
- }
-
- to {
- -webkit-transform: perspective(400px);
- transform: perspective(400px);
- }
-}
-
-@keyframes flipInX {
- from {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
- transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
- -webkit-animation-timing-function: ease-in;
- animation-timing-function: ease-in;
- opacity: 0;
- }
-
- 40% {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
- transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
- -webkit-animation-timing-function: ease-in;
- animation-timing-function: ease-in;
- }
-
- 60% {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
- transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
- opacity: 1;
- }
-
- 80% {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
- transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
- }
-
- to {
- -webkit-transform: perspective(400px);
- transform: perspective(400px);
- }
-}
-
-.flipInX {
- -webkit-backface-visibility: visible !important;
- backface-visibility: visible !important;
- -webkit-animation-name: flipInX;
- animation-name: flipInX;
-}
-
-@-webkit-keyframes flipInY {
- from {
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
- transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
- -webkit-animation-timing-function: ease-in;
- animation-timing-function: ease-in;
- opacity: 0;
- }
-
- 40% {
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
- transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
- -webkit-animation-timing-function: ease-in;
- animation-timing-function: ease-in;
- }
-
- 60% {
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
- transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
- opacity: 1;
- }
-
- 80% {
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
- transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
- }
-
- to {
- -webkit-transform: perspective(400px);
- transform: perspective(400px);
- }
-}
-
-@keyframes flipInY {
- from {
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
- transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
- -webkit-animation-timing-function: ease-in;
- animation-timing-function: ease-in;
- opacity: 0;
- }
-
- 40% {
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
- transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
- -webkit-animation-timing-function: ease-in;
- animation-timing-function: ease-in;
- }
-
- 60% {
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
- transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
- opacity: 1;
- }
-
- 80% {
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
- transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
- }
-
- to {
- -webkit-transform: perspective(400px);
- transform: perspective(400px);
- }
-}
-
-.flipInY {
- -webkit-backface-visibility: visible !important;
- backface-visibility: visible !important;
- -webkit-animation-name: flipInY;
- animation-name: flipInY;
-}
-
-@-webkit-keyframes flipOutX {
- from {
- -webkit-transform: perspective(400px);
- transform: perspective(400px);
- }
-
- 30% {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
- transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
- opacity: 1;
- }
-
- to {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
- transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
- opacity: 0;
- }
-}
-
-@keyframes flipOutX {
- from {
- -webkit-transform: perspective(400px);
- transform: perspective(400px);
- }
-
- 30% {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
- transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
- opacity: 1;
- }
-
- to {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
- transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
- opacity: 0;
- }
-}
-
-.flipOutX {
- -webkit-animation-duration: .75s;
- animation-duration: .75s;
- -webkit-animation-name: flipOutX;
- animation-name: flipOutX;
- -webkit-backface-visibility: visible !important;
- backface-visibility: visible !important;
-}
-
-@-webkit-keyframes flipOutY {
- from {
- -webkit-transform: perspective(400px);
- transform: perspective(400px);
- }
-
- 30% {
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
- transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
- opacity: 1;
- }
-
- to {
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
- transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
- opacity: 0;
- }
-}
-
-@keyframes flipOutY {
- from {
- -webkit-transform: perspective(400px);
- transform: perspective(400px);
- }
-
- 30% {
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
- transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
- opacity: 1;
- }
-
- to {
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
- transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
- opacity: 0;
- }
-}
-
-.flipOutY {
- -webkit-animation-duration: .75s;
- animation-duration: .75s;
- -webkit-backface-visibility: visible !important;
- backface-visibility: visible !important;
- -webkit-animation-name: flipOutY;
- animation-name: flipOutY;
-}
-
-@-webkit-keyframes lightSpeedIn {
- from {
- -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
- transform: translate3d(100%, 0, 0) skewX(-30deg);
- opacity: 0;
- }
-
- 60% {
- -webkit-transform: skewX(20deg);
- transform: skewX(20deg);
- opacity: 1;
- }
-
- 80% {
- -webkit-transform: skewX(-5deg);
- transform: skewX(-5deg);
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes lightSpeedIn {
- from {
- -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
- transform: translate3d(100%, 0, 0) skewX(-30deg);
- opacity: 0;
- }
-
- 60% {
- -webkit-transform: skewX(20deg);
- transform: skewX(20deg);
- opacity: 1;
- }
-
- 80% {
- -webkit-transform: skewX(-5deg);
- transform: skewX(-5deg);
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.lightSpeedIn {
- -webkit-animation-name: lightSpeedIn;
- animation-name: lightSpeedIn;
- -webkit-animation-timing-function: ease-out;
- animation-timing-function: ease-out;
-}
-
-@-webkit-keyframes lightSpeedOut {
- from {
- opacity: 1;
- }
-
- to {
- -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
- transform: translate3d(100%, 0, 0) skewX(30deg);
- opacity: 0;
- }
-}
-
-@keyframes lightSpeedOut {
- from {
- opacity: 1;
- }
-
- to {
- -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
- transform: translate3d(100%, 0, 0) skewX(30deg);
- opacity: 0;
- }
-}
-
-.lightSpeedOut {
- -webkit-animation-name: lightSpeedOut;
- animation-name: lightSpeedOut;
- -webkit-animation-timing-function: ease-in;
- animation-timing-function: ease-in;
-}
-
-@-webkit-keyframes rotateIn {
- from {
- -webkit-transform-origin: center;
- transform-origin: center;
- -webkit-transform: rotate3d(0, 0, 1, -200deg);
- transform: rotate3d(0, 0, 1, -200deg);
- opacity: 0;
- }
-
- to {
- -webkit-transform-origin: center;
- transform-origin: center;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- opacity: 1;
- }
-}
-
-@keyframes rotateIn {
- from {
- -webkit-transform-origin: center;
- transform-origin: center;
- -webkit-transform: rotate3d(0, 0, 1, -200deg);
- transform: rotate3d(0, 0, 1, -200deg);
- opacity: 0;
- }
-
- to {
- -webkit-transform-origin: center;
- transform-origin: center;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- opacity: 1;
- }
-}
-
-.rotateIn {
- -webkit-animation-name: rotateIn;
- animation-name: rotateIn;
-}
-
-@-webkit-keyframes rotateInDownLeft {
- from {
- -webkit-transform-origin: left bottom;
- transform-origin: left bottom;
- -webkit-transform: rotate3d(0, 0, 1, -45deg);
- transform: rotate3d(0, 0, 1, -45deg);
- opacity: 0;
- }
-
- to {
- -webkit-transform-origin: left bottom;
- transform-origin: left bottom;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- opacity: 1;
- }
-}
-
-@keyframes rotateInDownLeft {
- from {
- -webkit-transform-origin: left bottom;
- transform-origin: left bottom;
- -webkit-transform: rotate3d(0, 0, 1, -45deg);
- transform: rotate3d(0, 0, 1, -45deg);
- opacity: 0;
- }
-
- to {
- -webkit-transform-origin: left bottom;
- transform-origin: left bottom;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- opacity: 1;
- }
-}
-
-.rotateInDownLeft {
- -webkit-animation-name: rotateInDownLeft;
- animation-name: rotateInDownLeft;
-}
-
-@-webkit-keyframes rotateInDownRight {
- from {
- -webkit-transform-origin: right bottom;
- transform-origin: right bottom;
- -webkit-transform: rotate3d(0, 0, 1, 45deg);
- transform: rotate3d(0, 0, 1, 45deg);
- opacity: 0;
- }
-
- to {
- -webkit-transform-origin: right bottom;
- transform-origin: right bottom;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- opacity: 1;
- }
-}
-
-@keyframes rotateInDownRight {
- from {
- -webkit-transform-origin: right bottom;
- transform-origin: right bottom;
- -webkit-transform: rotate3d(0, 0, 1, 45deg);
- transform: rotate3d(0, 0, 1, 45deg);
- opacity: 0;
- }
-
- to {
- -webkit-transform-origin: right bottom;
- transform-origin: right bottom;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- opacity: 1;
- }
-}
-
-.rotateInDownRight {
- -webkit-animation-name: rotateInDownRight;
- animation-name: rotateInDownRight;
-}
-
-@-webkit-keyframes rotateInUpLeft {
- from {
- -webkit-transform-origin: left bottom;
- transform-origin: left bottom;
- -webkit-transform: rotate3d(0, 0, 1, 45deg);
- transform: rotate3d(0, 0, 1, 45deg);
- opacity: 0;
- }
-
- to {
- -webkit-transform-origin: left bottom;
- transform-origin: left bottom;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- opacity: 1;
- }
-}
-
-@keyframes rotateInUpLeft {
- from {
- -webkit-transform-origin: left bottom;
- transform-origin: left bottom;
- -webkit-transform: rotate3d(0, 0, 1, 45deg);
- transform: rotate3d(0, 0, 1, 45deg);
- opacity: 0;
- }
-
- to {
- -webkit-transform-origin: left bottom;
- transform-origin: left bottom;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- opacity: 1;
- }
-}
-
-.rotateInUpLeft {
- -webkit-animation-name: rotateInUpLeft;
- animation-name: rotateInUpLeft;
-}
-
-@-webkit-keyframes rotateInUpRight {
- from {
- -webkit-transform-origin: right bottom;
- transform-origin: right bottom;
- -webkit-transform: rotate3d(0, 0, 1, -90deg);
- transform: rotate3d(0, 0, 1, -90deg);
- opacity: 0;
- }
-
- to {
- -webkit-transform-origin: right bottom;
- transform-origin: right bottom;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- opacity: 1;
- }
-}
-
-@keyframes rotateInUpRight {
- from {
- -webkit-transform-origin: right bottom;
- transform-origin: right bottom;
- -webkit-transform: rotate3d(0, 0, 1, -90deg);
- transform: rotate3d(0, 0, 1, -90deg);
- opacity: 0;
- }
-
- to {
- -webkit-transform-origin: right bottom;
- transform-origin: right bottom;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- opacity: 1;
- }
-}
-
-.rotateInUpRight {
- -webkit-animation-name: rotateInUpRight;
- animation-name: rotateInUpRight;
-}
-
-@-webkit-keyframes rotateOut {
- from {
- -webkit-transform-origin: center;
- transform-origin: center;
- opacity: 1;
- }
-
- to {
- -webkit-transform-origin: center;
- transform-origin: center;
- -webkit-transform: rotate3d(0, 0, 1, 200deg);
- transform: rotate3d(0, 0, 1, 200deg);
- opacity: 0;
- }
-}
-
-@keyframes rotateOut {
- from {
- -webkit-transform-origin: center;
- transform-origin: center;
- opacity: 1;
- }
-
- to {
- -webkit-transform-origin: center;
- transform-origin: center;
- -webkit-transform: rotate3d(0, 0, 1, 200deg);
- transform: rotate3d(0, 0, 1, 200deg);
- opacity: 0;
- }
-}
-
-.rotateOut {
- -webkit-animation-name: rotateOut;
- animation-name: rotateOut;
-}
-
-@-webkit-keyframes rotateOutDownLeft {
- from {
- -webkit-transform-origin: left bottom;
- transform-origin: left bottom;
- opacity: 1;
- }
-
- to {
- -webkit-transform-origin: left bottom;
- transform-origin: left bottom;
- -webkit-transform: rotate3d(0, 0, 1, 45deg);
- transform: rotate3d(0, 0, 1, 45deg);
- opacity: 0;
- }
-}
-
-@keyframes rotateOutDownLeft {
- from {
- -webkit-transform-origin: left bottom;
- transform-origin: left bottom;
- opacity: 1;
- }
-
- to {
- -webkit-transform-origin: left bottom;
- transform-origin: left bottom;
- -webkit-transform: rotate3d(0, 0, 1, 45deg);
- transform: rotate3d(0, 0, 1, 45deg);
- opacity: 0;
- }
-}
-
-.rotateOutDownLeft {
- -webkit-animation-name: rotateOutDownLeft;
- animation-name: rotateOutDownLeft;
-}
-
-@-webkit-keyframes rotateOutDownRight {
- from {
- -webkit-transform-origin: right bottom;
- transform-origin: right bottom;
- opacity: 1;
- }
-
- to {
- -webkit-transform-origin: right bottom;
- transform-origin: right bottom;
- -webkit-transform: rotate3d(0, 0, 1, -45deg);
- transform: rotate3d(0, 0, 1, -45deg);
- opacity: 0;
- }
-}
-
-@keyframes rotateOutDownRight {
- from {
- -webkit-transform-origin: right bottom;
- transform-origin: right bottom;
- opacity: 1;
- }
-
- to {
- -webkit-transform-origin: right bottom;
- transform-origin: right bottom;
- -webkit-transform: rotate3d(0, 0, 1, -45deg);
- transform: rotate3d(0, 0, 1, -45deg);
- opacity: 0;
- }
-}
-
-.rotateOutDownRight {
- -webkit-animation-name: rotateOutDownRight;
- animation-name: rotateOutDownRight;
-}
-
-@-webkit-keyframes rotateOutUpLeft {
- from {
- -webkit-transform-origin: left bottom;
- transform-origin: left bottom;
- opacity: 1;
- }
-
- to {
- -webkit-transform-origin: left bottom;
- transform-origin: left bottom;
- -webkit-transform: rotate3d(0, 0, 1, -45deg);
- transform: rotate3d(0, 0, 1, -45deg);
- opacity: 0;
- }
-}
-
-@keyframes rotateOutUpLeft {
- from {
- -webkit-transform-origin: left bottom;
- transform-origin: left bottom;
- opacity: 1;
- }
-
- to {
- -webkit-transform-origin: left bottom;
- transform-origin: left bottom;
- -webkit-transform: rotate3d(0, 0, 1, -45deg);
- transform: rotate3d(0, 0, 1, -45deg);
- opacity: 0;
- }
-}
-
-.rotateOutUpLeft {
- -webkit-animation-name: rotateOutUpLeft;
- animation-name: rotateOutUpLeft;
-}
-
-@-webkit-keyframes rotateOutUpRight {
- from {
- -webkit-transform-origin: right bottom;
- transform-origin: right bottom;
- opacity: 1;
- }
-
- to {
- -webkit-transform-origin: right bottom;
- transform-origin: right bottom;
- -webkit-transform: rotate3d(0, 0, 1, 90deg);
- transform: rotate3d(0, 0, 1, 90deg);
- opacity: 0;
- }
-}
-
-@keyframes rotateOutUpRight {
- from {
- -webkit-transform-origin: right bottom;
- transform-origin: right bottom;
- opacity: 1;
- }
-
- to {
- -webkit-transform-origin: right bottom;
- transform-origin: right bottom;
- -webkit-transform: rotate3d(0, 0, 1, 90deg);
- transform: rotate3d(0, 0, 1, 90deg);
- opacity: 0;
- }
-}
-
-.rotateOutUpRight {
- -webkit-animation-name: rotateOutUpRight;
- animation-name: rotateOutUpRight;
-}
-
-@-webkit-keyframes hinge {
- 0% {
- -webkit-transform-origin: top left;
- transform-origin: top left;
- -webkit-animation-timing-function: ease-in-out;
- animation-timing-function: ease-in-out;
- }
-
- 20%,
- 60% {
- -webkit-transform: rotate3d(0, 0, 1, 80deg);
- transform: rotate3d(0, 0, 1, 80deg);
- -webkit-transform-origin: top left;
- transform-origin: top left;
- -webkit-animation-timing-function: ease-in-out;
- animation-timing-function: ease-in-out;
- }
-
- 40%,
- 80% {
- -webkit-transform: rotate3d(0, 0, 1, 60deg);
- transform: rotate3d(0, 0, 1, 60deg);
- -webkit-transform-origin: top left;
- transform-origin: top left;
- -webkit-animation-timing-function: ease-in-out;
- animation-timing-function: ease-in-out;
- opacity: 1;
- }
-
- to {
- -webkit-transform: translate3d(0, 700px, 0);
- transform: translate3d(0, 700px, 0);
- opacity: 0;
- }
-}
-
-@keyframes hinge {
- 0% {
- -webkit-transform-origin: top left;
- transform-origin: top left;
- -webkit-animation-timing-function: ease-in-out;
- animation-timing-function: ease-in-out;
- }
-
- 20%,
- 60% {
- -webkit-transform: rotate3d(0, 0, 1, 80deg);
- transform: rotate3d(0, 0, 1, 80deg);
- -webkit-transform-origin: top left;
- transform-origin: top left;
- -webkit-animation-timing-function: ease-in-out;
- animation-timing-function: ease-in-out;
- }
-
- 40%,
- 80% {
- -webkit-transform: rotate3d(0, 0, 1, 60deg);
- transform: rotate3d(0, 0, 1, 60deg);
- -webkit-transform-origin: top left;
- transform-origin: top left;
- -webkit-animation-timing-function: ease-in-out;
- animation-timing-function: ease-in-out;
- opacity: 1;
- }
-
- to {
- -webkit-transform: translate3d(0, 700px, 0);
- transform: translate3d(0, 700px, 0);
- opacity: 0;
- }
-}
-
-.hinge {
- -webkit-animation-duration: 2s;
- animation-duration: 2s;
- -webkit-animation-name: hinge;
- animation-name: hinge;
-}
-
-@-webkit-keyframes jackInTheBox {
- from {
- opacity: 0;
- -webkit-transform: scale(.1) rotate(30deg);
- transform: scale(.1) rotate(30deg);
- -webkit-transform-origin: center bottom;
- transform-origin: center bottom;
- }
-
- 50% {
- -webkit-transform: rotate(-10deg);
- transform: rotate(-10deg);
- }
-
- 70% {
- -webkit-transform: rotate(3deg);
- transform: rotate(3deg);
- }
-
- to {
- opacity: 1;
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-
-@keyframes jackInTheBox {
- from {
- opacity: 0;
- -webkit-transform: scale(.1) rotate(30deg);
- transform: scale(.1) rotate(30deg);
- -webkit-transform-origin: center bottom;
- transform-origin: center bottom;
- }
-
- 50% {
- -webkit-transform: rotate(-10deg);
- transform: rotate(-10deg);
- }
-
- 70% {
- -webkit-transform: rotate(3deg);
- transform: rotate(3deg);
- }
-
- to {
- opacity: 1;
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-
-.jackInTheBox {
- -webkit-animation-name: jackInTheBox;
- animation-name: jackInTheBox;
-}
-/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
-
-@-webkit-keyframes rollIn {
- from {
- opacity: 0;
- -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
- transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
- }
-
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes rollIn {
- from {
- opacity: 0;
- -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
- transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
- }
-
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.rollIn {
- -webkit-animation-name: rollIn;
- animation-name: rollIn;
-}
-/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
-
-@-webkit-keyframes rollOut {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
- transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
- }
-}
-
-@keyframes rollOut {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
- transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
- }
-}
-
-.rollOut {
- -webkit-animation-name: rollOut;
- animation-name: rollOut;
-}
-
-@-webkit-keyframes zoomIn {
- from {
- opacity: 0;
- -webkit-transform: scale3d(.3, .3, .3);
- transform: scale3d(.3, .3, .3);
- }
-
- 50% {
- opacity: 1;
- }
-}
-
-@keyframes zoomIn {
- from {
- opacity: 0;
- -webkit-transform: scale3d(.3, .3, .3);
- transform: scale3d(.3, .3, .3);
- }
-
- 50% {
- opacity: 1;
- }
-}
-
-.zoomIn {
- -webkit-animation-name: zoomIn;
- animation-name: zoomIn;
-}
-
-@-webkit-keyframes zoomInDown {
- from {
- opacity: 0;
- -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
- transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- }
-
- 60% {
- opacity: 1;
- -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
- transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- }
-}
-
-@keyframes zoomInDown {
- from {
- opacity: 0;
- -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
- transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- }
-
- 60% {
- opacity: 1;
- -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
- transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- }
-}
-
-.zoomInDown {
- -webkit-animation-name: zoomInDown;
- animation-name: zoomInDown;
-}
-
-@-webkit-keyframes zoomInLeft {
- from {
- opacity: 0;
- -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
- transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- }
-
- 60% {
- opacity: 1;
- -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
- transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- }
-}
-
-@keyframes zoomInLeft {
- from {
- opacity: 0;
- -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
- transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- }
-
- 60% {
- opacity: 1;
- -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
- transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- }
-}
-
-.zoomInLeft {
- -webkit-animation-name: zoomInLeft;
- animation-name: zoomInLeft;
-}
-
-@-webkit-keyframes zoomInRight {
- from {
- opacity: 0;
- -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
- transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- }
-
- 60% {
- opacity: 1;
- -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
- transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- }
-}
-
-@keyframes zoomInRight {
- from {
- opacity: 0;
- -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
- transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- }
-
- 60% {
- opacity: 1;
- -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
- transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- }
-}
-
-.zoomInRight {
- -webkit-animation-name: zoomInRight;
- animation-name: zoomInRight;
-}
-
-@-webkit-keyframes zoomInUp {
- from {
- opacity: 0;
- -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
- transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- }
-
- 60% {
- opacity: 1;
- -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
- transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- }
-}
-
-@keyframes zoomInUp {
- from {
- opacity: 0;
- -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
- transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- }
-
- 60% {
- opacity: 1;
- -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
- transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- }
-}
-
-.zoomInUp {
- -webkit-animation-name: zoomInUp;
- animation-name: zoomInUp;
-}
-
-@-webkit-keyframes zoomOut {
- from {
- opacity: 1;
- }
-
- 50% {
- opacity: 0;
- -webkit-transform: scale3d(.3, .3, .3);
- transform: scale3d(.3, .3, .3);
- }
-
- to {
- opacity: 0;
- }
-}
-
-@keyframes zoomOut {
- from {
- opacity: 1;
- }
-
- 50% {
- opacity: 0;
- -webkit-transform: scale3d(.3, .3, .3);
- transform: scale3d(.3, .3, .3);
- }
-
- to {
- opacity: 0;
- }
-}
-
-.zoomOut {
- -webkit-animation-name: zoomOut;
- animation-name: zoomOut;
-}
-
-@-webkit-keyframes zoomOutDown {
- 40% {
- opacity: 1;
- -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
- transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- }
-
- to {
- opacity: 0;
- -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
- transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
- -webkit-transform-origin: center bottom;
- transform-origin: center bottom;
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- }
-}
-
-@keyframes zoomOutDown {
- 40% {
- opacity: 1;
- -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
- transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- }
-
- to {
- opacity: 0;
- -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
- transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
- -webkit-transform-origin: center bottom;
- transform-origin: center bottom;
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- }
-}
-
-.zoomOutDown {
- -webkit-animation-name: zoomOutDown;
- animation-name: zoomOutDown;
-}
-
-@-webkit-keyframes zoomOutLeft {
- 40% {
- opacity: 1;
- -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
- transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
- }
-
- to {
- opacity: 0;
- -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
- transform: scale(.1) translate3d(-2000px, 0, 0);
- -webkit-transform-origin: left center;
- transform-origin: left center;
- }
-}
-
-@keyframes zoomOutLeft {
- 40% {
- opacity: 1;
- -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
- transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
- }
-
- to {
- opacity: 0;
- -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
- transform: scale(.1) translate3d(-2000px, 0, 0);
- -webkit-transform-origin: left center;
- transform-origin: left center;
- }
-}
-
-.zoomOutLeft {
- -webkit-animation-name: zoomOutLeft;
- animation-name: zoomOutLeft;
-}
-
-@-webkit-keyframes zoomOutRight {
- 40% {
- opacity: 1;
- -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
- transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
- }
-
- to {
- opacity: 0;
- -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
- transform: scale(.1) translate3d(2000px, 0, 0);
- -webkit-transform-origin: right center;
- transform-origin: right center;
- }
-}
-
-@keyframes zoomOutRight {
- 40% {
- opacity: 1;
- -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
- transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
- }
-
- to {
- opacity: 0;
- -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
- transform: scale(.1) translate3d(2000px, 0, 0);
- -webkit-transform-origin: right center;
- transform-origin: right center;
- }
-}
-
-.zoomOutRight {
- -webkit-animation-name: zoomOutRight;
- animation-name: zoomOutRight;
-}
-
-@-webkit-keyframes zoomOutUp {
- 40% {
- opacity: 1;
- -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
- transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- }
-
- to {
- opacity: 0;
- -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
- transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
- -webkit-transform-origin: center bottom;
- transform-origin: center bottom;
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- }
-}
-
-@keyframes zoomOutUp {
- 40% {
- opacity: 1;
- -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
- transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- animation-timing-function: cubic-bezier(.55, .055, .675, .19);
- }
-
- to {
- opacity: 0;
- -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
- transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
- -webkit-transform-origin: center bottom;
- transform-origin: center bottom;
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- animation-timing-function: cubic-bezier(.175, .885, .32, 1);
- }
-}
-
-.zoomOutUp {
- -webkit-animation-name: zoomOutUp;
- animation-name: zoomOutUp;
-}
-
-@-webkit-keyframes slideInDown {
- from {
- -webkit-transform: translate3d(0, -100%, 0);
- transform: translate3d(0, -100%, 0);
- visibility: visible;
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes slideInDown {
- from {
- -webkit-transform: translate3d(0, -100%, 0);
- transform: translate3d(0, -100%, 0);
- visibility: visible;
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.slideInDown {
- -webkit-animation-name: slideInDown;
- animation-name: slideInDown;
-}
-
-@-webkit-keyframes slideInLeft {
- from {
- -webkit-transform: translate3d(-100%, 0, 0);
- transform: translate3d(-100%, 0, 0);
- visibility: visible;
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes slideInLeft {
- from {
- -webkit-transform: translate3d(-100%, 0, 0);
- transform: translate3d(-100%, 0, 0);
- visibility: visible;
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.slideInLeft {
- -webkit-animation-name: slideInLeft;
- animation-name: slideInLeft;
-}
-
-@-webkit-keyframes slideInRight {
- from {
- -webkit-transform: translate3d(100%, 0, 0);
- transform: translate3d(100%, 0, 0);
- visibility: visible;
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes slideInRight {
- from {
- -webkit-transform: translate3d(100%, 0, 0);
- transform: translate3d(100%, 0, 0);
- visibility: visible;
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.slideInRight {
- -webkit-animation-name: slideInRight;
- animation-name: slideInRight;
-}
-
-@-webkit-keyframes slideInUp {
- from {
- -webkit-transform: translate3d(0, 100%, 0);
- transform: translate3d(0, 100%, 0);
- visibility: visible;
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes slideInUp {
- from {
- -webkit-transform: translate3d(0, 100%, 0);
- transform: translate3d(0, 100%, 0);
- visibility: visible;
- }
-
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.slideInUp {
- -webkit-animation-name: slideInUp;
- animation-name: slideInUp;
-}
-
-@-webkit-keyframes slideOutDown {
- from {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-
- to {
- visibility: hidden;
- -webkit-transform: translate3d(0, 100%, 0);
- transform: translate3d(0, 100%, 0);
- }
-}
-
-@keyframes slideOutDown {
- from {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-
- to {
- visibility: hidden;
- -webkit-transform: translate3d(0, 100%, 0);
- transform: translate3d(0, 100%, 0);
- }
-}
-
-.slideOutDown {
- -webkit-animation-name: slideOutDown;
- animation-name: slideOutDown;
-}
-
-@-webkit-keyframes slideOutLeft {
- from {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-
- to {
- visibility: hidden;
- -webkit-transform: translate3d(-100%, 0, 0);
- transform: translate3d(-100%, 0, 0);
- }
-}
-
-@keyframes slideOutLeft {
- from {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-
- to {
- visibility: hidden;
- -webkit-transform: translate3d(-100%, 0, 0);
- transform: translate3d(-100%, 0, 0);
- }
-}
-
-.slideOutLeft {
- -webkit-animation-name: slideOutLeft;
- animation-name: slideOutLeft;
-}
-
-@-webkit-keyframes slideOutRight {
- from {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-
- to {
- visibility: hidden;
- -webkit-transform: translate3d(100%, 0, 0);
- transform: translate3d(100%, 0, 0);
- }
-}
-
-@keyframes slideOutRight {
- from {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-
- to {
- visibility: hidden;
- -webkit-transform: translate3d(100%, 0, 0);
- transform: translate3d(100%, 0, 0);
- }
-}
-
-.slideOutRight {
- -webkit-animation-name: slideOutRight;
- animation-name: slideOutRight;
-}
-
-@-webkit-keyframes slideOutUp {
- from {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-
- to {
- visibility: hidden;
- -webkit-transform: translate3d(0, -100%, 0);
- transform: translate3d(0, -100%, 0);
- }
-}
-
-@keyframes slideOutUp {
- from {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-
- to {
- visibility: hidden;
- -webkit-transform: translate3d(0, -100%, 0);
- transform: translate3d(0, -100%, 0);
- }
-}
-
-.slideOutUp {
- -webkit-animation-name: slideOutUp;
- animation-name: slideOutUp;
-}
-
-.animated {
- -webkit-animation-duration: 1s;
- animation-duration: 1s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
-}
-
-.animated.infinite {
- -webkit-animation-iteration-count: infinite;
- animation-iteration-count: infinite;
-}
-
-.animated.delay-1s {
- -webkit-animation-delay: 1s;
- animation-delay: 1s;
-}
-
-.animated.delay-2s {
- -webkit-animation-delay: 2s;
- animation-delay: 2s;
-}
-
-.animated.delay-3s {
- -webkit-animation-delay: 3s;
- animation-delay: 3s;
-}
-
-.animated.delay-4s {
- -webkit-animation-delay: 4s;
- animation-delay: 4s;
-}
-
-.animated.delay-5s {
- -webkit-animation-delay: 5s;
- animation-delay: 5s;
-}
-
-.animated.fast {
- -webkit-animation-duration: 800ms;
- animation-duration: 800ms;
-}
-
-.animated.faster {
- -webkit-animation-duration: 500ms;
- animation-duration: 500ms;
-}
-
-.animated.slow {
- -webkit-animation-duration: 2s;
- animation-duration: 2s;
-}
-
-.animated.slower {
- -webkit-animation-duration: 3s;
- animation-duration: 3s;
-}
-
-@media (prefers-reduced-motion) {
- .animated {
- -webkit-animation: unset !important;
- animation: unset !important;
- -webkit-transition: none !important;
- transition: none !important;
- }
-}
-
-.fade-enter-active, .fade-leave-active {
- transition: opacity .5s;
-}
-.fade-enter, .fade-leave-to {
- opacity: 0;
-}
-
-.slide-fade-enter-active {
- transition: all .3s ease;
-}
-.slide-fade-leave-active {
- transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0);
-}
-.slide-fade-enter, .slide-fade-leave-to
- /* .slide-fade-leave-active for below version 2.1.8 */ {
- transform: translateX(10px);
- opacity: 0;
-}
-
-@-webkit-keyframes rotateloading{from{-webkit-transform: rotate(0deg)}
- to{-webkit-transform: rotate(360deg)}
-}
-@-moz-keyframes rotateloading{from{-moz-transform: rotate(0deg)}
- to{-moz-transform: rotate(359deg)}
-}
-@-o-keyframes rotateloading{from{-o-transform: rotate(0deg)}
- to{-o-transform: rotate(359deg)}
-}
-@keyframes rotateloading{from{transform: rotate(0deg)}
- to{transform: rotate(359deg)}
-}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/sass/common/index.scss b/dolphinscheduler-ui/src/sass/common/index.scss
index 8e47b033cb..957d6c408f 100644
--- a/dolphinscheduler-ui/src/sass/common/index.scss
+++ b/dolphinscheduler-ui/src/sass/common/index.scss
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-@import "animation";
@import "scrollbar";
@import "table";
diff --git a/dolphinscheduler-ui/src/view/home/index.html b/dolphinscheduler-ui/src/view/home/index.html
index 2a18be212d..b29d11614d 100644
--- a/dolphinscheduler-ui/src/view/home/index.html
+++ b/dolphinscheduler-ui/src/view/home/index.html
@@ -33,7 +33,7 @@
-
+
DolphinScheduler
diff --git a/dolphinscheduler-ui/src/view/login/index.html b/dolphinscheduler-ui/src/view/login/index.html
index df456f6ce0..cd1243f71f 100644
--- a/dolphinscheduler-ui/src/view/login/index.html
+++ b/dolphinscheduler-ui/src/view/login/index.html
@@ -31,7 +31,7 @@
-
+
Login - DolphinScheduler
diff --git a/licenses/LICENSE-mybatis.txt b/licenses/LICENSE-mybatis.txt
new file mode 100644
index 0000000000..5d63374193
--- /dev/null
+++ b/licenses/LICENSE-mybatis.txt
@@ -0,0 +1,13 @@
+ Copyright ${license.git.copyrightYears} the original author or authors.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index a0c719453c..b012fff0ed 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.apache.dolphinscheduler
dolphinscheduler
-
1.2.1-SNAPSHOT
+
1.3.0-SNAPSHOT
pom
${project.artifactId}
http://dolphinscheduler.apache.org
@@ -699,11 +699,11 @@
**/alert/utils/ExcelUtilsTest.java
**/alert/utils/FuncUtilsTest.java
**/alert/utils/JSONUtilsTest.java
-
**/alert/utils/MailUtilsTest.java
+
**/alert/plugin/EmailAlertPluginTest.java
**/api/dto/resources/filter/ResourceFilterTest.java
**/api/dto/resources/visitor/ResourceTreeVisitorTest.java
-
**/api/enums/testGetEnum.java
+
**/api/enums/testGetEnum.java
**/api/enums/StatusTest.java
**/api/exceptions/ApiExceptionHandlerTest.java
**/api/exceptions/ServiceExceptionTest.java
@@ -715,7 +715,7 @@
**/api/service/BaseDAGServiceTest.java
**/api/service/BaseServiceTest.java
**/api/service/DataAnalysisServiceTest.java
-
**/api/service/DataSourceServiceTest.java
+
**/api/service/ExecutorService2Test.java
**/api/service/ExecutorServiceTest.java
**/api/service/LoggerServiceTest.java
@@ -786,42 +786,45 @@
**/dao/mapper/ConnectionFactoryTest.java
**/dao/mapper/DataSourceMapperTest.java
**/remote/JsonSerializerTest.java
-
**/remote/NettyRemotingClientTest.java
+
**/remote/RemoveTaskLogResponseCommandTest.java
+
**/remote/RemoveTaskLogRequestCommandTest.java
+
**/remote/ResponseFutureTest.java
+
**/server/log/MasterLogFilterTest.java
**/server/log/SensitiveDataConverterTest.java
-
**/server/log/TaskLogDiscriminatorTest.java
+
**/server/log/TaskLogFilterTest.java
**/server/log/WorkerLogFilterTest.java
-
**/server/master/consumer/TaskPriorityQueueConsumerTest.java
+
**/server/master/runner/MasterTaskExecThreadTest.java
-
**/server/master/dispatch/executor/NettyExecutorManagerTest.java
+
**/server/master/dispatch/host/assign/LowerWeightRoundRobinTest.java
**/server/master/dispatch/host/assign/RandomSelectorTest.java
**/server/master/dispatch/host/assign/RoundRobinSelectorTest.java
-
**/server/master/register/MasterRegistryTest.java
+
**/server/master/AlertManagerTest.java
**/server/master/MasterCommandTest.java
**/server/master/DependentTaskTest.java
-
**/server/master/ConditionsTaskTest.java
+
**/server/master/MasterExecThreadTest.java
**/server/master/ParamsTest.java
-
**/server/register/ZookeeperNodeManagerTest.java
+
**/server/utils/DataxUtilsTest.java
**/server/utils/ExecutionContextTestUtils.java
-
**/server/utils/FlinkArgsUtilsTest.java
+
**/server/utils/ParamUtilsTest.java
**/server/utils/ProcessUtilsTest.java
**/server/utils/SparkArgsUtilsTest.java
-
**/server/worker/processor/TaskCallbackServiceTest.java
-
**/server/worker/registry/WorkerRegistryTest.java
+
+
**/server/worker/shell/ShellCommandExecutorTest.java
**/server/worker/sql/SqlExecutorTest.java
**/server/worker/task/spark/SparkTaskTest.java
**/server/worker/task/EnvFileTest.java
**/server/worker/task/spark/SparkTaskTest.java
-
**/server/worker/task/datax/DataxTaskTest.java
-
**/server/worker/task/http/HttpTaskTest.java
+
+
**/server/worker/task/sqoop/SqoopTaskTest.java
**/server/worker/EnvFileTest.java
**/service/quartz/cron/CronUtilsTest.java
@@ -830,14 +833,13 @@
**/service/queue/TaskUpdateQueueTest.java
**/dao/mapper/DataSourceUserMapperTest.java
-
**/dao/mapper/ErrorCommandMapperTest.java
+
**/dao/mapper/ProcessDefinitionMapperTest.java
**/dao/mapper/ProcessInstanceMapMapperTest.java
**/dao/mapper/ProcessInstanceMapperTest.java
**/dao/mapper/ProjectMapperTest.java
**/dao/mapper/ProjectUserMapperTest.java
**/dao/mapper/QueueMapperTest.java
-
**/dao/mapper/ResourceUserMapperTest.java
**/dao/mapper/ScheduleMapperTest.java
**/dao/mapper/SessionMapperTest.java
@@ -850,6 +852,9 @@
**/dao/utils/DagHelperTest.java
**/dao/AlertDaoTest.java
**/dao/datasource/OracleDataSourceTest.java
+
**/dao/upgrade/ProcessDefinitionDaoTest.java
+
**/dao/upgrade/WokrerGrouopDaoTest.java
+
**/dao/upgrade/UpgradeDaoTest.java
**/plugin/model/AlertDataTest.java
**/plugin/model/AlertInfoTest.java
**/plugin/utils/PropertyUtilsTest.java
@@ -909,10 +914,9 @@
**/node/**
**/dist/**
**/licenses/**
-
**/src/sass/common/_animation.scss
-
**/src/sass/common/_normalize.scss
.github/**
sql/soft_version
+
**/common/utils/ScriptRunner.java
**/*.json
**/*.md
diff --git a/script/scp-hosts.sh b/script/scp-hosts.sh
index adee7d76c7..4a94cffa29 100644
--- a/script/scp-hosts.sh
+++ b/script/scp-hosts.sh
@@ -26,6 +26,18 @@ if [[ "$OSTYPE" == "darwin"* ]]; then
txt="''"
fi
+declare -A workersGroupMap=()
+
+workersGroup=(${workers//,/ })
+for workerGroup in ${workersGroup[@]}
+do
+ echo $workerGroup;
+ worker=`echo $workerGroup|awk -F':' '{print $1}'`
+ groupName=`echo $workerGroup|awk -F':' '{print $2}'`
+ workersGroupMap+=([$worker]=$groupName)
+done
+
+
hostsArr=(${ips//,/ })
for host in ${hostsArr[@]}
do
@@ -39,9 +51,9 @@ do
for dsDir in bin conf lib script sql ui install.sh
do
- # if worker in workersGroup
- if [[ "${map[${host}]}" ]] && [[ "${dsDir}" -eq "conf" ]]; then
- sed -i ${txt} "s#worker.group.*#worker.group=${map[${host}]}#g" $workDir/../conf/worker.properties
+ # if worker in workersGroupMap
+ if [[ "${workersGroupMap[${host}]}" ]] && [[ "${dsDir}" == "conf" ]]; then
+ sed -i ${txt} "s#worker.group.*#worker.group=${workersGroupMap[${host}]}#g" ${dsDir}/worker.properties
fi
echo "start to scp $dsDir to $host/$installPath"
@@ -49,4 +61,4 @@ do
done
echo "scp dirs to $host/$installPath complete"
-done
+done
\ No newline at end of file
diff --git a/script/start-all.sh b/script/start-all.sh
index 5579a7d87e..61b916483e 100644
--- a/script/start-all.sh
+++ b/script/start-all.sh
@@ -20,6 +20,17 @@ workDir=`dirname $0`
workDir=`cd ${workDir};pwd`
source $workDir/../conf/config/install_config.conf
+declare -A workersGroupMap=()
+
+workersGroup=(${workers//,/ })
+for workerGroup in ${workersGroup[@]}
+do
+ echo $workerGroup;
+ worker=`echo $workerGroup|awk -F':' '{print $1}'`
+ groupName=`echo $workerGroup|awk -F':' '{print $2}'`
+ workersGroupMap+=([$worker]=$groupName)
+done
+
mastersHost=(${masters//,/ })
for master in ${mastersHost[@]}
do
@@ -28,7 +39,7 @@ do
done
-for worker in ${!workersGroup[*]}
+for worker in ${!workersGroupMap[*]}
do
echo "$worker worker server is starting"
@@ -43,5 +54,4 @@ for apiServer in ${apiServersHost[@]}
do
echo "$apiServer worker server is starting"
ssh -p $sshPort $apiServer "cd $installPath/; sh bin/dolphinscheduler-daemon.sh start api-server;"
-done
-
+done
\ No newline at end of file
diff --git a/script/stop-all.sh b/script/stop-all.sh
index e4ccf75a29..dc18dae586 100644
--- a/script/stop-all.sh
+++ b/script/stop-all.sh
@@ -21,6 +21,17 @@ workDir=`cd ${workDir};pwd`
source $workDir/../conf/config/install_config.conf
+declare -A workersGroupMap=()
+
+workersGroup=(${workers//,/ })
+for workerGroup in ${workersGroup[@]}
+do
+ echo $workerGroup;
+ worker=`echo $workerGroup|awk -F':' '{print $1}'`
+ groupName=`echo $workerGroup|awk -F':' '{print $2}'`
+ workersGroupMap+=([$worker]=$groupName)
+done
+
mastersHost=(${masters//,/ })
for master in ${mastersHost[@]}
do
@@ -29,7 +40,7 @@ do
done
-for worker in ${!workersGroup[*]}
+for worker in ${!workersGroupMap[*]}
do
echo "$worker worker server is stopping"
ssh -p $sshPort $worker "cd $installPath/; sh bin/dolphinscheduler-daemon.sh stop worker-server;"
@@ -43,5 +54,4 @@ for apiServer in ${apiServersHost[@]}
do
echo "$apiServer worker server is stopping"
ssh -p $sshPort $apiServer "cd $installPath/; sh bin/dolphinscheduler-daemon.sh stop api-server;"
-done
-
+done
\ No newline at end of file
diff --git a/sql/dolphinscheduler-postgre.sql b/sql/dolphinscheduler-postgre.sql
index 006fe1fded..3ec802242b 100644
--- a/sql/dolphinscheduler-postgre.sql
+++ b/sql/dolphinscheduler-postgre.sql
@@ -191,7 +191,7 @@ CREATE TABLE t_ds_alert (
content text ,
alert_type int DEFAULT NULL ,
alert_status int DEFAULT '0' ,
- ·log· text ,
+ log text ,
alertgroup_id int DEFAULT NULL ,
receivers text ,
receivers_cc text ,
@@ -309,7 +309,8 @@ CREATE TABLE t_ds_process_definition (
update_time timestamp DEFAULT NULL ,
modify_by varchar(36) DEFAULT '' ,
resource_ids varchar(64),
- PRIMARY KEY (id)
+ PRIMARY KEY (id),
+ CONSTRAINT process_definition_unique UNIQUE (name, project_id)
) ;
create index process_definition_index on t_ds_process_definition (project_id,id);
@@ -760,4 +761,4 @@ INSERT INTO t_ds_relation_user_alertgroup(alertgroup_id,user_id,create_time,upda
INSERT INTO t_ds_queue(queue_name,queue,create_time,update_time) VALUES ('default', 'default','2018-11-29 10:22:33', '2018-11-29 10:22:33');
-- Records of t_ds_queue,default queue name : default
-INSERT INTO t_ds_version(version) VALUES ('2.0.0');
+INSERT INTO t_ds_version(version) VALUES ('1.3.0');
\ No newline at end of file
diff --git a/sql/dolphinscheduler_mysql.sql b/sql/dolphinscheduler_mysql.sql
index 7fe1511380..d4fa011301 100644
--- a/sql/dolphinscheduler_mysql.sql
+++ b/sql/dolphinscheduler_mysql.sql
@@ -799,7 +799,7 @@ CREATE TABLE `t_ds_version` (
-- ----------------------------
-- Records of t_ds_version
-- ----------------------------
-INSERT INTO `t_ds_version` VALUES ('1', '2.0.0');
+INSERT INTO `t_ds_version` VALUES ('1', '1.3.0');
-- ----------------------------
diff --git a/sql/h2.mv.db b/sql/h2.mv.db
deleted file mode 100644
index 42ea540bd3..0000000000
Binary files a/sql/h2.mv.db and /dev/null differ
diff --git a/sql/upgrade/1.2.2_schema/mysql/dolphinscheduler_ddl.sql b/sql/upgrade/1.3.0_schema/mysql/dolphinscheduler_ddl.sql
similarity index 58%
rename from sql/upgrade/1.2.2_schema/mysql/dolphinscheduler_ddl.sql
rename to sql/upgrade/1.3.0_schema/mysql/dolphinscheduler_ddl.sql
index 87d06e990d..40e7a3f4dc 100644
--- a/sql/upgrade/1.2.2_schema/mysql/dolphinscheduler_ddl.sql
+++ b/sql/upgrade/1.3.0_schema/mysql/dolphinscheduler_ddl.sql
@@ -61,12 +61,12 @@ drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_task_instance_C_app_link;
delimiter d//
CREATE PROCEDURE uc_dolphin_T_t_ds_task_instance_C_app_link()
BEGIN
- IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS
+ IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_NAME='t_ds_task_instance'
AND TABLE_SCHEMA=(SELECT DATABASE())
AND COLUMN_NAME ='app_link')
THEN
- ALTER TABLE t_ds_task_instance CHANGE COLUMN app_link app_link text COMMENT 'yarn app id';
+ ALTER TABLE t_ds_task_instance CHANGE `app_link` `app_link` text COMMENT 'yarn app id';
END IF;
END;
@@ -157,205 +157,125 @@ CALL ac_dolphin_T_t_ds_process_definition_A_resource_ids;
DROP PROCEDURE ac_dolphin_T_t_ds_process_definition_A_resource_ids;
--- ac_dolphin_T_t_ds_process_instance_A_worker_group
-drop PROCEDURE if EXISTS ac_dolphin_T_t_ds_process_instance_A_worker_group;
-delimiter d//
-CREATE PROCEDURE ac_dolphin_T_t_ds_process_instance_A_worker_group()
- BEGIN
- IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS
- WHERE TABLE_NAME='t_ds_process_instance'
- AND TABLE_SCHEMA=(SELECT DATABASE())
- AND COLUMN_NAME ='worker_group')
- THEN
- ALTER TABLE t_ds_process_instance ADD `worker_group` varchar(64) DEFAULT '' COMMENT 'worker group';
- END IF;
- END;
-
-d//
-
-delimiter ;
-CALL ac_dolphin_T_t_ds_process_instance_A_worker_group;
-DROP PROCEDURE ac_dolphin_T_t_ds_process_instance_A_worker_group;
-
--- dc_dolphin_T_t_ds_process_instance_D_worker_group_id
-drop PROCEDURE if EXISTS dc_dolphin_T_t_ds_process_instance_D_worker_group_id;
+-- uc_dolphin_T_t_ds_process_instance_R_worker_group_id
+drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_process_instance_R_worker_group_id;
delimiter d//
-CREATE PROCEDURE dc_dolphin_T_t_ds_process_instance_D_worker_group_id()
+CREATE PROCEDURE uc_dolphin_T_t_ds_process_instance_R_worker_group_id()
BEGIN
IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_NAME='t_ds_process_instance'
AND TABLE_SCHEMA=(SELECT DATABASE())
AND COLUMN_NAME ='worker_group_id')
THEN
- ALTER TABLE t_ds_process_instance DROP COLUMN worker_group_id;
+ ALTER TABLE t_ds_process_instance change `worker_group_id` `worker_group` varchar(64) DEFAULT '' COMMENT 'worker group';
END IF;
END;
d//
delimiter ;
-CALL dc_dolphin_T_t_ds_process_instance_D_worker_group_id;
-DROP PROCEDURE dc_dolphin_T_t_ds_process_instance_D_worker_group_id;
+CALL uc_dolphin_T_t_ds_process_instance_R_worker_group_id;
+DROP PROCEDURE uc_dolphin_T_t_ds_process_instance_R_worker_group_id;
--- ac_dolphin_T_t_ds_task_instance_A_worker_group
-drop PROCEDURE if EXISTS ac_dolphin_T_t_ds_task_instance_A_worker_group;
+-- uc_dolphin_T_t_ds_task_instance_R_worker_group_id
+drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_task_instance_R_worker_group_id;
delimiter d//
-CREATE PROCEDURE ac_dolphin_T_t_ds_task_instance_A_worker_group()
- BEGIN
- IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS
- WHERE TABLE_NAME='t_ds_task_instance'
- AND TABLE_SCHEMA=(SELECT DATABASE())
- AND COLUMN_NAME ='worker_group')
- THEN
- ALTER TABLE t_ds_task_instance ADD `worker_group` varchar(64) DEFAULT '' COMMENT 'worker group';
- END IF;
- END;
-
-d//
-
-delimiter ;
-CALL ac_dolphin_T_t_ds_task_instance_A_worker_group;
-DROP PROCEDURE ac_dolphin_T_t_ds_task_instance_A_worker_group;
-
--- dc_dolphin_T_t_ds_task_instance_D_worker_group_id
-drop PROCEDURE if EXISTS dc_dolphin_T_t_ds_task_instance_D_worker_group_id;
-delimiter d//
-CREATE PROCEDURE dc_dolphin_T_t_ds_task_instance_D_worker_group_id()
+CREATE PROCEDURE uc_dolphin_T_t_ds_task_instance_R_worker_group_id()
BEGIN
IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_NAME='t_ds_task_instance'
AND TABLE_SCHEMA=(SELECT DATABASE())
AND COLUMN_NAME ='worker_group_id')
THEN
- ALTER TABLE t_ds_task_instance DROP COLUMN worker_group_id;
+ ALTER TABLE t_ds_task_instance change `worker_group_id` `worker_group` varchar(64) DEFAULT '' COMMENT 'worker group';
END IF;
END;
d//
delimiter ;
-CALL dc_dolphin_T_t_ds_task_instance_D_worker_group_id;
-DROP PROCEDURE dc_dolphin_T_t_ds_task_instance_D_worker_group_id;
+CALL uc_dolphin_T_t_ds_task_instance_R_worker_group_id;
+DROP PROCEDURE uc_dolphin_T_t_ds_task_instance_R_worker_group_id;
--- ac_dolphin_T_t_ds_schedules_A_worker_group
-drop PROCEDURE if EXISTS ac_dolphin_T_t_ds_schedules_A_worker_group;
+-- uc_dolphin_T_t_ds_schedules_R_worker_group_id
+drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_schedules_R_worker_group_id;
delimiter d//
-CREATE PROCEDURE ac_dolphin_T_t_ds_schedules_A_worker_group()
- BEGIN
- IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS
- WHERE TABLE_NAME='t_ds_schedules'
- AND TABLE_SCHEMA=(SELECT DATABASE())
- AND COLUMN_NAME ='worker_group')
- THEN
- ALTER TABLE t_ds_schedules ADD `worker_group` varchar(64) DEFAULT '' COMMENT 'worker group';
- END IF;
- END;
-
-d//
-
-delimiter ;
-CALL ac_dolphin_T_t_ds_schedules_A_worker_group;
-DROP PROCEDURE ac_dolphin_T_t_ds_schedules_A_worker_group;
-
--- dc_dolphin_T_t_ds_schedules_D_worker_group_id
-drop PROCEDURE if EXISTS dc_dolphin_T_t_ds_schedules_D_worker_group_id;
-delimiter d//
-CREATE PROCEDURE dc_dolphin_T_t_ds_schedules_D_worker_group_id()
+CREATE PROCEDURE uc_dolphin_T_t_ds_schedules_R_worker_group_id()
BEGIN
IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_NAME='t_ds_schedules'
AND TABLE_SCHEMA=(SELECT DATABASE())
AND COLUMN_NAME ='worker_group_id')
THEN
- ALTER TABLE t_ds_schedules DROP COLUMN worker_group_id;
- END IF;
- END;
-
-d//
-
-delimiter ;
-CALL dc_dolphin_T_t_ds_schedules_D_worker_group_id;
-DROP PROCEDURE dc_dolphin_T_t_ds_schedules_D_worker_group_id;
-
--- ac_dolphin_T_t_ds_command_A_worker_group
-drop PROCEDURE if EXISTS ac_dolphin_T_t_ds_command_A_worker_group;
-delimiter d//
-CREATE PROCEDURE ac_dolphin_T_t_ds_command_A_worker_group()
- BEGIN
- IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS
- WHERE TABLE_NAME='t_ds_command'
- AND TABLE_SCHEMA=(SELECT DATABASE())
- AND COLUMN_NAME ='worker_group')
- THEN
- ALTER TABLE t_ds_command ADD `worker_group` varchar(64) DEFAULT '' COMMENT 'worker group';
+ ALTER TABLE t_ds_schedules change `worker_group_id` `worker_group` varchar(64) DEFAULT '' COMMENT 'worker group';
END IF;
END;
d//
delimiter ;
-CALL ac_dolphin_T_t_ds_command_A_worker_group;
-DROP PROCEDURE ac_dolphin_T_t_ds_command_A_worker_group;
+CALL uc_dolphin_T_t_ds_schedules_R_worker_group_id;
+DROP PROCEDURE uc_dolphin_T_t_ds_schedules_R_worker_group_id;
--- dc_dolphin_T_t_ds_command_D_worker_group_id
-drop PROCEDURE if EXISTS dc_dolphin_T_t_ds_command_D_worker_group_id;
+-- uc_dolphin_T_t_ds_command_R_worker_group_id
+drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_command_R_worker_group_id;
delimiter d//
-CREATE PROCEDURE dc_dolphin_T_t_ds_command_D_worker_group_id()
+CREATE PROCEDURE uc_dolphin_T_t_ds_command_R_worker_group_id()
BEGIN
IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_NAME='t_ds_command'
AND TABLE_SCHEMA=(SELECT DATABASE())
AND COLUMN_NAME ='worker_group_id')
THEN
- ALTER TABLE t_ds_command DROP COLUMN worker_group_id;
+ ALTER TABLE t_ds_command change `worker_group_id` `worker_group` varchar(64) DEFAULT '' COMMENT 'worker group';
END IF;
END;
d//
delimiter ;
-CALL dc_dolphin_T_t_ds_command_D_worker_group_id;
-DROP PROCEDURE dc_dolphin_T_t_ds_command_D_worker_group_id;
+CALL uc_dolphin_T_t_ds_command_R_worker_group_id;
+DROP PROCEDURE uc_dolphin_T_t_ds_command_R_worker_group_id;
--- ac_dolphin_T_t_ds_error_command_A_worker_group
-drop PROCEDURE if EXISTS ac_dolphin_T_t_ds_error_command_A_worker_group;
+-- uc_dolphin_T_t_ds_error_command_R_worker_group_id
+drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_error_command_R_worker_group_id;
delimiter d//
-CREATE PROCEDURE ac_dolphin_T_t_ds_error_command_A_worker_group()
+CREATE PROCEDURE uc_dolphin_T_t_ds_error_command_R_worker_group_id()
BEGIN
- IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS
+ IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_NAME='t_ds_error_command'
AND TABLE_SCHEMA=(SELECT DATABASE())
- AND COLUMN_NAME ='worker_group')
+ AND COLUMN_NAME ='worker_group_id')
THEN
- ALTER TABLE t_ds_error_command ADD `worker_group` varchar(64) DEFAULT '' COMMENT 'worker group';
+ ALTER TABLE t_ds_error_command change `worker_group_id` `worker_group` varchar(64) DEFAULT '' COMMENT 'worker group';
END IF;
END;
d//
delimiter ;
-CALL ac_dolphin_T_t_ds_error_command_A_worker_group;
-DROP PROCEDURE ac_dolphin_T_t_ds_error_command_A_worker_group;
+CALL uc_dolphin_T_t_ds_error_command_R_worker_group_id;
+DROP PROCEDURE uc_dolphin_T_t_ds_error_command_R_worker_group_id;
--- dc_dolphin_T_t_ds_error_command_D_worker_group_id
-drop PROCEDURE if EXISTS dc_dolphin_T_t_ds_error_command_D_worker_group_id;
+-- uc_dolphin_T_t_ds_process_definition_A_process_definition_unique
+drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_process_definition_A_process_definition_unique;
delimiter d//
-CREATE PROCEDURE dc_dolphin_T_t_ds_error_command_D_worker_group_id()
+CREATE PROCEDURE uc_dolphin_T_t_ds_process_definition_A_process_definition_unique()
BEGIN
- IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
- WHERE TABLE_NAME='t_ds_error_command'
+ IF NOT EXISTS (SELECT 1 FROM information_schema.STATISTICS
+ WHERE TABLE_NAME='t_ds_process_definition'
AND TABLE_SCHEMA=(SELECT DATABASE())
- AND COLUMN_NAME ='worker_group_id')
+ AND INDEX_NAME ='process_definition_unique')
THEN
- ALTER TABLE t_ds_error_command DROP COLUMN worker_group_id;
+ ALTER TABLE t_ds_process_definition ADD UNIQUE KEY `process_definition_unique` (`name`,`project_id`);
END IF;
END;
d//
delimiter ;
-CALL dc_dolphin_T_t_ds_error_command_D_worker_group_id;
-DROP PROCEDURE dc_dolphin_T_t_ds_error_command_D_worker_group_id;
+CALL uc_dolphin_T_t_ds_process_definition_A_process_definition_unique;
+DROP PROCEDURE uc_dolphin_T_t_ds_process_definition_A_process_definition_unique;
-- ac_dolphin_T_t_ds_user_A_state
drop PROCEDURE if EXISTS ac_dolphin_T_t_ds_user_A_state;
diff --git a/sql/upgrade/1.3.0_schema/mysql/dolphinscheduler_dml.sql b/sql/upgrade/1.3.0_schema/mysql/dolphinscheduler_dml.sql
new file mode 100644
index 0000000000..6f0e145176
--- /dev/null
+++ b/sql/upgrade/1.3.0_schema/mysql/dolphinscheduler_dml.sql
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
+SET FOREIGN_KEY_CHECKS=0;
+UPDATE t_ds_resources SET pid=-1,is_directory=false WHERE pid IS NULL;
+UPDATE t_ds_resources SET full_name = concat('/',alias) WHERE pid=-1 and full_name IS NULL;
+UPDATE QRTZ_JOB_DETAILS SET JOB_CLASS_NAME='org.apache.dolphinscheduler.service.quartz.ProcessScheduleJob' WHERE JOB_CLASS_NAME='org.apache.dolphinscheduler.server.quartz.ProcessScheduleJob';
+UPDATE t_ds_process_instance instance SET `worker_group`=IFNULL((SELECT name from t_ds_worker_group WHERE instance.worker_group=CONCAT(id,'')),'default');
+UPDATE t_ds_task_instance instance SET `worker_group`=IFNULL((SELECT name from t_ds_worker_group WHERE instance.worker_group=CONCAT(id,'')),'default');
+UPDATE t_ds_schedules schedule SET `worker_group`=IFNULL((SELECT name from t_ds_worker_group WHERE schedule.worker_group=CONCAT(id,'')),'default');
+UPDATE t_ds_command command SET `worker_group`=IFNULL((SELECT name from t_ds_worker_group WHERE command.worker_group=CONCAT(id,'')),'default');
+UPDATE t_ds_error_command command SET `worker_group`=IFNULL((SELECT name from t_ds_worker_group WHERE command.worker_group=CONCAT(id,'')),'default');
\ No newline at end of file
diff --git a/sql/upgrade/1.2.2_schema/postgresql/dolphinscheduler_ddl.sql b/sql/upgrade/1.3.0_schema/postgresql/dolphinscheduler_ddl.sql
similarity index 59%
rename from sql/upgrade/1.2.2_schema/postgresql/dolphinscheduler_ddl.sql
rename to sql/upgrade/1.3.0_schema/postgresql/dolphinscheduler_ddl.sql
index b3f5436d7c..7ea4a342a1 100644
--- a/sql/upgrade/1.2.2_schema/postgresql/dolphinscheduler_ddl.sql
+++ b/sql/upgrade/1.3.0_schema/postgresql/dolphinscheduler_ddl.sql
@@ -54,7 +54,7 @@ DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_task_instance_A_executor_id();
delimiter d//
CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_task_instance_C_app_link() RETURNS void AS $$
BEGIN
- IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS
+ IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_NAME='t_ds_task_instance'
AND COLUMN_NAME ='app_link')
THEN
@@ -152,32 +152,11 @@ select ac_dolphin_T_t_ds_process_definition_A_resource_ids();
DROP FUNCTION ac_dolphin_T_t_ds_process_definition_A_resource_ids();
--- ac_dolphin_T_t_ds_process_instance_A_worker_group
-delimiter ;
-DROP FUNCTION IF EXISTS ac_dolphin_T_t_ds_process_instance_A_worker_group();
-delimiter d//
-CREATE FUNCTION ac_dolphin_T_t_ds_process_instance_A_worker_group() RETURNS void AS $$
-BEGIN
- IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS
- WHERE TABLE_CATALOG=current_database()
- AND TABLE_SCHEMA=current_schema()
- AND TABLE_NAME='t_ds_process_instance'
- AND COLUMN_NAME ='worker_group')
- THEN
- ALTER TABLE t_ds_process_instance ADD COLUMN worker_group varchar(64) DEFAULT null;
- END IF;
-END;
-$$ LANGUAGE plpgsql;
-d//
-delimiter ;
-select ac_dolphin_T_t_ds_process_instance_A_worker_group();
-DROP FUNCTION ac_dolphin_T_t_ds_process_instance_A_worker_group();
-
--- dc_dolphin_T_t_ds_process_instance_D_worker_group_id
+-- uc_dolphin_T_t_ds_process_instance_R_worker_group_id
delimiter ;
-DROP FUNCTION IF EXISTS dc_dolphin_T_t_ds_process_instance_D_worker_group_id();
+DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_process_instance_R_worker_group_id();
delimiter d//
-CREATE FUNCTION dc_dolphin_T_t_ds_process_instance_D_worker_group_id() RETURNS void AS $$
+CREATE FUNCTION uc_dolphin_T_t_ds_process_instance_R_worker_group_id() RETURNS void AS $$
BEGIN
IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_CATALOG=current_database()
@@ -185,42 +164,22 @@ BEGIN
AND TABLE_NAME='t_ds_process_instance'
AND COLUMN_NAME ='worker_group_id')
THEN
- ALTER TABLE t_ds_process_instance DROP COLUMN worker_group_id;
+ ALTER TABLE t_ds_process_instance RENAME worker_group_id TO worker_group;
+ ALTER TABLE t_ds_process_instance ALTER COLUMN worker_group type varchar(64);
END IF;
END;
$$ LANGUAGE plpgsql;
d//
delimiter ;
-select dc_dolphin_T_t_ds_process_instance_D_worker_group_id();
-DROP FUNCTION dc_dolphin_T_t_ds_process_instance_D_worker_group_id();
+select uc_dolphin_T_t_ds_process_instance_R_worker_group_id();
+DROP FUNCTION uc_dolphin_T_t_ds_process_instance_R_worker_group_id();
--- ac_dolphin_T_t_ds_task_instance_A_worker_group
+-- uc_dolphin_T_t_ds_task_instance_R_worker_group_id
delimiter ;
-DROP FUNCTION IF EXISTS ac_dolphin_T_t_ds_task_instance_A_worker_group();
+DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_task_instance_R_worker_group_id();
delimiter d//
-CREATE FUNCTION ac_dolphin_T_t_ds_task_instance_A_worker_group() RETURNS void AS $$
-BEGIN
- IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS
- WHERE TABLE_CATALOG=current_database()
- AND TABLE_SCHEMA=current_schema()
- AND TABLE_NAME='t_ds_task_instance'
- AND COLUMN_NAME ='worker_group')
- THEN
- ALTER TABLE t_ds_task_instance ADD COLUMN worker_group varchar(64) DEFAULT null;
- END IF;
-END;
-$$ LANGUAGE plpgsql;
-d//
-delimiter ;
-select ac_dolphin_T_t_ds_task_instance_A_worker_group();
-DROP FUNCTION ac_dolphin_T_t_ds_task_instance_A_worker_group();
-
--- dc_dolphin_T_t_ds_task_instance_D_worker_group_id
-delimiter ;
-DROP FUNCTION IF EXISTS dc_dolphin_T_t_ds_task_instance_D_worker_group_id();
-delimiter d//
-CREATE FUNCTION dc_dolphin_T_t_ds_task_instance_D_worker_group_id() RETURNS void AS $$
+CREATE FUNCTION uc_dolphin_T_t_ds_task_instance_R_worker_group_id() RETURNS void AS $$
BEGIN
IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_CATALOG=current_database()
@@ -228,41 +187,21 @@ BEGIN
AND TABLE_NAME='t_ds_task_instance'
AND COLUMN_NAME ='worker_group_id')
THEN
- ALTER TABLE t_ds_task_instance DROP COLUMN worker_group_id;
- END IF;
-END;
-$$ LANGUAGE plpgsql;
-d//
-delimiter ;
-select dc_dolphin_T_t_ds_task_instance_D_worker_group_id();
-DROP FUNCTION dc_dolphin_T_t_ds_task_instance_D_worker_group_id();
-
--- ac_dolphin_T_t_ds_schedules_A_worker_group
-delimiter ;
-DROP FUNCTION IF EXISTS ac_dolphin_T_t_ds_schedules_A_worker_group();
-delimiter d//
-CREATE FUNCTION ac_dolphin_T_t_ds_schedules_A_worker_group() RETURNS void AS $$
-BEGIN
- IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS
- WHERE TABLE_CATALOG=current_database()
- AND TABLE_SCHEMA=current_schema()
- AND TABLE_NAME='t_ds_schedules'
- AND COLUMN_NAME ='worker_group')
- THEN
- ALTER TABLE t_ds_schedules ADD COLUMN worker_group varchar(64) DEFAULT null;
+ ALTER TABLE t_ds_task_instance rename worker_group_id to worker_group;
+ ALTER TABLE t_ds_task_instance alter column worker_group type varchar(64);
END IF;
END;
$$ LANGUAGE plpgsql;
d//
delimiter ;
-select ac_dolphin_T_t_ds_schedules_A_worker_group();
-DROP FUNCTION ac_dolphin_T_t_ds_schedules_A_worker_group();
+select uc_dolphin_T_t_ds_task_instance_R_worker_group_id();
+DROP FUNCTION uc_dolphin_T_t_ds_task_instance_R_worker_group_id();
--- dc_dolphin_T_t_ds_schedules_D_worker_group_id
+-- uc_dolphin_T_t_ds_schedules_R_worker_group_id
delimiter ;
-DROP FUNCTION IF EXISTS dc_dolphin_T_t_ds_schedules_D_worker_group_id();
+DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_schedules_R_worker_group_id();
delimiter d//
-CREATE FUNCTION dc_dolphin_T_t_ds_schedules_D_worker_group_id() RETURNS void AS $$
+CREATE FUNCTION uc_dolphin_T_t_ds_schedules_R_worker_group_id() RETURNS void AS $$
BEGIN
IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_CATALOG=current_database()
@@ -270,20 +209,21 @@ BEGIN
AND TABLE_NAME='t_ds_schedules'
AND COLUMN_NAME ='worker_group_id')
THEN
- ALTER TABLE t_ds_schedules DROP COLUMN worker_group_id;
+ ALTER TABLE t_ds_schedules rename worker_group_id to worker_group;
+ ALTER TABLE t_ds_schedules alter column worker_group type varchar(64);
END IF;
END;
$$ LANGUAGE plpgsql;
d//
delimiter ;
-select dc_dolphin_T_t_ds_schedules_D_worker_group_id();
-DROP FUNCTION dc_dolphin_T_t_ds_schedules_D_worker_group_id();
+select uc_dolphin_T_t_ds_schedules_R_worker_group_id();
+DROP FUNCTION uc_dolphin_T_t_ds_schedules_R_worker_group_id();
--- ac_dolphin_T_t_ds_command_A_worker_group
+-- uc_dolphin_T_t_ds_command_R_worker_group_id
delimiter ;
-DROP FUNCTION IF EXISTS ac_dolphin_T_t_ds_command_A_worker_group();
+DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_command_R_worker_group_id();
delimiter d//
-CREATE FUNCTION ac_dolphin_T_t_ds_command_A_worker_group() RETURNS void AS $$
+CREATE FUNCTION uc_dolphin_T_t_ds_command_R_worker_group_id() RETURNS void AS $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_CATALOG=current_database()
@@ -291,77 +231,56 @@ BEGIN
AND TABLE_NAME='t_ds_command'
AND COLUMN_NAME ='worker_group')
THEN
- ALTER TABLE t_ds_command ADD COLUMN worker_group varchar(64) DEFAULT null;
+ ALTER TABLE t_ds_command rename worker_group_id to worker_group;
+ ALTER TABLE t_ds_command alter column worker_group type varchar(64);
END IF;
END;
$$ LANGUAGE plpgsql;
d//
delimiter ;
-select ac_dolphin_T_t_ds_command_A_worker_group();
-DROP FUNCTION ac_dolphin_T_t_ds_command_A_worker_group();
+select uc_dolphin_T_t_ds_command_R_worker_group_id();
+DROP FUNCTION uc_dolphin_T_t_ds_command_R_worker_group_id();
--- dc_dolphin_T_t_ds_command_D_worker_group_id
+-- uc_dolphin_T_t_ds_error_command_R_worker_group_id
delimiter ;
-DROP FUNCTION IF EXISTS dc_dolphin_T_t_ds_command_D_worker_group_id();
+DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_error_command_R_worker_group_id();
delimiter d//
-CREATE FUNCTION dc_dolphin_T_t_ds_command_D_worker_group_id() RETURNS void AS $$
+CREATE FUNCTION uc_dolphin_T_t_ds_error_command_R_worker_group_id() RETURNS void AS $$
BEGIN
IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_CATALOG=current_database()
AND TABLE_SCHEMA=current_schema()
- AND TABLE_NAME='t_ds_command'
+ AND TABLE_NAME='t_ds_error_command'
AND COLUMN_NAME ='worker_group_id')
THEN
- ALTER TABLE t_ds_command DROP COLUMN worker_group_id;
+ ALTER TABLE t_ds_error_command rename worker_group_id to worker_group;
+ ALTER TABLE t_ds_error_command alter column worker_group type varchar(64);
END IF;
END;
$$ LANGUAGE plpgsql;
d//
delimiter ;
-select dc_dolphin_T_t_ds_command_D_worker_group_id();
-DROP FUNCTION dc_dolphin_T_t_ds_command_D_worker_group_id();
+select uc_dolphin_T_t_ds_error_command_R_worker_group_id();
+DROP FUNCTION uc_dolphin_T_t_ds_error_command_R_worker_group_id();
--- ac_dolphin_T_t_ds_error_command_A_worker_group
-delimiter ;
-DROP FUNCTION IF EXISTS ac_dolphin_T_t_ds_error_command_A_worker_group();
-delimiter d//
-CREATE FUNCTION ac_dolphin_T_t_ds_error_command_A_worker_group() RETURNS void AS $$
-BEGIN
- IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS
- WHERE TABLE_CATALOG=current_database()
- AND TABLE_SCHEMA=current_schema()
- AND TABLE_NAME='t_ds_error_command'
- AND COLUMN_NAME ='worker_group')
- THEN
- ALTER TABLE t_ds_error_command ADD COLUMN worker_group varchar(64) DEFAULT null;
- END IF;
-END;
-$$ LANGUAGE plpgsql;
-d//
-delimiter ;
-select ac_dolphin_T_t_ds_error_command_A_worker_group();
-DROP FUNCTION ac_dolphin_T_t_ds_error_command_A_worker_group();
--- dc_dolphin_T_t_ds_error_command_D_worker_group_id
-delimiter ;
-DROP FUNCTION IF EXISTS dc_dolphin_T_t_ds_error_command_D_worker_group_id();
+-- uc_dolphin_T_t_ds_process_definition_A_process_definition_unique
delimiter d//
-CREATE FUNCTION dc_dolphin_T_t_ds_error_command_D_worker_group_id() RETURNS void AS $$
+CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_process_definition_A_process_definition_unique() RETURNS void AS $$
BEGIN
- IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
- WHERE TABLE_CATALOG=current_database()
- AND TABLE_SCHEMA=current_schema()
- AND TABLE_NAME='t_ds_error_command'
- AND COLUMN_NAME ='worker_group_id')
+ IF NOT EXISTS (SELECT 1 FROM pg_stat_all_indexes
+ WHERE relname='t_ds_process_definition'
+ AND indexrelname ='process_definition_unique')
THEN
- ALTER TABLE t_ds_error_command DROP COLUMN worker_group_id;
+ ALTER TABLE t_ds_process_definition ADD CONSTRAINT process_definition_unique UNIQUE (name,project_id);
END IF;
END;
$$ LANGUAGE plpgsql;
d//
+
delimiter ;
-select dc_dolphin_T_t_ds_error_command_D_worker_group_id();
-DROP FUNCTION dc_dolphin_T_t_ds_error_command_D_worker_group_id();
+SELECT uc_dolphin_T_t_ds_process_definition_A_process_definition_unique();
+DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_process_definition_A_process_definition_unique();
-- ac_dolphin_T_t_ds_user_A_state
diff --git a/sql/upgrade/1.3.0_schema/postgresql/dolphinscheduler_dml.sql b/sql/upgrade/1.3.0_schema/postgresql/dolphinscheduler_dml.sql
new file mode 100644
index 0000000000..fba03152ee
--- /dev/null
+++ b/sql/upgrade/1.3.0_schema/postgresql/dolphinscheduler_dml.sql
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+UPDATE t_ds_resources SET pid=-1,is_directory=false WHERE pid IS NULL;
+UPDATE t_ds_resources SET full_name = concat('/',alias) WHERE pid=-1 and full_name IS NULL;
+UPDATE QRTZ_JOB_DETAILS SET JOB_CLASS_NAME='org.apache.dolphinscheduler.service.quartz.ProcessScheduleJob' WHERE JOB_CLASS_NAME='org.apache.dolphinscheduler.server.quartz.ProcessScheduleJob';
+UPDATE t_ds_process_instance instance SET worker_group=COALESCE((SELECT name from t_ds_worker_group WHERE instance.worker_group=CONCAT(id,'')),'default');
+UPDATE t_ds_task_instance instance SET worker_group=COALESCE((SELECT name from t_ds_worker_group WHERE instance.worker_group=CONCAT(id,'')),'default');
+UPDATE t_ds_schedules schedule SET worker_group=COALESCE((SELECT name from t_ds_worker_group WHERE schedule.worker_group=CONCAT(id,'')),'default');
+UPDATE t_ds_command command SET worker_group=COALESCE((SELECT name from t_ds_worker_group WHERE command.worker_group=CONCAT(id,'')),'default');
+UPDATE t_ds_error_command command SET worker_group=COALESCE((SELECT name from t_ds_worker_group WHERE command.worker_group=CONCAT(id,'')),'default');
\ No newline at end of file
diff --git a/tools/dependencies/known-dependencies.txt b/tools/dependencies/known-dependencies.txt
index f045bb275c..531740696b 100755
--- a/tools/dependencies/known-dependencies.txt
+++ b/tools/dependencies/known-dependencies.txt
@@ -20,8 +20,8 @@ commons-cli-1.2.jar
commons-codec-1.6.jar
commons-collections-3.2.2.jar
commons-collections4-4.1.jar
-commons-compiler-3.0.12.jar
commons-compress-1.4.1.jar
+commons-compiler-3.0.12.jar
commons-configuration-1.10.jar
commons-daemon-1.0.13.jar
commons-dbcp-1.4.jar