(checkbox, references)
| 167 | } |
| 168 | |
| 169 | function getCheckboxState(checkbox, references) { |
| 170 | var storedRefsSet = getStoredCheckboxRefs(checkbox); |
| 171 | var currentRefsSet = new Set(references.map(r => r[1])); |
| 172 | // Get difference of current - stored |
| 173 | var difference = new Set(currentRefsSet); |
| 174 | for (ref of storedRefsSet) { |
| 175 | difference.delete(ref); |
| 176 | } |
| 177 | if (difference.size == 0) { |
| 178 | // All the current refs are stored |
| 179 | return "checked"; |
| 180 | } else if (difference.size == currentRefsSet.size) { |
| 181 | // None of the current refs are stored |
| 182 | return "unchecked"; |
| 183 | } else { |
| 184 | // Some of the refs are stored |
| 185 | return "indeterminate"; |
| 186 | } |
| 187 | } |
| 188 | |
| 189 | function setBomCheckboxState(checkbox, element, references) { |
| 190 | var state = getCheckboxState(checkbox, references); |
no test coverage detected