22 * Bootstrap Table of Contents v1.0.1 (http://afeld.github.io/bootstrap-toc/)
33 * Copyright 2015 Aidan Feldman
44 * Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */
5- ! function ( a ) { "use strict" ; window . Toc = { helpers :{ findOrFilter :function ( e , t ) { var n = e . find ( t ) ; return e . filter ( t ) . add ( n ) . filter ( ":not([data-toc-skip])" ) } , generateUniqueIdBase :function ( e ) { return a ( e ) . text ( ) . trim ( ) . replace ( / \' / gi, "" ) . replace ( / [ & + $ , : ; = ? @ " # { } | ^ ~ [ ` % ! ' < > \] \. \/ \( \) \* \\ \n \t \b \v ] / g, "-" ) . replace ( / - { 2 , } / g, "-" ) . substring ( 0 , 64 ) . replace ( / ^ - + | - + $ / gm, "" ) . toLowerCase ( ) || e . tagName . toLowerCase ( ) } , generateUniqueId :function ( e ) { for ( var t = this . generateUniqueIdBase ( e ) , n = 0 ; ; n ++ ) { var r = t ; if ( 0 < n && ( r += "-" + n ) , ! document . getElementById ( r ) ) return r } } , generateAnchor :function ( e ) { if ( e . id ) return e . id ; var t = this . generateUniqueId ( e ) ; return e . id = t } , createNavList :function ( ) { return a ( '<ul class="nav navbar-nav"></ul>' ) } , createChildNavList :function ( e ) { var t = this . createNavList ( ) ; return e . append ( t ) , t } , generateNavEl :function ( e , t ) { var n = a ( '<a class="nav-link"></a>' ) ; n . attr ( "href" , "#" + e ) , n . text ( t ) ; var r = a ( "<li></li>" ) ; return r . append ( n ) , r } , generateNavItem :function ( e ) { var t = this . generateAnchor ( e ) , n = a ( e ) , r = n . data ( "toc-text" ) || n . text ( ) ; return this . generateNavEl ( t , r ) } , getTopLevel :function ( e ) { for ( var t = 1 ; t <= 6 ; t ++ ) { if ( 1 < this . findOrFilter ( e , "h" + t ) . length ) return t } return 1 } , getHeadings :function ( e , t ) { var n = "h" + t , r = "h" + ( t + 1 ) ; return this . findOrFilter ( e , n + "," + r ) } , getNavLevel :function ( e ) { return parseInt ( e . tagName . charAt ( 1 ) , 10 ) } , populateNav :function ( r , a , e ) { var i , s = r , c = this ; e . each ( function ( e , t ) { var n = c . generateNavItem ( t ) ; c . getNavLevel ( t ) === a ?s = r :i && s === r && ( s = c . createChildNavList ( i ) ) , s . append ( n ) , i = n } ) } , parseOps :function ( e ) { var t ; return ( t = e . jquery ?{ $nav :e } :e ) . $scope = t . $scope || a ( document . body ) , t } } , init :function ( e ) { ( e = this . helpers . parseOps ( e ) ) . $nav . attr ( "data-toggle" , "toc" ) ; var t = this . helpers . createChildNavList ( e . $nav ) , n = this . helpers . getTopLevel ( e . $scope ) , r = this . helpers . getHeadings ( e . $scope , n ) ; this . helpers . populateNav ( t , n , r ) } } , a ( function ( ) { a ( 'nav[data-toggle="toc"]' ) . each ( function ( e , t ) { var n = a ( t ) ; Toc . init ( n ) } ) } ) } ( jQuery ) ;
5+ ! ( function ( a ) {
6+ "use strict" ;
7+ ( ( window . Toc = {
8+ helpers : {
9+ findOrFilter : function ( e , t ) {
10+ var n = e . find ( t ) ;
11+ return e . filter ( t ) . add ( n ) . filter ( ":not([data-toc-skip])" ) ;
12+ } ,
13+ generateUniqueIdBase : function ( e ) {
14+ return (
15+ a ( e )
16+ . text ( )
17+ . trim ( )
18+ . replace ( / \' / gi, "" )
19+ . replace ( / [ & + $ , : ; = ? @ " # { } | ^ ~ [ ` % ! ' < > \] \. \/ \( \) \* \\ \n \t \b \v ] / g, "-" )
20+ . replace ( / - { 2 , } / g, "-" )
21+ . substring ( 0 , 64 )
22+ . replace ( / ^ - + | - + $ / gm, "" )
23+ . toLowerCase ( ) || e . tagName . toLowerCase ( )
24+ ) ;
25+ } ,
26+ generateUniqueId : function ( e ) {
27+ for ( var t = this . generateUniqueIdBase ( e ) , n = 0 ; ; n ++ ) {
28+ var r = t ;
29+ if ( ( 0 < n && ( r += "-" + n ) , ! document . getElementById ( r ) ) ) return r ;
30+ }
31+ } ,
32+ generateAnchor : function ( e ) {
33+ if ( e . id ) return e . id ;
34+ var t = this . generateUniqueId ( e ) ;
35+ return ( e . id = t ) ;
36+ } ,
37+ createNavList : function ( ) {
38+ return a ( '<ul class="nav navbar-nav"></ul>' ) ;
39+ } ,
40+ createChildNavList : function ( e ) {
41+ var t = this . createNavList ( ) ;
42+ return ( e . append ( t ) , t ) ;
43+ } ,
44+ generateNavEl : function ( e , t ) {
45+ var n = a ( '<a class="nav-link"></a>' ) ;
46+ ( n . attr ( "href" , "#" + e ) , n . text ( t ) ) ;
47+ var r = a ( "<li></li>" ) ;
48+ return ( r . append ( n ) , r ) ;
49+ } ,
50+ generateNavItem : function ( e ) {
51+ var t = this . generateAnchor ( e ) ,
52+ n = a ( e ) ,
53+ r = n . data ( "toc-text" ) || n . text ( ) ;
54+ return this . generateNavEl ( t , r ) ;
55+ } ,
56+ getTopLevel : function ( e ) {
57+ for ( var t = 1 ; t <= 6 ; t ++ ) {
58+ if ( 1 < this . findOrFilter ( e , "h" + t ) . length ) return t ;
59+ }
60+ return 1 ;
61+ } ,
62+ getHeadings : function ( e , t ) {
63+ var n = "h" + t ,
64+ r = "h" + ( t + 1 ) ;
65+ return this . findOrFilter ( e , n + "," + r ) ;
66+ } ,
67+ getNavLevel : function ( e ) {
68+ return parseInt ( e . tagName . charAt ( 1 ) , 10 ) ;
69+ } ,
70+ populateNav : function ( r , a , e ) {
71+ var i ,
72+ s = r ,
73+ c = this ;
74+ e . each ( function ( e , t ) {
75+ var n = c . generateNavItem ( t ) ;
76+ ( c . getNavLevel ( t ) === a ? ( s = r ) : i && s === r && ( s = c . createChildNavList ( i ) ) , s . append ( n ) , ( i = n ) ) ;
77+ } ) ;
78+ } ,
79+ parseOps : function ( e ) {
80+ var t ;
81+ return ( ( ( t = e . jquery ? { $nav : e } : e ) . $scope = t . $scope || a ( document . body ) ) , t ) ;
82+ } ,
83+ } ,
84+ init : function ( e ) {
85+ ( e = this . helpers . parseOps ( e ) ) . $nav . attr ( "data-toggle" , "toc" ) ;
86+ var t = this . helpers . createChildNavList ( e . $nav ) ,
87+ n = this . helpers . getTopLevel ( e . $scope ) ,
88+ r = this . helpers . getHeadings ( e . $scope , n ) ;
89+ this . helpers . populateNav ( t , n , r ) ;
90+ } ,
91+ } ) ,
92+ a ( function ( ) {
93+ a ( 'nav[data-toggle="toc"]' ) . each ( function ( e , t ) {
94+ var n = a ( t ) ;
95+ Toc . init ( n ) ;
96+ } ) ;
97+ } ) ) ;
98+ } ) ( jQuery ) ;
0 commit comments