/** * @file * CKEditor Accordion functionality. */ (function ($, Drupal, drupalSettings) { 'use strict'; Drupal.behaviors.ckeditorAccordion = { attach: function (context, settings) { // Create accordion functionality if the required elements exist is available. var $ckeditorAccordion = $('.ckeditor-accordion'); if ($ckeditorAccordion.length > 0) { // Create simple accordion mechanism for each tab. $ckeditorAccordion.each(function () { var $accordion = $(this); if ($accordion.hasClass('styled')) { return; } // The first one is the correct one. if (!drupalSettings.ckeditorAccordion.accordionStyle.collapseAll) { $accordion.children('dt:first').addClass('active'); $accordion.children('dd:first').addClass('active'); $accordion.children('dd:first').css('display', 'block'); } // Turn the accordion tabs to links so that the content is accessible & can be traversed using keyboard. $accordion.children('dt').each(function () { var $tab = $(this); var tabText = $tab.text().trim(); var toggleClass = $tab.hasClass('active') ? ' active' : ''; $tab.html('' + tabText + ''); }); // Wrap the accordion in a div element so that quick edit function shows the source correctly. $accordion.addClass('styled').removeClass('ckeditor-accordion').wrap('
'); // Trigger an ckeditorAccordionAttached event to let other frameworks know that the accordion has been attached. $accordion.trigger('ckeditorAccordionAttached'); }); // Add click event to body once because quick edits & ajax calls might reset the HTML. $('body').once('ckeditorAccordionToggleEvent').on('click', '.ckeditor-accordion-toggler', function (e) { var $t = $(this).parent(); var $parent = $t.parent(); // Clicking on open element, close it. if ($t.hasClass('active')) { $t.removeClass('active'); $t.next().slideUp(); } else { if(!drupalSettings.ckeditorAccordion.accordionStyle.keepRowsOpen) { // Remove active classes. $parent.children('dt.active').removeClass('active').children('a').removeClass('active'); $parent.children('dd.active').slideUp(function () { $(this).removeClass('active'); }); } // Show the selected tab. $t.addClass('active'); $t.next().slideDown(300).addClass('active'); } // Don't add hash to url. e.preventDefault(); }); } } }; })(jQuery, Drupal, drupalSettings); ; /** * @file * Register service worker. */ (function ($, Drupal) { function urlBase64ToUint8Array(base64String) { var padding = '='.repeat((4 - base64String.length % 4) % 4); var base64 = (base64String + padding) .replace(/\-/g, '+') .replace(/_/g, '/'); var rawData = window.atob(base64); var outputArray = new Uint8Array(rawData.length); for (var i = 0; i < rawData.length; ++i) { outputArray[i] = rawData.charCodeAt(i); } return outputArray; } Drupal.behaviors.webPushNotification = { attach: function (context, settings) { $('body').once('web_push_notification').each(function () { if (!('serviceWorker' in navigator)) { return; } navigator .serviceWorker .register(settings.webPushNotification.serviceWorkerUrl) .then(function (registration) { return registration.pushManager.getSubscription() .then(function (subscription) { if (subscription) { return subscription; } var publicKey = settings.webPushNotification.publicKey; var vapidKey = urlBase64ToUint8Array(publicKey); return registration.pushManager.subscribe({ userVisibleOnly: true, applicationServerKey: vapidKey }) }); }) .then(function (subscription) { var key = subscription.getKey('p256dh'); var token = subscription.getKey('auth'); $.post(settings.webPushNotification.subscribeUrl, { key: key ? btoa(String.fromCharCode.apply(null, new Uint8Array(key))) : null, token: token ? btoa(String.fromCharCode.apply(null, new Uint8Array(token))) : null, endpoint: subscription.endpoint }); }) .catch(function (err) { // registration is blocked by the user. // console.log(err); }); }); } // attach } })(jQuery, Drupal); ; /** * DO NOT EDIT THIS FILE. * See the following change record for more information, * https://www.drupal.org/node/2815083 * @preserve **/ Drupal.debounce = function (func, wait, immediate) { var timeout; var result; return function () { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var context = this; var later = function later() { timeout = null; if (!immediate) { result = func.apply(context, args); } }; var callNow = immediate && !timeout; clearTimeout(timeout); timeout = setTimeout(later, wait); if (callNow) { result = func.apply(context, args); } return result; }; };; !function(i){"use strict";function n(n){return i.chain(n,function(n){var c="loading",n=[n,i.closest(n,'[class*="'+c+'"]')];i.each(n,function(n){var a;i.isElm(n)&&(a=n.className,i.contains(a,c)&&(n.className=a.replace(/(\S+)loading/g,"")))})})}i.unloading=n,i.fn.unloading=function(){return n(this)}}(dBlazy); ; !function(p,k,m,n){"use strict";var v="slick",y="unslick",C=v+"--initialized",b=".slick__slider",w=".slick__arrow",z=".b-lazy:not(.b-loaded)",_=".media__icon--close",P="is-playing",$="is-paused",x=k.blazy||{};function s(e){var i,l=p("> "+b,e).length?p("> "+b,e):p(e),a=p("> "+w,e),n=l.data(v)?p.extend({},m.slick,l.data(v)):p.extend({},m.slick),s=!("array"!==p.type(n.responsive)||!n.responsive.length)&&n.responsive,t=n.appendDots,o="blazy"===n.lazyLoad&&x,d=l.find(".media--player").length,c=l.hasClass(y);if(c||(n.appendDots=t===w?a:t||p(l)),s)for(i in s)Object.prototype.hasOwnProperty.call(s,i)&&s[i].settings!==y&&(s[i].settings=p.extend({},m.slick,g(n),s[i].settings));function r(i){l.find(z).length&&((i=l.find(i?".slide:not(.slick-cloned) "+z:".slick-active "+z)).length||(i=l.find(".slick-cloned "+z)),i.length&&x.init.load(i))}function u(){d&&f(),o&&r(!1)}function f(){l.removeClass($);var i=l.find("."+P);i.length&&i.removeClass(P).find(_).click()}function h(){l.addClass($).slick("slickPause")}function g(e){return c?{}:{slide:e.slide,lazyLoad:e.lazyLoad,dotsClass:e.dotsClass,rtl:e.rtl,prevArrow:p(".slick-prev",a),nextArrow:p(".slick-next",a),appendArrows:a,customPaging:function(i,n){var s=i.$slides.eq(n).find("[data-thumb]")||null,t='