Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
morpheus.js
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Daria Zenkova
morpheus.js
Commits
bc8c2428
Commit
bc8c2428
authored
Jun 14, 2016
by
Joshua Gould
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chart hover mode
parent
a86107b5
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
191 additions
and
181 deletions
+191
-181
js/morpheus-latest.min.js
js/morpheus-latest.min.js
+16
-16
src/matrix/dataset_util.js
src/matrix/dataset_util.js
+164
-164
src/tools/chart_tool2.js
src/tools/chart_tool2.js
+1
-0
src/ui/heat_map.js
src/ui/heat_map.js
+10
-1
No files found.
js/morpheus-latest.min.js
View file @
bc8c2428
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/matrix/dataset_util.js
View file @
bc8c2428
morpheus
.
DatasetUtil
=
function
()
{
morpheus
.
DatasetUtil
=
function
()
{
};
morpheus
.
DatasetUtil
.
min
=
function
(
dataset
,
seriesIndex
)
{
morpheus
.
DatasetUtil
.
min
=
function
(
dataset
,
seriesIndex
)
{
seriesIndex
=
seriesIndex
||
0
;
var
min
=
Number
.
MAX_VALUE
;
for
(
var
i
=
0
,
rows
=
dataset
.
getRowCount
();
i
<
rows
;
i
++
)
{
...
...
@@ -14,14 +14,14 @@ morpheus.DatasetUtil.min = function(dataset, seriesIndex) {
}
return
min
;
};
morpheus
.
DatasetUtil
.
slicedView
=
function
(
dataset
,
rows
,
columns
)
{
morpheus
.
DatasetUtil
.
slicedView
=
function
(
dataset
,
rows
,
columns
)
{
return
new
morpheus
.
SlicedDatasetView
(
dataset
,
rows
,
columns
);
};
morpheus
.
DatasetUtil
.
transposedView
=
function
(
dataset
)
{
morpheus
.
DatasetUtil
.
transposedView
=
function
(
dataset
)
{
return
dataset
instanceof
morpheus
.
TransposedDatasetView
?
dataset
.
getDataset
()
:
new
morpheus
.
TransposedDatasetView
(
dataset
);
};
morpheus
.
DatasetUtil
.
max
=
function
(
dataset
,
seriesIndex
)
{
morpheus
.
DatasetUtil
.
max
=
function
(
dataset
,
seriesIndex
)
{
seriesIndex
=
seriesIndex
||
0
;
var
max
=
-
Number
.
MAX_VALUE
;
for
(
var
i
=
0
,
rows
=
dataset
.
getRowCount
();
i
<
rows
;
i
++
)
{
...
...
@@ -36,7 +36,7 @@ morpheus.DatasetUtil.max = function(dataset, seriesIndex) {
return
max
;
};
morpheus
.
DatasetUtil
.
getDatasetReader
=
function
(
ext
,
options
)
{
morpheus
.
DatasetUtil
.
getDatasetReader
=
function
(
ext
,
options
)
{
var
datasetReader
;
if
(
ext
===
'
maf
'
)
{
datasetReader
=
new
morpheus
.
MafFileReader
();
...
...
@@ -63,23 +63,23 @@ morpheus.DatasetUtil.getDatasetReader = function(ext, options) {
return
datasetReader
;
};
morpheus
.
DatasetUtil
.
readDatasetArray
=
function
(
options
)
{
morpheus
.
DatasetUtil
.
readDatasetArray
=
function
(
options
)
{
var
retDef
=
$
.
Deferred
();
var
loadedDatasets
=
[];
var
promises
=
[];
_
.
each
(
options
.
dataset
,
function
(
option
,
i
)
{
_
.
each
(
options
.
dataset
,
function
(
option
,
i
)
{
var
p
=
option
.
dataset
.
file
?
morpheus
.
DatasetUtil
.
read
(
option
.
dataset
.
file
,
option
.
dataset
.
options
)
:
morpheus
.
DatasetUtil
.
read
(
option
.
dataset
);
p
.
index
=
i
;
p
.
done
(
function
(
dataset
)
{
p
.
done
(
function
(
dataset
)
{
loadedDatasets
[
this
.
index
]
=
dataset
;
});
p
.
fail
(
function
(
err
)
{
var
message
=
[
'
Error opening
'
p
.
fail
(
function
(
err
)
{
var
message
=
[
'
Error opening
'
+
(
option
.
dataset
.
file
?
morpheus
.
Util
.
getFileName
(
option
.
dataset
.
file
)
:
morpheus
.
Util
.
getFileName
(
option
.
dataset
))
+
'
.
'
];
.
getFileName
(
option
.
dataset
))
+
'
.
'
];
if
(
err
.
message
)
{
message
.
push
(
'
<br />Cause:
'
);
message
.
push
(
err
.
message
);
...
...
@@ -96,7 +96,7 @@ morpheus.DatasetUtil.readDatasetArray = function(options) {
$
.
when
.
apply
(
$
,
promises
)
.
then
(
function
()
{
function
()
{
var
joined
;
if
(
loadedDatasets
.
length
>
1
)
{
joined
=
new
morpheus
.
JoinedDataset
(
...
...
@@ -130,14 +130,14 @@ morpheus.DatasetUtil.readDatasetArray = function(options) {
* @return A jQuery Deferred object that resolves to an array of functions to
* execute with a dataset parameter.
*/
morpheus
.
DatasetUtil
.
annotate
=
function
(
options
)
{
morpheus
.
DatasetUtil
.
annotate
=
function
(
options
)
{
var
retDef
=
$
.
Deferred
();
var
promises
=
[];
var
functions
=
[];
var
isColumns
=
options
.
isColumns
;
_
.
each
(
options
.
annotations
,
function
(
ann
)
{
_
.
each
(
options
.
annotations
,
function
(
ann
)
{
if
(
morpheus
.
Util
.
isArray
(
ann
.
file
))
{
// already parsed text
functions
.
push
(
function
(
dataset
)
{
functions
.
push
(
function
(
dataset
)
{
new
morpheus
.
OpenFileTool
().
annotate
(
ann
.
file
,
dataset
,
isColumns
,
null
,
ann
.
datasetField
,
ann
.
fileField
,
ann
.
include
);
...
...
@@ -147,26 +147,26 @@ morpheus.DatasetUtil.annotate = function(options) {
var
fileName
=
morpheus
.
Util
.
getFileName
(
ann
.
file
);
var
deferred
=
$
.
Deferred
();
promises
.
push
(
deferred
);
result
.
fail
(
function
(
message
)
{
result
.
fail
(
function
(
message
)
{
deferred
.
reject
(
message
);
});
result
.
done
(
function
(
lines
)
{
result
.
done
(
function
(
lines
)
{
if
(
morpheus
.
Util
.
endsWith
(
fileName
,
'
.gmt
'
))
{
var
sets
=
new
morpheus
.
GmtReader
().
parseLines
(
lines
);
functions
.
push
(
function
(
dataset
)
{
functions
.
push
(
function
(
dataset
)
{
new
morpheus
.
OpenFileTool
().
annotate
(
null
,
dataset
,
isColumns
,
sets
,
ann
.
datasetField
,
ann
.
fileField
);
});
deferred
.
resolve
();
}
else
if
(
morpheus
.
Util
.
endsWith
(
fileName
,
'
.cls
'
))
{
functions
.
push
(
function
(
dataset
)
{
functions
.
push
(
function
(
dataset
)
{
new
morpheus
.
OpenFileTool
().
annotateCls
(
null
,
dataset
,
fileName
,
isColumns
,
lines
);
});
deferred
.
resolve
();
}
else
{
functions
.
push
(
function
(
dataset
)
{
functions
.
push
(
function
(
dataset
)
{
new
morpheus
.
OpenFileTool
().
annotate
(
lines
,
dataset
,
isColumns
,
null
,
ann
.
datasetField
,
ann
.
fileField
,
ann
.
include
);
...
...
@@ -176,7 +176,7 @@ morpheus.DatasetUtil.annotate = function(options) {
});
}
});
$
.
when
.
apply
(
$
,
promises
).
then
(
function
()
{
$
.
when
.
apply
(
$
,
promises
).
then
(
function
()
{
retDef
.
resolve
(
functions
);
});
return
retDef
;
...
...
@@ -186,10 +186,10 @@ morpheus.DatasetUtil.annotate = function(options) {
* a File or url
* @return A promise that resolves to Dataset
*/
morpheus
.
DatasetUtil
.
read
=
function
(
fileOrUrl
,
options
)
{
morpheus
.
DatasetUtil
.
read
=
function
(
fileOrUrl
,
options
)
{
var
isFile
=
fileOrUrl
instanceof
File
;
var
isString
=
_
.
isString
(
fileOrUrl
);
var
ext
=
morpheus
.
Util
.
getExtension
(
morpheus
.
Util
.
getFileName
(
fileOrUrl
));
var
ext
=
options
&&
options
.
extension
?
options
.
extension
:
morpheus
.
Util
.
getExtension
(
morpheus
.
Util
.
getFileName
(
fileOrUrl
));
var
datasetReader
=
morpheus
.
DatasetUtil
.
getDatasetReader
(
ext
,
options
);
if
(
isString
||
isFile
)
{
// URL or file
...
...
@@ -198,32 +198,32 @@ morpheus.DatasetUtil.read = function(fileOrUrl, options) {
if
(
options
&&
options
.
background
)
{
var
path
=
morpheus
.
Util
.
getScriptPath
();
var
blob
=
new
Blob
(
[
'
self.onmessage = function(e) {
'
[
'
self.onmessage = function(e) {
'
+
'
importScripts(e.data.path);
'
+
'
var ext = morpheus.Util.getExtension(morpheus.Util
'
+
'
.getFileName(e.data.fileOrUrl));
'
+
'
var datasetReader = morpheus.DatasetUtil.getDatasetReader(ext,
'
+
'
e.data.options);
'
+
'
datasetReader.read(e.data.fileOrUrl, function(err,dataset) {
'
+
'
self.postMessage(dataset);
'
+
'
});
'
+
'
}
'
]);
+
'
self.postMessage(dataset);
'
+
'
});
'
+
'
}
'
]);
// Obtain a blob URL reference to our worker 'file'.
var
blobURL
=
window
.
URL
.
createObjectURL
(
blob
);
var
worker
=
new
Worker
(
blobURL
);
// blobURL);
worker
.
addEventListener
(
'
message
'
,
function
(
e
)
{
worker
.
addEventListener
(
'
message
'
,
function
(
e
)
{
// wrap in dataset object
deferred
.
resolve
(
morpheus
.
Dataset
.
fromJson
(
e
.
data
));
window
.
URL
.
revokeObjectURL
(
blobURL
);
},
false
);
// start the worker
worker
.
postMessage
({
path
:
path
,
fileOrUrl
:
fileOrUrl
,
options
:
options
path
:
path
,
fileOrUrl
:
fileOrUrl
,
options
:
options
});
}
else
{
datasetReader
.
read
(
fileOrUrl
,
function
(
err
,
dataset
)
{
datasetReader
.
read
(
fileOrUrl
,
function
(
err
,
dataset
)
{
if
(
err
)
{
deferred
.
reject
(
err
);
}
else
{
...
...
@@ -234,7 +234,7 @@ morpheus.DatasetUtil.read = function(fileOrUrl, options) {
}
var
pr
=
deferred
.
promise
();
pr
.
toString
=
function
()
{
pr
.
toString
=
function
()
{
return
''
+
fileOrUrl
;
};
return
pr
;
...
...
@@ -261,9 +261,9 @@ morpheus.DatasetUtil.read = function(fileOrUrl, options) {
* An array of row metadata fields to include from the dataset
*
*/
morpheus
.
DatasetUtil
.
toObjectArray
=
function
(
dataset
,
options
)
{
var
columns
=
options
.
columns
||
[
0
];
var
columnFields
=
options
.
columnFields
||
[
'
value
'
];
morpheus
.
DatasetUtil
.
toObjectArray
=
function
(
dataset
,
options
)
{
var
columns
=
options
.
columns
||
[
0
];
var
columnFields
=
options
.
columnFields
||
[
'
value
'
];
if
(
columnFields
.
length
!==
columns
.
length
)
{
throw
'
columns.length !== columnFields.length
'
;
}
...
...
@@ -293,19 +293,19 @@ morpheus.DatasetUtil.toObjectArray = function(dataset, options) {
}
return
array
;
};
morpheus
.
DatasetUtil
.
fixL1K
=
function
(
dataset
)
{
morpheus
.
DatasetUtil
.
fixL1K
=
function
(
dataset
)
{
var
names
=
{
'
cell_id
'
:
'
Cell Line
'
,
'
pert_idose
'
:
'
Dose (
\
u00B5M)
'
,
'
pert_iname
'
:
'
Name
'
,
'
pert_itime
'
:
'
Time (hr)
'
,
'
distil_ss
'
:
'
Signature Strength
'
,
'
pert_type
'
:
'
Type
'
,
'
cell_lineage
'
:
'
Lineage
'
,
'
cell_histology
'
:
'
Histology
'
,
'
cell_type
'
:
'
Cell Type
'
'
cell_id
'
:
'
Cell Line
'
,
'
pert_idose
'
:
'
Dose (
\
u00B5M)
'
,
'
pert_iname
'
:
'
Name
'
,
'
pert_itime
'
:
'
Time (hr)
'
,
'
distil_ss
'
:
'
Signature Strength
'
,
'
pert_type
'
:
'
Type
'
,
'
cell_lineage
'
:
'
Lineage
'
,
'
cell_histology
'
:
'
Histology
'
,
'
cell_type
'
:
'
Cell Type
'
};
var
fixNames
=
function
(
metadata
)
{
var
fixNames
=
function
(
metadata
)
{
for
(
var
i
=
0
,
count
=
metadata
.
getMetadataCount
();
i
<
count
;
i
++
)
{
var
v
=
metadata
.
get
(
i
);
var
name
=
v
.
getName
();
...
...
@@ -317,7 +317,7 @@ morpheus.DatasetUtil.fixL1K = function(dataset) {
};
fixNames
(
dataset
.
getRowMetadata
());
fixNames
(
dataset
.
getColumnMetadata
());
var
fix666
=
function
(
metadata
)
{
var
fix666
=
function
(
metadata
)
{
for
(
var
i
=
0
,
count
=
metadata
.
getMetadataCount
();
i
<
count
;
i
++
)
{
var
v
=
metadata
.
get
(
i
);
if
(
v
.
getName
()
==
'
Dose (
\
u00B5M)
'
)
{
// convert to number
...
...
@@ -347,9 +347,9 @@ morpheus.DatasetUtil.fixL1K = function(dataset) {
};
fix666
(
dataset
.
getRowMetadata
());
fix666
(
dataset
.
getColumnMetadata
());
var
fixCommas
=
function
(
metadata
)
{
var
fixCommas
=
function
(
metadata
)
{
var
regex
=
/
(
,
)([^
])
/g
;
_
.
each
([
'
Lineage
'
,
'
Histology
'
],
function
(
name
)
{
_
.
each
([
'
Lineage
'
,
'
Histology
'
],
function
(
name
)
{
var
v
=
metadata
.
getByName
(
name
);
if
(
v
!=
null
)
{
for
(
var
i
=
0
,
size
=
v
.
size
();
i
<
size
;
i
++
)
{
...
...
@@ -364,7 +364,7 @@ morpheus.DatasetUtil.fixL1K = function(dataset) {
fixCommas
(
dataset
.
getRowMetadata
());
fixCommas
(
dataset
.
getColumnMetadata
());
};
morpheus
.
DatasetUtil
.
geneSetsToDataset
=
function
(
name
,
sets
)
{
morpheus
.
DatasetUtil
.
geneSetsToDataset
=
function
(
name
,
sets
)
{
var
uniqueIds
=
new
morpheus
.
Map
();
for
(
var
i
=
0
,
length
=
sets
.
length
;
i
<
length
;
i
++
)
{
var
ids
=
sets
[
i
].
ids
;
...
...
@@ -374,9 +374,9 @@ morpheus.DatasetUtil.geneSetsToDataset = function(name, sets) {
}
var
uniqueIdsArray
=
uniqueIds
.
keys
();
var
dataset
=
new
morpheus
.
Dataset
({
name
:
name
,
rows
:
uniqueIdsArray
.
length
,
columns
:
sets
.
length
name
:
name
,
rows
:
uniqueIdsArray
.
length
,
columns
:
sets
.
length
});
var
columnIds
=
dataset
.
getColumnMetadata
().
add
(
'
id
'
);
for
(
var
i
=
0
,
length
=
sets
.
length
;
i
<
length
;
i
++
)
{
...
...
@@ -411,14 +411,14 @@ morpheus.DatasetUtil.OPEN_FILE_FORMATS = '<a target="_blank" href="http://suppor
+
'
<a target="_blank" href="https://wiki.nci.nih.gov/display/TCGA/Mutation+Annotation+Format+%28MAF%29+Specification">MAF</a>,
'
+
'
<a target="_blank", href="http://www.broadinstitute.org/cancer/software/gsea/wiki/index.php/Data_formats#GMT:_Gene_Matrix_Transposed_file_format_.28.2A.gmt.29">GMT</a>,
'
+
'
a tab-delimited text file, or a <a href="http://en.wikipedia.org/wiki/Newick_format" target="_blank">Newick</a> file
'
;
morpheus
.
DatasetUtil
.
getRootDataset
=
function
(
dataset
)
{
morpheus
.
DatasetUtil
.
getRootDataset
=
function
(
dataset
)
{
while
(
dataset
.
getDataset
)
{
dataset
=
dataset
.
getDataset
();
}
return
dataset
;
};
morpheus
.
DatasetUtil
.
getSeriesIndex
=
function
(
dataset
,
name
)
{
morpheus
.
DatasetUtil
.
getSeriesIndex
=
function
(
dataset
,
name
)
{
for
(
var
i
=
0
,
nseries
=
dataset
.
getSeriesCount
();
i
<
nseries
;
i
++
)
{
if
(
name
===
dataset
.
getName
(
i
))
{
return
i
;
...
...
@@ -426,12 +426,12 @@ morpheus.DatasetUtil.getSeriesIndex = function(dataset, name) {
}
return
-
1
;
};
morpheus
.
DatasetUtil
.
getSeriesNames
=
function
(
dataset
)
{
morpheus
.
DatasetUtil
.
getSeriesNames
=
function
(
dataset
)
{
var
names
=
[];
for
(
var
i
=
0
,
nseries
=
dataset
.
getSeriesCount
();
i
<
nseries
;
i
++
)
{
names
.
push
(
dataset
.
getName
(
i
));
}
names
.
sort
(
function
(
a
,
b
)
{
names
.
sort
(
function
(
a
,
b
)
{
a
=
a
.
toLowerCase
();
b
=
b
.
toLowerCase
();
return
(
a
<
b
?
-
1
:
(
a
===
b
?
0
:
1
));
...
...
@@ -442,7 +442,7 @@ morpheus.DatasetUtil.getSeriesNames = function(dataset) {
/**
* Search dataset values.
*/
morpheus
.
DatasetUtil
.
searchValues
=
function
(
dataset
,
text
,
cb
)
{
morpheus
.
DatasetUtil
.
searchValues
=
function
(
dataset
,
text
,
cb
)
{
if
(
text
===
''
)
{
return
;
}
...
...
@@ -454,7 +454,7 @@ morpheus.DatasetUtil.searchValues = function(dataset, text, cb) {
for
(
var
i
=
0
,
nrows
=
dataset
.
getRowCount
();
i
<
nrows
;
i
++
)
{
for
(
var
k
=
0
,
nseries
=
dataset
.
getSeriesCount
();
k
<
nseries
;
k
++
)
{
if
(
dataset
.
getDataType
(
i
,
k
)
===
'
object
'
)
{
seriesIndices
.
push
([
i
,
k
]);
seriesIndices
.
push
([
i
,
k
]);
}
}
}
...
...
@@ -474,8 +474,8 @@ morpheus.DatasetUtil.searchValues = function(dataset, text, cb) {
}
var
fields
=
_val
==
null
?
[]
:
_
.
keys
(
_val
);
var
predicates
=
morpheus
.
Util
.
createSearchPredicates
({
tokens
:
tokens
,
fields
:
fields
tokens
:
tokens
,
fields
:
fields
});
var
npredicates
=
predicates
.
length
;
...
...
@@ -500,7 +500,7 @@ morpheus.DatasetUtil.searchValues = function(dataset, text, cb) {
break
;
}
}
else
{
// try all fields
for
(
var
name
in
object
)
{
for
(
var
name
in
object
)
{
var
value
=
object
[
name
];
if
(
value
!=
null
&&
predicate
.
accept
(
value
))
{
if
(
cb
(
value
,
pair
[
0
],
j
)
===
false
)
{
...
...
@@ -522,8 +522,8 @@ morpheus.DatasetUtil.searchValues = function(dataset, text, cb) {
/**
* Search dataset values.
*/
morpheus
.
DatasetUtil
.
autocompleteValues
=
function
(
dataset
)
{
return
function
(
tokens
,
cb
)
{
morpheus
.
DatasetUtil
.
autocompleteValues
=
function
(
dataset
)
{
return
function
(
tokens
,
cb
)
{
var
token
=
tokens
!=
null
&&
tokens
.
length
>
0
?
tokens
[
tokens
.
selectionStartIndex
]
:
''
;
...
...
@@ -532,7 +532,7 @@ morpheus.DatasetUtil.autocompleteValues = function(dataset) {
for
(
var
i
=
0
,
nrows
=
dataset
.
getRowCount
();
i
<
nrows
;
i
++
)
{
for
(
var
k
=
0
,
nseries
=
dataset
.
getSeriesCount
();
k
<
nseries
;
k
++
)
{
if
(
dataset
.
getDataType
(
i
,
k
)
===
'
object
'
)
{
seriesIndices
.
push
([
i
,
k
]);
seriesIndices
.
push
([
i
,
k
]);
}
}
}
...
...
@@ -553,15 +553,15 @@ morpheus.DatasetUtil.autocompleteValues = function(dataset) {
var
matches
=
[];
var
fields
=
_val
==
null
?
[]
:
_
.
keys
(
_val
);
if
(
token
===
''
)
{
fields
.
sort
(
function
(
a
,
b
)
{
fields
.
sort
(
function
(
a
,
b
)
{
return
(
a
===
b
?
0
:
(
a
<
b
?
-
1
:
1
));
});
fields
.
forEach
(
function
(
field
)
{
fields
.
forEach
(
function
(
field
)
{
matches
.
push
({
value
:
field
+
'
:
'
,
label
:
'
<span style="font-weight:300;">
'
+
field
value
:
field
+
'
:
'
,
label
:
'
<span style="font-weight:300;">
'
+
field
+
'
:</span>
'
,
show
:
true
show
:
true
});
});
return
cb
(
matches
);
...
...
@@ -602,7 +602,7 @@ morpheus.DatasetUtil.autocompleteValues = function(dataset) {
if
(
field
!==
null
)
{
var
val
=
object
[
field
];
if
(
val
!=
null
)
{
var
id
=
new
morpheus
.
Identifier
([
val
,
field
]);
var
id
=
new
morpheus
.
Identifier
([
val
,
field
]);
if
(
!
set
.
has
(
id
)
&&
regex
.
test
(
val
))
{
set
.
add
(
id
);
if
(
set
.
size
()
===
max
)
{
...
...
@@ -611,9 +611,9 @@ morpheus.DatasetUtil.autocompleteValues = function(dataset) {
}
}
}
else
{
// search all fields
for
(
var
name
in
object
)
{
for
(
var
name
in
object
)
{
var
val
=
object
[
name
];
var
id
=
new
morpheus
.
Identifier
([
val
,
name
]);
var
id
=
new
morpheus
.
Identifier
([
val
,
name
]);
if
(
!
set
.
has
(
id
)
&&
regex
.
test
(
val
))
{
set
.
add
(
id
);
if
(
set
.
size
()
===
max
)
{
...
...
@@ -626,25 +626,25 @@ morpheus.DatasetUtil.autocompleteValues = function(dataset) {
}
}
}
set
.
forEach
(
function
(
id
)
{
set
.
forEach
(
function
(
id
)
{
var
array
=
id
.
getArray
();
var
field
=
array
[
1
];
var
val
=
array
[
0
];
matches
.
push
({
value
:
field
+
'
:
'
+
val
,
label
:
'
<span style="font-weight:300;">
'
+
field
+
'
:</span>
'
value
:
field
+
'
:
'
+
val
,
label
:
'
<span style="font-weight:300;">
'
+
field
+
'
:</span>
'
+
'
<span style="font-weight:900;">
'
+
val
+
'
</span>
'
});
});
if
(
field
==
null
)
{
fields
.
forEach
(
function
(
field
)
{
fields
.
forEach
(
function
(
field
)
{
if
(
regex
.
test
(
field
))
{
matches
.
push
({
value
:
field
+
'
:
'
,
label
:
'
<span style="font-weight:300;">
'
+
field
value
:
field
+
'
:
'
,
label
:
'
<span style="font-weight:300;">
'
+
field
+
'
:</span>
'
,
show
:
true
show
:
true
});
}
});
...
...
@@ -700,7 +700,7 @@ morpheus.DatasetUtil.autocompleteValues = function(dataset) {
// json.push('}'); // end json object
// return json.join('');
// };
morpheus
.
DatasetUtil
.
fill
=
function
(
dataset
,
value
,
seriesIndex
)
{
morpheus
.
DatasetUtil
.
fill
=
function
(
dataset
,
value
,
seriesIndex
)
{
seriesIndex
=
seriesIndex
||
0
;
for
(
var
i
=
0
,
nrows
=
dataset
.
getRowCount
(),
ncols
=
dataset
.
getColumnCount
();
i
<
nrows
;
i
++
)
{
...
...
@@ -710,35 +710,35 @@ morpheus.DatasetUtil.fill = function(dataset, value, seriesIndex) {
}
};
morpheus
.
DatasetUtil
.
shallowCopy
=
function
(
dataset
)
{
morpheus
.
DatasetUtil
.
shallowCopy
=
function
(
dataset
)
{
// make a shallow copy of the dataset, metadata is immutable via the UI
var
rowMetadataModel
=
morpheus
.
MetadataUtil
.
shallowCopy
(
dataset
.
getRowMetadata
());
var
columnMetadataModel
=
morpheus
.
MetadataUtil
.
shallowCopy
(
dataset
.
getColumnMetadata
());
dataset
.
getRowMetadata
=
function
()
{
dataset
.
getRowMetadata
=
function
()
{
return
rowMetadataModel
;
};
dataset
.
getColumnMetadata
=
function
()
{
dataset
.
getColumnMetadata
=
function
()
{
return
columnMetadataModel
;
};
return
dataset
;
};
morpheus
.
DatasetUtil
.
copy
=
function
(
dataset
)
{
morpheus
.
DatasetUtil
.
copy
=
function
(
dataset
)
{
var
newDataset
=
new
morpheus
.
Dataset
({
name
:
dataset
.
getName
(),
rows
:
dataset
.
getRowCount
(),
columns
:
dataset
.
getColumnCount
(),
dataType
:
'
object
'
name
:
dataset
.
getName
(),
rows
:
dataset
.
getRowCount
(),
columns
:
dataset
.
getColumnCount
(),
dataType
:
'
object
'
});
for
(
var
seriesIndex
=
0
,
nseries
=
dataset
.
getSeriesCount
();
seriesIndex
<
nseries
;
seriesIndex
++
)
{
if
(
seriesIndex
>
0
)
{
newDataset
.
addSeries
({
name
:
dataset
.
getName
(
seriesIndex
),
rows
:
dataset
.
getRowCount
(),
columns
:
dataset
.
getColumnCount
(),
dataType
:
'
object
'
name
:
dataset
.
getName
(
seriesIndex
),
rows
:
dataset
.
getRowCount
(),
columns
:
dataset
.
getColumnCount
(),
dataType
:
'
object
'
});
}
for
(
var
i
=
0
,
nrows
=
dataset
.
getRowCount
(),
ncols
=
dataset
...
...
@@ -753,15 +753,15 @@ morpheus.DatasetUtil.copy = function(dataset) {
.
getRowMetadata
());
var
columnMetadataModel
=
morpheus
.
MetadataUtil
.
shallowCopy
(
dataset
.
getColumnMetadata
());
newDataset
.
getRowMetadata
=
function
()
{
newDataset
.
getRowMetadata
=
function
()
{
return
rowMetadataModel
;
};
newDataset
.
getColumnMetadata
=
function
()
{
newDataset
.
getColumnMetadata
=
function
()
{
return
columnMetadataModel
;
};
return
newDataset
;
};
morpheus
.
DatasetUtil
.
toString
=
function
(
dataset
,
value
,
seriesIndex
)
{
morpheus
.
DatasetUtil
.
toString
=
function
(
dataset
,
value
,
seriesIndex
)
{
seriesIndex
=
seriesIndex
||
0
;
var
s
=
[];
for
(
var
i
=
0
,
nrows
=
dataset
.
getRowCount
(),
ncols
=
dataset
...
...
@@ -776,7 +776,7 @@ morpheus.DatasetUtil.toString = function(dataset, value, seriesIndex) {
}
return
s
.
join
(
''
);
};
morpheus
.
DatasetUtil
.
getNonEmptyRows
=
function
(
dataset
)
{
morpheus
.
DatasetUtil
.
getNonEmptyRows
=
function
(
dataset
)
{
var
rowsToKeep
=
[];
for
(
var
i
=
0
,
nrows
=
dataset
.
getRowCount
();
i
<
nrows
;
i
++
)
{
var
keep
=
false
;
...
...
src/tools/chart_tool2.js
View file @
bc8c2428
...
...
@@ -228,6 +228,7 @@ morpheus.ChartTool2 = function (chartOptions) {
morpheus
.
ChartTool2
.
getPlotlyDefaults
=
function
()
{
var
layout
=
{
hovermode
:
'
closest
'
,
autosize
:
false
,
paper_bgcolor
:
'
rgb(255,255,255)
'
,
plot_bgcolor
:
'
rgb(229,229,229)
'
,
...
...
src/ui/heat_map.js
View file @
bc8c2428
...
...
@@ -621,9 +621,14 @@ morpheus.HeatMap.showTool = function (tool, controller, callback) {
}
}
}
var
toolName
=
tool
.
toString
();
var
parenIndex
=
toolName
.
indexOf
(
'
(
'
);
if
(
parenIndex
!==
-
1
)
{
toolName
=
toolName
.
substring
(
0
,
parenIndex
).
trim
();
}
morpheus
.
Util
.
trackEvent
({
eventCategory
:
'
Tool
'
,
eventAction
:
tool
.
toString
()
eventAction
:
tool
Name
});
};
morpheus
.
HeatMap
.
getSpaces
=
function
(
groupByKeys
,
length
,
gapSize
)
{
...
...
@@ -863,6 +868,10 @@ morpheus.HeatMap.prototype = {
project
.
setRowSortKeys
(
sortKeys
,
true
);
this
.
scrollTop
(
0
);
}
morpheus
.
Util
.
trackEvent
({
eventCategory
:
'
Tool
'
,
eventAction
:
isColumns
?
'
sortRowsBasedOnSelection
'
:
'
sortColumnsBasedOnSelection
'
});
},
getToolbarElement
:
function
()
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment