@wordpress/interactivity-router 2.8.2 → 2.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.js CHANGED
@@ -193,8 +193,7 @@ const {
193
193
  url: window.location.href,
194
194
  navigation: {
195
195
  hasStarted: false,
196
- hasFinished: false,
197
- message: ''
196
+ hasFinished: false
198
197
  }
199
198
  },
200
199
  actions: {
@@ -345,28 +344,26 @@ function a11ySpeak(messageKey) {
345
344
  } catch {}
346
345
  } else {
347
346
  // Fallback to localized strings from Interactivity API state.
347
+ // @todo This block is for Core < 6.7.0. Remove when support is dropped.
348
+
349
+ // @ts-expect-error
348
350
  if (state.navigation.texts?.loading) {
351
+ // @ts-expect-error
349
352
  navigationTexts.loading = state.navigation.texts.loading;
350
353
  }
354
+ // @ts-expect-error
351
355
  if (state.navigation.texts?.loaded) {
356
+ // @ts-expect-error
352
357
  navigationTexts.loaded = state.navigation.texts.loaded;
353
358
  }
354
359
  }
355
360
  }
356
361
  const message = navigationTexts[messageKey];
357
- if (globalThis.IS_GUTENBERG_PLUGIN) {
358
- Promise.resolve().then(() => _interopRequireWildcard(require('@wordpress/a11y'))).then(({
359
- speak
360
- }) => speak(message),
361
- // Ignore failures to load the a11y module.
362
- () => {});
363
- } else {
364
- state.navigation.message =
365
- // Announce that the page has been loaded. If the message is the
366
- // same, we use a no-break space similar to the @wordpress/a11y
367
- // package: https://github.com/WordPress/gutenberg/blob/c395242b8e6ee20f8b06c199e4fc2920d7018af1/packages/a11y/src/filter-message.js#L20-L26
368
- message + (state.navigation.message === message ? '\u00A0' : '');
369
- }
362
+ Promise.resolve().then(() => _interopRequireWildcard(require('@wordpress/a11y'))).then(({
363
+ speak
364
+ }) => speak(message),
365
+ // Ignore failures to load the a11y module.
366
+ () => {});
370
367
  }
371
368
 
372
369
  // Add click and prefetch to all links.
