|
819 | 819 | } |
820 | 820 |
|
821 | 821 | function setupResponsiveTableCells() { |
| 822 | + document.querySelectorAll('.markdown-section table').forEach(function (table) { |
| 823 | + if (table.parentElement && table.parentElement.classList.contains('table-wrapper')) return; |
| 824 | + |
| 825 | + var wrapper = document.createElement('div'); |
| 826 | + wrapper.className = 'table-wrapper'; |
| 827 | + table.parentNode.insertBefore(wrapper, table); |
| 828 | + wrapper.appendChild(table); |
| 829 | + }); |
| 830 | + |
822 | 831 | document.querySelectorAll('.markdown-section .table-wrapper td').forEach(function (cell) { |
823 | 832 | if (directChild(cell, '.responsive-table-value')) return; |
824 | 833 | var value = document.createElement('div'); |
|
1320 | 1329 | if (breadcrumb) heading.insertAdjacentElement('beforebegin', breadcrumb); |
1321 | 1330 | } |
1322 | 1331 |
|
| 1332 | + function usesDocsifyV5SidebarState(sidebar) { |
| 1333 | + return Boolean( |
| 1334 | + sidebar && |
| 1335 | + window.Docsify && |
| 1336 | + /^5\./.test(String(window.Docsify.version || '')) |
| 1337 | + ); |
| 1338 | + } |
| 1339 | + |
1323 | 1340 | function syncSidebarToggleState() { |
1324 | 1341 | var toggle = document.querySelector('.docs-header > .sidebar-toggle'); |
1325 | 1342 | if (!toggle) return; |
1326 | 1343 | var mobile = window.matchMedia('(max-width: 47.99em)').matches; |
1327 | | - var expanded = mobile |
1328 | | - ? document.body.classList.contains('close') |
1329 | | - : !document.body.classList.contains('close'); |
| 1344 | + var sidebar = document.querySelector('.sidebar'); |
| 1345 | + var usesV5State = usesDocsifyV5SidebarState(sidebar); |
| 1346 | + var expanded; |
| 1347 | + |
| 1348 | + if (usesV5State) { |
| 1349 | + expanded = sidebar.classList.contains('show'); |
| 1350 | + document.body.classList.toggle('close', mobile ? expanded : !expanded); |
| 1351 | + } else { |
| 1352 | + expanded = mobile |
| 1353 | + ? document.body.classList.contains('close') |
| 1354 | + : !document.body.classList.contains('close'); |
| 1355 | + } |
| 1356 | + |
1330 | 1357 | toggle.setAttribute('aria-expanded', String(expanded)); |
1331 | 1358 | toggle.setAttribute('aria-label', uiText(expanded ? 'sidebar_hide' : 'sidebar_show')); |
1332 | 1359 | toggle.title = toggle.getAttribute('aria-label'); |
|
1581 | 1608 | var header = document.querySelector('.docs-header'); |
1582 | 1609 | var brand = document.getElementById('docs-brand'); |
1583 | 1610 | var toggle = document.querySelector('.sidebar-toggle'); |
| 1611 | + var sidebar = document.querySelector('.sidebar'); |
1584 | 1612 | if (!header || !brand || !toggle) return; |
1585 | 1613 |
|
1586 | 1614 | if (toggle.parentElement !== header) header.insertBefore(toggle, brand); |
| 1615 | + if ( |
| 1616 | + usesDocsifyV5SidebarState(sidebar) && |
| 1617 | + window.matchMedia('(max-width: 47.99em)').matches && |
| 1618 | + toggle.dataset.docsV5MobileInitialized !== 'true' |
| 1619 | + ) { |
| 1620 | + toggle.dataset.docsV5MobileInitialized = 'true'; |
| 1621 | + sidebar.classList.remove('show'); |
| 1622 | + document.querySelectorAll('body > *:not(main, script), main > .content').forEach(function (element) { |
| 1623 | + element.removeAttribute('inert'); |
| 1624 | + }); |
| 1625 | + var innerToggle = toggle.querySelector('[aria-controls="__sidebar"]'); |
| 1626 | + if (innerToggle) { |
| 1627 | + innerToggle.setAttribute('aria-expanded', 'false'); |
| 1628 | + innerToggle.setAttribute('aria-label', uiText('sidebar_show')); |
| 1629 | + } |
| 1630 | + } |
1587 | 1631 | if (!toggle.dataset.docsHeaderToggle) { |
1588 | 1632 | toggle.dataset.docsHeaderToggle = 'true'; |
1589 | 1633 | toggle.addEventListener('click', function () { |
|
1594 | 1638 | setupPageOutlinePanel(); |
1595 | 1639 | }); |
1596 | 1640 | } |
| 1641 | + if ( |
| 1642 | + usesDocsifyV5SidebarState(sidebar) && |
| 1643 | + sidebar.dataset.docsSidebarStateBound !== 'true' |
| 1644 | + ) { |
| 1645 | + sidebar.dataset.docsSidebarStateBound = 'true'; |
| 1646 | + sidebar.addEventListener('click', function (event) { |
| 1647 | + if (event.target.closest && event.target.closest('a')) { |
| 1648 | + window.setTimeout(syncSidebarToggleState, 0); |
| 1649 | + } |
| 1650 | + }); |
| 1651 | + } |
1597 | 1652 | syncSidebarToggleState(); |
1598 | 1653 | } |
1599 | 1654 |
|
|
0 commit comments