Commit cf1652f8 authored by Penom Nom's avatar Penom Nom

update to jflow1.0

parent de61d13b
#
# Copyright (C) 2012 INRA
# Copyright (C) 2015 INRA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......
#
# Copyright (C) 2012 INRA
# Copyright (C) 2015 INRA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......
#
# Copyright (C) 2012 INRA
# Copyright (C) 2015 INRA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......
#
# Copyright (C) 2009 INRA
# Copyright (C) 2015 INRA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......
#
# Copyright (C) 2012 INRA
# Copyright (C) 2015 INRA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......
#
# Copyright (C) 2012 INRA
# Copyright (C) 2015 INRA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -270,7 +270,7 @@ class Component(object):
inputs = sorted(inputs, key=attrgetter('argpos'))
outputs = sorted(outputs, key=attrgetter('argpos'))
filteredparams = []
commandline = self.get_command()
commandline = self.get_exec_path(self.get_command())
for p in parameters :
if isinstance(p, BoolParameter) :
......
#
# Copyright (C) 2012 INRA
# Copyright (C) 2015 INRA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......
#
# Copyright (C) 2012 INRA
# Copyright (C) 2015 INRA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......
#
# Copyright (C) 2012 INRA
# Copyright (C) 2015 INRA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......
#
# Copyright (C) 2012 INRA
# Copyright (C) 2015 INRA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -21,4 +21,5 @@ from featureiolib.gff3 import GFF3Record, GFF3IO
from featureiolib.mpileup import MpileupReader
from featureiolib.obo import OboReader
from featureiolib.vcf import VCFReader
from featureiolib.wego import WEGOReader
\ No newline at end of file
from featureiolib.wego import WEGOReader
from featureiolib.separatedvalue import SeparatedValueIO
\ No newline at end of file
#
# Copyright (C) 2012 INRA
# Copyright (C) 2015 INRA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......
#
# Copyright (C) 2014 INRA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
class SeparatedValueIO(object):
"""
@summary : Specific handler for separated value file (examples : TSV, CSV).
"""
def __init__(self, file_path, separator="\t", mode="r"):
"""
@param file_path : [str] The filepath.
@param separator : [str] The value separator.
@param mode : [str] Mode to open the file ('r', 'w', 'a').
"""
self._path = file_path
self._handle = open( file_path, mode )
self._line = 1
self._separator = separator
def __del__(self):
self.close()
def close(self):
if hasattr(self, '_handle') and self._handle is not None:
self._handle.close()
self._handle = None
self._line = None
def __iter__(self):
for line in self._handle:
line = line.rstrip('\n')
self._line += 1
try:
record = line.split(self._separator)
except:
raise IOError( "The line " + str(self._line) + " in '" + self._path + "' cannot be parsed by " + self.__class__.__name__ +
" with separator '" + self._separator + "'.\n" + "Line content : " + line )
else:
yield record
def next(self):
"""
@summary : Returns the next line record.
@return : [list] The line record.
"""
line = self._handle.readline()
self._line += 1
try:
record = line.split(self._separator)
except:
raise IOError( "The line " + str(self._line) + " in '" + self._path + "' cannot be parsed by " + self.__class__.__name__ +
" with separator '" + self._separator + "'.\n" + "Line content : " + line )
def write(self, record):
"""
@summary : Write one line on SparatedValue file.
@param record : [list] the list to write.
"""
self._handle.write( record.join(self._separator) + "\n" )
self._line += 1
\ No newline at end of file
#
# Copyright (C) 2012 INRA
# Copyright (C) 2015 INRA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......
#
# Copyright (C) 2012 INRA
# Copyright (C) 2015 INRA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -914,7 +914,7 @@ class ParameterList(list, AbstractParameter):
action="append", sub_parameters=sub_parameters, group=group, display_name=display_name,
cmd_format=cmd_format, argpos=argpos)
liste = []
if default.__class__.__name__ == "list":
if isinstance( default, list ):
for val in default :
liste.append(ParameterFactory.factory( name, help, default=val, type=type, choices=choices,
required=required, flag=flag, group=group, display_name=display_name ))
......
#
# Copyright (C) 2009 INRA
# Copyright (C) 2015 INRA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......
#
# Copyright (C) 2012 INRA
# Copyright (C) 2015 INRA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......
#
# Copyright (C) 2012 INRA
# Copyright (C) 2015 INRA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......
#
# Copyright (C) 2012 INRA
# Copyright (C) 2015 INRA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......
......@@ -64,30 +64,13 @@ class tx_nG6_pi1 extends tslib_pibase {
$GLOBALS['TSFE']->additionalHeaderData[$this->prefixId] = '
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jquery.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jquery.tmpl.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jquery.ui.widget.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jquery.iframe-transport.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jquery.fileupload.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jquery.fileupload-process.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jquery.fileupload-validate.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jquery.validate.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/wysihtml5-0.3.0.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/bootstrap.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/bootstrap-editable.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/bootstrap-datepicker.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/bootstrap3-wysihtml5.all.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/dataTables.bootstrap.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/cytoscape-2.3.7.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/cytoscape.js-panzoom.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/dagre.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/ZeroClipboard.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/typeahead.bundle.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/handsontable.full.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jflow-activewf.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jflow-availablewf.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jflow-wfform.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jflow-wfoutputs.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jflow-wfstatus.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jflow.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/tx_nG6_pi1.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/tx_nG6_utils.js"></script>
......@@ -95,11 +78,8 @@ class tx_nG6_pi1 extends tslib_pibase {
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/dataTables.bootstrap.css"/>
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/bootstrap-editable.css"/>
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/typeaheadjs.css"/>
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/datepicker.css"/>
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/cytoscape.js-panzoom.css"/>
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/font-awesome.css"/>
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/handsontable.full.min.css"/>
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/jflow.css"/>
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/jflow.min.css"/>
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/tx_nG6.css"/>';
tx_nG6_db::check_db_rights_level();
......
......@@ -60,8 +60,8 @@ class tx_nG6_pi5 extends tslib_pibase {
// Add the jquery libs + the tree plugins and its css
$GLOBALS['TSFE']->additionalHeaderData[$this->prefixId] = '
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jquery.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jquery.validate.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jquery.jstree.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jflow.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/bootstrap.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/tx_nG6_pi5.js"></script>
......
......@@ -60,34 +60,21 @@ class tx_nG6_pi6 extends tslib_pibase {
// Add the jquery libs + the tree plugins and its css
$GLOBALS['TSFE']->additionalHeaderData[$this->prefixId] = '
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jquery.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jquery.validate.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jquery.tmpl.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/highstock.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jquery.highcharts.exporting.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/highstock.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/bootstrap.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/dataTables.bootstrap.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/cytoscape-2.3.7.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/cytoscape.js-panzoom.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/dagre.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/ZeroClipboard.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/typeahead.bundle.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/handsontable.full.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jflow-activewf.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jflow-availablewf.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jflow-wfform.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jflow-wfoutputs.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jflow-wfstatus.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/jflow.min.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/tx_nG6_utils.js"></script>
<script type="text/javascript" src="'.t3lib_extMgm::siteRelPath($this->extKey).'res/js/tx_nG6_pi6.js"></script>
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/bootstrap-theme.min.css"/>
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/dataTables.bootstrap.css"/>
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/typeaheadjs.css"/>
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/cytoscape.js-panzoom.css"/>
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/font-awesome.css"/>
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/handsontable.full.min.css"/>
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/jflow.css"/>
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/jflow.min.css"/>
<link type="text/css" rel="stylesheet" media="screen" href="'.t3lib_extMgm::siteRelPath($this->extKey).'res/css/tx_nG6.css"/>';
$smarty = new Smarty();
......
.ui-cytoscape-panzoom {
position: absolute;
font-size: 12px;
color: #fff;
font-family: arial, helvetica, sans-serif;
line-height: 1;
color: #666;
font-size: 11px;
z-index: 99999;
}
.ui-cytoscape-panzoom-zoom-button {
cursor: pointer;
padding: 3px;
text-align: center;
position: absolute;
border-radius: 3px;
width: 18px; /*10px;*/
height: 18px; /*10px;*/
left: 16px;
background: #fff;
border: 1px solid #999;
margin-left: -1px;
margin-top: -1px;
z-index: 1;
}
.ui-cytoscape-panzoom-zoom-button:active,
.ui-cytoscape-panzoom-slider-handle:active,
.ui-cytoscape-panzoom-slider-handle.active {
background: #ddd;
}
.ui-cytoscape-panzoom-pan-button {
position: absolute;
z-index: 1;
height: 16px;
width: 16px;
}
.ui-cytoscape-panzoom-reset {
top: 55px;
padding-top: 2px;
}
.ui-cytoscape-panzoom-zoom-in {
top: 80px;
}
.ui-cytoscape-panzoom-zoom-out {
top: 197px;
}
.ui-cytoscape-panzoom-pan-up {
top: 0;
left: 50%;
margin-left: -5px;
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-bottom: 5px solid #666;
}
.ui-cytoscape-panzoom-pan-down {
bottom: 0;
left: 50%;
margin-left: -5px;
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: 5px solid #666;
}
.ui-cytoscape-panzoom-pan-left {
top: 50%;
left: 0;
margin-top: -5px;
width: 0;
height: 0;
border-top: 5px solid transparent;
border-bottom: 5px solid transparent;
border-right: 5px solid #666;
}
.ui-cytoscape-panzoom-pan-right {
top: 50%;
right: 0;
margin-top: -5px;
width: 0;
height: 0;
border-top: 5px solid transparent;
border-bottom: 5px solid transparent;
border-left: 5px solid #666;
}
.ui-cytoscape-panzoom-pan-indicator {
position: absolute;
left: 0;
top: 0;
width: 8px;
height: 8px;
border-radius: 8px;
background: #000;
border-radius: 8px;
margin-left: -5px;
margin-top: -5px;
display: none;
z-index: 999;
opacity: 0.6;
}
.ui-cytoscape-panzoom-slider {
position: absolute;
top: 97px;
left: 17px;
height: 100px;
width: 15px;
}
.ui-cytoscape-panzoom-slider-background {
position: absolute;
top: 0;
width: 4px; /*2px;*/
height: 100px;
left: 5px;
background: #fff;
border-left: 1px solid #999;
border-right: 1px solid #999;
}
.ui-cytoscape-panzoom-slider-handle {
position: absolute;
width: 18px; /*16px;*/
height: 9px; /*8px;*/
background: #fff;
border: 1px solid #999;
border-radius: 2px;
margin-left: -2px;
z-index: 999;
line-height: 8px;
cursor: default;
}
.ui-cytoscape-panzoom-slider-handle .icon {
margin: -1px 4px 1px 4px;
line-height: 10px;
}
.ui-cytoscape-panzoom-no-zoom-tick {
position: absolute;
background: #666;
border: 1px solid #fff;
border-radius: 2px;
margin-left: -1px;
width: 10px; /*8px;*/
height: 3px; /*2px;*/
left: 3px;
z-index: 1;
margin-top: 3px;
}
.ui-cytoscape-panzoom-panner {
position: absolute;
left: 5px;
top: 5px;
height: 40px;
width: 40px;
background: #fff;
border: 1px solid #999;
border-radius: 40px;
margin-left: -1px;
}
.ui-cytoscape-panzoom-panner-handle {
position: absolute;
left: 0;
top: 0;
outline: none;
height: 40px;
width: 40px;
position: absolute;
z-index: 999;
}
.fa {
font-family: courier;
display: inline-block;
font-style: normal;
font-weight: bold;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-size: 15px;
margin-top: -2px;
}
.fa-expand:before {
content: "o";
}
.fa-plus:before {
content: "+";
}
.fa-minus:before {
content: "-";
}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
/***************************************************************
* Copyright notice
*
* (c) 2013 PF bioinformatique de Toulouse
* All rights reserved
*
* It is distributed under the terms of the GNU General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
.handsontable {
overflow: auto;
}
.handsontable td.htInvalid {
background-image: linear-gradient(to bottom, #d9534f 0px, #c12e2a 100%) !important;
background-repeat: repeat-x;
border-color: #b92c28 !important;
color: white;
}
.handsontable .handsontableInput {
box-sizing: content-box;
border: 2px solid #66afe9;
outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);
}
.handsontable .currentRow {
background-color: #E7E8EF;
}
.handsontable .currentCol {
background-color: #F9F9FB;
}
.floatingBarsG {
position:relative;
width:16px;
height:20px
}
.blockG {
position:absolute;
background-color:#FFFFFF;
width:3px;
height:6px;
-moz-border-radius:3px 3px 0 0;
-moz-transform:scale(0.4);
-moz-animation-name:fadeG;
-moz-animation-duration:1.04s;
-moz-animation-iteration-count:infinite;
-moz-animation-direction:linear;
-webkit-border-radius:3px 3px 0 0;
-webkit-transform:scale(0.4);
-webkit-animation-name:fadeG;
-webkit-animation-duration:1.04s;
-webkit-animation-iteration-count:infinite;
-webkit-animation-direction:linear;
-ms-border-radius:3px 3px 0 0;
-ms-transform:scale(0.4);
-ms-animation-name:fadeG;
-ms-animation-duration:1.04s;
-ms-animation-iteration-count:infinite;
-ms-animation-direction:linear;
-o-border-radius:3px 3px 0 0;
-o-transform:scale(0.4);
-o-animation-name:fadeG;
-o-animation-duration:1.04s;
-o-animation-iteration-count:infinite;
-o-animation-direction:linear;
border-radius:3px 3px 0 0;
transform:scale(0.4);
animation-name:fadeG;
animation-duration:1.04s;
animation-iteration-count:infinite;
animation-direction:linear;
}
#rotateG_01{
left:0;
top:7px;
-moz-animation-delay:0.39s;
-moz-transform:rotate(-90deg);
-webkit-animation-delay:0.39s;
-webkit-transform:rotate(-90deg);
-ms-animation-delay:0.39s;
-ms-transform:rotate(-90deg);
-o-animation-delay:0.39s;
-o-transform:rotate(-90deg);
animation-delay:0.39s;
transform:rotate(-90deg);
}
#rotateG_02{
left:2px;
top:3px;
-moz-animation-delay:0.52s;
-moz-transform:rotate(-45deg);
-webkit-animation-delay:0.52s;
-webkit-transform:rotate(-45deg);
-ms-animation-delay:0.52s;
-ms-transform:rotate(-45deg);
-o-animation-delay:0.52s;
-o-transform:rotate(-45deg);
animation-delay:0.52s;
transform:rotate(-45deg);
}
#rotateG_03{
left:7px;
top:1px;
-moz-animation-delay:0.65s;
-moz-transform:rotate(0deg);
-webkit-animation-delay:0.65s;
-webkit-transform:rotate(0deg);
-ms-animation-delay:0.65s;
-ms-transform:rotate(0deg);
-o-animation-delay:0.65s;
-o-transform:rotate(0deg);
animation-delay:0.65s;
transform:rotate(0deg);
}
#rotateG_04{
right:2px;
top:3px;
-moz-animation-delay:0.78s;
-moz-transform:rotate(45deg);
-webkit-animation-delay:0.78s;
-webkit-transform:rotate(45deg);
-ms-animation-delay:0.78s;
-ms-transform:rotate(45deg);
-o-animation-delay:0.78s;
-o-transform:rotate(45deg);
animation-delay:0.78s;
transform:rotate(45deg);
}
#rotateG_05{
right:0;
top:7px;
-moz-animation-delay:0.9099999999999999s;
-moz-transform:rotate(90deg);
-webkit-animation-delay:0.9099999999999999s;
-webkit-transform:rotate(90deg);
-ms-animation-delay:0.9099999999999999s;
-ms-transform:rotate(90deg);
-o-animation-delay:0.9099999999999999s;
-o-transform:rotate(90deg);
animation-delay:0.9099999999999999s;
transform:rotate(90deg);
}
#rotateG_06{
right:2px;
bottom:2px;
-moz-animation-delay:1.04s;
-moz-transform:rotate(135deg);
-webkit-animation-delay:1.04s;
-webkit-transform:rotate(135deg);
-ms-animation-delay:1.04s;
-ms-transform:rotate(135deg);