@@ -1 +1 @@
1
- {"version":3,"names":["_interactivity","require","_head","_getConfig$navigation","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","directivePrefix","getRegionRootFragment","initialVdom","toVdom","render","parseServerData","populateServerData","batch","privateApis","navigationMode","getConfig","pages","Map","headElements","getPagePath","url","URL","window","location","href","pathname","search","fetchPage","html","res","fetch","status","text","dom","DOMParser","parseFromString","regionsToVdom","vdom","regions","body","undefined","head","globalThis","IS_GUTENBERG_PLUGIN","fetchHeadAssets","document","attrName","querySelectorAll","forEach","region","id","getAttribute","title","querySelector","innerText","initialData","renderRegions","page","updateHead","fragment","forcePageReload","assign","Promise","addEventListener","pagePath","state","reload","map","script","tag","textContent","resolve","isValidLink","ref","HTMLAnchorElement","target","origin","startsWith","searchParams","isValidEvent","event","button","metaKey","ctrlKey","altKey","shiftKey","defaultPrevented","navigatingTo","hasLoadedNavigationTextsData","navigationTexts","loading","loaded","actions","store","navigation","hasStarted","hasFinished","message","navigate","options","clientNavigationDisabled","loadingAnimation","screenReaderAnnouncement","timeout","prefetch","timeoutPromise","setTimeout","loadingTimeout","a11ySpeak","race","clearTimeout","config","history","replace","hash","scrollIntoView","force","exports","messageKey","content","getElementById","parsed","JSON","parse","i18n","texts","then","speak","closest","preventDefault","nodeName"],"sources":["@wordpress/interactivity-router/src/index.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store, privateApis, getConfig } from '@wordpress/interactivity';\n\n/**\n * Internal dependencies\n */\nimport { fetchHeadAssets, updateHead } from './head';\n\nconst {\n\tdirectivePrefix,\n\tgetRegionRootFragment,\n\tinitialVdom,\n\ttoVdom,\n\trender,\n\tparseServerData,\n\tpopulateServerData,\n\tbatch,\n} = privateApis(\n\t'I acknowledge that using private APIs means my theme or plugin will inevitably break in the next version of WordPress.'\n);\n\ninterface NavigateOptions {\n\tforce?: boolean;\n\thtml?: string;\n\treplace?: boolean;\n\ttimeout?: number;\n\tloadingAnimation?: boolean;\n\tscreenReaderAnnouncement?: boolean;\n}\n\ninterface PrefetchOptions {\n\tforce?: boolean;\n\thtml?: string;\n}\n\ninterface VdomParams {\n\tvdom?: typeof initialVdom;\n}\n\ninterface Page {\n\tregions: Record< string, any >;\n\thead: HTMLHeadElement[];\n\ttitle: string;\n\tinitialData: any;\n}\n\ntype RegionsToVdom = ( dom: Document, params?: VdomParams ) => Promise< Page >;\n\n// Check if the navigation mode is full page or region based.\nconst navigationMode: 'regionBased' | 'fullPage' =\n\tgetConfig( 'core/router' ).navigationMode ?? 'regionBased';\n\n// The cache of visited and prefetched pages, stylesheets and scripts.\nconst pages = new Map< string, Promise< Page | false > >();\nconst headElements = new Map< string, { tag: HTMLElement; text: string } >();\n\n// Helper to remove domain and hash from the URL. We are only interesting in\n// caching the path and the query.\nconst getPagePath = ( url: string ) => {\n\tconst u = new URL( url, window.location.href );\n\treturn u.pathname + u.search;\n};\n\n// Fetch a new page and convert it to a static virtual DOM.\nconst fetchPage = async ( url: string, { html }: { html: string } ) => {\n\ttry {\n\t\tif ( ! html ) {\n\t\t\tconst res = await window.fetch( url );\n\t\t\tif ( res.status !== 200 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\thtml = await res.text();\n\t\t}\n\t\tconst dom = new window.DOMParser().parseFromString( html, 'text/html' );\n\t\treturn regionsToVdom( dom );\n\t} catch ( e ) {\n\t\treturn false;\n\t}\n};\n\n// Return an object with VDOM trees of those HTML regions marked with a\n// `router-region` directive.\nconst regionsToVdom: RegionsToVdom = async ( dom, { vdom } = {} ) => {\n\tconst regions = { body: undefined };\n\tlet head: HTMLElement[];\n\tif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\t\tif ( navigationMode === 'fullPage' ) {\n\t\t\thead = await fetchHeadAssets( dom, headElements );\n\t\t\tregions.body = vdom\n\t\t\t\t? vdom.get( document.body )\n\t\t\t\t: toVdom( dom.body );\n\t\t}\n\t}\n\tif ( navigationMode === 'regionBased' ) {\n\t\tconst attrName = `data-${ directivePrefix }-router-region`;\n\t\tdom.querySelectorAll( `[${ attrName }]` ).forEach( ( region ) => {\n\t\t\tconst id = region.getAttribute( attrName );\n\t\t\tregions[ id ] = vdom?.has( region )\n\t\t\t\t? vdom.get( region )\n\t\t\t\t: toVdom( region );\n\t\t} );\n\t}\n\tconst title = dom.querySelector( 'title' )?.innerText;\n\tconst initialData = parseServerData( dom );\n\treturn { regions, head, title, initialData };\n};\n\n// Render all interactive regions contained in the given page.\nconst renderRegions = ( page: Page ) => {\n\tbatch( () => {\n\t\tif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\t\t\tif ( navigationMode === 'fullPage' ) {\n\t\t\t\t// Once this code is tested and more mature, the head should be updated for region based navigation as well.\n\t\t\t\tupdateHead( page.head );\n\t\t\t\tconst fragment = getRegionRootFragment( document.body );\n\t\t\t\trender( page.regions.body, fragment );\n\t\t\t}\n\t\t}\n\t\tif ( navigationMode === 'regionBased' ) {\n\t\t\tpopulateServerData( page.initialData );\n\t\t\tconst attrName = `data-${ directivePrefix }-router-region`;\n\t\t\tdocument\n\t\t\t\t.querySelectorAll( `[${ attrName }]` )\n\t\t\t\t.forEach( ( region ) => {\n\t\t\t\t\tconst id = region.getAttribute( attrName );\n\t\t\t\t\tconst fragment = getRegionRootFragment( region );\n\t\t\t\t\trender( page.regions[ id ], fragment );\n\t\t\t\t} );\n\t\t}\n\t\tif ( page.title ) {\n\t\t\tdocument.title = page.title;\n\t\t}\n\t} );\n};\n\n/**\n * Load the given page forcing a full page reload.\n *\n * The function returns a promise that won't resolve, useful to prevent any\n * potential feedback indicating that the navigation has finished while the new\n * page is being loaded.\n *\n * @param href The page href.\n * @return Promise that never resolves.\n */\nconst forcePageReload = ( href: string ) => {\n\twindow.location.assign( href );\n\treturn new Promise( () => {} );\n};\n\n// Listen to the back and forward buttons and restore the page if it's in the\n// cache.\nwindow.addEventListener( 'popstate', async () => {\n\tconst pagePath = getPagePath( window.location.href ); // Remove hash.\n\tconst page = pages.has( pagePath ) && ( await pages.get( pagePath ) );\n\tif ( page ) {\n\t\trenderRegions( page );\n\t\t// Update the URL in the state.\n\t\tstate.url = window.location.href;\n\t} else {\n\t\twindow.location.reload();\n\t}\n} );\n\n// Initialize the router and cache the initial page using the initial vDOM.\n// Once this code is tested and more mature, the head should be updated for\n// region based navigation as well.\nif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\tif ( navigationMode === 'fullPage' ) {\n\t\t// Cache the scripts. Has to be called before fetching the assets.\n\t\t[].map.call( document.querySelectorAll( 'script[src]' ), ( script ) => {\n\t\t\theadElements.set( script.getAttribute( 'src' ), {\n\t\t\t\ttag: script,\n\t\t\t\ttext: script.textContent,\n\t\t\t} );\n\t\t} );\n\t\tawait fetchHeadAssets( document, headElements );\n\t}\n}\npages.set(\n\tgetPagePath( window.location.href ),\n\tPromise.resolve( regionsToVdom( document, { vdom: initialVdom } ) )\n);\n\n// Check if the link is valid for client-side navigation.\nconst isValidLink = ( ref: HTMLAnchorElement ) =>\n\tref &&\n\tref instanceof window.HTMLAnchorElement &&\n\tref.href &&\n\t( ! ref.target || ref.target === '_self' ) &&\n\tref.origin === window.location.origin &&\n\t! ref.pathname.startsWith( '/wp-admin' ) &&\n\t! ref.pathname.startsWith( '/wp-login.php' ) &&\n\t! ref.getAttribute( 'href' ).startsWith( '#' ) &&\n\t! new URL( ref.href ).searchParams.has( '_wpnonce' );\n\n// Check if the event is valid for client-side navigation.\nconst isValidEvent = ( event: MouseEvent ) =>\n\tevent &&\n\tevent.button === 0 && // Left clicks only.\n\t! event.metaKey && // Open in new tab (Mac).\n\t! event.ctrlKey && // Open in new tab (Windows).\n\t! event.altKey && // Download.\n\t! event.shiftKey &&\n\t! event.defaultPrevented;\n\n// Variable to store the current navigation.\nlet navigatingTo = '';\n\nlet hasLoadedNavigationTextsData = false;\nconst navigationTexts = {\n\tloading: 'Loading page, please wait.',\n\tloaded: 'Page Loaded.',\n};\n\ninterface Store {\n\tstate: {\n\t\turl: string;\n\t\tnavigation: {\n\t\t\thasStarted: boolean;\n\t\t\thasFinished: boolean;\n\t\t\tmessage: string;\n\t\t\ttexts?: {\n\t\t\t\tloading?: string;\n\t\t\t\tloaded?: string;\n\t\t\t};\n\t\t};\n\t};\n\tactions: {\n\t\tnavigate: ( href: string, options?: NavigateOptions ) => void;\n\t\tprefetch: ( url: string, options?: PrefetchOptions ) => void;\n\t};\n}\n\nexport const { state, actions } = store< Store >( 'core/router', {\n\tstate: {\n\t\turl: window.location.href,\n\t\tnavigation: {\n\t\t\thasStarted: false,\n\t\t\thasFinished: false,\n\t\t\tmessage: '',\n\t\t},\n\t},\n\tactions: {\n\t\t/**\n\t\t * Navigates to the specified page.\n\t\t *\n\t\t * This function normalizes the passed href, fetchs the page HTML if\n\t\t * needed, and updates any interactive regions whose contents have\n\t\t * changed. It also creates a new entry in the browser session history.\n\t\t *\n\t\t * @param href The page href.\n\t\t * @param [options] Options object.\n\t\t * @param [options.force] If true, it forces re-fetching the URL.\n\t\t * @param [options.html] HTML string to be used instead of fetching the requested URL.\n\t\t * @param [options.replace] If true, it replaces the current entry in the browser session history.\n\t\t * @param [options.timeout] Time until the navigation is aborted, in milliseconds. Default is 10000.\n\t\t * @param [options.loadingAnimation] Whether an animation should be shown while navigating. Default to `true`.\n\t\t * @param [options.screenReaderAnnouncement] Whether a message for screen readers should be announced while navigating. Default to `true`.\n\t\t *\n\t\t * @return Promise that resolves once the navigation is completed or aborted.\n\t\t */\n\t\t*navigate( href: string, options: NavigateOptions = {} ) {\n\t\t\tconst { clientNavigationDisabled } = getConfig();\n\t\t\tif ( clientNavigationDisabled ) {\n\t\t\t\tyield forcePageReload( href );\n\t\t\t}\n\n\t\t\tconst pagePath = getPagePath( href );\n\t\t\tconst { navigation } = state;\n\t\t\tconst {\n\t\t\t\tloadingAnimation = true,\n\t\t\t\tscreenReaderAnnouncement = true,\n\t\t\t\ttimeout = 10000,\n\t\t\t} = options;\n\n\t\t\tnavigatingTo = href;\n\t\t\tactions.prefetch( pagePath, options );\n\n\t\t\t// Create a promise that resolves when the specified timeout ends.\n\t\t\t// The timeout value is 10 seconds by default.\n\t\t\tconst timeoutPromise = new Promise< void >( ( resolve ) =>\n\t\t\t\tsetTimeout( resolve, timeout )\n\t\t\t);\n\n\t\t\t// Don't update the navigation status immediately, wait 400 ms.\n\t\t\tconst loadingTimeout = setTimeout( () => {\n\t\t\t\tif ( navigatingTo !== href ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( loadingAnimation ) {\n\t\t\t\t\tnavigation.hasStarted = true;\n\t\t\t\t\tnavigation.hasFinished = false;\n\t\t\t\t}\n\t\t\t\tif ( screenReaderAnnouncement ) {\n\t\t\t\t\ta11ySpeak( 'loading' );\n\t\t\t\t}\n\t\t\t}, 400 );\n\n\t\t\tconst page = yield Promise.race( [\n\t\t\t\tpages.get( pagePath ),\n\t\t\t\ttimeoutPromise,\n\t\t\t] );\n\n\t\t\t// Dismiss loading message if it hasn't been added yet.\n\t\t\tclearTimeout( loadingTimeout );\n\n\t\t\t// Once the page is fetched, the destination URL could have changed\n\t\t\t// (e.g., by clicking another link in the meantime). If so, bail\n\t\t\t// out, and let the newer execution to update the HTML.\n\t\t\tif ( navigatingTo !== href ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tpage &&\n\t\t\t\t! page.initialData?.config?.[ 'core/router' ]\n\t\t\t\t\t?.clientNavigationDisabled\n\t\t\t) {\n\t\t\t\tyield renderRegions( page );\n\t\t\t\twindow.history[\n\t\t\t\t\toptions.replace ? 'replaceState' : 'pushState'\n\t\t\t\t]( {}, '', href );\n\n\t\t\t\t// Update the URL in the state.\n\t\t\t\tstate.url = href;\n\n\t\t\t\t// Update the navigation status once the the new page rendering\n\t\t\t\t// has been completed.\n\t\t\t\tif ( loadingAnimation ) {\n\t\t\t\t\tnavigation.hasStarted = false;\n\t\t\t\t\tnavigation.hasFinished = true;\n\t\t\t\t}\n\n\t\t\t\tif ( screenReaderAnnouncement ) {\n\t\t\t\t\ta11ySpeak( 'loaded' );\n\t\t\t\t}\n\n\t\t\t\t// Scroll to the anchor if exits in the link.\n\t\t\t\tconst { hash } = new URL( href, window.location.href );\n\t\t\t\tif ( hash ) {\n\t\t\t\t\tdocument.querySelector( hash )?.scrollIntoView();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tyield forcePageReload( href );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Prefetchs the page with the passed URL.\n\t\t *\n\t\t * The function normalizes the URL and stores internally the fetch\n\t\t * promise, to avoid triggering a second fetch for an ongoing request.\n\t\t *\n\t\t * @param url The page URL.\n\t\t * @param [options] Options object.\n\t\t * @param [options.force] Force fetching the URL again.\n\t\t * @param [options.html] HTML string to be used instead of fetching the requested URL.\n\t\t */\n\t\tprefetch( url: string, options: PrefetchOptions = {} ) {\n\t\t\tconst { clientNavigationDisabled } = getConfig();\n\t\t\tif ( clientNavigationDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst pagePath = getPagePath( url );\n\t\t\tif ( options.force || ! pages.has( pagePath ) ) {\n\t\t\t\tpages.set(\n\t\t\t\t\tpagePath,\n\t\t\t\t\tfetchPage( pagePath, { html: options.html } )\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t},\n} );\n\n/**\n * Announces a message to screen readers.\n *\n * This is a wrapper around the `@wordpress/a11y` package's `speak` function. It handles importing\n * the package on demand and should be used instead of calling `ally.speak` direacly.\n *\n * @param messageKey The message to be announced by assistive technologies.\n */\nfunction a11ySpeak( messageKey: keyof typeof navigationTexts ) {\n\tif ( ! hasLoadedNavigationTextsData ) {\n\t\thasLoadedNavigationTextsData = true;\n\t\tconst content = document.getElementById(\n\t\t\t'wp-script-module-data-@wordpress/interactivity-router'\n\t\t)?.textContent;\n\t\tif ( content ) {\n\t\t\ttry {\n\t\t\t\tconst parsed = JSON.parse( content );\n\t\t\t\tif ( typeof parsed?.i18n?.loading === 'string' ) {\n\t\t\t\t\tnavigationTexts.loading = parsed.i18n.loading;\n\t\t\t\t}\n\t\t\t\tif ( typeof parsed?.i18n?.loaded === 'string' ) {\n\t\t\t\t\tnavigationTexts.loaded = parsed.i18n.loaded;\n\t\t\t\t}\n\t\t\t} catch {}\n\t\t} else {\n\t\t\t// Fallback to localized strings from Interactivity API state.\n\t\t\tif ( state.navigation.texts?.loading ) {\n\t\t\t\tnavigationTexts.loading = state.navigation.texts.loading;\n\t\t\t}\n\t\t\tif ( state.navigation.texts?.loaded ) {\n\t\t\t\tnavigationTexts.loaded = state.navigation.texts.loaded;\n\t\t\t}\n\t\t}\n\t}\n\n\tconst message = navigationTexts[ messageKey ];\n\n\tif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\t\timport( '@wordpress/a11y' ).then(\n\t\t\t( { speak } ) => speak( message ),\n\t\t\t// Ignore failures to load the a11y module.\n\t\t\t() => {}\n\t\t);\n\t} else {\n\t\tstate.navigation.message =\n\t\t\t// Announce that the page has been loaded. If the message is the\n\t\t\t// same, we use a no-break space similar to the @wordpress/a11y\n\t\t\t// package: https://github.com/WordPress/gutenberg/blob/c395242b8e6ee20f8b06c199e4fc2920d7018af1/packages/a11y/src/filter-message.js#L20-L26\n\t\t\tmessage + ( state.navigation.message === message ? '\\u00A0' : '' );\n\t}\n}\n\n// Add click and prefetch to all links.\nif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\tif ( navigationMode === 'fullPage' ) {\n\t\t// Navigate on click.\n\t\tdocument.addEventListener(\n\t\t\t'click',\n\t\t\tfunction ( event ) {\n\t\t\t\tconst ref = ( event.target as Element ).closest( 'a' );\n\t\t\t\tif ( isValidLink( ref ) && isValidEvent( event ) ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tactions.navigate( ref.href );\n\t\t\t\t}\n\t\t\t},\n\t\t\ttrue\n\t\t);\n\t\t// Prefetch on hover.\n\t\tdocument.addEventListener(\n\t\t\t'mouseenter',\n\t\t\tfunction ( event ) {\n\t\t\t\tif ( ( event.target as Element )?.nodeName === 'A' ) {\n\t\t\t\t\tconst ref = ( event.target as Element ).closest( 'a' );\n\t\t\t\t\tif ( isValidLink( ref ) && isValidEvent( event ) ) {\n\t\t\t\t\t\tactions.prefetch( ref.href );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttrue\n\t\t);\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_interactivity","require","_head","_getConfig$navigation","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","directivePrefix","getRegionRootFragment","initialVdom","toVdom","render","parseServerData","populateServerData","batch","privateApis","navigationMode","getConfig","pages","Map","headElements","getPagePath","url","URL","window","location","href","pathname","search","fetchPage","html","res","fetch","status","text","dom","DOMParser","parseFromString","regionsToVdom","vdom","regions","body","undefined","head","globalThis","IS_GUTENBERG_PLUGIN","fetchHeadAssets","document","attrName","querySelectorAll","forEach","region","id","getAttribute","title","querySelector","innerText","initialData","renderRegions","page","updateHead","fragment","forcePageReload","assign","Promise","addEventListener","pagePath","state","reload","map","script","tag","textContent","resolve","isValidLink","ref","HTMLAnchorElement","target","origin","startsWith","searchParams","isValidEvent","event","button","metaKey","ctrlKey","altKey","shiftKey","defaultPrevented","navigatingTo","hasLoadedNavigationTextsData","navigationTexts","loading","loaded","actions","store","navigation","hasStarted","hasFinished","navigate","options","clientNavigationDisabled","loadingAnimation","screenReaderAnnouncement","timeout","prefetch","timeoutPromise","setTimeout","loadingTimeout","a11ySpeak","race","clearTimeout","config","history","replace","hash","scrollIntoView","force","exports","messageKey","content","getElementById","parsed","JSON","parse","i18n","texts","message","then","speak","closest","preventDefault","nodeName"],"sources":["@wordpress/interactivity-router/src/index.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store, privateApis, getConfig } from '@wordpress/interactivity';\n\n/**\n * Internal dependencies\n */\nimport { fetchHeadAssets, updateHead } from './head';\n\nconst {\n\tdirectivePrefix,\n\tgetRegionRootFragment,\n\tinitialVdom,\n\ttoVdom,\n\trender,\n\tparseServerData,\n\tpopulateServerData,\n\tbatch,\n} = privateApis(\n\t'I acknowledge that using private APIs means my theme or plugin will inevitably break in the next version of WordPress.'\n);\n\ninterface NavigateOptions {\n\tforce?: boolean;\n\thtml?: string;\n\treplace?: boolean;\n\ttimeout?: number;\n\tloadingAnimation?: boolean;\n\tscreenReaderAnnouncement?: boolean;\n}\n\ninterface PrefetchOptions {\n\tforce?: boolean;\n\thtml?: string;\n}\n\ninterface VdomParams {\n\tvdom?: typeof initialVdom;\n}\n\ninterface Page {\n\tregions: Record< string, any >;\n\thead: HTMLHeadElement[];\n\ttitle: string;\n\tinitialData: any;\n}\n\ntype RegionsToVdom = ( dom: Document, params?: VdomParams ) => Promise< Page >;\n\n// Check if the navigation mode is full page or region based.\nconst navigationMode: 'regionBased' | 'fullPage' =\n\tgetConfig( 'core/router' ).navigationMode ?? 'regionBased';\n\n// The cache of visited and prefetched pages, stylesheets and scripts.\nconst pages = new Map< string, Promise< Page | false > >();\nconst headElements = new Map< string, { tag: HTMLElement; text: string } >();\n\n// Helper to remove domain and hash from the URL. We are only interesting in\n// caching the path and the query.\nconst getPagePath = ( url: string ) => {\n\tconst u = new URL( url, window.location.href );\n\treturn u.pathname + u.search;\n};\n\n// Fetch a new page and convert it to a static virtual DOM.\nconst fetchPage = async ( url: string, { html }: { html: string } ) => {\n\ttry {\n\t\tif ( ! html ) {\n\t\t\tconst res = await window.fetch( url );\n\t\t\tif ( res.status !== 200 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\thtml = await res.text();\n\t\t}\n\t\tconst dom = new window.DOMParser().parseFromString( html, 'text/html' );\n\t\treturn regionsToVdom( dom );\n\t} catch ( e ) {\n\t\treturn false;\n\t}\n};\n\n// Return an object with VDOM trees of those HTML regions marked with a\n// `router-region` directive.\nconst regionsToVdom: RegionsToVdom = async ( dom, { vdom } = {} ) => {\n\tconst regions = { body: undefined };\n\tlet head: HTMLElement[];\n\tif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\t\tif ( navigationMode === 'fullPage' ) {\n\t\t\thead = await fetchHeadAssets( dom, headElements );\n\t\t\tregions.body = vdom\n\t\t\t\t? vdom.get( document.body )\n\t\t\t\t: toVdom( dom.body );\n\t\t}\n\t}\n\tif ( navigationMode === 'regionBased' ) {\n\t\tconst attrName = `data-${ directivePrefix }-router-region`;\n\t\tdom.querySelectorAll( `[${ attrName }]` ).forEach( ( region ) => {\n\t\t\tconst id = region.getAttribute( attrName );\n\t\t\tregions[ id ] = vdom?.has( region )\n\t\t\t\t? vdom.get( region )\n\t\t\t\t: toVdom( region );\n\t\t} );\n\t}\n\tconst title = dom.querySelector( 'title' )?.innerText;\n\tconst initialData = parseServerData( dom );\n\treturn { regions, head, title, initialData };\n};\n\n// Render all interactive regions contained in the given page.\nconst renderRegions = ( page: Page ) => {\n\tbatch( () => {\n\t\tif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\t\t\tif ( navigationMode === 'fullPage' ) {\n\t\t\t\t// Once this code is tested and more mature, the head should be updated for region based navigation as well.\n\t\t\t\tupdateHead( page.head );\n\t\t\t\tconst fragment = getRegionRootFragment( document.body );\n\t\t\t\trender( page.regions.body, fragment );\n\t\t\t}\n\t\t}\n\t\tif ( navigationMode === 'regionBased' ) {\n\t\t\tpopulateServerData( page.initialData );\n\t\t\tconst attrName = `data-${ directivePrefix }-router-region`;\n\t\t\tdocument\n\t\t\t\t.querySelectorAll( `[${ attrName }]` )\n\t\t\t\t.forEach( ( region ) => {\n\t\t\t\t\tconst id = region.getAttribute( attrName );\n\t\t\t\t\tconst fragment = getRegionRootFragment( region );\n\t\t\t\t\trender( page.regions[ id ], fragment );\n\t\t\t\t} );\n\t\t}\n\t\tif ( page.title ) {\n\t\t\tdocument.title = page.title;\n\t\t}\n\t} );\n};\n\n/**\n * Load the given page forcing a full page reload.\n *\n * The function returns a promise that won't resolve, useful to prevent any\n * potential feedback indicating that the navigation has finished while the new\n * page is being loaded.\n *\n * @param href The page href.\n * @return Promise that never resolves.\n */\nconst forcePageReload = ( href: string ) => {\n\twindow.location.assign( href );\n\treturn new Promise( () => {} );\n};\n\n// Listen to the back and forward buttons and restore the page if it's in the\n// cache.\nwindow.addEventListener( 'popstate', async () => {\n\tconst pagePath = getPagePath( window.location.href ); // Remove hash.\n\tconst page = pages.has( pagePath ) && ( await pages.get( pagePath ) );\n\tif ( page ) {\n\t\trenderRegions( page );\n\t\t// Update the URL in the state.\n\t\tstate.url = window.location.href;\n\t} else {\n\t\twindow.location.reload();\n\t}\n} );\n\n// Initialize the router and cache the initial page using the initial vDOM.\n// Once this code is tested and more mature, the head should be updated for\n// region based navigation as well.\nif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\tif ( navigationMode === 'fullPage' ) {\n\t\t// Cache the scripts. Has to be called before fetching the assets.\n\t\t[].map.call( document.querySelectorAll( 'script[src]' ), ( script ) => {\n\t\t\theadElements.set( script.getAttribute( 'src' ), {\n\t\t\t\ttag: script,\n\t\t\t\ttext: script.textContent,\n\t\t\t} );\n\t\t} );\n\t\tawait fetchHeadAssets( document, headElements );\n\t}\n}\npages.set(\n\tgetPagePath( window.location.href ),\n\tPromise.resolve( regionsToVdom( document, { vdom: initialVdom } ) )\n);\n\n// Check if the link is valid for client-side navigation.\nconst isValidLink = ( ref: HTMLAnchorElement ) =>\n\tref &&\n\tref instanceof window.HTMLAnchorElement &&\n\tref.href &&\n\t( ! ref.target || ref.target === '_self' ) &&\n\tref.origin === window.location.origin &&\n\t! ref.pathname.startsWith( '/wp-admin' ) &&\n\t! ref.pathname.startsWith( '/wp-login.php' ) &&\n\t! ref.getAttribute( 'href' ).startsWith( '#' ) &&\n\t! new URL( ref.href ).searchParams.has( '_wpnonce' );\n\n// Check if the event is valid for client-side navigation.\nconst isValidEvent = ( event: MouseEvent ) =>\n\tevent &&\n\tevent.button === 0 && // Left clicks only.\n\t! event.metaKey && // Open in new tab (Mac).\n\t! event.ctrlKey && // Open in new tab (Windows).\n\t! event.altKey && // Download.\n\t! event.shiftKey &&\n\t! event.defaultPrevented;\n\n// Variable to store the current navigation.\nlet navigatingTo = '';\n\nlet hasLoadedNavigationTextsData = false;\nconst navigationTexts = {\n\tloading: 'Loading page, please wait.',\n\tloaded: 'Page Loaded.',\n};\n\ninterface Store {\n\tstate: {\n\t\turl: string;\n\t\tnavigation: {\n\t\t\thasStarted: boolean;\n\t\t\thasFinished: boolean;\n\t\t};\n\t};\n\tactions: {\n\t\tnavigate: ( href: string, options?: NavigateOptions ) => void;\n\t\tprefetch: ( url: string, options?: PrefetchOptions ) => void;\n\t};\n}\n\nexport const { state, actions } = store< Store >( 'core/router', {\n\tstate: {\n\t\turl: window.location.href,\n\t\tnavigation: {\n\t\t\thasStarted: false,\n\t\t\thasFinished: false,\n\t\t},\n\t},\n\tactions: {\n\t\t/**\n\t\t * Navigates to the specified page.\n\t\t *\n\t\t * This function normalizes the passed href, fetchs the page HTML if\n\t\t * needed, and updates any interactive regions whose contents have\n\t\t * changed. It also creates a new entry in the browser session history.\n\t\t *\n\t\t * @param href The page href.\n\t\t * @param [options] Options object.\n\t\t * @param [options.force] If true, it forces re-fetching the URL.\n\t\t * @param [options.html] HTML string to be used instead of fetching the requested URL.\n\t\t * @param [options.replace] If true, it replaces the current entry in the browser session history.\n\t\t * @param [options.timeout] Time until the navigation is aborted, in milliseconds. Default is 10000.\n\t\t * @param [options.loadingAnimation] Whether an animation should be shown while navigating. Default to `true`.\n\t\t * @param [options.screenReaderAnnouncement] Whether a message for screen readers should be announced while navigating. Default to `true`.\n\t\t *\n\t\t * @return Promise that resolves once the navigation is completed or aborted.\n\t\t */\n\t\t*navigate( href: string, options: NavigateOptions = {} ) {\n\t\t\tconst { clientNavigationDisabled } = getConfig();\n\t\t\tif ( clientNavigationDisabled ) {\n\t\t\t\tyield forcePageReload( href );\n\t\t\t}\n\n\t\t\tconst pagePath = getPagePath( href );\n\t\t\tconst { navigation } = state;\n\t\t\tconst {\n\t\t\t\tloadingAnimation = true,\n\t\t\t\tscreenReaderAnnouncement = true,\n\t\t\t\ttimeout = 10000,\n\t\t\t} = options;\n\n\t\t\tnavigatingTo = href;\n\t\t\tactions.prefetch( pagePath, options );\n\n\t\t\t// Create a promise that resolves when the specified timeout ends.\n\t\t\t// The timeout value is 10 seconds by default.\n\t\t\tconst timeoutPromise = new Promise< void >( ( resolve ) =>\n\t\t\t\tsetTimeout( resolve, timeout )\n\t\t\t);\n\n\t\t\t// Don't update the navigation status immediately, wait 400 ms.\n\t\t\tconst loadingTimeout = setTimeout( () => {\n\t\t\t\tif ( navigatingTo !== href ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( loadingAnimation ) {\n\t\t\t\t\tnavigation.hasStarted = true;\n\t\t\t\t\tnavigation.hasFinished = false;\n\t\t\t\t}\n\t\t\t\tif ( screenReaderAnnouncement ) {\n\t\t\t\t\ta11ySpeak( 'loading' );\n\t\t\t\t}\n\t\t\t}, 400 );\n\n\t\t\tconst page = yield Promise.race( [\n\t\t\t\tpages.get( pagePath ),\n\t\t\t\ttimeoutPromise,\n\t\t\t] );\n\n\t\t\t// Dismiss loading message if it hasn't been added yet.\n\t\t\tclearTimeout( loadingTimeout );\n\n\t\t\t// Once the page is fetched, the destination URL could have changed\n\t\t\t// (e.g., by clicking another link in the meantime). If so, bail\n\t\t\t// out, and let the newer execution to update the HTML.\n\t\t\tif ( navigatingTo !== href ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tpage &&\n\t\t\t\t! page.initialData?.config?.[ 'core/router' ]\n\t\t\t\t\t?.clientNavigationDisabled\n\t\t\t) {\n\t\t\t\tyield renderRegions( page );\n\t\t\t\twindow.history[\n\t\t\t\t\toptions.replace ? 'replaceState' : 'pushState'\n\t\t\t\t]( {}, '', href );\n\n\t\t\t\t// Update the URL in the state.\n\t\t\t\tstate.url = href;\n\n\t\t\t\t// Update the navigation status once the the new page rendering\n\t\t\t\t// has been completed.\n\t\t\t\tif ( loadingAnimation ) {\n\t\t\t\t\tnavigation.hasStarted = false;\n\t\t\t\t\tnavigation.hasFinished = true;\n\t\t\t\t}\n\n\t\t\t\tif ( screenReaderAnnouncement ) {\n\t\t\t\t\ta11ySpeak( 'loaded' );\n\t\t\t\t}\n\n\t\t\t\t// Scroll to the anchor if exits in the link.\n\t\t\t\tconst { hash } = new URL( href, window.location.href );\n\t\t\t\tif ( hash ) {\n\t\t\t\t\tdocument.querySelector( hash )?.scrollIntoView();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tyield forcePageReload( href );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Prefetchs the page with the passed URL.\n\t\t *\n\t\t * The function normalizes the URL and stores internally the fetch\n\t\t * promise, to avoid triggering a second fetch for an ongoing request.\n\t\t *\n\t\t * @param url The page URL.\n\t\t * @param [options] Options object.\n\t\t * @param [options.force] Force fetching the URL again.\n\t\t * @param [options.html] HTML string to be used instead of fetching the requested URL.\n\t\t */\n\t\tprefetch( url: string, options: PrefetchOptions = {} ) {\n\t\t\tconst { clientNavigationDisabled } = getConfig();\n\t\t\tif ( clientNavigationDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst pagePath = getPagePath( url );\n\t\t\tif ( options.force || ! pages.has( pagePath ) ) {\n\t\t\t\tpages.set(\n\t\t\t\t\tpagePath,\n\t\t\t\t\tfetchPage( pagePath, { html: options.html } )\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t},\n} );\n\n/**\n * Announces a message to screen readers.\n *\n * This is a wrapper around the `@wordpress/a11y` package's `speak` function. It handles importing\n * the package on demand and should be used instead of calling `ally.speak` direacly.\n *\n * @param messageKey The message to be announced by assistive technologies.\n */\nfunction a11ySpeak( messageKey: keyof typeof navigationTexts ) {\n\tif ( ! hasLoadedNavigationTextsData ) {\n\t\thasLoadedNavigationTextsData = true;\n\t\tconst content = document.getElementById(\n\t\t\t'wp-script-module-data-@wordpress/interactivity-router'\n\t\t)?.textContent;\n\t\tif ( content ) {\n\t\t\ttry {\n\t\t\t\tconst parsed = JSON.parse( content );\n\t\t\t\tif ( typeof parsed?.i18n?.loading === 'string' ) {\n\t\t\t\t\tnavigationTexts.loading = parsed.i18n.loading;\n\t\t\t\t}\n\t\t\t\tif ( typeof parsed?.i18n?.loaded === 'string' ) {\n\t\t\t\t\tnavigationTexts.loaded = parsed.i18n.loaded;\n\t\t\t\t}\n\t\t\t} catch {}\n\t\t} else {\n\t\t\t// Fallback to localized strings from Interactivity API state.\n\t\t\t// @todo This block is for Core < 6.7.0. Remove when support is dropped.\n\n\t\t\t// @ts-expect-error\n\t\t\tif ( state.navigation.texts?.loading ) {\n\t\t\t\t// @ts-expect-error\n\t\t\t\tnavigationTexts.loading = state.navigation.texts.loading;\n\t\t\t}\n\t\t\t// @ts-expect-error\n\t\t\tif ( state.navigation.texts?.loaded ) {\n\t\t\t\t// @ts-expect-error\n\t\t\t\tnavigationTexts.loaded = state.navigation.texts.loaded;\n\t\t\t}\n\t\t}\n\t}\n\n\tconst message = navigationTexts[ messageKey ];\n\n\timport( '@wordpress/a11y' ).then(\n\t\t( { speak } ) => speak( message ),\n\t\t// Ignore failures to load the a11y module.\n\t\t() => {}\n\t);\n}\n\n// Add click and prefetch to all links.\nif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\tif ( navigationMode === 'fullPage' ) {\n\t\t// Navigate on click.\n\t\tdocument.addEventListener(\n\t\t\t'click',\n\t\t\tfunction ( event ) {\n\t\t\t\tconst ref = ( event.target as Element ).closest( 'a' );\n\t\t\t\tif ( isValidLink( ref ) && isValidEvent( event ) ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tactions.navigate( ref.href );\n\t\t\t\t}\n\t\t\t},\n\t\t\ttrue\n\t\t);\n\t\t// Prefetch on hover.\n\t\tdocument.addEventListener(\n\t\t\t'mouseenter',\n\t\t\tfunction ( event ) {\n\t\t\t\tif ( ( event.target as Element )?.nodeName === 'A' ) {\n\t\t\t\t\tconst ref = ( event.target as Element ).closest( 'a' );\n\t\t\t\t\tif ( isValidLink( ref ) && isValidEvent( event ) ) {\n\t\t\t\t\t\tactions.prefetch( ref.href );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttrue\n\t\t);\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
@@ -186,8 +186,7 @@ export const {
186
186
  url: window.location.href,
187
187
  navigation: {
188
188
  hasStarted: false,
189
- hasFinished: false,
190
- message: ''
189
+ hasFinished: false
191
190
  }
192
191
  },
193
192
  actions: {
@@ -336,28 +335,26 @@ function a11ySpeak(messageKey) {
336
335
  } catch {}
337
336
  } else {
338
337
  // Fallback to localized strings from Interactivity API state.
338
+ // @todo This block is for Core < 6.7.0. Remove when support is dropped.
339
+
340
+ // @ts-expect-error
339
341
  if (state.navigation.texts?.loading) {
342
+ // @ts-expect-error
340
343
  navigationTexts.loading = state.navigation.texts.loading;
341
344
  }
345
+ // @ts-expect-error
342
346
  if (state.navigation.texts?.loaded) {
347
+ // @ts-expect-error
343
348
  navigationTexts.loaded = state.navigation.texts.loaded;
344
349
  }
345
350
  }
346
351
  }
347
352
  const message = navigationTexts[messageKey];
348
- if (globalThis.IS_GUTENBERG_PLUGIN) {
349
- import('@wordpress/a11y').then(({
350
- speak
351
- }) => speak(message),
352
- // Ignore failures to load the a11y module.
353
- () => {});
354
- } else {
355
- state.navigation.message =
356
- // Announce that the page has been loaded. If the message is the
357
- // same, we use a no-break space similar to the @wordpress/a11y
358
- // package: https://github.com/WordPress/gutenberg/blob/c395242b8e6ee20f8b06c199e4fc2920d7018af1/packages/a11y/src/filter-message.js#L20-L26
359
- message + (state.navigation.message === message ? '\u00A0' : '');
360
- }
353
+ import('@wordpress/a11y').then(({
354
+ speak
355
+ }) => speak(message),
356
+ // Ignore failures to load the a11y module.
357
+ () => {});
361
358
  }
