( container, tagName: string, className?: string | string[] )
| 117 | * @return selection of the element, or an empty selection |
| 118 | */ |
| 119 | export function selectChild( |
| 120 | container, |
| 121 | tagName: string, |
| 122 | className?: string | string[] |
| 123 | ): d3.Selection<any, any, any, any> { |
| 124 | let children = container.node().childNodes; |
| 125 | for (let i = 0; i < children.length; i++) { |
| 126 | let child = children[i]; |
| 127 | if (child.tagName === tagName) { |
| 128 | if (className instanceof Array) { |
| 129 | let hasAllClasses = true; |
| 130 | for (let j = 0; j < className.length; j++) { |
| 131 | hasAllClasses = |
| 132 | hasAllClasses && child.classList.contains(className[j]); |
| 133 | } |
| 134 | if (hasAllClasses) { |
| 135 | return d3.select(child); |
| 136 | } |
| 137 | } else if (!className || child.classList.contains(className)) { |
| 138 | return d3.select(child); |
| 139 | } |
| 140 | } |
| 141 | } |
| 142 | return d3.select(null); |
| 143 | } |
| 144 | |
| 145 | /** |
| 146 | * Given a container d3 selection, select a child svg element of a given tag |
no test coverage detected
searching dependent graphs…