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
74bd5369
Commit
74bd5369
authored
Dec 01, 2014
by
Masayuki Tanaka
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix legend state when revert called - #782
parent
1333c1e9
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
385 additions
and
16 deletions
+385
-16
c3.js
c3.js
+7
-8
c3.min.js
c3.min.js
+0
-0
api.focus-spec.js
spec/api.focus-spec.js
+371
-0
api.focus.js
src/api.focus.js
+1
-1
class.js
src/class.js
+1
-1
legend.js
src/legend.js
+5
-6
No files found.
c3.js
View file @
74bd5369
...
@@ -3732,12 +3732,11 @@
...
@@ -3732,12 +3732,11 @@
var
$$
=
this
;
var
$$
=
this
;
targetIds
=
$$
.
mapToTargetIds
(
targetIds
);
targetIds
=
$$
.
mapToTargetIds
(
targetIds
);
$$
.
legend
.
selectAll
(
'.'
+
CLASS
.
legendItem
)
$$
.
legend
.
selectAll
(
'.'
+
CLASS
.
legendItem
)
.
classed
(
CLASS
.
legendItemFocused
,
function
(
id
)
{
.
filter
(
function
(
id
)
{
return
targetIds
.
indexOf
(
id
)
>=
0
;
})
return
targetIds
.
indexOf
(
id
)
>=
0
&&
focus
;
.
classed
(
CLASS
.
legendItemFocused
,
focus
)
})
.
transition
().
duration
(
100
)
.
transition
().
duration
(
100
)
.
style
(
'opacity'
,
function
()
{
.
style
(
'opacity'
,
function
(
id
)
{
var
opacity
=
focus
?
$$
.
opacityForLegend
:
$$
.
opacityForUnfocusedLegend
;
var
opacity
=
targetIds
.
indexOf
(
id
)
>=
0
&&
focus
?
$$
.
opacityForLegend
:
$$
.
opacityForUnfocusedLegend
;
return
opacity
.
call
(
$$
,
$$
.
d3
.
select
(
this
));
return
opacity
.
call
(
$$
,
$$
.
d3
.
select
(
this
));
});
});
};
};
...
@@ -5592,7 +5591,7 @@
...
@@ -5592,7 +5591,7 @@
};
};
c3_chart_internal_fn
.
selectorLegends
=
function
(
ids
)
{
c3_chart_internal_fn
.
selectorLegends
=
function
(
ids
)
{
var
$$
=
this
;
var
$$
=
this
;
return
ids
.
length
?
ids
.
map
(
function
(
id
)
{
return
$$
.
selectorLegend
(
id
);
})
:
null
;
return
ids
&&
ids
.
length
?
ids
.
map
(
function
(
id
)
{
return
$$
.
selectorLegend
(
id
);
})
:
null
;
};
};
var
isValue
=
c3_chart_internal_fn
.
isValue
=
function
(
v
)
{
var
isValue
=
c3_chart_internal_fn
.
isValue
=
function
(
v
)
{
...
@@ -5691,7 +5690,7 @@
...
@@ -5691,7 +5690,7 @@
if
(
$$
.
hasArcType
())
{
if
(
$$
.
hasArcType
())
{
$$
.
unexpandArc
(
targetIds
);
$$
.
unexpandArc
(
targetIds
);
}
}
$$
.
revertLegend
(
);
$$
.
showLegend
(
targetIds
);
$$
.
focusedTargetIds
=
[];
$$
.
focusedTargetIds
=
[];
$$
.
defocusedTargetIds
=
[];
$$
.
defocusedTargetIds
=
[];
...
...
c3.min.js
View file @
74bd5369
This source diff could not be displayed because it is too large. You can
view the blob
instead.
spec/api.focus-spec.js
0 → 100644
View file @
74bd5369
var
describe
=
window
.
describe
,
expect
=
window
.
expect
,
it
=
window
.
it
,
beforeEach
=
window
.
beforeEach
;
describe
(
'c3 api load'
,
function
()
{
'use strict'
;
var
chart
,
d3
;
var
args
=
{
data
:
{
columns
:
[
[
'data1'
,
30
,
200
,
100
,
400
],
[
'data2'
,
1000
,
800
,
500
,
2000
],
[
'data3'
,
5000
,
2000
,
1000
,
4000
]
]
}
};
beforeEach
(
function
(
done
)
{
chart
=
window
.
initChart
(
chart
,
args
,
done
);
d3
=
chart
.
internal
.
d3
;
});
describe
(
'focus'
,
function
()
{
it
(
'should focus all targets'
,
function
(
done
)
{
var
main
=
chart
.
internal
.
main
,
legend
=
chart
.
internal
.
legend
;
chart
.
focus
();
setTimeout
(
function
()
{
var
targets
=
main
.
select
(
'.c3-chart-line.c3-target'
),
legendItems
=
legend
.
select
(
'.c3-legend-item'
);
targets
.
each
(
function
()
{
var
line
=
d3
.
select
(
this
);
expect
(
line
.
classed
(
'c3-focused'
)).
toBeTruthy
();
});
legendItems
.
each
(
function
()
{
var
item
=
d3
.
select
(
this
);
expect
(
item
.
classed
(
'c3-legend-item-focused'
)).
toBeTruthy
();
});
done
();
},
500
);
});
it
(
'should focus one target'
,
function
(
done
)
{
var
main
=
chart
.
internal
.
main
,
legend
=
chart
.
internal
.
legend
;
chart
.
focus
(
'data2'
);
setTimeout
(
function
()
{
var
targets
=
{
data1
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data1'
),
data2
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data2'
),
data3
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data3'
)
},
legendItems
=
{
data1
:
legend
.
select
(
'.c3-legend-item-data1'
),
data2
:
legend
.
select
(
'.c3-legend-item-data2'
),
data3
:
legend
.
select
(
'.c3-legend-item-data3'
)
};
expect
(
targets
.
data1
.
classed
(
'c3-focused'
)).
toBeFalsy
();
expect
(
targets
.
data2
.
classed
(
'c3-focused'
)).
toBeTruthy
();
expect
(
targets
.
data3
.
classed
(
'c3-focused'
)).
toBeFalsy
();
expect
(
legendItems
.
data1
.
classed
(
'c3-legend-item-focused'
)).
toBeFalsy
();
expect
(
legendItems
.
data2
.
classed
(
'c3-legend-item-focused'
)).
toBeTruthy
();
expect
(
legendItems
.
data3
.
classed
(
'c3-legend-item-focused'
)).
toBeFalsy
();
done
();
},
500
);
});
it
(
'should focus multiple targets'
,
function
(
done
)
{
var
main
=
chart
.
internal
.
main
,
legend
=
chart
.
internal
.
legend
;
chart
.
focus
([
'data1'
,
'data2'
]);
setTimeout
(
function
()
{
var
targets
=
{
data1
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data1'
),
data2
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data2'
),
data3
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data3'
)
},
legendItems
=
{
data1
:
legend
.
select
(
'.c3-legend-item-data1'
),
data2
:
legend
.
select
(
'.c3-legend-item-data2'
),
data3
:
legend
.
select
(
'.c3-legend-item-data3'
)
};
expect
(
targets
.
data1
.
classed
(
'c3-focused'
)).
toBeTruthy
();
expect
(
targets
.
data2
.
classed
(
'c3-focused'
)).
toBeTruthy
();
expect
(
targets
.
data3
.
classed
(
'c3-focused'
)).
toBeFalsy
();
expect
(
legendItems
.
data1
.
classed
(
'c3-legend-item-focused'
)).
toBeTruthy
();
expect
(
legendItems
.
data2
.
classed
(
'c3-legend-item-focused'
)).
toBeTruthy
();
expect
(
legendItems
.
data3
.
classed
(
'c3-legend-item-focused'
)).
toBeFalsy
();
done
();
},
500
);
});
});
describe
(
'defocus'
,
function
()
{
it
(
'should defocus all targets'
,
function
(
done
)
{
var
main
=
chart
.
internal
.
main
,
legend
=
chart
.
internal
.
legend
;
chart
.
defocus
();
setTimeout
(
function
()
{
var
targets
=
main
.
select
(
'.c3-chart-line.c3-target'
),
legendItems
=
legend
.
select
(
'.c3-legend-item'
);
targets
.
each
(
function
()
{
var
line
=
d3
.
select
(
this
);
expect
(
line
.
classed
(
'c3-focused'
)).
toBeFalsy
();
expect
(
line
.
classed
(
'c3-defocused'
)).
toBeTruthy
();
});
legendItems
.
each
(
function
()
{
var
item
=
d3
.
select
(
this
);
expect
(
item
.
classed
(
'c3-legend-item-focused'
)).
toBeFalsy
();
expect
(
+
item
.
style
(
'opacity'
)).
toBeCloseTo
(
0.3
);
});
done
();
},
500
);
});
it
(
'should defocus one target'
,
function
(
done
)
{
var
main
=
chart
.
internal
.
main
,
legend
=
chart
.
internal
.
legend
;
chart
.
defocus
(
'data2'
);
setTimeout
(
function
()
{
var
targets
=
{
data1
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data1'
),
data2
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data2'
),
data3
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data3'
)
},
legendItems
=
{
data1
:
legend
.
select
(
'.c3-legend-item-data1'
),
data2
:
legend
.
select
(
'.c3-legend-item-data2'
),
data3
:
legend
.
select
(
'.c3-legend-item-data3'
)
};
expect
(
targets
.
data1
.
classed
(
'c3-defocused'
)).
toBeFalsy
();
expect
(
targets
.
data2
.
classed
(
'c3-defocused'
)).
toBeTruthy
();
expect
(
targets
.
data3
.
classed
(
'c3-defocused'
)).
toBeFalsy
();
expect
(
legendItems
.
data1
.
classed
(
'c3-legend-item-focused'
)).
toBeFalsy
();
expect
(
legendItems
.
data2
.
classed
(
'c3-legend-item-focused'
)).
toBeFalsy
();
expect
(
legendItems
.
data3
.
classed
(
'c3-legend-item-focused'
)).
toBeFalsy
();
expect
(
+
legendItems
.
data1
.
style
(
'opacity'
)).
toBeCloseTo
(
1
);
expect
(
+
legendItems
.
data2
.
style
(
'opacity'
)).
toBeCloseTo
(
0.3
);
expect
(
+
legendItems
.
data3
.
style
(
'opacity'
)).
toBeCloseTo
(
1
);
done
();
},
500
);
});
it
(
'should defocus multiple targets'
,
function
(
done
)
{
var
main
=
chart
.
internal
.
main
,
legend
=
chart
.
internal
.
legend
;
chart
.
defocus
([
'data1'
,
'data2'
]);
setTimeout
(
function
()
{
var
targets
=
{
data1
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data1'
),
data2
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data2'
),
data3
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data3'
)
},
legendItems
=
{
data1
:
legend
.
select
(
'.c3-legend-item-data1'
),
data2
:
legend
.
select
(
'.c3-legend-item-data2'
),
data3
:
legend
.
select
(
'.c3-legend-item-data3'
)
};
expect
(
targets
.
data1
.
classed
(
'c3-defocused'
)).
toBeTruthy
();
expect
(
targets
.
data2
.
classed
(
'c3-defocused'
)).
toBeTruthy
();
expect
(
targets
.
data3
.
classed
(
'c3-defocused'
)).
toBeFalsy
();
expect
(
legendItems
.
data1
.
classed
(
'c3-legend-item-focused'
)).
toBeFalsy
();
expect
(
legendItems
.
data2
.
classed
(
'c3-legend-item-focused'
)).
toBeFalsy
();
expect
(
legendItems
.
data3
.
classed
(
'c3-legend-item-focused'
)).
toBeFalsy
();
expect
(
+
legendItems
.
data1
.
style
(
'opacity'
)).
toBeCloseTo
(
0.3
);
expect
(
+
legendItems
.
data2
.
style
(
'opacity'
)).
toBeCloseTo
(
0.3
);
expect
(
+
legendItems
.
data3
.
style
(
'opacity'
)).
toBeCloseTo
(
1
);
done
();
},
500
);
});
it
(
'should defocus multiple targets after focused'
,
function
(
done
)
{
var
main
=
chart
.
internal
.
main
,
legend
=
chart
.
internal
.
legend
;
chart
.
focus
();
setTimeout
(
function
()
{
chart
.
defocus
([
'data1'
,
'data2'
]);
setTimeout
(
function
()
{
var
targets
=
{
data1
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data1'
),
data2
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data2'
),
data3
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data3'
)
},
legendItems
=
{
data1
:
legend
.
select
(
'.c3-legend-item-data1'
),
data2
:
legend
.
select
(
'.c3-legend-item-data2'
),
data3
:
legend
.
select
(
'.c3-legend-item-data3'
)
};
expect
(
targets
.
data1
.
classed
(
'c3-defocused'
)).
toBeTruthy
();
expect
(
targets
.
data2
.
classed
(
'c3-defocused'
)).
toBeTruthy
();
expect
(
targets
.
data3
.
classed
(
'c3-defocused'
)).
toBeFalsy
();
expect
(
legendItems
.
data1
.
classed
(
'c3-legend-item-focused'
)).
toBeFalsy
();
expect
(
legendItems
.
data2
.
classed
(
'c3-legend-item-focused'
)).
toBeFalsy
();
expect
(
legendItems
.
data3
.
classed
(
'c3-legend-item-focused'
)).
toBeTruthy
();
expect
(
+
legendItems
.
data1
.
style
(
'opacity'
)).
toBeCloseTo
(
0.3
);
expect
(
+
legendItems
.
data2
.
style
(
'opacity'
)).
toBeCloseTo
(
0.3
);
expect
(
+
legendItems
.
data3
.
style
(
'opacity'
)).
toBeCloseTo
(
1
);
done
();
},
500
);
});
},
500
);
});
describe
(
'revert'
,
function
()
{
it
(
'should revert all targets after focus'
,
function
(
done
)
{
var
main
=
chart
.
internal
.
main
,
legend
=
chart
.
internal
.
legend
;
chart
.
focus
();
setTimeout
(
function
()
{
chart
.
revert
();
setTimeout
(
function
()
{
var
targets
=
main
.
select
(
'.c3-chart-line.c3-target'
),
legendItems
=
legend
.
select
(
'.c3-legend-item'
);
targets
.
each
(
function
()
{
var
line
=
d3
.
select
(
this
);
expect
(
line
.
classed
(
'c3-focused'
)).
toBeFalsy
();
});
legendItems
.
each
(
function
()
{
var
item
=
d3
.
select
(
this
);
expect
(
+
item
.
style
(
'opacity'
)).
toBeCloseTo
(
1
);
});
done
();
},
500
);
},
500
);
});
it
(
'should revert all targets after defocus'
,
function
(
done
)
{
var
main
=
chart
.
internal
.
main
,
legend
=
chart
.
internal
.
legend
;
chart
.
defocus
();
setTimeout
(
function
()
{
chart
.
revert
();
setTimeout
(
function
()
{
var
targets
=
main
.
select
(
'.c3-chart-line.c3-target'
),
legendItems
=
legend
.
select
(
'.c3-legend-item'
);
targets
.
each
(
function
()
{
var
line
=
d3
.
select
(
this
);
expect
(
line
.
classed
(
'c3-defocused'
)).
toBeFalsy
();
});
legendItems
.
each
(
function
()
{
var
item
=
d3
.
select
(
this
);
expect
(
+
item
.
style
(
'opacity'
)).
toBeCloseTo
(
1
);
});
done
();
},
500
);
},
500
);
});
it
(
'should revert one target after focus'
,
function
(
done
)
{
var
main
=
chart
.
internal
.
main
,
legend
=
chart
.
internal
.
legend
;
chart
.
focus
();
setTimeout
(
function
()
{
chart
.
revert
(
'data2'
);
setTimeout
(
function
()
{
var
targets
=
{
data1
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data1'
),
data2
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data2'
),
data3
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data3'
)
},
legendItems
=
{
data1
:
legend
.
select
(
'.c3-legend-item-data1'
),
data2
:
legend
.
select
(
'.c3-legend-item-data2'
),
data3
:
legend
.
select
(
'.c3-legend-item-data3'
)
};
expect
(
targets
.
data1
.
classed
(
'c3-focused'
)).
toBeTruthy
();
expect
(
targets
.
data2
.
classed
(
'c3-focused'
)).
toBeFalsy
();
expect
(
targets
.
data3
.
classed
(
'c3-focused'
)).
toBeTruthy
();
expect
(
+
legendItems
.
data1
.
style
(
'opacity'
)).
toBeCloseTo
(
1
);
expect
(
+
legendItems
.
data2
.
style
(
'opacity'
)).
toBeCloseTo
(
1
);
expect
(
+
legendItems
.
data3
.
style
(
'opacity'
)).
toBeCloseTo
(
1
);
done
();
},
500
);
},
500
);
});
it
(
'should revert one target after defocus'
,
function
(
done
)
{
var
main
=
chart
.
internal
.
main
,
legend
=
chart
.
internal
.
legend
;
chart
.
defocus
();
setTimeout
(
function
()
{
chart
.
revert
(
'data2'
);
setTimeout
(
function
()
{
var
targets
=
{
data1
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data1'
),
data2
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data2'
),
data3
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data3'
)
},
legendItems
=
{
data1
:
legend
.
select
(
'.c3-legend-item-data1'
),
data2
:
legend
.
select
(
'.c3-legend-item-data2'
),
data3
:
legend
.
select
(
'.c3-legend-item-data3'
)
};
expect
(
targets
.
data1
.
classed
(
'c3-defocused'
)).
toBeTruthy
();
expect
(
targets
.
data2
.
classed
(
'c3-defocused'
)).
toBeFalsy
();
expect
(
targets
.
data3
.
classed
(
'c3-defocused'
)).
toBeTruthy
();
expect
(
+
legendItems
.
data1
.
style
(
'opacity'
)).
toBeCloseTo
(
0.3
);
expect
(
+
legendItems
.
data2
.
style
(
'opacity'
)).
toBeCloseTo
(
1
);
expect
(
+
legendItems
.
data3
.
style
(
'opacity'
)).
toBeCloseTo
(
0.3
);
done
();
},
500
);
},
500
);
});
it
(
'should focus multiple targets after focus'
,
function
(
done
)
{
var
main
=
chart
.
internal
.
main
,
legend
=
chart
.
internal
.
legend
;
chart
.
focus
();
setTimeout
(
function
()
{
chart
.
revert
([
'data1'
,
'data2'
]);
setTimeout
(
function
()
{
var
targets
=
{
data1
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data1'
),
data2
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data2'
),
data3
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data3'
)
},
legendItems
=
{
data1
:
legend
.
select
(
'.c3-legend-item-data1'
),
data2
:
legend
.
select
(
'.c3-legend-item-data2'
),
data3
:
legend
.
select
(
'.c3-legend-item-data3'
)
};
expect
(
targets
.
data1
.
classed
(
'c3-focused'
)).
toBeFalsy
();
expect
(
targets
.
data2
.
classed
(
'c3-focused'
)).
toBeFalsy
();
expect
(
targets
.
data3
.
classed
(
'c3-focused'
)).
toBeTruthy
();
expect
(
+
legendItems
.
data1
.
style
(
'opacity'
)).
toBeCloseTo
(
1
);
expect
(
+
legendItems
.
data2
.
style
(
'opacity'
)).
toBeCloseTo
(
1
);
expect
(
+
legendItems
.
data3
.
style
(
'opacity'
)).
toBeCloseTo
(
1
);
done
();
},
500
);
},
500
);
});
it
(
'should focus multiple targets after defocus'
,
function
(
done
)
{
var
main
=
chart
.
internal
.
main
,
legend
=
chart
.
internal
.
legend
;
chart
.
defocus
();
setTimeout
(
function
()
{
chart
.
revert
([
'data1'
,
'data2'
]);
setTimeout
(
function
()
{
var
targets
=
{
data1
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data1'
),
data2
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data2'
),
data3
:
main
.
select
(
'.c3-chart-line.c3-target.c3-target-data3'
)
},
legendItems
=
{
data1
:
legend
.
select
(
'.c3-legend-item-data1'
),
data2
:
legend
.
select
(
'.c3-legend-item-data2'
),
data3
:
legend
.
select
(
'.c3-legend-item-data3'
)
};
expect
(
targets
.
data1
.
classed
(
'c3-defocused'
)).
toBeFalsy
();
expect
(
targets
.
data2
.
classed
(
'c3-defocused'
)).
toBeFalsy
();
expect
(
targets
.
data3
.
classed
(
'c3-defocused'
)).
toBeTruthy
();
expect
(
+
legendItems
.
data1
.
style
(
'opacity'
)).
toBeCloseTo
(
1
);
expect
(
+
legendItems
.
data2
.
style
(
'opacity'
)).
toBeCloseTo
(
1
);
expect
(
+
legendItems
.
data3
.
style
(
'opacity'
)).
toBeCloseTo
(
0.3
);
done
();
},
500
);
},
500
);
});
});
});
src/api.focus.js
View file @
74bd5369
...
@@ -47,7 +47,7 @@ c3_chart_fn.revert = function (targetIds) {
...
@@ -47,7 +47,7 @@ c3_chart_fn.revert = function (targetIds) {
if
(
$$
.
hasArcType
())
{
if
(
$$
.
hasArcType
())
{
$$
.
unexpandArc
(
targetIds
);
$$
.
unexpandArc
(
targetIds
);
}
}
$$
.
revertLegend
(
);
$$
.
showLegend
(
targetIds
);
$$
.
focusedTargetIds
=
[];
$$
.
focusedTargetIds
=
[];
$$
.
defocusedTargetIds
=
[];
$$
.
defocusedTargetIds
=
[];
...
...
src/class.js
View file @
74bd5369
...
@@ -170,5 +170,5 @@ c3_chart_internal_fn.selectorLegend = function (id) {
...
@@ -170,5 +170,5 @@ c3_chart_internal_fn.selectorLegend = function (id) {
};
};
c3_chart_internal_fn
.
selectorLegends
=
function
(
ids
)
{
c3_chart_internal_fn
.
selectorLegends
=
function
(
ids
)
{
var
$$
=
this
;
var
$$
=
this
;
return
ids
.
length
?
ids
.
map
(
function
(
id
)
{
return
$$
.
selectorLegend
(
id
);
})
:
null
;
return
ids
&&
ids
.
length
?
ids
.
map
(
function
(
id
)
{
return
$$
.
selectorLegend
(
id
);
})
:
null
;
};
};
src/legend.js
View file @
74bd5369
...
@@ -66,12 +66,11 @@ c3_chart_internal_fn.toggleFocusLegend = function (targetIds, focus) {
...
@@ -66,12 +66,11 @@ c3_chart_internal_fn.toggleFocusLegend = function (targetIds, focus) {
var
$$
=
this
;
var
$$
=
this
;
targetIds
=
$$
.
mapToTargetIds
(
targetIds
);
targetIds
=
$$
.
mapToTargetIds
(
targetIds
);
$$
.
legend
.
selectAll
(
'.'
+
CLASS
.
legendItem
)
$$
.
legend
.
selectAll
(
'.'
+
CLASS
.
legendItem
)
.
classed
(
CLASS
.
legendItemFocused
,
function
(
id
)
{
.
filter
(
function
(
id
)
{
return
targetIds
.
indexOf
(
id
)
>=
0
;
})
return
targetIds
.
indexOf
(
id
)
>=
0
&&
focus
;
.
classed
(
CLASS
.
legendItemFocused
,
focus
)
})
.
transition
().
duration
(
100
)
.
transition
().
duration
(
100
)
.
style
(
'opacity'
,
function
()
{
.
style
(
'opacity'
,
function
(
id
)
{
var
opacity
=
focus
?
$$
.
opacityForLegend
:
$$
.
opacityForUnfocusedLegend
;
var
opacity
=
targetIds
.
indexOf
(
id
)
>=
0
&&
focus
?
$$
.
opacityForLegend
:
$$
.
opacityForUnfocusedLegend
;
return
opacity
.
call
(
$$
,
$$
.
d3
.
select
(
this
));
return
opacity
.
call
(
$$
,
$$
.
d3
.
select
(
this
));
});
});
};
};
...
...
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