362
359
 
363
360
  // Add click and prefetch to all links.
@@ -1 +1 @@
1
- {"version":3,"names":["store","privateApis","getConfig","fetchHeadAssets","updateHead","directivePrefix","getRegionRootFragment","initialVdom","toVdom","render","parseServerData","populateServerData","batch","navigationMode","_getConfig$navigation","pages","Map","headElements","getPagePath","url","u","URL","window","location","href","pathname","search","fetchPage","html","res","fetch","status","text","dom","DOMParser","parseFromString","regionsToVdom","e","vdom","regions","body","undefined","head","globalThis","IS_GUTENBERG_PLUGIN","get","document","attrName","querySelectorAll","forEach","region","id","getAttribute","has","title","querySelector","innerText","initialData","renderRegions","page","fragment","forcePageReload","assign","Promise","addEventListener","pagePath","state","reload","map","call","script","set","tag","textContent","resolve","isValidLink","ref","HTMLAnchorElement","target","origin","startsWith","searchParams","isValidEvent","event","button","metaKey","ctrlKey","altKey","shiftKey","defaultPrevented","navigatingTo","hasLoadedNavigationTextsData","navigationTexts","loading","loaded","actions","navigation","hasStarted","hasFinished","message","navigate","options","clientNavigationDisabled","loadingAnimation","screenReaderAnnouncement","timeout","prefetch","timeoutPromise","setTimeout","loadingTimeout","a11ySpeak","race","clearTimeout","config","history","replace","hash","scrollIntoView","force","messageKey","content","getElementById","parsed","JSON","parse","i18n","texts","then","speak","closest","preventDefault","nodeName"],"sources":["@wordpress/interactivity-router/src/index.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store, privateApis, getConfig } from '@wordpress/interactivity';\n\n/**\n * Internal dependencies\n */\nimport { fetchHeadAssets, updateHead } from './head';\n\nconst {\n\tdirectivePrefix,\n\tgetRegionRootFragment,\n\tinitialVdom,\n\ttoVdom,\n\trender,\n\tparseServerData,\n\tpopulateServerData,\n\tbatch,\n} = privateApis(\n\t'I acknowledge that using private APIs means my theme or plugin will inevitably break in the next version of WordPress.'\n);\n\ninterface NavigateOptions {\n\tforce?: boolean;\n\thtml?: string;\n\treplace?: boolean;\n\ttimeout?: number;\n\tloadingAnimation?: boolean;\n\tscreenReaderAnnouncement?: boolean;\n}\n\ninterface PrefetchOptions {\n\tforce?: boolean;\n\thtml?: string;\n}\n\ninterface VdomParams {\n\tvdom?: typeof initialVdom;\n}\n\ninterface Page {\n\tregions: Record< string, any >;\n\thead: HTMLHeadElement[];\n\ttitle: string;\n\tinitialData: any;\n}\n\ntype RegionsToVdom = ( dom: Document, params?: VdomParams ) => Promise< Page >;\n\n// Check if the navigation mode is full page or region based.\nconst navigationMode: 'regionBased' | 'fullPage' =\n\tgetConfig( 'core/router' ).navigationMode ?? 'regionBased';\n\n// The cache of visited and prefetched pages, stylesheets and scripts.\nconst pages = new Map< string, Promise< Page | false > >();\nconst headElements = new Map< string, { tag: HTMLElement; text: string } >();\n\n// Helper to remove domain and hash from the URL. We are only interesting in\n// caching the path and the query.\nconst getPagePath = ( url: string ) => {\n\tconst u = new URL( url, window.location.href );\n\treturn u.pathname + u.search;\n};\n\n// Fetch a new page and convert it to a static virtual DOM.\nconst fetchPage = async ( url: string, { html }: { html: string } ) => {\n\ttry {\n\t\tif ( ! html ) {\n\t\t\tconst res = await window.fetch( url );\n\t\t\tif ( res.status !== 200 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\thtml = await res.text();\n\t\t}\n\t\tconst dom = new window.DOMParser().parseFromString( html, 'text/html' );\n\t\treturn regionsToVdom( dom );\n\t} catch ( e ) {\n\t\treturn false;\n\t}\n};\n\n// Return an object with VDOM trees of those HTML regions marked with a\n// `router-region` directive.\nconst regionsToVdom: RegionsToVdom = async ( dom, { vdom } = {} ) => {\n\tconst regions = { body: undefined };\n\tlet head: HTMLElement[];\n\tif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\t\tif ( navigationMode === 'fullPage' ) {\n\t\t\thead = await fetchHeadAssets( dom, headElements );\n\t\t\tregions.body = vdom\n\t\t\t\t? vdom.get( document.body )\n\t\t\t\t: toVdom( dom.body );\n\t\t}\n\t}\n\tif ( navigationMode === 'regionBased' ) {\n\t\tconst attrName = `data-${ directivePrefix }-router-region`;\n\t\tdom.querySelectorAll( `[${ attrName }]` ).forEach( ( region ) => {\n\t\t\tconst id = region.getAttribute( attrName );\n\t\t\tregions[ id ] = vdom?.has( region )\n\t\t\t\t? vdom.get( region )\n\t\t\t\t: toVdom( region );\n\t\t} );\n\t}\n\tconst title = dom.querySelector( 'title' )?.innerText;\n\tconst initialData = parseServerData( dom );\n\treturn { regions, head, title, initialData };\n};\n\n// Render all interactive regions contained in the given page.\nconst renderRegions = ( page: Page ) => {\n\tbatch( () => {\n\t\tif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\t\t\tif ( navigationMode === 'fullPage' ) {\n\t\t\t\t// Once this code is tested and more mature, the head should be updated for region based navigation as well.\n\t\t\t\tupdateHead( page.head );\n\t\t\t\tconst fragment = getRegionRootFragment( document.body );\n\t\t\t\trender( page.regions.body, fragment );\n\t\t\t}\n\t\t}\n\t\tif ( navigationMode === 'regionBased' ) {\n\t\t\tpopulateServerData( page.initialData );\n\t\t\tconst attrName = `data-${ directivePrefix }-router-region`;\n\t\t\tdocument\n\t\t\t\t.querySelectorAll( `[${ attrName }]` )\n\t\t\t\t.forEach( ( region ) => {\n\t\t\t\t\tconst id = region.getAttribute( attrName );\n\t\t\t\t\tconst fragment = getRegionRootFragment( region );\n\t\t\t\t\trender( page.regions[ id ], fragment );\n\t\t\t\t} );\n\t\t}\n\t\tif ( page.title ) {\n\t\t\tdocument.title = page.title;\n\t\t}\n\t} );\n};\n\n/**\n * Load the given page forcing a full page reload.\n *\n * The function returns a promise that won't resolve, useful to prevent any\n * potential feedback indicating that the navigation has finished while the new\n * page is being loaded.\n *\n * @param href The page href.\n * @return Promise that never resolves.\n */\nconst forcePageReload = ( href: string ) => {\n\twindow.location.assign( href );\n\treturn new Promise( () => {} );\n};\n\n// Listen to the back and forward buttons and restore the page if it's in the\n// cache.\nwindow.addEventListener( 'popstate', async () => {\n\tconst pagePath = getPagePath( window.location.href ); // Remove hash.\n\tconst page = pages.has( pagePath ) && ( await pages.get( pagePath ) );\n\tif ( page ) {\n\t\trenderRegions( page );\n\t\t// Update the URL in the state.\n\t\tstate.url = window.location.href;\n\t} else {\n\t\twindow.location.reload();\n\t}\n} );\n\n// Initialize the router and cache the initial page using the initial vDOM.\n// Once this code is tested and more mature, the head should be updated for\n// region based navigation as well.\nif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\tif ( navigationMode === 'fullPage' ) {\n\t\t// Cache the scripts. Has to be called before fetching the assets.\n\t\t[].map.call( document.querySelectorAll( 'script[src]' ), ( script ) => {\n\t\t\theadElements.set( script.getAttribute( 'src' ), {\n\t\t\t\ttag: script,\n\t\t\t\ttext: script.textContent,\n\t\t\t} );\n\t\t} );\n\t\tawait fetchHeadAssets( document, headElements );\n\t}\n}\npages.set(\n\tgetPagePath( window.location.href ),\n\tPromise.resolve( regionsToVdom( document, { vdom: initialVdom } ) )\n);\n\n// Check if the link is valid for client-side navigation.\nconst isValidLink = ( ref: HTMLAnchorElement ) =>\n\tref &&\n\tref instanceof window.HTMLAnchorElement &&\n\tref.href &&\n\t( ! ref.target || ref.target === '_self' ) &&\n\tref.origin === window.location.origin &&\n\t! ref.pathname.startsWith( '/wp-admin' ) &&\n\t! ref.pathname.startsWith( '/wp-login.php' ) &&\n\t! ref.getAttribute( 'href' ).startsWith( '#' ) &&\n\t! new URL( ref.href ).searchParams.has( '_wpnonce' );\n\n// Check if the event is valid for client-side navigation.\nconst isValidEvent = ( event: MouseEvent ) =>\n\tevent &&\n\tevent.button === 0 && // Left clicks only.\n\t! event.metaKey && // Open in new tab (Mac).\n\t! event.ctrlKey && // Open in new tab (Windows).\n\t! event.altKey && // Download.\n\t! event.shiftKey &&\n\t! event.defaultPrevented;\n\n// Variable to store the current navigation.\nlet navigatingTo = '';\n\nlet hasLoadedNavigationTextsData = false;\nconst navigationTexts = {\n\tloading: 'Loading page, please wait.',\n\tloaded: 'Page Loaded.',\n};\n\ninterface Store {\n\tstate: {\n\t\turl: string;\n\t\tnavigation: {\n\t\t\thasStarted: boolean;\n\t\t\thasFinished: boolean;\n\t\t\tmessage: string;\n\t\t\ttexts?: {\n\t\t\t\tloading?: string;\n\t\t\t\tloaded?: string;\n\t\t\t};\n\t\t};\n\t};\n\tactions: {\n\t\tnavigate: ( href: string, options?: NavigateOptions ) => void;\n\t\tprefetch: ( url: string, options?: PrefetchOptions ) => void;\n\t};\n}\n\nexport const { state, actions } = store< Store >( 'core/router', {\n\tstate: {\n\t\turl: window.location.href,\n\t\tnavigation: {\n\t\t\thasStarted: false,\n\t\t\thasFinished: false,\n\t\t\tmessage: '',\n\t\t},\n\t},\n\tactions: {\n\t\t/**\n\t\t * Navigates to the specified page.\n\t\t *\n\t\t * This function normalizes the passed href, fetchs the page HTML if\n\t\t * needed, and updates any interactive regions whose contents have\n\t\t * changed. It also creates a new entry in the browser session history.\n\t\t *\n\t\t * @param href The page href.\n\t\t * @param [options] Options object.\n\t\t * @param [options.force] If true, it forces re-fetching the URL.\n\t\t * @param [options.html] HTML string to be used instead of fetching the requested URL.\n\t\t * @param [options.replace] If true, it replaces the current entry in the browser session history.\n\t\t * @param [options.timeout] Time until the navigation is aborted, in milliseconds. Default is 10000.\n\t\t * @param [options.loadingAnimation] Whether an animation should be shown while navigating. Default to `true`.\n\t\t * @param [options.screenReaderAnnouncement] Whether a message for screen readers should be announced while navigating. Default to `true`.\n\t\t *\n\t\t * @return Promise that resolves once the navigation is completed or aborted.\n\t\t */\n\t\t*navigate( href: string, options: NavigateOptions = {} ) {\n\t\t\tconst { clientNavigationDisabled } = getConfig();\n\t\t\tif ( clientNavigationDisabled ) {\n\t\t\t\tyield forcePageReload( href );\n\t\t\t}\n\n\t\t\tconst pagePath = getPagePath( href );\n\t\t\tconst { navigation } = state;\n\t\t\tconst {\n\t\t\t\tloadingAnimation = true,\n\t\t\t\tscreenReaderAnnouncement = true,\n\t\t\t\ttimeout = 10000,\n\t\t\t} = options;\n\n\t\t\tnavigatingTo = href;\n\t\t\tactions.prefetch( pagePath, options );\n\n\t\t\t// Create a promise that resolves when the specified timeout ends.\n\t\t\t// The timeout value is 10 seconds by default.\n\t\t\tconst timeoutPromise = new Promise< void >( ( resolve ) =>\n\t\t\t\tsetTimeout( resolve, timeout )\n\t\t\t);\n\n\t\t\t// Don't update the navigation status immediately, wait 400 ms.\n\t\t\tconst loadingTimeout = setTimeout( () => {\n\t\t\t\tif ( navigatingTo !== href ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( loadingAnimation ) {\n\t\t\t\t\tnavigation.hasStarted = true;\n\t\t\t\t\tnavigation.hasFinished = false;\n\t\t\t\t}\n\t\t\t\tif ( screenReaderAnnouncement ) {\n\t\t\t\t\ta11ySpeak( 'loading' );\n\t\t\t\t}\n\t\t\t}, 400 );\n\n\t\t\tconst page = yield Promise.race( [\n\t\t\t\tpages.get( pagePath ),\n\t\t\t\ttimeoutPromise,\n\t\t\t] );\n\n\t\t\t// Dismiss loading message if it hasn't been added yet.\n\t\t\tclearTimeout( loadingTimeout );\n\n\t\t\t// Once the page is fetched, the destination URL could have changed\n\t\t\t// (e.g., by clicking another link in the meantime). If so, bail\n\t\t\t// out, and let the newer execution to update the HTML.\n\t\t\tif ( navigatingTo !== href ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tpage &&\n\t\t\t\t! page.initialData?.config?.[ 'core/router' ]\n\t\t\t\t\t?.clientNavigationDisabled\n\t\t\t) {\n\t\t\t\tyield renderRegions( page );\n\t\t\t\twindow.history[\n\t\t\t\t\toptions.replace ? 'replaceState' : 'pushState'\n\t\t\t\t]( {}, '', href );\n\n\t\t\t\t// Update the URL in the state.\n\t\t\t\tstate.url = href;\n\n\t\t\t\t// Update the navigation status once the the new page rendering\n\t\t\t\t// has been completed.\n\t\t\t\tif ( loadingAnimation ) {\n\t\t\t\t\tnavigation.hasStarted = false;\n\t\t\t\t\tnavigation.hasFinished = true;\n\t\t\t\t}\n\n\t\t\t\tif ( screenReaderAnnouncement ) {\n\t\t\t\t\ta11ySpeak( 'loaded' );\n\t\t\t\t}\n\n\t\t\t\t// Scroll to the anchor if exits in the link.\n\t\t\t\tconst { hash } = new URL( href, window.location.href );\n\t\t\t\tif ( hash ) {\n\t\t\t\t\tdocument.querySelector( hash )?.scrollIntoView();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tyield forcePageReload( href );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Prefetchs the page with the passed URL.\n\t\t *\n\t\t * The function normalizes the URL and stores internally the fetch\n\t\t * promise, to avoid triggering a second fetch for an ongoing request.\n\t\t *\n\t\t * @param url The page URL.\n\t\t * @param [options] Options object.\n\t\t * @param [options.force] Force fetching the URL again.\n\t\t * @param [options.html] HTML string to be used instead of fetching the requested URL.\n\t\t */\n\t\tprefetch( url: string, options: PrefetchOptions = {} ) {\n\t\t\tconst { clientNavigationDisabled } = getConfig();\n\t\t\tif ( clientNavigationDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst pagePath = getPagePath( url );\n\t\t\tif ( options.force || ! pages.has( pagePath ) ) {\n\t\t\t\tpages.set(\n\t\t\t\t\tpagePath,\n\t\t\t\t\tfetchPage( pagePath, { html: options.html } )\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t},\n} );\n\n/**\n * Announces a message to screen readers.\n *\n * This is a wrapper around the `@wordpress/a11y` package's `speak` function. It handles importing\n * the package on demand and should be used instead of calling `ally.speak` direacly.\n *\n * @param messageKey The message to be announced by assistive technologies.\n */\nfunction a11ySpeak( messageKey: keyof typeof navigationTexts ) {\n\tif ( ! hasLoadedNavigationTextsData ) {\n\t\thasLoadedNavigationTextsData = true;\n\t\tconst content = document.getElementById(\n\t\t\t'wp-script-module-data-@wordpress/interactivity-router'\n\t\t)?.textContent;\n\t\tif ( content ) {\n\t\t\ttry {\n\t\t\t\tconst parsed = JSON.parse( content );\n\t\t\t\tif ( typeof parsed?.i18n?.loading === 'string' ) {\n\t\t\t\t\tnavigationTexts.loading = parsed.i18n.loading;\n\t\t\t\t}\n\t\t\t\tif ( typeof parsed?.i18n?.loaded === 'string' ) {\n\t\t\t\t\tnavigationTexts.loaded = parsed.i18n.loaded;\n\t\t\t\t}\n\t\t\t} catch {}\n\t\t} else {\n\t\t\t// Fallback to localized strings from Interactivity API state.\n\t\t\tif ( state.navigation.texts?.loading ) {\n\t\t\t\tnavigationTexts.loading = state.navigation.texts.loading;\n\t\t\t}\n\t\t\tif ( state.navigation.texts?.loaded ) {\n\t\t\t\tnavigationTexts.loaded = state.navigation.texts.loaded;\n\t\t\t}\n\t\t}\n\t}\n\n\tconst message = navigationTexts[ messageKey ];\n\n\tif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\t\timport( '@wordpress/a11y' ).then(\n\t\t\t( { speak } ) => speak( message ),\n\t\t\t// Ignore failures to load the a11y module.\n\t\t\t() => {}\n\t\t);\n\t} else {\n\t\tstate.navigation.message =\n\t\t\t// Announce that the page has been loaded. If the message is the\n\t\t\t// same, we use a no-break space similar to the @wordpress/a11y\n\t\t\t// package: https://github.com/WordPress/gutenberg/blob/c395242b8e6ee20f8b06c199e4fc2920d7018af1/packages/a11y/src/filter-message.js#L20-L26\n\t\t\tmessage + ( state.navigation.message === message ? '\\u00A0' : '' );\n\t}\n}\n\n// Add click and prefetch to all links.\nif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\tif ( navigationMode === 'fullPage' ) {\n\t\t// Navigate on click.\n\t\tdocument.addEventListener(\n\t\t\t'click',\n\t\t\tfunction ( event ) {\n\t\t\t\tconst ref = ( event.target as Element ).closest( 'a' );\n\t\t\t\tif ( isValidLink( ref ) && isValidEvent( event ) ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tactions.navigate( ref.href );\n\t\t\t\t}\n\t\t\t},\n\t\t\ttrue\n\t\t);\n\t\t// Prefetch on hover.\n\t\tdocument.addEventListener(\n\t\t\t'mouseenter',\n\t\t\tfunction ( event ) {\n\t\t\t\tif ( ( event.target as Element )?.nodeName === 'A' ) {\n\t\t\t\t\tconst ref = ( event.target as Element ).closest( 'a' );\n\t\t\t\t\tif ( isValidLink( ref ) && isValidEvent( event ) ) {\n\t\t\t\t\t\tactions.prefetch( ref.href );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttrue\n\t\t);\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["store","privateApis","getConfig","fetchHeadAssets","updateHead","directivePrefix","getRegionRootFragment","initialVdom","toVdom","render","parseServerData","populateServerData","batch","navigationMode","_getConfig$navigation","pages","Map","headElements","getPagePath","url","u","URL","window","location","href","pathname","search","fetchPage","html","res","fetch","status","text","dom","DOMParser","parseFromString","regionsToVdom","e","vdom","regions","body","undefined","head","globalThis","IS_GUTENBERG_PLUGIN","get","document","attrName","querySelectorAll","forEach","region","id","getAttribute","has","title","querySelector","innerText","initialData","renderRegions","page","fragment","forcePageReload","assign","Promise","addEventListener","pagePath","state","reload","map","call","script","set","tag","textContent","resolve","isValidLink","ref","HTMLAnchorElement","target","origin","startsWith","searchParams","isValidEvent","event","button","metaKey","ctrlKey","altKey","shiftKey","defaultPrevented","navigatingTo","hasLoadedNavigationTextsData","navigationTexts","loading","loaded","actions","navigation","hasStarted","hasFinished","navigate","options","clientNavigationDisabled","loadingAnimation","screenReaderAnnouncement","timeout","prefetch","timeoutPromise","setTimeout","loadingTimeout","a11ySpeak","race","clearTimeout","config","history","replace","hash","scrollIntoView","force","messageKey","content","getElementById","parsed","JSON","parse","i18n","texts","message","then","speak","closest","preventDefault","nodeName"],"sources":["@wordpress/interactivity-router/src/index.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store, privateApis, getConfig } from '@wordpress/interactivity';\n\n/**\n * Internal dependencies\n */\nimport { fetchHeadAssets, updateHead } from './head';\n\nconst {\n\tdirectivePrefix,\n\tgetRegionRootFragment,\n\tinitialVdom,\n\ttoVdom,\n\trender,\n\tparseServerData,\n\tpopulateServerData,\n\tbatch,\n} = privateApis(\n\t'I acknowledge that using private APIs means my theme or plugin will inevitably break in the next version of WordPress.'\n);\n\ninterface NavigateOptions {\n\tforce?: boolean;\n\thtml?: string;\n\treplace?: boolean;\n\ttimeout?: number;\n\tloadingAnimation?: boolean;\n\tscreenReaderAnnouncement?: boolean;\n}\n\ninterface PrefetchOptions {\n\tforce?: boolean;\n\thtml?: string;\n}\n\ninterface VdomParams {\n\tvdom?: typeof initialVdom;\n}\n\ninterface Page {\n\tregions: Record< string, any >;\n\thead: HTMLHeadElement[];\n\ttitle: string;\n\tinitialData: any;\n}\n\ntype RegionsToVdom = ( dom: Document, params?: VdomParams ) => Promise< Page >;\n\n// Check if the navigation mode is full page or region based.\nconst navigationMode: 'regionBased' | 'fullPage' =\n\tgetConfig( 'core/router' ).navigationMode ?? 'regionBased';\n\n// The cache of visited and prefetched pages, stylesheets and scripts.\nconst pages = new Map< string, Promise< Page | false > >();\nconst headElements = new Map< string, { tag: HTMLElement; text: string } >();\n\n// Helper to remove domain and hash from the URL. We are only interesting in\n// caching the path and the query.\nconst getPagePath = ( url: string ) => {\n\tconst u = new URL( url, window.location.href );\n\treturn u.pathname + u.search;\n};\n\n// Fetch a new page and convert it to a static virtual DOM.\nconst fetchPage = async ( url: string, { html }: { html: string } ) => {\n\ttry {\n\t\tif ( ! html ) {\n\t\t\tconst res = await window.fetch( url );\n\t\t\tif ( res.status !== 200 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\thtml = await res.text();\n\t\t}\n\t\tconst dom = new window.DOMParser().parseFromString( html, 'text/html' );\n\t\treturn regionsToVdom( dom );\n\t} catch ( e ) {\n\t\treturn false;\n\t}\n};\n\n// Return an object with VDOM trees of those HTML regions marked with a\n// `router-region` directive.\nconst regionsToVdom: RegionsToVdom = async ( dom, { vdom } = {} ) => {\n\tconst regions = { body: undefined };\n\tlet head: HTMLElement[];\n\tif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\t\tif ( navigationMode === 'fullPage' ) {\n\t\t\thead = await fetchHeadAssets( dom, headElements );\n\t\t\tregions.body = vdom\n\t\t\t\t? vdom.get( document.body )\n\t\t\t\t: toVdom( dom.body );\n\t\t}\n\t}\n\tif ( navigationMode === 'regionBased' ) {\n\t\tconst attrName = `data-${ directivePrefix }-router-region`;\n\t\tdom.querySelectorAll( `[${ attrName }]` ).forEach( ( region ) => {\n\t\t\tconst id = region.getAttribute( attrName );\n\t\t\tregions[ id ] = vdom?.has( region )\n\t\t\t\t? vdom.get( region )\n\t\t\t\t: toVdom( region );\n\t\t} );\n\t}\n\tconst title = dom.querySelector( 'title' )?.innerText;\n\tconst initialData = parseServerData( dom );\n\treturn { regions, head, title, initialData };\n};\n\n// Render all interactive regions contained in the given page.\nconst renderRegions = ( page: Page ) => {\n\tbatch( () => {\n\t\tif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\t\t\tif ( navigationMode === 'fullPage' ) {\n\t\t\t\t// Once this code is tested and more mature, the head should be updated for region based navigation as well.\n\t\t\t\tupdateHead( page.head );\n\t\t\t\tconst fragment = getRegionRootFragment( document.body );\n\t\t\t\trender( page.regions.body, fragment );\n\t\t\t}\n\t\t}\n\t\tif ( navigationMode === 'regionBased' ) {\n\t\t\tpopulateServerData( page.initialData );\n\t\t\tconst attrName = `data-${ directivePrefix }-router-region`;\n\t\t\tdocument\n\t\t\t\t.querySelectorAll( `[${ attrName }]` )\n\t\t\t\t.forEach( ( region ) => {\n\t\t\t\t\tconst id = region.getAttribute( attrName );\n\t\t\t\t\tconst fragment = getRegionRootFragment( region );\n\t\t\t\t\trender( page.regions[ id ], fragment );\n\t\t\t\t} );\n\t\t}\n\t\tif ( page.title ) {\n\t\t\tdocument.title = page.title;\n\t\t}\n\t} );\n};\n\n/**\n * Load the given page forcing a full page reload.\n *\n * The function returns a promise that won't resolve, useful to prevent any\n * potential feedback indicating that the navigation has finished while the new\n * page is being loaded.\n *\n * @param href The page href.\n * @return Promise that never resolves.\n */\nconst forcePageReload = ( href: string ) => {\n\twindow.location.assign( href );\n\treturn new Promise( () => {} );\n};\n\n// Listen to the back and forward buttons and restore the page if it's in the\n// cache.\nwindow.addEventListener( 'popstate', async () => {\n\tconst pagePath = getPagePath( window.location.href ); // Remove hash.\n\tconst page = pages.has( pagePath ) && ( await pages.get( pagePath ) );\n\tif ( page ) {\n\t\trenderRegions( page );\n\t\t// Update the URL in the state.\n\t\tstate.url = window.location.href;\n\t} else {\n\t\twindow.location.reload();\n\t}\n} );\n\n// Initialize the router and cache the initial page using the initial vDOM.\n// Once this code is tested and more mature, the head should be updated for\n// region based navigation as well.\nif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\tif ( navigationMode === 'fullPage' ) {\n\t\t// Cache the scripts. Has to be called before fetching the assets.\n\t\t[].map.call( document.querySelectorAll( 'script[src]' ), ( script ) => {\n\t\t\theadElements.set( script.getAttribute( 'src' ), {\n\t\t\t\ttag: script,\n\t\t\t\ttext: script.textContent,\n\t\t\t} );\n\t\t} );\n\t\tawait fetchHeadAssets( document, headElements );\n\t}\n}\npages.set(\n\tgetPagePath( window.location.href ),\n\tPromise.resolve( regionsToVdom( document, { vdom: initialVdom } ) )\n);\n\n// Check if the link is valid for client-side navigation.\nconst isValidLink = ( ref: HTMLAnchorElement ) =>\n\tref &&\n\tref instanceof window.HTMLAnchorElement &&\n\tref.href &&\n\t( ! ref.target || ref.target === '_self' ) &&\n\tref.origin === window.location.origin &&\n\t! ref.pathname.startsWith( '/wp-admin' ) &&\n\t! ref.pathname.startsWith( '/wp-login.php' ) &&\n\t! ref.getAttribute( 'href' ).startsWith( '#' ) &&\n\t! new URL( ref.href ).searchParams.has( '_wpnonce' );\n\n// Check if the event is valid for client-side navigation.\nconst isValidEvent = ( event: MouseEvent ) =>\n\tevent &&\n\tevent.button === 0 && // Left clicks only.\n\t! event.metaKey && // Open in new tab (Mac).\n\t! event.ctrlKey && // Open in new tab (Windows).\n\t! event.altKey && // Download.\n\t! event.shiftKey &&\n\t! event.defaultPrevented;\n\n// Variable to store the current navigation.\nlet navigatingTo = '';\n\nlet hasLoadedNavigationTextsData = false;\nconst navigationTexts = {\n\tloading: 'Loading page, please wait.',\n\tloaded: 'Page Loaded.',\n};\n\ninterface Store {\n\tstate: {\n\t\turl: string;\n\t\tnavigation: {\n\t\t\thasStarted: boolean;\n\t\t\thasFinished: boolean;\n\t\t};\n\t};\n\tactions: {\n\t\tnavigate: ( href: string, options?: NavigateOptions ) => void;\n\t\tprefetch: ( url: string, options?: PrefetchOptions ) => void;\n\t};\n}\n\nexport const { state, actions } = store< Store >( 'core/router', {\n\tstate: {\n\t\turl: window.location.href,\n\t\tnavigation: {\n\t\t\thasStarted: false,\n\t\t\thasFinished: false,\n\t\t},\n\t},\n\tactions: {\n\t\t/**\n\t\t * Navigates to the specified page.\n\t\t *\n\t\t * This function normalizes the passed href, fetchs the page HTML if\n\t\t * needed, and updates any interactive regions whose contents have\n\t\t * changed. It also creates a new entry in the browser session history.\n\t\t *\n\t\t * @param href The page href.\n\t\t * @param [options] Options object.\n\t\t * @param [options.force] If true, it forces re-fetching the URL.\n\t\t * @param [options.html] HTML string to be used instead of fetching the requested URL.\n\t\t * @param [options.replace] If true, it replaces the current entry in the browser session history.\n\t\t * @param [options.timeout] Time until the navigation is aborted, in milliseconds. Default is 10000.\n\t\t * @param [options.loadingAnimation] Whether an animation should be shown while navigating. Default to `true`.\n\t\t * @param [options.screenReaderAnnouncement] Whether a message for screen readers should be announced while navigating. Default to `true`.\n\t\t *\n\t\t * @return Promise that resolves once the navigation is completed or aborted.\n\t\t */\n\t\t*navigate( href: string, options: NavigateOptions = {} ) {\n\t\t\tconst { clientNavigationDisabled } = getConfig();\n\t\t\tif ( clientNavigationDisabled ) {\n\t\t\t\tyield forcePageReload( href );\n\t\t\t}\n\n\t\t\tconst pagePath = getPagePath( href );\n\t\t\tconst { navigation } = state;\n\t\t\tconst {\n\t\t\t\tloadingAnimation = true,\n\t\t\t\tscreenReaderAnnouncement = true,\n\t\t\t\ttimeout = 10000,\n\t\t\t} = options;\n\n\t\t\tnavigatingTo = href;\n\t\t\tactions.prefetch( pagePath, options );\n\n\t\t\t// Create a promise that resolves when the specified timeout ends.\n\t\t\t// The timeout value is 10 seconds by default.\n\t\t\tconst timeoutPromise = new Promise< void >( ( resolve ) =>\n\t\t\t\tsetTimeout( resolve, timeout )\n\t\t\t);\n\n\t\t\t// Don't update the navigation status immediately, wait 400 ms.\n\t\t\tconst loadingTimeout = setTimeout( () => {\n\t\t\t\tif ( navigatingTo !== href ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( loadingAnimation ) {\n\t\t\t\t\tnavigation.hasStarted = true;\n\t\t\t\t\tnavigation.hasFinished = false;\n\t\t\t\t}\n\t\t\t\tif ( screenReaderAnnouncement ) {\n\t\t\t\t\ta11ySpeak( 'loading' );\n\t\t\t\t}\n\t\t\t}, 400 );\n\n\t\t\tconst page = yield Promise.race( [\n\t\t\t\tpages.get( pagePath ),\n\t\t\t\ttimeoutPromise,\n\t\t\t] );\n\n\t\t\t// Dismiss loading message if it hasn't been added yet.\n\t\t\tclearTimeout( loadingTimeout );\n\n\t\t\t// Once the page is fetched, the destination URL could have changed\n\t\t\t// (e.g., by clicking another link in the meantime). If so, bail\n\t\t\t// out, and let the newer execution to update the HTML.\n\t\t\tif ( navigatingTo !== href ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tpage &&\n\t\t\t\t! page.initialData?.config?.[ 'core/router' ]\n\t\t\t\t\t?.clientNavigationDisabled\n\t\t\t) {\n\t\t\t\tyield renderRegions( page );\n\t\t\t\twindow.history[\n\t\t\t\t\toptions.replace ? 'replaceState' : 'pushState'\n\t\t\t\t]( {}, '', href );\n\n\t\t\t\t// Update the URL in the state.\n\t\t\t\tstate.url = href;\n\n\t\t\t\t// Update the navigation status once the the new page rendering\n\t\t\t\t// has been completed.\n\t\t\t\tif ( loadingAnimation ) {\n\t\t\t\t\tnavigation.hasStarted = false;\n\t\t\t\t\tnavigation.hasFinished = true;\n\t\t\t\t}\n\n\t\t\t\tif ( screenReaderAnnouncement ) {\n\t\t\t\t\ta11ySpeak( 'loaded' );\n\t\t\t\t}\n\n\t\t\t\t// Scroll to the anchor if exits in the link.\n\t\t\t\tconst { hash } = new URL( href, window.location.href );\n\t\t\t\tif ( hash ) {\n\t\t\t\t\tdocument.querySelector( hash )?.scrollIntoView();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tyield forcePageReload( href );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Prefetchs the page with the passed URL.\n\t\t *\n\t\t * The function normalizes the URL and stores internally the fetch\n\t\t * promise, to avoid triggering a second fetch for an ongoing request.\n\t\t *\n\t\t * @param url The page URL.\n\t\t * @param [options] Options object.\n\t\t * @param [options.force] Force fetching the URL again.\n\t\t * @param [options.html] HTML string to be used instead of fetching the requested URL.\n\t\t */\n\t\tprefetch( url: string, options: PrefetchOptions = {} ) {\n\t\t\tconst { clientNavigationDisabled } = getConfig();\n\t\t\tif ( clientNavigationDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst pagePath = getPagePath( url );\n\t\t\tif ( options.force || ! pages.has( pagePath ) ) {\n\t\t\t\tpages.set(\n\t\t\t\t\tpagePath,\n\t\t\t\t\tfetchPage( pagePath, { html: options.html } )\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t},\n} );\n\n/**\n * Announces a message to screen readers.\n *\n * This is a wrapper around the `@wordpress/a11y` package's `speak` function. It handles importing\n * the package on demand and should be used instead of calling `ally.speak` direacly.\n *\n * @param messageKey The message to be announced by assistive technologies.\n */\nfunction a11ySpeak( messageKey: keyof typeof navigationTexts ) {\n\tif ( ! hasLoadedNavigationTextsData ) {\n\t\thasLoadedNavigationTextsData = true;\n\t\tconst content = document.getElementById(\n\t\t\t'wp-script-module-data-@wordpress/interactivity-router'\n\t\t)?.textContent;\n\t\tif ( content ) {\n\t\t\ttry {\n\t\t\t\tconst parsed = JSON.parse( content );\n\t\t\t\tif ( typeof parsed?.i18n?.loading === 'string' ) {\n\t\t\t\t\tnavigationTexts.loading = parsed.i18n.loading;\n\t\t\t\t}\n\t\t\t\tif ( typeof parsed?.i18n?.loaded === 'string' ) {\n\t\t\t\t\tnavigationTexts.loaded = parsed.i18n.loaded;\n\t\t\t\t}\n\t\t\t} catch {}\n\t\t} else {\n\t\t\t// Fallback to localized strings from Interactivity API state.\n\t\t\t// @todo This block is for Core < 6.7.0. Remove when support is dropped.\n\n\t\t\t// @ts-expect-error\n\t\t\tif ( state.navigation.texts?.loading ) {\n\t\t\t\t// @ts-expect-error\n\t\t\t\tnavigationTexts.loading = state.navigation.texts.loading;\n\t\t\t}\n\t\t\t// @ts-expect-error\n\t\t\tif ( state.navigation.texts?.loaded ) {\n\t\t\t\t// @ts-expect-error\n\t\t\t\tnavigationTexts.loaded = state.navigation.texts.loaded;\n\t\t\t}\n\t\t}\n\t}\n\n\tconst message = navigationTexts[ messageKey ];\n\n\timport( '@wordpress/a11y' ).then(\n\t\t( { speak } ) => speak( message ),\n\t\t// Ignore failures to load the a11y module.\n\t\t() => {}\n\t);\n}\n\n// Add click and prefetch to all links.\nif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\tif ( navigationMode === 'fullPage' ) {\n\t\t// Navigate on click.\n\t\tdocument.addEventListener(\n\t\t\t'click',\n\t\t\tfunction ( event ) {\n\t\t\t\tconst ref = ( event.target as Element ).closest( 'a' );\n\t\t\t\tif ( isValidLink( ref ) && isValidEvent( event ) ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tactions.navigate( ref.href );\n\t\t\t\t}\n\t\t\t},\n\t\t\ttrue\n\t\t);\n\t\t// Prefetch on hover.\n\t\tdocument.addEventListener(\n\t\t\t'mouseenter',\n\t\t\tfunction ( event ) {\n\t\t\t\tif ( ( event.target as Element )?.nodeName === 'A' ) {\n\t\t\t\t\tconst ref = ( event.target as Element ).closest( 'a' );\n\t\t\t\t\tif ( isValidLink( ref ) && isValidEvent( event ) ) {\n\t\t\t\t\t\tactions.prefetch( ref.href );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttrue\n\t\t);\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
@@ -15,11 +15,6 @@ export declare const state: {
15
15
  navigation: {
16
16
  hasStarted: boolean;
17
17
  hasFinished: boolean;
18
- message: string;
19
- texts?: {
20
- loading?: string;
21
- loaded?: string;
22
- };
23
18
  };
24
19
  }, actions: {
25
20
  navigate: (href: string, options?: NavigateOptions) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuBA,UAAU,eAAe;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,UAAU,eAAe;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAyMD,eAAO,MAAQ,KAAK;SAjBb,MAAM;gBACC;QACX,UAAU,EAAE,OAAO,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE;YACP,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,MAAM,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC;KACF;GAQmB,OAAO;cALjB,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,KAAM,IAAI;cACnD,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,KAAM,IAAI;CAiJ3D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuBA,UAAU,eAAe;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,UAAU,eAAe;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAoMD,eAAO,MAAQ,KAAK;SAZb,MAAM;gBACC;QACX,UAAU,EAAE,OAAO,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;KACrB;GAQmB,OAAO;cALjB,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,KAAM,IAAI;cACnD,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,KAAM,IAAI;CAgJ3D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/interactivity-router",
3
- "version": "2.8.2",
3
+ "version": "2.8.3",
4
4
  "description": "Package that exposes state and actions from the `core/router` store, part of the Interactivity API.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -28,11 +28,11 @@
28
28
  "types": "build-types",
29
29
  "wpScriptModuleExports": "./build-module/index.js",
30
30
  "dependencies": {
31
- "@wordpress/a11y": "^4.8.1",
31
+ "@wordpress/a11y": "^4.8.2",
32
32
  "@wordpress/interactivity": "^6.8.2"
33
33
  },
34
34
  "publishConfig": {
35
35
  "access": "public"
36
36
  },
37
- "gitHead": "3686e926862c54c6326fe97277e0a19f8bbfafdd"
37
+ "gitHead": "6187079697e13c3292eb098d6338523a6676c6e8"
38
38
  }
package/src/index.ts CHANGED
@@ -221,11 +221,6 @@ interface Store {
221
221
  navigation: {
222
222
  hasStarted: boolean;
223
223
  hasFinished: boolean;
224
- message: string;
225
- texts?: {
226
- loading?: string;
227
- loaded?: string;
228
- };
229
224
  };
230
225
  };
231
226
  actions: {
@@ -240,7 +235,6 @@ export const { state, actions } = store< Store >( 'core/router', {
240
235
  navigation: {
241
236
  hasStarted: false,
242
237
  hasFinished: false,
243
- message: '',
244
238
  },
245
239
  },
246
240
  actions: {
@@ -403,10 +397,16 @@ function a11ySpeak( messageKey: keyof typeof navigationTexts ) {
403
397
  } catch {}
404
398
  } else {
405
399
  // Fallback to localized strings from Interactivity API state.
400
+ // @todo This block is for Core < 6.7.0. Remove when support is dropped.
401
+
402
+ // @ts-expect-error
406
403
  if ( state.navigation.texts?.loading ) {
404
+ // @ts-expect-error
407
405
  navigationTexts.loading = state.navigation.texts.loading;
408
406
  }
407
+ // @ts-expect-error
409
408
  if ( state.navigation.texts?.loaded ) {
409
+ // @ts-expect-error
410
410
  navigationTexts.loaded = state.navigation.texts.loaded;
411
411
  }
412
412
  }
@@ -414,19 +414,11 @@ function a11ySpeak( messageKey: keyof typeof navigationTexts ) {
414
414
 
415
415
  const message = navigationTexts[ messageKey ];
416
416
 
417
- if ( globalThis.IS_GUTENBERG_PLUGIN ) {
418
- import( '@wordpress/a11y' ).then(
419
- ( { speak } ) => speak( message ),
420
- // Ignore failures to load the a11y module.
421
- () => {}
422
- );
423
- } else {
424
- state.navigation.message =
425
- // Announce that the page has been loaded. If the message is the
426
- // same, we use a no-break space similar to the @wordpress/a11y
427
- // package: https://github.com/WordPress/gutenberg/blob/c395242b8e6ee20f8b06c199e4fc2920d7018af1/packages/a11y/src/filter-message.js#L20-L26
428
- message + ( state.navigation.message === message ? '\u00A0' : '' );
429
- }
417
+ import( '@wordpress/a11y' ).then(
418
+ ( { speak } ) => speak( message ),
419
+ // Ignore failures to load the a11y module.
420
+ () => {}
421
+ );
430
422
  }
431
423
 
432
424
  // Add click and prefetch to all links.
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/typescript/lib/lib.esnext.string.d.ts","../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/typescript/lib/lib.esnext.object.d.ts","../../node_modules/typescript/lib/lib.esnext.regexp.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/head.ts","../interactivity/build-types/store.d.ts","../interactivity/node_modules/preact/src/jsx.d.ts","../interactivity/node_modules/preact/src/index.d.ts","../interactivity/build-types/hooks.d.ts","../interactivity/build-types/scopes.d.ts","../interactivity/node_modules/preact/hooks/src/index.d.ts","../interactivity/build-types/utils.d.ts","../interactivity/build-types/index.d.ts","../a11y/build-types/shared/index.d.ts","../a11y/build-types/index.d.ts","./src/index.ts"],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","17edc026abf73c5c2dd508652d63f68ec4efd9d4856e3469890d27598209feb5",{"version":"4af6b0c727b7a2896463d512fafd23634229adf69ac7c00e2ae15a09cb084fad","affectsGlobalScope":true},{"version":"9c00a480825408b6a24c63c1b71362232927247595d7c97659bc24dc68ae0757","affectsGlobalScope":true},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true},{"version":"ae37d6ccd1560b0203ab88d46987393adaaa78c919e51acf32fb82c86502e98c","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true},{"version":"0b11f3ca66aa33124202c80b70cd203219c3d4460cfc165e0707aa9ec710fc53","affectsGlobalScope":true},{"version":"6a3f5a0129cc80cf439ab71164334d649b47059a4f5afca90282362407d0c87f","affectsGlobalScope":true},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true},{"version":"15b98a533864d324e5f57cd3cfc0579b231df58c1c0f6063ea0fcb13c3c74ff9","affectsGlobalScope":true},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"e63604527c525eb05fd596ec23409ef3be869a10031b165a810f49451cc4eca5","signature":"53656630dd2c8f772bca78d0a149057f89f1e3092094be56dc02b0a5743234ad"},"786a4c378f92269655a24155dfc5b09d7c0775de6c491f5797964ee56659fd58","290ae21b816c4ed479be7a08a86d99afcc2d200028ecdcf437f1776dfc94ed68","5ff856251ae237dbc86c112d2ef1060eebda755c708a1361904abfbb6fc6ea96","f0c2ac6f2503e85fc256150d639eb2275e91a2d49897dd4c81010ce41ddd16a1","3f6aec309abf78b3c614cd291c1338c87af8bd0a4bf7287ccb5f987bae33724b","414c9c77766f65ad0b2f005f8cca243df26eebe8a07ee58520365c7df060d37e","fba7d69a3740141744d70c3118cff7b0ca5ba8b1d02c3df66b47d0ef25031dca","77b39f45a829c695432cd2544d0420e1b8e3a907907eb3b5dd4cb0917f00f1df","6c4f873952206dd61aae780839bc0ab0999281dad16a8626242311fa813e1ab2","3d7a81d5202f0ecb42a07bc4973e2094e291aefd583413f98b1cfdbb1d4e0816",{"version":"d2827f7277d294cc4642ebad64fd2b896b1780e4918283aca37935e50b048dae","signature":"387bc18992c12c3983780cf01bad1e45446fed3e6e87d93a17236fd6e0ef44de"}],"root":[74,85],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"checkJs":false,"composite":true,"declaration":true,"declarationDir":"./build-types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":false,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"rootDir":"./src","skipDefaultLibCheck":true,"strict":false,"target":99},"fileIdsList":[[83],[74,82,84],[77,79],[75,79,80,81],[77,78],[80],[77],[76]],"referencedMap":[[84,1],[85,2],[78,3],[82,4],[79,5],[81,6],[80,7],[77,8],[76,7]],"latestChangedDtsFile":"./build-types/index.d.ts"},"version":"5.5.3"}
1
+ {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/typescript/lib/lib.esnext.string.d.ts","../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/typescript/lib/lib.esnext.object.d.ts","../../node_modules/typescript/lib/lib.esnext.regexp.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/head.ts","../interactivity/build-types/store.d.ts","../interactivity/node_modules/preact/src/jsx.d.ts","../interactivity/node_modules/preact/src/index.d.ts","../interactivity/build-types/hooks.d.ts","../interactivity/build-types/scopes.d.ts","../interactivity/node_modules/preact/hooks/src/index.d.ts","../interactivity/build-types/utils.d.ts","../interactivity/build-types/index.d.ts","../a11y/build-types/shared/index.d.ts","../a11y/build-types/index.d.ts","./src/index.ts"],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","17edc026abf73c5c2dd508652d63f68ec4efd9d4856e3469890d27598209feb5",{"version":"4af6b0c727b7a2896463d512fafd23634229adf69ac7c00e2ae15a09cb084fad","affectsGlobalScope":true},{"version":"9c00a480825408b6a24c63c1b71362232927247595d7c97659bc24dc68ae0757","affectsGlobalScope":true},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true},{"version":"ae37d6ccd1560b0203ab88d46987393adaaa78c919e51acf32fb82c86502e98c","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true},{"version":"0b11f3ca66aa33124202c80b70cd203219c3d4460cfc165e0707aa9ec710fc53","affectsGlobalScope":true},{"version":"6a3f5a0129cc80cf439ab71164334d649b47059a4f5afca90282362407d0c87f","affectsGlobalScope":true},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true},{"version":"15b98a533864d324e5f57cd3cfc0579b231df58c1c0f6063ea0fcb13c3c74ff9","affectsGlobalScope":true},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"e63604527c525eb05fd596ec23409ef3be869a10031b165a810f49451cc4eca5","signature":"53656630dd2c8f772bca78d0a149057f89f1e3092094be56dc02b0a5743234ad"},"786a4c378f92269655a24155dfc5b09d7c0775de6c491f5797964ee56659fd58","290ae21b816c4ed479be7a08a86d99afcc2d200028ecdcf437f1776dfc94ed68","5ff856251ae237dbc86c112d2ef1060eebda755c708a1361904abfbb6fc6ea96","f0c2ac6f2503e85fc256150d639eb2275e91a2d49897dd4c81010ce41ddd16a1","3f6aec309abf78b3c614cd291c1338c87af8bd0a4bf7287ccb5f987bae33724b","414c9c77766f65ad0b2f005f8cca243df26eebe8a07ee58520365c7df060d37e","fba7d69a3740141744d70c3118cff7b0ca5ba8b1d02c3df66b47d0ef25031dca","77b39f45a829c695432cd2544d0420e1b8e3a907907eb3b5dd4cb0917f00f1df","6c4f873952206dd61aae780839bc0ab0999281dad16a8626242311fa813e1ab2","3d7a81d5202f0ecb42a07bc4973e2094e291aefd583413f98b1cfdbb1d4e0816",{"version":"d2e5a9a8773c94b773c6cc46d786b80aaded1aee329a855080e7941ce11c1590","signature":"9f78ce079d21978b746d52f58c245a99df5e8aad36796317302939e210c9bb8d"}],"root":[74,85],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"checkJs":false,"composite":true,"declaration":true,"declarationDir":"./build-types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":false,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"rootDir":"./src","skipDefaultLibCheck":true,"strict":false,"target":99},"fileIdsList":[[83],[74,82,84],[77,79],[75,79,80,81],[77,78],[80],[77],[76]],"referencedMap":[[84,1],[85,2],[78,3],[82,4],[79,5],[81,6],[80,7],[77,8],[76,7]],"latestChangedDtsFile":"./build-types/index.d.ts"},"version":"5.5.3"}