/* eslint no-console:0 */ // This file is automatically compiled by Webpack, along with any other files // present in this directory. You're encouraged to place your actual application logic in // a relevant structure within app/javascript and only use these pack files to reference // that code so it'll be compiled. // // To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate // layout file, like app/views/layouts/application.html.erb import '@vonagevolta/volta2/js/addons/prism' import Rails from "@rails/ujs" import '../stylesheets/application' require.context('../images', true); require.context('../fonts', true); require.context('@vonagevolta/volta2/images/logos', true) require.context('@vonagevolta/volta2/dist/symbol', true) require('chartkick/chart.js'); require('jquery'); require('clipboard'); require('underscore'); require('@googlemaps/google-maps-services-js'); // XXX: hack for Volta, unfortunately it doesn't provide modules :( import Volta from "../javascript/volta/volta.js" import Vue from 'vue' import mermaid from 'mermaid' import Glide, { Autoplay, Breakpoints, Controls } from '@glidejs/glide/dist/glide.modular.esm' import { TweenLite, CSSPlugin } from 'gsap' import GithubCards from '../javascript/github_cards' import VoltaTabbedExamples from '../javascript/volta_tabbed_examples' import Format from '../javascript/format' import Scroll from '../javascript/scroll' import Notices from '../javascript/notices' import Feedback from '../javascript/components/feedback/Feedback.vue' import JwtGenerator from '../javascript/components/jwt_generator/JwtGenerator.vue' import Search from '../javascript/components/search/Search.vue' import Concatenation from '../javascript/components/concatenation/Concatenation.vue' import APIStatus from '../javascript/api_status' import CodeSnippetEvents from '../javascript/code_snippet_events' import Sidenav from '../javascript/sidenav/index' import Topnav from '../javascript/topnav/index' import Careers from '../javascript/careers' import LocaleSwitcher from '../javascript/locale_switcher' import dataLayer from '../javascript/adobe_analytics/index' $(document).ready(function() { Rails.start() Scroll() Notices() GithubCards() new VoltaTabbedExamples new Format APIStatus() CodeSnippetEvents() new Sidenav() new Careers new LocaleSwitcher new Topnav // Data layer variable is assigned to window.digitalData // for adobe launch script to pick it up window.digitalData = dataLayer if (document.getElementById('jwt-generator-app')) { new Vue({ el: '#jwt-generator-app', template: '', components: { JwtGenerator } }) } if (document.getElementById('search-app')) { new Vue({ el: '#search-app', template: '', components: { Search } }) } if (document.getElementById('feedback-app')) { new Vue({ el: '#feedback-app', template: '', render: createElement => { return createElement(Feedback, { props: window.feedbackProps }); } }) } if (document.getElementById('concatenation-app')) { new Vue({ el: '#concatenation-app', template: '', components: { Concatenation } }) } Volta.init(['accordion', 'tooltip', 'tab', 'modal', 'dropdown']) setTimeout(function() { const sidebarActive = document.querySelector('.Vlt-sidemenu__link_active') if (sidebarActive){ sidebarActive.scrollIntoView(true); } document.getElementById('header').focus(); }, 100); // If there are any links in the sidebar, we need to be able to click them // and not trigger the Volta accordion $(".Vlt-sidemenu__trigger a").click(function(){ window.location = $(this).attr("href"); return false; }); // Track A/B testing clicks $("[data-ab]").click(function(e) { let r = new Request('/usage/ab_result', { method: 'POST', credentials: 'same-origin', body: JSON.stringify({'t': $(this).data('ab')}), headers: { 'Content-Type': 'application/json' } }); fetch(r).then((response) => { if (response.ok) { return response.json() } return Promise.reject({ message: 'Bad response from server', response }) }); }); // Mermaid diagrams mermaid.initialize({ startOnLoad:true, sequence: { useMaxWidth: false, }, themeCSS: '.actor { fill: #BDD5EA; stroke: #81B1DB; }', htmlLabels: true }); if (document.querySelector('.glide')) { document.querySelectorAll('.glide pre').forEach((elem) => { //disable copy-to-clipboard for code-snippets in hero elem.classList.add('Vlt-prism--copy-disabled') }) const slider = new Glide('.glide').mount({ Autoplay, Breakpoints, Controls }); // Unfortunately, Autoplay doesn't work so we got to trigger it manually. setInterval(() => { if (!document.querySelector('.glide').matches(':hover')) { slider.go('>'); } }, 8000); } // Manually close Coockies banner in all browsers let checkCoockiesBanner = setInterval(function() { const coockiesBanner = document.querySelector('.optanon-alert-box-wrapper') if (coockiesBanner) { if (sessionStorage.getItem('coockiesBanner') === 'clicked') { coockiesBanner.style.display = 'none' clearInterval(checkCoockiesBanner) checkCoockiesBanner = 0 } const buttons = coockiesBanner.querySelectorAll('button') buttons.forEach((button) => { button.addEventListener('click', () => sessionStorage.setItem('coockiesBanner', 'clicked')) }) } }, 50) setTimeout(() => { clearInterval(checkCoockiesBanner) }, 8000) });