PageSourceSearch

https://page.org/wp-content/plugins/bfm-framework-blocks/js/framework-page-banner.js?ver=1790290487

js page.org collected 2026-10-02 02:56:08 UTC 1,928 bytes, 49 lines download raw bytes

1( function () {
2    document.querySelectorAll( '.framework-page-banner__nav--level-1' ).forEach( function ( nav ) {
3        var toggle = nav.querySelector( '.framework-nav__toggle' );
4        var list   = nav.querySelector( '.framework-nav--level-1' );
5
6        function open() {
7            if ( list ) {
8                list.style.top = nav.getBoundingClientRect().bottom + 'px';
9            }
10            nav.classList.add( 'is-open' );
11            if ( toggle ) toggle.setAttribute( 'aria-expanded', 'true' );
12        }
13
14        function close() {
15            nav.classList.remove( 'is-open' );
16            if ( toggle ) toggle.setAttribute( 'aria-expanded', 'false' );
17        }
18
19        // Hover — desktop (within mobile breakpoint)
20        nav.addEventListener( 'mouseenter', open );
21        nav.addEventListener( 'mouseleave', close );
22
23        // Tap — touch devices
24        if ( toggle ) {
25            toggle.addEventListener( 'click', function ( e ) {
26                e.stopPropagation();
27                nav.classList.contains( 'is-open' ) ? close() : open();
28            } );
29        }
30
31        // Reposition on scroll/resize in case nav has moved
32        window.addEventListener( 'resize', function () {
33            if ( nav.classList.contains( 'is-open' ) && list ) {
34                list.style.top = nav.getBoundingClientRect().bottom + 'px';
35            }
36        } );
37    } );
38
39    // Close on tap outside
40    document.addEventListener( 'click', function ( e ) {
41        if ( ! e.target.closest( '.framework-page-banner__nav--level-1' ) ) {
42            document.querySelectorAll( '.framework-page-banner__nav--level-1.is-open' ).forEach( function ( nav ) {
43                nav.classList.remove( 'is-open' );
44                var toggle = nav.querySelector( '.framework-nav__toggle' );
45                if ( toggle ) toggle.setAttribute( 'aria-expanded', 'false' );
46            } );
47        }
48    } );
49} )();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.