Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
c3-closed
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
charts
c3-closed
Commits
cfc5446a
Commit
cfc5446a
authored
Oct 18, 2014
by
Masayuki Tanaka
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix millisec date parsing - #607
parent
313ed15d
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
124 additions
and
8 deletions
+124
-8
c3.js
c3.js
+2
-2
c3.min.js
c3.min.js
+0
-0
data-spec.js
spec/data-spec.js
+120
-4
data.js
src/data.js
+2
-2
No files found.
c3.js
View file @
cfc5446a
...
...
@@ -1585,8 +1585,8 @@
};
c3_chart_internal_fn
.
mapTargetsToUniqueXs
=
function
(
targets
)
{
var
$$
=
this
;
var
xs
=
$$
.
d3
.
set
(
$$
.
d3
.
merge
(
targets
.
map
(
function
(
t
)
{
return
t
.
values
.
map
(
function
(
v
)
{
return
v
.
x
;
});
}))).
values
();
return
$$
.
isTimeSeries
()
?
xs
.
map
(
function
(
x
)
{
return
new
Date
(
x
);
})
:
xs
.
map
(
function
(
x
)
{
return
+
x
;
});
var
xs
=
$$
.
d3
.
set
(
$$
.
d3
.
merge
(
targets
.
map
(
function
(
t
)
{
return
t
.
values
.
map
(
function
(
v
)
{
return
+
v
.
x
;
});
}))).
values
();
return
$$
.
isTimeSeries
()
?
xs
.
map
(
function
(
x
)
{
return
new
Date
(
+
x
);
})
:
xs
.
map
(
function
(
x
)
{
return
+
x
;
});
};
c3_chart_internal_fn
.
addHiddenTargetIds
=
function
(
targetIds
)
{
this
.
hiddenTargetIds
=
this
.
hiddenTargetIds
.
concat
(
targetIds
);
...
...
c3.min.js
View file @
cfc5446a
This source diff could not be displayed because it is too large. You can
view the blob
instead.
spec/data-spec.js
View file @
cfc5446a
...
...
@@ -8,9 +8,7 @@ describe('c3 chart data', function () {
var
chart
,
d3
;
beforeEach
(
function
()
{
window
.
initDom
();
chart
=
window
.
c3
.
generate
({
var
args
=
{
data
:
{
columns
:
[
[
'data1'
,
30
,
200
,
100
,
400
,
150
,
250
],
...
...
@@ -21,8 +19,19 @@ describe('c3 chart data', function () {
return
0
;
}
}
});
};
beforeEach
(
function
(
done
)
{
if
(
typeof
chart
===
'undefined'
)
{
window
.
initDom
();
}
chart
=
window
.
c3
.
generate
(
args
);
d3
=
chart
.
internal
.
d3
;
chart
.
internal
.
d3
.
select
(
'.jasmine_html-reporter'
).
style
(
'display'
,
'none'
);
window
.
setTimeout
(
function
()
{
done
();
},
10
);
});
describe
(
'function in data.order'
,
function
()
{
...
...
@@ -30,4 +39,111 @@ describe('c3 chart data', function () {
expect
(
chart
.
internal
.
isOrderAsc
()
||
chart
.
internal
.
isOrderDesc
()).
toBe
(
false
);
});
});
describe
(
'data.xs'
,
function
()
{
describe
(
'normal x'
,
function
()
{
it
(
'should have correct number of xs for each'
,
function
()
{
expect
(
Object
.
keys
(
chart
.
internal
.
data
.
xs
).
length
).
toBe
(
3
);
expect
(
chart
.
internal
.
data
.
xs
.
data1
.
length
).
toBe
(
6
);
expect
(
chart
.
internal
.
data
.
xs
.
data2
.
length
).
toBe
(
6
);
expect
(
chart
.
internal
.
data
.
xs
.
data3
.
length
).
toBe
(
6
);
});
it
(
'should have integer index as x'
,
function
()
{
for
(
var
i
=
0
;
i
<
chart
.
internal
.
data
.
xs
.
data3
.
length
;
i
++
)
{
expect
(
chart
.
internal
.
data
.
xs
.
data1
[
i
]).
toBe
(
i
);
expect
(
chart
.
internal
.
data
.
xs
.
data2
[
i
]).
toBe
(
i
);
expect
(
chart
.
internal
.
data
.
xs
.
data3
[
i
]).
toBe
(
i
);
}
});
});
describe
(
'timeseries x'
,
function
()
{
it
(
'should load timeseries data successfully'
,
function
()
{
args
=
{
data
:
{
x
:
'date'
,
columns
:
[
[
'date'
,
'2013-01-01'
,
'2013-01-02'
,
'2013-01-03'
],
[
'data1'
,
30
,
200
,
100
],
[
'data2'
,
130
,
300
,
200
]
]
},
axis
:
{
x
:
{
type
:
'timeseries'
}
}
};
expect
(
true
).
toBeTruthy
();
});
it
(
'should have correct number of xs'
,
function
()
{
expect
(
Object
.
keys
(
chart
.
internal
.
data
.
xs
).
length
).
toBe
(
2
);
expect
(
chart
.
internal
.
data
.
xs
.
data1
.
length
).
toBe
(
3
);
expect
(
chart
.
internal
.
data
.
xs
.
data2
.
length
).
toBe
(
3
);
});
it
(
'should have Date object as x'
,
function
()
{
var
xs
=
chart
.
internal
.
data
.
xs
;
expect
(
+
xs
.
data1
[
0
]).
toBe
(
+
new
Date
(
2013
,
0
,
1
,
0
,
0
,
0
));
expect
(
+
xs
.
data1
[
1
]).
toBe
(
+
new
Date
(
2013
,
0
,
2
,
0
,
0
,
0
));
expect
(
+
xs
.
data1
[
2
]).
toBe
(
+
new
Date
(
2013
,
0
,
3
,
0
,
0
,
0
));
expect
(
+
xs
.
data2
[
0
]).
toBe
(
+
new
Date
(
2013
,
0
,
1
,
0
,
0
,
0
));
expect
(
+
xs
.
data2
[
1
]).
toBe
(
+
new
Date
(
2013
,
0
,
2
,
0
,
0
,
0
));
expect
(
+
xs
.
data2
[
2
]).
toBe
(
+
new
Date
(
2013
,
0
,
3
,
0
,
0
,
0
));
});
});
describe
(
'milliseconds timeseries x'
,
function
()
{
it
(
'should load timeseries data successfully'
,
function
()
{
args
=
{
data
:
{
x
:
'date'
,
xFormat
:
'%Y-%m-%d %H:%M:%S.%L'
,
columns
:
[
[
'date'
,
"2014-05-20 17:25:00.123"
,
"2014-05-20 17:30:00.345"
],
[
'data1'
,
30
,
200
],
[
'data2'
,
130
,
300
]
]
},
axis
:
{
x
:
{
type
:
'timeseries'
,
tick
:
{
format
:
'%Y-%m-%d %H:%M:%S.%L'
}
}
}
};
expect
(
true
).
toBeTruthy
();
});
it
(
'should have correct number of xs'
,
function
()
{
expect
(
Object
.
keys
(
chart
.
internal
.
data
.
xs
).
length
).
toBe
(
2
);
expect
(
chart
.
internal
.
data
.
xs
.
data1
.
length
).
toBe
(
2
);
expect
(
chart
.
internal
.
data
.
xs
.
data2
.
length
).
toBe
(
2
);
});
it
(
'should have Date object as x'
,
function
()
{
var
xs
=
chart
.
internal
.
data
.
xs
;
expect
(
+
xs
.
data1
[
0
]).
toBe
(
+
new
Date
(
2014
,
4
,
20
,
17
,
25
,
0
,
123
));
expect
(
+
xs
.
data1
[
1
]).
toBe
(
+
new
Date
(
2014
,
4
,
20
,
17
,
30
,
0
,
345
));
expect
(
+
xs
.
data2
[
0
]).
toBe
(
+
new
Date
(
2014
,
4
,
20
,
17
,
25
,
0
,
123
));
expect
(
+
xs
.
data2
[
1
]).
toBe
(
+
new
Date
(
2014
,
4
,
20
,
17
,
30
,
0
,
345
));
});
it
(
'should have milliseconds tick format'
,
function
()
{
var
expected
=
[
"2014-05-20 17:25:00.123"
,
"2014-05-20 17:30:00.345"
];
chart
.
internal
.
main
.
selectAll
(
'.c3-axis-x g.tick text'
).
each
(
function
(
d
,
i
)
{
expect
(
d3
.
select
(
this
).
text
()).
toBe
(
expected
[
i
]);
});
});
});
});
});
src/data.js
View file @
cfc5446a
...
...
@@ -161,8 +161,8 @@ c3_chart_internal_fn.filterTargetsToShow = function (targets) {
};
c3_chart_internal_fn
.
mapTargetsToUniqueXs
=
function
(
targets
)
{
var
$$
=
this
;
var
xs
=
$$
.
d3
.
set
(
$$
.
d3
.
merge
(
targets
.
map
(
function
(
t
)
{
return
t
.
values
.
map
(
function
(
v
)
{
return
v
.
x
;
});
}))).
values
();
return
$$
.
isTimeSeries
()
?
xs
.
map
(
function
(
x
)
{
return
new
Date
(
x
);
})
:
xs
.
map
(
function
(
x
)
{
return
+
x
;
});
var
xs
=
$$
.
d3
.
set
(
$$
.
d3
.
merge
(
targets
.
map
(
function
(
t
)
{
return
t
.
values
.
map
(
function
(
v
)
{
return
+
v
.
x
;
});
}))).
values
();
return
$$
.
isTimeSeries
()
?
xs
.
map
(
function
(
x
)
{
return
new
Date
(
+
x
);
})
:
xs
.
map
(
function
(
x
)
{
return
+
x
;
});
};
c3_chart_internal_fn
.
addHiddenTargetIds
=
function
(
targetIds
)
{
this
.
hiddenTargetIds
=
this
.
hiddenTargetIds
.
concat
(
targetIds
);
...
...
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