import conditionForMute from './_condtionForMute'; /** * Fiters nodes according to excemptionFilter in the chart and {@link Core#demute demutes} the nodes. If excemptionFilter is no specified, demutes all nodes. * @memberOf Core# * @example * core.demuteNodes('Sales'); // nodes whose key is not 'Sales' are demuted * core.demuteNodes(d => d.key !== 'Sales') // nodes whose key is not 'Sales' are demuted * @param {string|function} [excemptionFilter] If the fiter is a string, select nodes which has different key with the filter. If the a function, it is evaluated for each selected element, in order, being passed the current datum (d), the current index (i), and the current group (nodes), with this as the current DOM element (nodes[i]). * @return {Core} */ function demuteNodes (excemptionFilter) { let nodes; if (!arguments.length) { //모두 nodes = this.filterNodes().classed('mute', false).call(this.demute); } else { nodes = this.filterNodes(conditionForMute(excemptionFilter)); if (nodes.size() > 0) { nodes.classed('mute', false).call(this.demute); } } return this; } export default demuteNodes;