{"version":3,"sources":["src/scripts/components/references.js"],"names":["$","jQuery","Annotation","$element","label","data","attr","regex","replace","$bubble","find","initialize","format","enable","$label","addClass","html","prepend","on","handleMouseOver","handleMouseOut","removeClass","References","$context","length","createAnnotations","createList","$elements","$articleBody","annotations","i","$e","get","push","$references","findReferences","$wrapper","empty","_","forEach","annotation","createReference","after","next","append","init","document","ready","each","e","context","preventDefault","target","hash","parent","closest","articleAnchors","prev","$target","stop","animate","offset","top","window","location","delegateTarget","anchor","reference","link","hasClass","trigger"],"mappings":"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","file":"references.js","sourcesContent":["var $ = jQuery;\nimport { tooltipAnnotations } from './tooltip-annotation.js';\nimport _ from '../libs/lodash.min.js';\n\nclass Annotation {\n\n constructor($element, label) {\n this.$element = $element;\n this.label = label;\n\n this.data = this.$element.attr('data-annotation');\n let regex = /(https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.#?&//=]*))(?!.)/;\n // let regex = /(https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*))/;\n this.data = this.data.replace(regex, '$1');\n // wait until tooltip code has run\n this.$bubble = this.$element.find('.tooltip__bubble');\n this.initialize();\n }\n\n initialize() {\n this.format();\n this.enable();\n }\n\n format() {\n let $label = this.$element.find('>:first-child');\n $label.addClass('annotation__label');\n $label.html(this.label);\n $label.prepend(``);\n this.$bubble.find('.tooltip__paragraph').html(this.data);\n }\n\n enable() {\n this.$element.on('mouseover', () => {\n this.handleMouseOver();\n });\n\n this.$element.on('mouseout', () => {\n this.handleMouseOut();\n });\n }\n\n handleMouseOver() {\n this.$bubble.addClass('_active');\n }\n\n handleMouseOut() {\n this.$bubble.removeClass('_active');\n }\n\n}\n\nclass References {\n\n constructor($context) {\n if($($context).find('.article__references').length > 0) {\n return false;\n }\n\n this.$context = $context;\n tooltipAnnotations(this.$context);\n this.createAnnotations();\n this.createList();\n }\n\n createAnnotations() {\n let $elements = this.$context.find('.annotation__highlight');\n this.$articleBody = this.$context;\n this.annotations = [];\n for(let i = 0; i < $elements.length; i++) {\n let $e = $($elements.get(i));\n let label = i + 1;\n this.annotations.push(new Annotation($e, label));\n }\n }\n\n createList() {\n this.$references = this.findReferences();\n this.$wrapper = this.$references.find('.accordion-target__wrapper');\n this.$wrapper.empty();\n\n _.forEach(this.annotations, (annotation) => {\n this.createReference(annotation);\n });\n }\n\n findReferences() {\n let $references = $(this.$context).find('.article__references');\n\n if($references.length === 0) {\n\n this.$articleBody.after(`\n \n \n \n \n `);\n\n return this.$articleBody.next();\n }\n\n //removed because it was coming back correct\n // else {\n // //this.$wrapper.empty();\n // return $references;\n // }\n }\n\n createReference(annotation) {\n let {label, data} = annotation;\n this.$wrapper.append(`\n \n
[${label}]\n
\n ${data}\n
\n
\n `);\n }\n\n}\n\nfunction init() {\n // doesn't run on legacy\n $(document).ready(function() {\n $('.article__body-copy').each(function() {\n if($(this).find('.annotation__highlight').length > 0) {\n new References($(this));\n }\n });\n });\n\n $(document).on('newSectionAdded', function(e, context) {\n if($(context).find('.annotation__highlight').length > 0) {\n new References($(context).find('.article__body-copy'));\n }\n });\n\n // TODO: Move these into functions for legacy content\n\n $('.article__references').on('click', '.article__references-wrapper a[href^=\"#_\"]', function(e) {\n e.preventDefault();\n var target = this.hash;\n var parent = $(this).closest('.article__references');\n var articleAnchors = parent.prev('.article__body-copy');\n var $target = articleAnchors.find(target);\n\n $('html, body').stop().animate({\n 'scrollTop': $target.offset().top - 150\n }, 900, 'swing', function () {\n window.location.hash = target;\n });\n });\n\n $('.article__body-copy').on('click', 'a[href^=\"#_\"]', function(e) {\n e.preventDefault();\n var target = this.hash;\n var parent = $(e.delegateTarget);\n var anchor = $(this).attr('name');\n var reference = $(parent).next('.article__references');\n var link = $(reference).find('a[href=\"#'+anchor+'\"]');\n\n if(!$(reference).find('.article__references-toggle').hasClass('_active')) {\n $(reference).find('.article__references-toggle').trigger('click');\n }\n $('html, body').stop().animate({\n 'scrollTop': link.offset().top - 150\n }, 900, 'swing', function () {\n window.location.hash = target;\n });\n\n\n });\n\n}\n\nexport { init as init };\n"]}