微件:Extract collapsed navbox list

<script>
// Get target elements.
const elements = document.getElementsByClassName('collapsed-navbox-list-base');
const lists = document.getElementsByClassName('collapsed-navbox-list');
const extracters = document.getElementsByClassName('collapsed-navbox-list-extracter');

// Will not be processed when 'Collapsed navbox list' does not present on the page.
if (elements.length !== 0) {
    function extract(element, index, array) {
        // Use computed style to reading common css.
    	let styles = getComputedStyle(element);
    	// Move the details into 'collapsed-navbox-list-base'.
        if (styles.display !== 'hidden' && styles.display !== 'none' ) {
            const list = lists[index];
            const extracter = extracters[index];
            const cloned = extracter.cloneNode(true);
            list.appendChild(cloned);
            extracter.remove();
            // Parent node of 'collapsed-navbox-list-base' should be 'unprocessed-collapsed-navbox-list'.
            element.parentNode.removeAttribute('class');
        } else {
            // Remove the 'collapsed-navbox-list-base' because the details will display on extacter.
        	element.remove();
        }
    }
    
	Array.from(elements).forEach(extract);
}
</script>