/opt/canhelp/node_modules/next/dist/esm/client/components
NameSizeModeActions
builtin/-0755rm
errors/-0755rm
http-access-fallback/-0755rm
metadata/-0755rm
router-reducer/-0755rm
segment-cache-impl/-0755rm
styles/-0755rm
app-router-announcer.js27570644editdlrm
app-router-announcer.js.map46600644editdlrm
app-router-headers.js16750644editdlrm
app-router-headers.js.map30140644editdlrm
app-router-instance.js130370644editdlrm
app-router-instance.js.map211310644editdlrm
app-router.js230670644editdlrm
app-router.js.map350120644editdlrm
bailout-to-client-rendering.js12360644editdlrm
bailout-to-client-rendering.js.map17060644editdlrm
bfcache.js45680644editdlrm
bfcache.js.map63940644editdlrm
client-page.js25190644editdlrm
client-page.js.map39190644editdlrm
client-segment.js21060644editdlrm
client-segment.js.map30990644editdlrm
dev-root-http-access-fallback-boundary.js9010644editdlrm
dev-root-http-access-fallback-boundary.js.map12920644editdlrm
error-boundary.js47300644editdlrm
error-boundary.js.map74540644editdlrm
forbidden.js15430644editdlrm
forbidden.js.map19880644editdlrm
handle-isr-error.js7090644editdlrm
handle-isr-error.js.map13160644editdlrm
hooks-server-context.js5340644editdlrm
hooks-server-context.js.map11330644editdlrm
is-next-router-error.js4810644editdlrm
is-next-router-error.js.map9220644editdlrm
layout-router.js264060644editdlrm
layout-router.js.map378500644editdlrm
links.js125330644editdlrm
links.js.map210600644editdlrm
match-segments.js5240644editdlrm
match-segments.js.map10340644editdlrm
nav-failure-handler.js16140644editdlrm
nav-failure-handler.js.map28270644editdlrm
navigation-untracked.js23970644editdlrm
navigation-untracked.js.map33740644editdlrm
navigation.js91180644editdlrm
navigation.js.map128070644editdlrm
navigation.react-server.js19440644editdlrm
navigation.react-server.js.map27680644editdlrm
noop-head.js940644editdlrm
noop-head.js.map2330644editdlrm
not-found.js13560644editdlrm
not-found.js.map17520644editdlrm
promise-queue.js37120644editdlrm
promise-queue.js.map35910644editdlrm
redirect-boundary.js22220644editdlrm
redirect-boundary.js.map39400644editdlrm
redirect-error.js11230644editdlrm
redirect-error.js.map21030644editdlrm
redirect-status-code.js4250644editdlrm
redirect-status-code.js.map3190644editdlrm
redirect.js38220644editdlrm
redirect.js.map58370644editdlrm
render-from-template-context.js4560644editdlrm
render-from-template-context.js.map6670644editdlrm
segment-cache.js60040644editdlrm
segment-cache.js.map88230644editdlrm
static-generation-bailout.js4660644editdlrm
static-generation-bailout.js.map8770644editdlrm
unauthorized.js15700644editdlrm
unauthorized.js.map20200644editdlrm
unrecognized-action-error.js9230644editdlrm
unrecognized-action-error.js.map14780644editdlrm
unresolved-thenable.js2270644editdlrm
unresolved-thenable.js.map4410644editdlrm
unstable-rethrow.browser.js4330644editdlrm
unstable-rethrow.browser.js.map8410644editdlrm
unstable-rethrow.js7120644editdlrm
unstable-rethrow.js.map11120644editdlrm
unstable-rethrow.server.js8540644editdlrm
unstable-rethrow.server.js.map15660644editdlrm
use-action-queue.js19210644editdlrm
use-action-queue.js.map32730644editdlrm
Edit: /opt/canhelp/node_modules/next/dist/esm/client/components/app-router-announcer.js (2757B)
import { useEffect, useRef, useState } from 'react'; import { createPortal } from 'react-dom'; const ANNOUNCER_TYPE = 'next-route-announcer'; const ANNOUNCER_ID = '__next-route-announcer__'; function getAnnouncerNode() { var _existingAnnouncer_shadowRoot; const existingAnnouncer = document.getElementsByName(ANNOUNCER_TYPE)[0]; if (existingAnnouncer == null ? void 0 : (_existingAnnouncer_shadowRoot = existingAnnouncer.shadowRoot) == null ? void 0 : _existingAnnouncer_shadowRoot.childNodes[0]) { return existingAnnouncer.shadowRoot.childNodes[0]; } else { const container = document.createElement(ANNOUNCER_TYPE); container.style.cssText = 'position:absolute'; const announcer = document.createElement('div'); announcer.ariaLive = 'assertive'; announcer.id = ANNOUNCER_ID; announcer.role = 'alert'; announcer.style.cssText = 'position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal'; // Use shadow DOM here to avoid any potential CSS bleed const shadow = container.attachShadow({ mode: 'open' }); shadow.appendChild(announcer); document.body.appendChild(container); return announcer; } } export function AppRouterAnnouncer(param) { let { tree } = param; const [portalNode, setPortalNode] = useState(null); useEffect(()=>{ const announcer = getAnnouncerNode(); setPortalNode(announcer); return ()=>{ const container = document.getElementsByTagName(ANNOUNCER_TYPE)[0]; if (container == null ? void 0 : container.isConnected) { document.body.removeChild(container); } }; }, []); const [routeAnnouncement, setRouteAnnouncement] = useState(''); const previousTitle = useRef(undefined); useEffect(()=>{ let currentTitle = ''; if (document.title) { currentTitle = document.title; } else { const pageHeader = document.querySelector('h1'); if (pageHeader) { currentTitle = pageHeader.innerText || pageHeader.textContent || ''; } } // Only announce the title change, but not for the first load because screen // readers do that automatically. if (previousTitle.current !== undefined && previousTitle.current !== currentTitle) { setRouteAnnouncement(currentTitle); } previousTitle.current = currentTitle; }, [ tree ]); return portalNode ? /*#__PURE__*/ createPortal(routeAnnouncement, portalNode) : null; } //# sourceMappingURL=app-router-announcer.js.map