(folder, hasChildren)
| 1143 | Toggle (chevron) helper |
| 1144 | ----------------------*/ |
| 1145 | function updateToggleForOption(folder, hasChildren) { |
| 1146 | const opt = document.querySelector(`.folder-option[data-folder="${CSS.escape(folder)}"]`); |
| 1147 | if (!opt) return; |
| 1148 | const row = opt.closest('.folder-row'); |
| 1149 | if (!row) return; |
| 1150 | |
| 1151 | let btn = row.querySelector('button.folder-toggle'); |
| 1152 | let spacer = row.querySelector('.folder-spacer'); |
| 1153 | |
| 1154 | if (hasChildren) { |
| 1155 | if (!btn) { |
| 1156 | btn = document.createElement('button'); |
| 1157 | btn.type = 'button'; |
| 1158 | btn.className = 'folder-toggle'; |
| 1159 | btn.setAttribute('data-folder', folder); |
| 1160 | btn.setAttribute('aria-label', 'Expand'); |
| 1161 | if (spacer) spacer.replaceWith(btn); |
| 1162 | else row.insertBefore(btn, opt); |
| 1163 | } |
| 1164 | } else { |
| 1165 | if (btn) { |
| 1166 | const newSpacer = document.createElement('span'); |
| 1167 | newSpacer.className = 'folder-spacer'; |
| 1168 | newSpacer.setAttribute('aria-hidden', 'true'); |
| 1169 | btn.replaceWith(newSpacer); |
| 1170 | } else if (!spacer) { |
| 1171 | spacer = document.createElement('span'); |
| 1172 | spacer.className = 'folder-spacer'; |
| 1173 | spacer.setAttribute('aria-hidden', 'true'); |
| 1174 | row.insertBefore(spacer, opt); |
| 1175 | } |
| 1176 | } |
| 1177 | } |
| 1178 | |
| 1179 | /* ---------------------- |
| 1180 | Colors |
no outgoing calls
no test coverage detected