{"version":3,"file":"bootstrap_toc.js","mappings":"CAIA,WACI,aAEAA,OAAOC,IAAM,CACTC,QAAS,CAELC,aAAc,SAASC,EAAKC,GAGxB,IAAIC,EAAeF,EAAIG,KAAKF,GAC5B,OAAOD,EAAII,OAAOH,GAAUI,IAAIH,GAAcE,OAAO,wBACzD,EAEAE,qBAAsB,SAASC,GAG3B,OAFWC,EAAED,GAAIE,OACCC,OAAOC,cAAcC,QAAQ,iBAAkB,MAChDL,EAAGM,QAAQF,aAChC,EAEAG,iBAAkB,SAASP,GAEvB,IADA,IAAIQ,EAAaC,KAAKV,qBAAqBC,GAClCU,EAAI,GAAKA,IAAK,CACnB,IAAIC,EAASH,EAMb,GALIE,EAAI,IAEJC,GAAU,IAAMD,IAGfE,SAASC,eAAeF,GACzB,OAAOA,CAEf,CACJ,EAEAG,eAAgB,SAASd,GACrB,GAAIA,EAAGe,GACH,OAAOf,EAAGe,GAEV,IAAIJ,EAASF,KAAKF,iBAAiBP,GAEnC,OADAA,EAAGe,GAAKJ,EACDA,CAEf,EAEAK,cAAe,WACX,OAAOf,EAAE,wBACb,EAEAgB,mBAAoB,SAASC,GACzB,IAAIC,EAAaV,KAAKO,gBAEtB,OADAE,EAAQE,OAAOD,GACRA,CACX,EAEAE,cAAe,SAASV,EAAQT,GAC5B,IAAIoB,EAAKrB,EAAE,WACXqB,EAAGC,KAAK,OAAQ,IAAMZ,GACtBW,EAAGpB,KAAKA,GACR,IAAIsB,EAAMvB,EAAE,aAEZ,OADAuB,EAAIJ,OAAOE,GACJE,CACX,EAEAC,gBAAiB,SAASC,GACtB,IAAIf,EAASF,KAAKK,eAAeY,GAC7BC,EAAW1B,EAAEyB,GACbxB,EAAOyB,EAASC,KAAK,aAAeD,EAASzB,OACjD,OAAOO,KAAKY,cAAcV,EAAQT,EACtC,EAGA2B,YAAa,SAASC,EAAQC,EAAe,GACzC,IAAK,IAAIrB,EAAI,EAAGA,GAAK,EAAGA,IAEpB,GADgBD,KAAKjB,aAAasC,EAAQ,IAAMpB,GAClCsB,OAAS,EACnB,OAAOtB,EAIf,OAAOqB,CACX,EAGAE,YAAa,SAASH,EAAQI,GAC1B,IAAIC,EAAc,IAAMD,EAGpBE,EAAoB,KADHF,EAAW,GAGhC,OAAOzB,KAAKjB,aAAasC,EAAQK,EAAc,IAAMC,EACzD,EAEAC,YAAa,SAASrC,GAClB,OAAOsC,SAAStC,EAAGM,QAAQiC,OAAO,GAAI,GAC1C,EAEAC,YAAa,SAASC,EAAaP,EAAUQ,GACzC,IACIC,EADAC,EAAWH,EAGXlD,EAAUkB,KACdiC,EAAUG,MAAK,SAASnC,EAAGV,GACvB,IAAI8C,EAAUvD,EAAQkC,gBAAgBzB,GACvBT,EAAQ8C,YAAYrC,KAGlBkC,EAEbU,EAAWH,EACJE,GAAYC,IAAaH,IAEhCG,EAAWrD,EAAQ0B,mBAAmB0B,IAG1CC,EAASxB,OAAO0B,GAEhBH,EAAWG,CACf,GACJ,EAEAC,SAAU,SAASC,GACf,IAAIC,EASJ,OAPIA,EADAD,EAAIE,OACG,CACHC,KAAMH,GAGHA,GAENlB,OAASmB,EAAKnB,QAAU7B,EAAEW,SAASwC,MACjCH,CACX,GAIJI,KAAM,SAASJ,IACXA,EAAOxC,KAAKlB,QAAQwD,SAASE,IAGxBE,KAAK5B,KAAK,cAAe,OAE9B,IAAIkB,EAAchC,KAAKlB,QAAQ0B,mBAAmBgC,EAAKE,MACnDjB,EAAWzB,KAAKlB,QAAQsC,YAAYoB,EAAKnB,OAAQmB,EAAKK,wBAA0B,GAChFZ,EAAYjC,KAAKlB,QAAQ0C,YAAYgB,EAAKnB,OAAQI,GACtDzB,KAAKlB,QAAQiD,YAAYC,EAAaP,EAAUQ,EACpD,EASP,CA1JD","sources":["webpack://app/./app/assets/javascripts/vendor/bootstrap-toc.js"],"sourcesContent":["/*!\n * Bootstrap Table of Contents v0.4.1 (http://afeld.github.io/bootstrap-toc/)\n * Copyright 2015 Aidan Feldman\n * Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */\n(function() {\n 'use strict';\n\n window.Toc = {\n helpers: {\n // return all matching elements in the set, or their descendants\n findOrFilter: function($el, selector) {\n // http://danielnouri.org/notes/2011/03/14/a-jquery-find-that-also-finds-the-root-element/\n // http://stackoverflow.com/a/12731439/358804\n var $descendants = $el.find(selector);\n return $el.filter(selector).add($descendants).filter(':not([data-toc-skip])');\n },\n\n generateUniqueIdBase: function(el) {\n var text = $(el).text();\n var anchor = text.trim().toLowerCase().replace(/[^A-Za-z0-9]+/g, '-');\n return anchor || el.tagName.toLowerCase();\n },\n\n generateUniqueId: function(el) {\n var anchorBase = this.generateUniqueIdBase(el);\n for (var i = 0; ; i++) {\n var anchor = anchorBase;\n if (i > 0) {\n // add suffix\n anchor += '-' + i;\n }\n // check if ID already exists\n if (!document.getElementById(anchor)) {\n return anchor;\n }\n }\n },\n\n generateAnchor: function(el) {\n if (el.id) {\n return el.id;\n } else {\n var anchor = this.generateUniqueId(el);\n el.id = anchor;\n return anchor;\n }\n },\n\n createNavList: function() {\n return $('');\n },\n\n createChildNavList: function($parent) {\n var $childList = this.createNavList();\n $parent.append($childList);\n return $childList;\n },\n\n generateNavEl: function(anchor, text) {\n var $a = $('');\n $a.attr('href', '#' + anchor);\n $a.text(text);\n var $li = $('
  • ');\n $li.append($a);\n return $li;\n },\n\n generateNavItem: function(headingEl) {\n var anchor = this.generateAnchor(headingEl);\n var $heading = $(headingEl);\n var text = $heading.data('toc-text') || $heading.text();\n return this.generateNavEl(anchor, text);\n },\n\n // Find the first heading level (`

    `, then `

    `, etc.) that has more than one element. Defaults to 1 (for `

    `).\n getTopLevel: function($scope, defaultValue = 1) {\n for (var i = 1; i <= 6; i++) {\n var $headings = this.findOrFilter($scope, 'h' + i);\n if ($headings.length > 1) {\n return i;\n }\n }\n\n return defaultValue;\n },\n\n // returns the elements for the top level, and the next below it\n getHeadings: function($scope, topLevel) {\n var topSelector = 'h' + topLevel;\n\n var secondaryLevel = topLevel + 1;\n var secondarySelector = 'h' + secondaryLevel;\n\n return this.findOrFilter($scope, topSelector + ',' + secondarySelector);\n },\n\n getNavLevel: function(el) {\n return parseInt(el.tagName.charAt(1), 10);\n },\n\n populateNav: function($topContext, topLevel, $headings) {\n var $context = $topContext;\n var $prevNav;\n\n var helpers = this;\n $headings.each(function(i, el) {\n var $newNav = helpers.generateNavItem(el);\n var navLevel = helpers.getNavLevel(el);\n\n // determine the proper $context\n if (navLevel === topLevel) {\n // use top level\n $context = $topContext;\n } else if ($prevNav && $context === $topContext) {\n // create a new level of the tree and switch to it\n $context = helpers.createChildNavList($prevNav);\n } // else use the current $context\n\n $context.append($newNav);\n\n $prevNav = $newNav;\n });\n },\n\n parseOps: function(arg) {\n var opts;\n if (arg.jquery) {\n opts = {\n $nav: arg\n };\n } else {\n opts = arg;\n }\n opts.$scope = opts.$scope || $(document.body);\n return opts;\n }\n },\n\n // accepts a jQuery object, or an options object\n init: function(opts) {\n opts = this.helpers.parseOps(opts);\n\n // ensure that the data attribute is in place for styling\n opts.$nav.attr('data-toggle', 'toc');\n\n var $topContext = this.helpers.createChildNavList(opts.$nav);\n var topLevel = this.helpers.getTopLevel(opts.$scope, opts.startWithHeadingsLevel || 1);\n var $headings = this.helpers.getHeadings(opts.$scope, topLevel);\n this.helpers.populateNav($topContext, topLevel, $headings);\n }\n };\n\n // $(function() {\n // $('nav[data-toggle=\"toc\"]').each(function(i, el) {\n // var $nav = $(el);\n // Toc.init($nav);\n // });\n // });\n})();"],"names":["window","Toc","helpers","findOrFilter","$el","selector","$descendants","find","filter","add","generateUniqueIdBase","el","$","text","trim","toLowerCase","replace","tagName","generateUniqueId","anchorBase","this","i","anchor","document","getElementById","generateAnchor","id","createNavList","createChildNavList","$parent","$childList","append","generateNavEl","$a","attr","$li","generateNavItem","headingEl","$heading","data","getTopLevel","$scope","defaultValue","length","getHeadings","topLevel","topSelector","secondarySelector","getNavLevel","parseInt","charAt","populateNav","$topContext","$headings","$prevNav","$context","each","$newNav","parseOps","arg","opts","jquery","$nav","body","init","startWithHeadingsLevel"],"sourceRoot":""}