11///////////////////////////// Make headers linkable /////////////////////////////
2+ import $ from 'jquery' ;
3+ import { scrollToAnchor } from './scroll.js' ;
4+
5+ // Expand accordions on load based on URL anchor
6+ function openAccordionByHash ( ) {
7+ var anchor = window . location . hash ;
8+
9+ function expandElement ( ) {
10+ if ( $ ( anchor ) . parents ( '.expand' ) . length > 0 ) {
11+ return $ ( anchor ) . closest ( '.expand' ) . children ( '.expand-label' ) ;
12+ } else if ( $ ( anchor ) . hasClass ( 'expand' ) ) {
13+ return $ ( anchor ) . children ( '.expand-label' ) ;
14+ }
15+ } ;
16+
17+ if ( expandElement ( ) != null ) {
18+ if ( expandElement ( ) . children ( '.expand-toggle' ) . hasClass ( 'open' ) ) { }
19+ else {
20+ expandElement ( ) . children ( '.expand-toggle' ) . trigger ( 'click' ) ;
21+ } ;
22+ } ;
23+ } ;
24+
25+ function contentInteractions ( ) {
226
327var headingWhiteList = $ ( "\
428 .article--content h2, \
@@ -12,7 +36,7 @@ var headingBlackList = ("\
1236 .influxdbu-banner h4 \
1337" ) ;
1438
15- headingElements = headingWhiteList . not ( headingBlackList ) ;
39+ const headingElements = headingWhiteList . not ( headingBlackList ) ;
1640
1741headingElements . each ( function ( ) {
1842 function getLink ( element ) {
@@ -33,26 +57,6 @@ var elementWhiteList = [
3357 "a.fullscreen-close"
3458]
3559
36- function scrollToAnchor ( target ) {
37- var $target = $ ( target ) ;
38- if ( $target && $target . length > 0 ) {
39- $ ( 'html, body' ) . stop ( ) . animate ( {
40- 'scrollTop' : ( $target . offset ( ) . top )
41- } , 400 , 'swing' , function ( ) {
42- window . location . hash = target ;
43- } ) ;
44-
45- // Unique accordion functionality
46- // If the target is an accordion element, open the accordion after scrolling
47- if ( $target . hasClass ( 'expand' ) ) {
48- if ( $ ( target + ' .expand-label .expand-toggle' ) . hasClass ( 'open' ) ) { }
49- else {
50- $ ( target + '> .expand-label' ) . trigger ( 'click' ) ;
51- } ;
52- } ;
53- }
54- }
55-
5660$ ( '.article a[href^="#"]:not(' + elementWhiteList + ')' ) . click ( function ( e ) {
5761 e . preventDefault ( ) ;
5862 scrollToAnchor ( this . hash ) ;
@@ -98,25 +102,7 @@ $('.expand-label').click(function() {
98102 $ ( this ) . next ( '.expand-content' ) . slideToggle ( 200 )
99103} )
100104
101- // Expand accordions on load based on URL anchor
102- function openAccordionByHash ( ) {
103- var anchor = window . location . hash ;
104105
105- function expandElement ( ) {
106- if ( $ ( anchor ) . parents ( '.expand' ) . length > 0 ) {
107- return $ ( anchor ) . closest ( '.expand' ) . children ( '.expand-label' ) ;
108- } else if ( $ ( anchor ) . hasClass ( 'expand' ) ) {
109- return $ ( anchor ) . children ( '.expand-label' ) ;
110- }
111- } ;
112-
113- if ( expandElement ( ) != null ) {
114- if ( expandElement ( ) . children ( '.expand-toggle' ) . hasClass ( 'open' ) ) { }
115- else {
116- expandElement ( ) . children ( '.expand-toggle' ) . trigger ( 'click' ) ;
117- } ;
118- } ;
119- } ;
120106
121107// Open accordions by hash on page load.
122108openAccordionByHash ( )
@@ -152,3 +138,9 @@ $('.article--content a').each(function() {
152138 $ ( this ) . attr ( 'target' , '_blank' ) ;
153139 } ;
154140} )
141+
142+ }
143+
144+ export default function ContentInteractions ( ) {
145+ contentInteractions ( ) ;
146+ }
0 commit comments