{"version":3,"sources":["src/scripts/components/constitution.js"],"names":["$","jQuery","fn","openEssay","nid","html","empty","removeClass","hide","addClass","each","$link","$article","closest","length","first","show","trigger","Drupal","attachBehaviors","get","behaviors","constitutionEssayTabs","attach","context","window","Tabby","handleLinksAndPaths","$essayLinks","i","ajaxLink","$linkElement","elementSettings","base","attr","element","href","url","event","ajax","on","path","sendPageView","newPath","replace","history","pushState","hash","location","pathname","prettyPath","handleTooltips","$constitutionContainer","find","$handler","append","tooltip","drupalSettings","constitutionEssaysTooltip","items","content","target","pos","indexOf","id","substr","trim","output","subheading","essayData","title","article","push","section","join","classes","position","at","collision","using","feedback","$tooltip","offset","left","width","top","css","handleGuides","$node","constMenuBtn","constSliderContainer","constSideBar","constSideBarItem","constEssayContainer","constBodyContainer","slideToggle","toggleClass","closeEssay","$container","container","classList","remove","removeAttr","document","documentElement","body","animate","scrollTop","$closeButton","handleSidebar","sidebar","StickySidebar","containerSelector","innerWrapperSelector","minWidth","handleTabs","addEventListener","$tab","handleGuideLinks","e","preventDefault","args","split","handleAmendmentLinks","amendmentNumber","handleRedirects","redirectPath","$1","toUpperCase","dataLayer","page","init"],"mappings":"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","file":"constitution.js","sourcesContent":["var $ = jQuery;\n\n$.fn.openEssay = function(nid, html) {\n // Empty out all essays and show all constitution text\n $('.con-essay-wrapper').empty();\n $('.con-constitution').removeClass('hidden');\n\n $('.con-essay-container').hide();\n $('.selectric-item-list a').removeClass('active');\n $('.con-essay-block').removeClass('open');\n\n $('.selectric-item-list a[data-href$=\"essay_controller/' + nid + '\"]').addClass('active');\n $('a[data-href$=\"essay_controller/' + nid + '\"]').each(function() {\n const $link = $(this);\n let $article = $link.closest('article.node--type-constitution-guide');\n if (!$article.length) {\n $article = $('article.node--type-constitution-guide').first();\n }\n $('.con-essay-wrapper', $article).html(html);\n $('.con-essay-container', $article).show();\n $('.con-essay-block', $article).addClass('open');\n\n $article.trigger('openEssay');\n Drupal.attachBehaviors($('.con-essay-wrapper', $article).get(0));\n });\n};\n\nDrupal.behaviors.constitutionEssayTabs = {\n attach: function(context) {\n if (!$('.con-essay-tabs', context).length || typeof window.Tabby === 'undefined') {\n return;\n }\n new Tabby('.con-essay-tabs [data-tabs]');\n }\n};\n\nfunction handleLinksAndPaths() {\n const $essayLinks = $('a[data-href]');\n\n // Make clicking the essays trigger the ajax call.\n $essayLinks.each(function(i, ajaxLink) {\n var $linkElement = $(ajaxLink);\n var elementSettings = {\n base: $linkElement.attr('id'),\n element: ajaxLink\n };\n var href = $linkElement.attr('data-href');\n if (href) {\n elementSettings.url = href;\n elementSettings.event = 'click';\n }\n Drupal.ajax(elementSettings);\n });\n \n // Change url on essay click.\n $essayLinks.on('click', function() {\n const path = $(this).attr('href');\n sendPageView(path);\n const newPath = path.replace(\"/constitution/\", \"/constitution/#!/\")\n window.history.pushState({}, '', newPath);\n })\n \n // Correct path from e.g. /constitution#!/x to /constitution/#!/x\n let hash = window.location.hash;\n let path = window.location.pathname;\n if (hash) {\n const newPath = path + \"/\" + hash;\n window.history.pushState({}, '', newPath);\n }\n \n // Load essay via url.\n if (hash) {\n const prettyPath = path + \"/\" + hash.replace(\"#!/\", \"\");\n $(`a[href=\"${prettyPath}\"]`).first().trigger('click');\n }\n}\n\nfunction handleTooltips() {\n const $constitutionContainer = $('.constitution-container');\n\n $('.con-body a[data-href]').each(function() {\n const $link = $(this);\n if ($link.find('.tooltip__handler').length) {\n return;\n }\n const $handler = $('');\n $link.append($handler);\n });\n\n if (typeof $.fn.tooltip === 'function'\n && typeof drupalSettings.constitutionEssaysTooltip === 'object') {\n $constitutionContainer.tooltip({\n items: '.con-body a[data-href^=\"/essay_controller/\"]',\n content: function() {\n const $link = $(this);\n const target = $link.attr('data-href');\n const pos = target.indexOf('essay_controller/');\n if (pos === -1) {\n return;\n }\n const id = target.substr(pos+17).trim();\n if (typeof drupalSettings.constitutionEssaysTooltip[id] === 'undefined') {\n return;\n }\n let output = '';\n let subheading = [];\n let essayData = drupalSettings.constitutionEssaysTooltip[id];\n if (essayData.title) {\n output += '
' + essayData.title + '
';\n }\n if (essayData.article) {\n subheading.push(essayData.article);\n }\n if (essayData.section && essayData.section !== 'NULL') {\n subheading.push('Section ' + essayData.section);\n }\n if (subheading.length) {\n output += '
- ' + subheading.join(', ') + '
';\n }\n if (!output) {\n return;\n }\n\n return output;\n },\n classes: {\n \"ui-tooltip\": \"constitution-tooltip\"\n },\n position: {\n at: \"left bottom\",\n collision: \"flipfit\",\n using: function(position, feedback) {\n if (feedback.target && feedback.target.element) {\n const $tooltip = $(this);\n const $link = $(feedback.target.element);\n const $handler = $link.find('.tooltip__handler');\n if ($handler.length) {\n position = $handler.offset();\n position.left -= ($tooltip.width() * .5) + 5;\n position.top += 38;\n }\n }\n $(this).css(position);\n }\n }\n });\n }\n}\n\nfunction handleGuides() {\n $('.node--type-constitution-guide').each(function() {\n const $node = $(this);\n\n const constMenuBtn = $('#selectric-const-menu-btn', $node);\n const constSliderContainer = $('.con-sidebar', $node);\n const constSideBar = $('.selectric-item-list', $node);\n const constSideBarItem = $('.selectric-item-list a', $node);\n const constEssayContainer = $('#con-essay-container', $node);\n const constBodyContainer = $('.con-constitution', $node);\n\n //side menu dropdown\n constMenuBtn.on(\"click\", function () {\n constSideBar.slideToggle(300);\n constSliderContainer.toggleClass('open');\n });\n\n // Collapse sidebar on mobile.\n if ($(window).width() < 700) {\n constSideBar.slideToggle(0);\n constSliderContainer.toggleClass('open');\n }\n\n function closeEssay() {\n const $container = $('.con-essay-container', $node);\n $container.find('.con-essay-wrapper').empty();\n const container = $container.get(0);\n if (container !== null) {\n container.classList.remove('open');\n constBodyContainer.removeClass('hidden');\n constSideBarItem.removeClass('active');\n constEssayContainer.addClass('hidden');\n constEssayContainer.removeAttr('style');\n // Reset url.\n window.history.pushState({}, '', window.location.pathname);\n }\n }\n function openEssay() {\n constEssayContainer.addClass('open');\n constBodyContainer.addClass('hidden');\n $([document.documentElement, document.body]).animate({\n scrollTop: $(\".con-essay-wrapper\", $node).offset().top\n }, 500);\n }\n const $closeButton = $('.con-essay-close', $node);\n if ($closeButton.length) {\n $closeButton.on('click', closeEssay);\n }\n $node.on('closeEssay', closeEssay);\n $node.on('openEssay', openEssay);\n });\n}\n\nfunction handleSidebar() {\n const $constitutionContainer = $('.constitution-container');\n let sidebar;\n if ($constitutionContainer.length && typeof window.StickySidebar !== 'undefined') {\n sidebar = new window.StickySidebar('.discussion-menu__wrapper', {\n containerSelector: '.constitution-container',\n innerWrapperSelector: '.discussion-main-menu',\n minWidth: 768\n });\n }\n}\n\nfunction handleTabs() {\n document.addEventListener('tabby', function (event) {\n let $tab = $(event.target);\n $('.con-essay-tabs .button-more').toggleClass('active', false);\n $tab.closest('.button-more').toggleClass('active', true);\n }, false);\n}\n\nfunction handleGuideLinks() {\n $('.view-constitution-page .discussion-main-menu a').on('click', function(e) {\n e.preventDefault();\n const path = $(this).attr('href');\n sendPageView(path);\n const newPath = path.replace(\"/constitution/\", \"/constitution/#!/\");\n window.history.pushState({}, '', newPath);\n const args = path.split('/');\n let section = args[args.length - 1];\n $(\"html\").scrollTop($(`#${section}`).offset().top);\n });\n}\n\nfunction handleAmendmentLinks() {\n $('ul.amendments a').on('click', function(e) {\n e.preventDefault();\n const path = $(this).attr('href');\n sendPageView(path);\n const newPath = path.replace(\"/constitution/\", \"/constitution/#!/\");\n window.history.pushState({}, '', newPath);\n const args = path.split('/');\n const amendmentNumber = args[3];\n const section = 'amendments' + amendmentNumber;\n $(\"html\").scrollTop($(`#${section}`).offset().top);\n })\n}\n\nfunction handleRedirects() {\n let path = window.location.pathname;\n if (path.substr(0,14) === \"/constitution/\") {\n let redirectPath = path.replace(\"/constitution/\", \"/constitution/#!/\");\n window.location.replace(redirectPath);\n }\n}\n\nfunction sendPageView(path) {\n const args = path.split('/');\n let title = args[args.length - 1];\n title = title.replace(/-/g, \" \");\n title = title.replace(/^(.)|\\s(.)/g, function($1){ return $1.toUpperCase( ); })\n title = title + ' | The Heritage Guide to the Constitution';\n dataLayer.push({\n event: 'pageview',\n page: {\n path,\n title\n }\n });\n}\n\nfunction init() {\n handleRedirects();\n handleGuideLinks();\n handleAmendmentLinks();\n handleLinksAndPaths();\n handleSidebar();\n handleTooltips();\n handleGuides();\n handleTabs();\n}\n\nexport { init as init };\n"]}