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
f7f56e17
Commit
f7f56e17
authored
Sep 06, 2014
by
Masayuki Tanaka
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix the boundary of x domain when zooming - #505
parent
aef885af
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
56 additions
and
4 deletions
+56
-4
c3.js
c3.js
+28
-2
c3.min.js
c3.min.js
+0
-0
domain.js
src/domain.js
+17
-0
zoom.js
src/zoom.js
+11
-2
No files found.
c3.js
View file @
f7f56e17
...
...
@@ -1353,6 +1353,7 @@
};
c3_chart_internal_fn
.
updateXDomain
=
function
(
targets
,
withUpdateXDomain
,
withUpdateOrgXDomain
,
domain
)
{
var
$$
=
this
,
config
=
$$
.
config
;
if
(
withUpdateOrgXDomain
)
{
$$
.
x
.
domain
(
domain
?
domain
:
$$
.
d3
.
extent
(
$$
.
getXDomain
(
targets
)));
$$
.
orgXDomain
=
$$
.
x
.
domain
();
...
...
@@ -1364,8 +1365,24 @@
$$
.
x
.
domain
(
domain
?
domain
:
(
!
$$
.
brush
||
$$
.
brush
.
empty
())
?
$$
.
orgXDomain
:
$$
.
brush
.
extent
());
if
(
config
.
zoom_enabled
)
{
$$
.
zoom
.
scale
(
$$
.
x
).
updateScaleExtent
();
}
}
// Trim domain when too big by zoom mousemove event
$$
.
x
.
domain
(
$$
.
trimXDomain
(
$$
.
x
.
orgDomain
()));
return
$$
.
x
.
domain
();
};
c3_chart_internal_fn
.
trimXDomain
=
function
(
domain
)
{
var
$$
=
this
;
if
(
domain
[
0
]
<=
$$
.
orgXDomain
[
0
])
{
domain
[
1
]
+=
$$
.
orgXDomain
[
0
]
-
domain
[
0
];
domain
[
0
]
=
$$
.
orgXDomain
[
0
];
}
if
(
$$
.
orgXDomain
[
1
]
<=
domain
[
1
])
{
domain
[
0
]
-=
domain
[
1
]
-
$$
.
orgXDomain
[
1
];
domain
[
1
]
=
$$
.
orgXDomain
[
1
];
}
return
domain
;
};
c3_chart_internal_fn
.
isX
=
function
(
key
)
{
var
$$
=
this
,
config
=
$$
.
config
;
...
...
@@ -4926,12 +4943,21 @@
};
c3_chart_internal_fn
.
initZoom
=
function
()
{
var
$$
=
this
,
d3
=
$$
.
d3
,
config
=
$$
.
config
;
var
$$
=
this
,
d3
=
$$
.
d3
,
config
=
$$
.
config
,
prevZoomTranslate
,
wheeled
=
false
;
$$
.
zoom
=
d3
.
behavior
.
zoom
()
.
on
(
"zoomstart"
,
function
()
{
$$
.
zoom
.
altDomain
=
d3
.
event
.
sourceEvent
.
altKey
?
$$
.
x
.
orgDomain
()
:
null
;
})
.
on
(
"zoom"
,
function
()
{
$$
.
redrawForZoom
.
call
(
$$
);
});
.
on
(
"zoom"
,
function
()
{
// prevZoomTranslate is needed for the fix of unexpected zoom.translate after remaining zoom
if
(
prevZoomTranslate
&&
wheeled
)
{
$$
.
zoom
.
translate
(
prevZoomTranslate
);
}
$$
.
redrawForZoom
.
call
(
$$
);
prevZoomTranslate
=
$$
.
zoom
.
translate
();
wheeled
=
d3
.
event
.
sourceEvent
.
type
===
'wheel'
;
});
$$
.
zoom
.
scale
=
function
(
scale
)
{
return
config
.
axis_rotated
?
this
.
y
(
scale
)
:
this
.
x
(
scale
);
};
...
...
c3.min.js
View file @
f7f56e17
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/domain.js
View file @
f7f56e17
...
...
@@ -189,6 +189,7 @@ c3_chart_internal_fn.getXDomain = function (targets) {
};
c3_chart_internal_fn
.
updateXDomain
=
function
(
targets
,
withUpdateXDomain
,
withUpdateOrgXDomain
,
domain
)
{
var
$$
=
this
,
config
=
$$
.
config
;
if
(
withUpdateOrgXDomain
)
{
$$
.
x
.
domain
(
domain
?
domain
:
$$
.
d3
.
extent
(
$$
.
getXDomain
(
targets
)));
$$
.
orgXDomain
=
$$
.
x
.
domain
();
...
...
@@ -200,5 +201,21 @@ c3_chart_internal_fn.updateXDomain = function (targets, withUpdateXDomain, withU
$$
.
x
.
domain
(
domain
?
domain
:
(
!
$$
.
brush
||
$$
.
brush
.
empty
())
?
$$
.
orgXDomain
:
$$
.
brush
.
extent
());
if
(
config
.
zoom_enabled
)
{
$$
.
zoom
.
scale
(
$$
.
x
).
updateScaleExtent
();
}
}
// Trim domain when too big by zoom mousemove event
$$
.
x
.
domain
(
$$
.
trimXDomain
(
$$
.
x
.
orgDomain
()));
return
$$
.
x
.
domain
();
};
c3_chart_internal_fn
.
trimXDomain
=
function
(
domain
)
{
var
$$
=
this
;
if
(
domain
[
0
]
<=
$$
.
orgXDomain
[
0
])
{
domain
[
1
]
+=
$$
.
orgXDomain
[
0
]
-
domain
[
0
];
domain
[
0
]
=
$$
.
orgXDomain
[
0
];
}
if
(
$$
.
orgXDomain
[
1
]
<=
domain
[
1
])
{
domain
[
0
]
-=
domain
[
1
]
-
$$
.
orgXDomain
[
1
];
domain
[
1
]
=
$$
.
orgXDomain
[
1
];
}
return
domain
;
};
src/zoom.js
View file @
f7f56e17
c3_chart_internal_fn
.
initZoom
=
function
()
{
var
$$
=
this
,
d3
=
$$
.
d3
,
config
=
$$
.
config
;
var
$$
=
this
,
d3
=
$$
.
d3
,
config
=
$$
.
config
,
prevZoomTranslate
,
wheeled
=
false
;
$$
.
zoom
=
d3
.
behavior
.
zoom
()
.
on
(
"zoomstart"
,
function
()
{
$$
.
zoom
.
altDomain
=
d3
.
event
.
sourceEvent
.
altKey
?
$$
.
x
.
orgDomain
()
:
null
;
})
.
on
(
"zoom"
,
function
()
{
$$
.
redrawForZoom
.
call
(
$$
);
});
.
on
(
"zoom"
,
function
()
{
// prevZoomTranslate is needed for the fix of unexpected zoom.translate after remaining zoom
if
(
prevZoomTranslate
&&
wheeled
)
{
$$
.
zoom
.
translate
(
prevZoomTranslate
);
}
$$
.
redrawForZoom
.
call
(
$$
);
prevZoomTranslate
=
$$
.
zoom
.
translate
();
wheeled
=
d3
.
event
.
sourceEvent
.
type
===
'wheel'
;
});
$$
.
zoom
.
scale
=
function
(
scale
)
{
return
config
.
axis_rotated
?
this
.
y
(
scale
)
:
this
.
x
(
scale
);
};
...
...
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