{"version":3,"file":"main.js","mappings":"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A;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,4BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,UAAU;AACV;AACA;AACA;AACA;;AAEA;;AAEA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,mBAAmB;AACpD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA,kBAAkB;;AAElB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+CAA+C,QAAQ;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA,YAAY;AACZ;AACA;AACA;;AAEA,YAAY;AACZ;AACA;AACA;;AAEA,YAAY;AACZ;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE,KAA0B,oBAAoB,CAAE;AAClD;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;;;;;ACjvBe;AACf;;AAEA,yCAAyC,SAAS;AAClD;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACRe;AACf;AACA;;;;;;;;;;;;;;;;ACFqD;AACtC;AACf,iCAAiC,gEAAgB;AACjD;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;AClCe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;ACJA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;ACde;AACf;AACA;;;;;;;;;;;;;;;ACFe;AACf;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,4BAA4B,+BAA+B;AAC3D;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;AC5Be;AACf;AACA;;;;;;;;;;;;;;;ACFe;AACf;AACA;;;;;;;;;;;;;;;;;;;ACFiD;AACY;AACY;AACtB;AACpC;AACf,SAAS,8DAAc,SAAS,oEAAoB,YAAY,0EAA0B,YAAY,+DAAe;AACrH;;;;;;;;;;;;;;;;;;;ACNuD;AACJ;AACsB;AAClB;AACxC;AACf,SAAS,iEAAiB,SAAS,+DAAe,SAAS,0EAA0B,SAAS,iEAAiB;AAC/G;;;;;;;;;;;;;;;;ACNqD;AACtC;AACf;AACA,oCAAoC,gEAAgB;AACpD;AACA;AACA;AACA,sFAAsF,gEAAgB;AACtG;;;;;;UCRA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack://themewright-npm/./node_modules/@babel/runtime/regenerator/index.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/accordion.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/block.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/boxed-text.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/cards-grid.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/cards-slider.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/colored-card.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/contact-form.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/countries.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/country-intro.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/country-shuffle-hero.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/dna-cards.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/ecommerce-boxed-items.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/ecommerce-text-lists.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/employees.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/fast-tabs.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/flex-block.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/flow-form.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/form.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/gallery.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/gated-content-hero.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/hero.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/home-hero.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/jobs.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/latam-hero.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/locations.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/logo-carousel.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/logos.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/lottie.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/multiform.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/newsletter.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/offices.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/page-navigation.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/payments-101-grid.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/pm-hero.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/pms-cards.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/recruitment-slider.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/region-hero.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/region-intro.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/share.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/slider.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/sticky-hero.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/tabs.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/team.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/testimonials-slider.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/testimonials.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/text-newsletter.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/text.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/universal-slider.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/vertical-tabs.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/video-hero-background.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/video.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/blocks/videos-grid.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/components/chart/doughnut.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/components/chart/hbar-2.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/components/filters.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/components/slider-pagination.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/partials/countries-filterable.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/partials/country-list-trimmed.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/partials/events-list.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/partials/header-menu.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/partials/header-new.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/partials/header.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/partials/insights-list.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/partials/news-list.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/partials/password-custom.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/partials/password.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/partials/pm-card.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/partials/pms-table.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/partials/popup.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/partials/scroll-popup.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/partials/spmn-rest.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/partials/top-bar.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/partials/widget-menu.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/templates/single-country-new.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/templates/single-payment-method-new.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/templates/template-countries-new.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/templates/template-payment-methods-new.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/layout/templates/template-search.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/utils/animations.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/utils/closable.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/utils/cookie.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/utils/customer-io.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/utils/disclaimer.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/utils/geolocation.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/utils/lang.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/utils/mega-menu.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/utils/mobile-images.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/utils/mobile-menu.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/utils/mq.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/utils/scrolled.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/utils/utm.js","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main-modules/utils/viewport.js","webpack://themewright-npm/./node_modules/regenerator-runtime/runtime.js","webpack://themewright-npm/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://themewright-npm/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://themewright-npm/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://themewright-npm/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://themewright-npm/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://themewright-npm/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://themewright-npm/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://themewright-npm/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://themewright-npm/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://themewright-npm/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://themewright-npm/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://themewright-npm/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://themewright-npm/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://themewright-npm/webpack/bootstrap","webpack://themewright-npm/webpack/runtime/compat get default export","webpack://themewright-npm/webpack/runtime/define property getters","webpack://themewright-npm/webpack/runtime/hasOwnProperty shorthand","webpack://themewright-npm/webpack/runtime/make namespace object","webpack://themewright-npm/../../var/www/sites/ppro/wp-content/themes/ppro/scripts/main.js"],"sourcesContent":["module.exports = require(\"regenerator-runtime\");\n","class AccordionBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.sections = block.querySelectorAll('.accordion-section');\n\n this.sections.forEach((section, i) => {\n const header = section.querySelector('.accordion-section__header');\n const content = section.querySelector('.accordion-section__content');\n\n let wrapper = this.createColumnWrapper();\n\n [...content.children].forEach((child) => {\n if (child.nodeName === 'HR') {\n content.removeChild(child);\n content.appendChild(wrapper);\n wrapper = this.createColumnWrapper();\n } else {\n wrapper.appendChild(child);\n }\n });\n\n content.append(wrapper);\n\n header.addEventListener('click', () => {\n this.sections.forEach((s) => {\n if (s !== section) {\n s.classList.remove('active');\n s.querySelector('.accordion-section__content').style.height = 0;\n }\n });\n\n section.classList.toggle('active');\n content.style.height = section.classList.contains('active') ? content.scrollHeight + 'px' : 0;\n });\n });\n\n window.addEventListener('resize', () => this.resize());\n\n this.block.querySelectorAll('img').forEach((img) => {\n img.addEventListener('load', () => this.resize());\n });\n }\n\n createColumnWrapper() {\n const wrapper = document.createElement('div');\n wrapper.classList.add('accordion-section__column');\n wrapper.classList.add('content');\n return wrapper;\n }\n\n resize() {\n this.sections.forEach((section) => {\n if (section.classList.contains('active')) {\n const content = section.querySelector('.accordion-section__content');\n content.style.transition = 'none';\n content.style.height = 0;\n content.offsetWidth;\n content.style.height = content.scrollHeight + 'px';\n content.offsetWidth;\n content.style.transition = null;\n }\n });\n }\n}\n\n// Initialize each block on page load (front end)\nif (!window.acf) {\n document.querySelectorAll('.accordion').forEach((block) => {\n new AccordionBlock(block);\n });\n\n window.addEventListener('init', () => {\n document.querySelectorAll('.accordion').forEach((block) => {\n new AccordionBlock(block);\n });\n });\n}","class ContentBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.innerBlocks = block.querySelectorAll('.block__inner-blocks > *');\n\n if (!document.body.classList.contains('wp-admin') && !this.innerBlocks.length) {\n block.classList.add('block--empty');\n }\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.block').forEach((block) => {\n new ContentBlock(block);\n});\n\n// Initialize the dynamic block preview (editor)\nif (window.acf) {\n window.acf.addAction('render_block_preview/type=block', ($block, attributes) => {\n new ContentBlock($block.find('.block').get(0), attributes);\n });\n}","document.addEventListener('alpine:init', () => {\n Alpine.data('boxedText', () => ({\n maxHeight: 0,\n\n collapsed: false,\n\n bgColor: 'white',\n\n rootEl: {\n ':class'() {\n return {\n 'text-boxed--collapsed': this.collapsed,\n };\n },\n ':style'() {\n return {\n '--bg-color': this.bgColor,\n };\n },\n },\n\n init() {\n this.maxHeight = +this.$root.dataset.maxHeight;\n this.$nextTick(() => this.calcHeight());\n this.resolveBgColor();\n },\n\n calcHeight() {\n if (this.maxHeight && this.$root.offsetHeight > this.maxHeight) {\n this.$root.style.maxHeight = this.maxHeight + 'px';\n this.collapsed = true;\n }\n },\n\n expand() {\n this.$root.style.maxHeight = null;\n this.collapsed = false;\n },\n\n resolveBgColor() {\n let parent = this.$root.parentElement;\n\n while (parent && parent.tagName !== 'BODY') {\n if (parent.style?.backgroundColor) {\n this.bgColor = parent.style.backgroundColor;\n break;\n }\n\n parent = parent.parentElement;\n }\n },\n }));\n});","class CardsGridBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.container = this.block.querySelector('.cards-grid__container');\n this.cards = this.container.children;\n\n if (this.cards.length <= 2) {\n this.block.classList.add('cards-grid--x-wide');\n } else if (this.cards.length < 4) {\n this.block.classList.add('cards-grid--wide');\n }\n }\n}\n\n// Initialize each block on page load (front end)\nif (!window.acf) {\n document.querySelectorAll('.cards-grid').forEach((block) => {\n new CardsGridBlock(block);\n });\n}","class CardsSliderBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.slides = [...block.children];\n this.init();\n this.scrollAim = 0;\n this.scrollFactor = 15;\n this.scrollTime = 0;\n this.slidesPerView = +block.dataset.slidesPerView;\n\n this.onMouseDown = this.onMouseDown.bind(this);\n this.onMouseMove = this.onMouseMove.bind(this);\n this.onMouseUp = this.onMouseUp.bind(this);\n this.scroll = this.scroll.bind(this);\n }\n\n init() {\n this.container = document.createElement('div');\n this.container.classList.add('sldr-container');\n\n this.wrapper = document.createElement('div');\n this.wrapper.classList.add('sldr-wrapper');\n\n this.slides.forEach((slide) => {\n slide.classList.add('sldr-slide');\n this.wrapper.appendChild(slide);\n });\n\n this.container.appendChild(this.wrapper);\n\n this.block.appendChild(this.container);\n\n this.nav = document.createElement('div');\n this.nav.classList.add('slider__slider-nav');\n\n this.navButtonPrev = document.createElement('button');\n this.navButtonPrev.classList.add('slider__slider-nav-button');\n this.navButtonPrev.classList.add('slider__slider-nav-button--prev');\n this.navButtonPrev.setAttribute('aria-label', 'Previous');\n\n this.navArrowLeft = document.createElement('i');\n this.navArrowLeft.classList.add('icon-arrow-2-left');\n\n this.navButtonPrev.appendChild(this.navArrowLeft);\n\n this.navButtonNext = document.createElement('button');\n this.navButtonNext.classList.add('slider__slider-nav-button');\n this.navButtonNext.classList.add('slider__slider-nav-button--next');\n this.navButtonNext.setAttribute('aria-label', 'Next');\n\n this.navArrowRight = document.createElement('i');\n this.navArrowRight.classList.add('icon-arrow-2-right');\n\n this.navButtonNext.appendChild(this.navArrowRight);\n\n this.nav.appendChild(this.navButtonPrev);\n this.nav.appendChild(this.navButtonNext);\n\n this.block.appendChild(this.nav);\n\n // Bind drag\n this.wrapper.addEventListener('mousedown', (e) => this.onMouseDown(e));\n\n // Bind nav\n this.navButtonPrev.addEventListener('click', () => this.prev());\n this.navButtonNext.addEventListener('click', () => this.next());\n\n setTimeout(() => this.toggleNav());\n\n this.wrapper.addEventListener('scroll', () => this.toggleNav());\n\n // Disable dragging\n this.wrapper.querySelectorAll('a, img').forEach((el) => el.setAttribute('draggable', 'false'));\n\n // Fix fast-tabs bug where nav arrows are not displayed\n window.addEventListener('fast-tabs', () => this.toggleNav());\n window.addEventListener('resize', () => this.toggleNav());\n }\n\n prev() {\n this.initialScroll = this.wrapper.scrollLeft;\n this.scrollAim = this.normalize(this.wrapper.scrollLeft - this.slides[0].offsetWidth + 24);\n this.scrollTime = Date.now();\n requestAnimationFrame(this.scroll);\n }\n\n next() {\n this.initialScroll = this.wrapper.scrollLeft;\n this.scrollAim = this.normalize(this.wrapper.scrollLeft + this.slides[0].offsetWidth + 24);\n this.scrollTime = Date.now();\n requestAnimationFrame(this.scroll);\n }\n\n onMouseDown(e) {\n this.dragStart = e.clientX;\n this.initialScroll = this.wrapper.scrollLeft;\n this.scrollAim = this.initialScroll;\n\n window.addEventListener('mousemove', this.onMouseMove);\n window.addEventListener('mouseup', this.onMouseUp);\n }\n\n onMouseMove(e) {\n this.wrapper.scrollLeft = this.normalize(this.initialScroll + this.dragStart - e.clientX);\n\n if (Math.abs(this.wrapper.scrollLeft - this.initialScroll) > 2) {\n this.wrapper.classList.add('sliding');\n }\n }\n\n onMouseUp(e) {\n this.wrapper.classList.remove('sliding');\n window.removeEventListener('mousemove', this.onMouseMove);\n window.removeEventListener('mouseup', this.onMouseUp);\n }\n\n scroll() {\n const speed = 900;\n const dx = Math.abs(this.wrapper.scrollLeft - this.scrollAim);\n const dt = Math.max(0, this.scrollTime + speed - Date.now());\n const p = 1 - dt / speed;\n const t = p * p;\n const x = t * dx;\n\n if (this.scrollAim > this.wrapper.scrollLeft) {\n this.wrapper.scrollLeft = Math.min(this.scrollAim, this.normalize(this.wrapper.scrollLeft + x));\n } else if (this.scrollAim < this.wrapper.scrollLeft) {\n this.wrapper.scrollLeft = Math.max(this.scrollAim, this.normalize(this.wrapper.scrollLeft - x));\n }\n\n if (dx > 1) {\n requestAnimationFrame(this.scroll);\n }\n }\n\n toggleNav() {\n const d = Math.abs(this.wrapper.scrollWidth - this.wrapper.scrollLeft - this.wrapper.offsetWidth);\n\n if (this.wrapper.scrollLeft < 2) {\n this.navButtonPrev.classList.add('slider__slider-nav-button--disabled');\n } else {\n this.navButtonPrev.classList.remove('slider__slider-nav-button--disabled');\n }\n\n if (d < 2) {\n this.navButtonNext.classList.add('slider__slider-nav-button--disabled');\n } else {\n this.navButtonNext.classList.remove('slider__slider-nav-button--disabled');\n }\n }\n\n normalize(value) {\n return Math.min(this.wrapper.scrollWidth - this.wrapper.offsetWidth, Math.max(0, value));\n }\n\n ease(distance, duration = 400) {}\n}\n\n// Initialize each block on page load (front end)\nif (!window.acf) {\n document.querySelectorAll('.cards-slider').forEach((block) => {\n new CardsSliderBlock(block);\n });\n\n // Initialize password protected pages\n window.addEventListener('init', () => {\n document.querySelectorAll('.cards-slider').forEach((block) => {\n new CardsSliderBlock(block);\n });\n });\n}","class ColoredCardBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.number = block.querySelector('.colored-card__number');\n this.root = attributes ? this.block.parentNode.parentNode.parentNode.parentNode : this.block;\n this.number.innerText = [...this.root.parentNode.children].indexOf(this.root) + 1;\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.colored-card').forEach((block) => {\n new ColoredCardBlock(block);\n});\n\n// Initialize password protected pages\nwindow.addEventListener('init', () => {\n document.querySelectorAll('.colored-card').forEach((block) => {\n new ColoredCardBlock(block);\n });\n});\n\n// Initialize the dynamic block preview (editor)\nif (window.acf) {\n window.acf.addAction('render_block_preview/type=colored-card', ($block, attributes) => {\n new ColoredCardBlock($block.find('.colored-card').get(0), attributes);\n });\n}","class ContactFormBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.tabs = block.querySelectorAll('.contact-form__tab');\n this.supportTabsWrapper = block.querySelector('.contact-form__support-tabs');\n this.supportTabs = block.querySelectorAll('.contact-form__support-tab');\n this.supportSelect = block.querySelector('#support-team');\n this.forms = block.querySelectorAll('.contact-form__form');\n\n this.initTabs();\n\n if (window.location.hash === '#sales') {\n const tab = [...this.tabs].find((tab) => tab.dataset.tab === 'sales');\n if (tab) tab.click();\n } else if (window.location.hash === '#pr') {\n const tab = [...this.tabs].find((tab) => tab.dataset.tab === 'pr');\n if (tab) tab.click();\n }\n }\n\n initTabs() {\n this.tabs.forEach((tab) => {\n tab.addEventListener('click', () => {\n this.tabs.forEach((tab) => {\n tab.classList.remove('contact-form__tab--active');\n tab.classList.remove('has-dark-background');\n });\n\n tab.classList.add('contact-form__tab--active');\n tab.classList.add('has-dark-background');\n\n if (tab.dataset.tab === 'support') {\n this.supportTabsWrapper.classList.add('contact-form__support-tabs--visible');\n } else {\n this.supportTabsWrapper.classList.remove('contact-form__support-tabs--visible');\n\n this.supportTabs.forEach((tab) => {\n tab.classList.remove('contact-form__tab--active');\n tab.classList.remove('has-dark-background');\n });\n }\n\n this.forms.forEach((form) => form.classList.remove('visible'));\n\n const form = this.block.querySelector(`.contact-form__form--${tab.dataset.tab}`);\n\n if (form) {\n form.classList.add('visible');\n window.dispatchEvent(new Event('resize'));\n }\n\n if (tab.dataset.tab === 'support') {\n this.refreshSupportForms();\n } else {\n window.location.hash = tab.dataset.tab;\n }\n });\n });\n\n this.supportTabs.forEach((tab) => {\n tab.addEventListener('click', () => {\n this.supportTabs.forEach((tab) => {\n tab.classList.remove('contact-form__tab--active');\n tab.classList.remove('has-dark-background');\n });\n\n tab.classList.add('contact-form__tab--active');\n tab.classList.add('has-dark-background');\n\n this.forms.forEach((form) => form.classList.remove('visible'));\n\n const form = this.block.querySelector(`.contact-form__form--${tab.dataset.tab}`);\n\n if (form) {\n form.classList.add('visible');\n window.dispatchEvent(new Event('resize'));\n }\n });\n });\n\n this.supportSelect.addEventListener('change', () => this.refreshSupportForms());\n }\n\n refreshSupportForms() {\n const latamSupportForm = this.block.querySelector(`.contact-form__form--latam-support`);\n const globalSupportForm = this.block.querySelector(`.contact-form__form--global-support`);\n\n latamSupportForm.classList.remove('visible');\n globalSupportForm.classList.remove('visible');\n\n if (this.supportSelect.value == 'latam-support') {\n latamSupportForm.classList.add('visible');\n } else if (this.supportSelect.value == 'global-support') {\n globalSupportForm.classList.add('visible');\n }\n\n window.location.hash = this.supportSelect.value || 'support';\n\n window.dispatchEvent(new Event('resize'));\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.contact-form').forEach((block) => {\n new ContactFormBlock(block);\n});\n\n// Initialize the dynamic block preview (editor)\nif (window.acf) {\n window.acf.addAction('render_block_preview/type=contact-form', ($block, attributes) => {\n new ContactFormBlock($block.find('.contact-form').get(0), attributes);\n });\n}\n\nexport { ContactFormBlock };","class CountriesBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.container = block.querySelector('.countries__container');\n this.countries = [...this.container.querySelectorAll('.countries__item--country')];\n\n if (this.block.dataset.geolocation === 'on') {\n this.getMyCountry();\n }\n }\n\n getMyCountry() {\n fetch(`${ajaxurl}?action=get_my_country`)\n .then((response) => response.json())\n .then((data) => {\n if (data.data) {\n const replaceIndex = this.countries.findIndex((country) => country.dataset.name === data.data.title);\n const replace = this.countries[replaceIndex > -1 ? replaceIndex : this.countries.length - 1];\n const name = replace.querySelector('.countries__name');\n\n name.textContent = data.data.title;\n replace.style.backgroundImage = `url(${data.data.image})`;\n replace.href = data.data.link;\n\n this.container.insertBefore(replace, this.countries[0]);\n this.container.offsetWidth;\n this.container.scrollTo(0, 0);\n }\n });\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.countries').forEach((block) => {\n new CountriesBlock(block);\n});\n\n// Initialize the dynamic block preview (editor)\nif (window.acf) {\n window.acf.addAction('render_block_preview/type=countries', ($block, attributes) => {\n new CountriesBlock($block.find('.countries').get(0), attributes);\n });\n}","document.addEventListener('alpine:init', () => {\n Alpine.data('countryIntro', () => ({\n buttons: [],\n\n init() {\n document.querySelectorAll('.block[id] h2').forEach((heading) => {\n const title = heading.textContent;\n const contentBlock = this.findParentContentBlock(heading);\n\n if (title && contentBlock?.id) {\n this.buttons.push({\n href: `#${contentBlock.id}`,\n text: title,\n });\n }\n });\n },\n\n findParentContentBlock(section) {\n let parent = section.parentElement;\n\n while (parent && parent.tagName !== 'BODY') {\n if (parent.classList.contains('block')) {\n return parent;\n }\n\n parent = parent.parentElement;\n }\n\n return null;\n },\n }));\n});","document.addEventListener('alpine:init', () => {\n Alpine.data('countryShuffleHero', () => ({\n countries: [],\n country: {},\n\n init() {\n this.$nextTick(() => {\n this.countries = JSON.parse(this.$refs.countries.innerHTML);\n\n if (this.countries && this.countries.length) {\n this.$refs.headline.innerHTML = this.$refs.headline.innerHTML.replace(\n /\\*countries\\*/g,\n ''\n );\n\n setTimeout(() => {\n writeAndDelete(\n this.$refs.countryName,\n this.countries.map((c) => c.name),\n {\n timeout: 2200,\n loop: true,\n speed: 150,\n errorQuota: 0,\n cursor: '|',\n cursorSpeed: 500,\n }\n );\n });\n }\n });\n },\n\n changeImage(event) {\n this.index = +event.detail;\n this.country = this.countries[this.index];\n },\n\n image: {\n ':style'() {\n return {\n backgroundImage: `url(${this.c.image})`,\n opacity: this.c.name === this.country?.name ? 1 : 0,\n };\n },\n },\n }));\n});","class DnaCardsBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.cards = block.querySelectorAll('.dna-card');\n this.overlay = block.querySelector('.dna-cards__overlay');\n this.swiperContainer = block.querySelector('.swiper-container');\n this.swiperWrapper = block.querySelector('.swiper-wrapper');\n this.swiper = null;\n\n this.cards.forEach((card, i) => {\n const slide = document.createElement('div');\n const cardClone = card.cloneNode();\n cardClone.innerHTML = card.innerHTML;\n cardClone.classList.add('dna-card--expanded');\n slide.classList.add('swiper-slide');\n slide.appendChild(cardClone);\n this.swiperWrapper.appendChild(slide);\n\n card.addEventListener('click', () => {\n if (!this.swiper) {\n this.init();\n }\n\n this.swiper.slideTo(i, 0);\n this.show();\n });\n });\n\n this.overlay.addEventListener('click', (e) => {\n if (\n e.target.classList.contains('dna-cards__overlay') ||\n e.target.classList.contains('swiper-container') ||\n e.target.classList.contains('swiper-wrapper') ||\n e.target.classList.contains('swiper-slide')\n ) {\n this.hide();\n }\n });\n\n window.addEventListener('keydown', (e) => {\n if (e.code === 'Escape') {\n this.hide();\n }\n });\n }\n\n init() {\n this.swiper = new Swiper(this.swiperContainer, {\n speed: 400,\n slidesPerView: 'auto',\n centeredSlides: true,\n spaceBetween: 24,\n navigation: {\n nextEl: '.dna-cards__slider-nav-button--next',\n prevEl: '.dna-cards__slider-nav-button--prev',\n disabledClass: 'dna-cards__slider-nav-button--disabled',\n },\n keyboard: {\n enabled: true,\n },\n threshold: 3,\n });\n }\n\n show() {\n this.block.classList.add('dna-cards--overlay-visible');\n this.overlay.classList.add('dna-cards__overlay--visible');\n }\n\n hide() {\n this.block.classList.remove('dna-cards--overlay-visible');\n this.overlay.classList.remove('dna-cards__overlay--visible');\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.block .dna-cards').forEach((block) => {\n new DnaCardsBlock(block);\n});\n\n// Initialize the dynamic block preview (editor)\nif (window.acf) {\n window.acf.addAction('render_block_preview/type=dna-cards', ($block, attributes) => {\n new DnaCardsBlock($block.find('.dna-cards').get(0), attributes);\n });\n}","import { viewport } from '../../utils/viewport';\n\ndocument.addEventListener('alpine:init', () => {\n Alpine.data('ecommerceBoxedItems', () => ({\n init() {\n this.$nextTick(() => {\n this.$root.querySelectorAll('.ecommerce-boxed-items__box').forEach((box) => {\n new EcommerceBoxedItemsChart(box);\n\n // Initialize the dynamic block preview (editor)\n if (window.acf) {\n window.acf.addAction('render_block_preview', ($block, attributes) => {\n $block.find('.ecommerce-boxed-items__box').each((i, el) => new EcommerceBoxedItemsChart(el, attributes));\n });\n }\n });\n });\n },\n }));\n});\n\nclass EcommerceBoxedItemsChart {\n constructor(el) {\n this.el = el;\n this.canvas = el.querySelector('canvas');\n this.ctx = this.canvas.getContext('2d');\n this.percent = +this.canvas.dataset.value.replace(/[^0-9]/g, '');\n this.data = [\n { label: '', value: this.percent },\n { label: '', value: 100 - this.percent },\n ];\n this.palette = ['rgb(38, 116, 224)', 'rgb(230, 230, 230)'];\n\n viewport.observe(this.el, () => {\n if (!this.chart) {\n this.chart = new Chart(this.ctx, this.getOptions());\n }\n });\n }\n\n getOptions() {\n return {\n type: 'doughnut',\n data: {\n labels: this.data.map((item) => item.label),\n datasets: [\n {\n data: this.data.map((item) => item.value),\n backgroundColor: this.palette,\n hoverBackgroundColor: this.palette,\n },\n ],\n },\n options: {\n datasets: {\n doughnut: {\n cutout: '56%',\n hoverBorderWidth: 0,\n hoverOffset: 0,\n offset: 0,\n borderRadius: 6,\n },\n },\n animation: {\n animateScale: true,\n },\n plugins: {\n legend: {\n display: false,\n },\n },\n },\n };\n }\n}","import { viewport } from '../../utils/viewport';\n\ndocument.addEventListener('alpine:init', () => {\n Alpine.data('ecommerceTextLists', () => ({\n lists: [],\n\n init() {\n this.$nextTick(() => {\n this.$root.querySelectorAll('.ecommerce-text-lists__source > div').forEach((source) => {\n const children = [...source.children];\n\n if (children.length === 2) {\n const list = {\n title: children[0].textContent,\n };\n\n if (children[1].nodeName === 'OL') {\n const rows = children[1].textContent.trim().split('\\n');\n const compare = rows.map((row) =>\n row\n .split(/(.+): (.+)/)\n .map((part) => part.trim())\n .filter(Boolean)\n );\n const charts = rows.map((row) =>\n row\n .split(/(.+)–(.+)/)\n .map((part) => part.trim())\n .filter(Boolean)\n );\n\n if (compare.every((p) => p.length === 2 && p[1].includes('|'))) {\n // Show compare list\n list.type = 'compare';\n list.items = compare.map((p) => ({\n label: p[0],\n values: p[1].split('|').map((pv) => pv.trim()),\n }));\n } else if (charts.every((p) => p.length === 2)) {\n // Show chart boxes\n list.type = 'charts';\n list.items = charts.map((p) => ({\n type: p[1].endsWith('%') ? 'percent' : 'default',\n label: p[0],\n value: p[1],\n }));\n } else {\n // Simple box\n list.type = 'box';\n list.boxHTML = children[1].outerHTML;\n }\n }\n\n this.lists.push(list);\n }\n });\n\n // Initialize doughnut charts\n setTimeout(() => {\n // Initialize each block on page load (front end)\n document\n .querySelectorAll('.ecommerce-text-lists__charts-percent')\n .forEach((el) => new EcommerceTextListsChart(el));\n\n // Initialize the dynamic block preview (editor)\n if (window.acf) {\n window.acf.addAction('render_block_preview', ($block, attributes) => {\n $block\n .find('.ecommerce-text-lists__charts-percent')\n .each((i, el) => new EcommerceTextListsChart(el, attributes));\n });\n }\n });\n });\n },\n }));\n});\n\nclass EcommerceTextListsChart {\n constructor(el) {\n this.el = el;\n this.canvas = el.querySelector('.ecommerce-text-lists__charts-percent-canvas');\n this.ctx = this.canvas.getContext('2d');\n this.percent = +this.canvas.dataset.percent.replace('%', '');\n this.data = [\n { label: '', value: this.percent },\n { label: '', value: 100 - this.percent },\n ];\n this.palette = ['rgb(38, 116, 224)', 'rgb(230, 230, 230)'];\n\n viewport.observe(this.el, () => {\n if (!this.chart) {\n this.chart = new Chart(this.ctx, this.getOptions());\n }\n });\n }\n\n getOptions() {\n return {\n type: 'doughnut',\n data: {\n labels: this.data.map((item) => item.label),\n datasets: [\n {\n data: this.data.map((item) => item.value),\n backgroundColor: this.palette,\n hoverBackgroundColor: this.palette,\n },\n ],\n },\n options: {\n datasets: {\n doughnut: {\n cutout: '56%',\n hoverBorderWidth: 0,\n hoverOffset: 0,\n offset: 0,\n borderRadius: 6,\n },\n },\n animation: {\n animateScale: true,\n },\n plugins: {\n legend: {\n display: false,\n },\n },\n },\n };\n }\n}","(function () {\n let sliderInitialized = false;\n\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n const initializeBlock = (block, attributes = null) => {\n block.querySelectorAll('.employees__member-button').forEach((button) => {\n let swiper;\n\n button.addEventListener('click', () => {\n if (!sliderInitialized) {\n swiper = initializeSlider(block);\n }\n\n swiper.slideTo(button.dataset.index, 0);\n showOverlay(block);\n });\n });\n\n block.querySelectorAll('.employees__slide-close-button').forEach((button) => {\n button.addEventListener('click', () => {\n hideOverlay(block);\n });\n });\n\n block.querySelector('.employees__overlay').addEventListener('click', (e) => {\n if (\n e.target.classList.contains('employees__overlay') ||\n e.target.classList.contains('swiper-container') ||\n e.target.classList.contains('swiper-wrapper') ||\n e.target.classList.contains('swiper-slide')\n ) {\n hideOverlay(block);\n }\n });\n\n window.addEventListener('keydown', (e) => {\n if (e.code === 'Escape') {\n hideOverlay(block);\n }\n });\n };\n\n const initializeSlider = (block) => {\n return new Swiper(block.querySelector('.employees__slider'), {\n speed: 400,\n slidesPerView: 'auto',\n centeredSlides: true,\n navigation: {\n nextEl: '.employees__slider-nav-button--next',\n prevEl: '.employees__slider-nav-button--prev',\n disabledClass: 'employees__slider-nav-button--disabled',\n },\n keyboard: {\n enabled: true,\n },\n threshold: 3,\n });\n };\n\n const getOverlay = (block) => {\n return block.querySelector('.employees__overlay');\n };\n\n const showOverlay = (block) => {\n block.classList.add('employees--overlay-visible');\n getOverlay(block).classList.add('employees__overlay--visible');\n };\n\n const hideOverlay = (block) => {\n block.classList.remove('employees--overlay-visible');\n getOverlay(block).classList.remove('employees__overlay--visible');\n };\n\n // Initialize each block on page load (front end)\n document.querySelectorAll('.employees').forEach((block) => {\n initializeBlock(block);\n });\n\n window.addEventListener('init', () => {\n document.querySelectorAll('.employees').forEach((block) => {\n initializeBlock(block);\n });\n });\n\n // Initialize the dynamic block preview (editor)\n if (window.acf) {\n window.acf.addAction('render_block_preview/type=employees', ($block, attributes) => {\n initializeBlock($block.find('.employees').get(0), attributes);\n });\n }\n})();","document.addEventListener('alpine:init', () => {\n Alpine.data('fastTabs', () => ({\n tabs: [],\n contents: [],\n slider: null,\n\n get activeTab() {\n return this._activeTab;\n },\n set activeTab(index) {\n this._activeTab = index;\n\n this.contents.forEach((content, i) => {\n content.style.display = i === index ? null : 'none';\n });\n\n window.dispatchEvent(new CustomEvent('fast-tabs'));\n },\n _activeTab: 0,\n\n init() {\n this.$nextTick(() => this.ready());\n },\n\n ready() {\n if (this.$root.parentElement) {\n const fastTabs = [...this.$root.parentElement.querySelectorAll('.fast-tabs')];\n const children = [...this.$root.parentElement.children];\n\n if (fastTabs[0] === this.$root) {\n this.slider = document.createElement('div');\n // this.$root.parentElement.append(this.slider);\n\n fastTabs.forEach((fastTab, i) => {\n this.tabs.push(fastTab.querySelector('.container').dataset.label);\n\n const content = document.createElement('div');\n\n content.dataset.index = i;\n content.classList.add('block__inner-blocks');\n\n let found = false;\n\n for (const child of children) {\n if (child === fastTab) {\n found = true;\n } else if (found && child.classList.contains('fast-tabs')) {\n break;\n } else if (found) {\n content.append(child);\n }\n }\n\n this.$root.parentElement.append(content);\n this.contents.push(content);\n\n if (i > 0) {\n fastTab.remove();\n }\n });\n }\n\n this.activeTab = 0;\n }\n },\n }));\n});","document.addEventListener('alpine:init', () => {\n Alpine.data('flexBlock', () => ({\n id: '',\n breakpoints: [],\n styles: '',\n\n init() {\n this.$nextTick(() => {\n this.id = this.$el.id;\n this.breakpoints = JSON.parse(this.$refs.breakpoints.innerHTML);\n\n const styles = [];\n let imgIndex = 0;\n\n this.styles = this.breakpoints.forEach((breakpoint) => {\n styles.push(`@media screen and (min-width: ${breakpoint.min_screen_width}px) {`);\n\n // Root\n styles.push(`#${this.id} {`);\n styles.push(`padding-top: ${breakpoint.padding_top};`);\n styles.push(`padding-bottom: ${breakpoint.padding_bottom};`);\n styles.push(`}`);\n\n // Content\n styles.push(`#${this.id} [x-ref=\"content\"] {`);\n styles.push(`max-width: ${breakpoint.max_content_width};`);\n\n if (breakpoint.content_position === 'left' || breakpoint.content_position === 'center') {\n styles.push(`margin-right: auto;`);\n }\n\n if (breakpoint.content_position === 'right' || breakpoint.content_position === 'center') {\n styles.push(`margin-left: auto;`);\n }\n\n styles.push(`}`);\n\n // Images\n breakpoint.images.forEach((image) => {\n const imgWrapper = document.createElement('div');\n const imgEl = document.createElement('img');\n imgWrapper.setAttribute('data-image-index', imgIndex);\n imgEl.src = image.image.url;\n imgEl.alt = image.image.alt;\n imgWrapper.append(imgEl);\n this.$refs.images.append(imgWrapper);\n\n // Image wrapper\n styles.push(`#${this.id} [data-image-index=\"${imgIndex}\"] {`);\n styles.push(`display: block;`);\n styles.push(`opacity: ${image.opacity};`);\n styles.push(`width: ${image.width};`);\n\n let top = 'auto';\n let right = 'auto';\n let bottom = 'auto';\n let left = 'auto';\n\n if (image.position === 'top' || image.position === 'top-left' || image.position === 'top-right') {\n top = '0';\n }\n\n if (image.position === 'right' || image.position === 'top-right' || image.position === 'bottom-right') {\n right = '0';\n }\n\n if (image.position === 'bottom' || image.position === 'bottom-left' || image.position === 'bottom-right') {\n bottom = '0';\n }\n\n if (image.position === 'left' || image.position === 'top-left' || image.position === 'bottom-left') {\n left = '0';\n }\n\n if (image.position === 'center') {\n top = '50%';\n left = '50%';\n styles.push(`transform: translate3d(-50%, -50%, 0);`);\n }\n\n styles.push(`top: ${top};`);\n styles.push(`right: ${right};`);\n styles.push(`bottom: ${bottom};`);\n styles.push(`left: ${left};`);\n\n styles.push(`}`);\n\n // Image\n styles.push(`#${this.id} [data-image-index=\"${imgIndex}\"] img {`);\n styles.push(`transform: translate3d(${image.offset_left}, ${image.offset_top}, 0);`);\n styles.push(`}`);\n\n // Hide prev images\n for (let i = 0; i < imgIndex; i++) {\n styles.push(`#${this.id} [data-image-index=\"${i}\"] {`);\n styles.push(`display: none;`);\n styles.push(`}`);\n }\n\n imgIndex++;\n });\n\n styles.push(`}`);\n });\n\n this.styles = styles.join('\\n');\n });\n },\n }));\n});","import { utm } from '../../utils/utm';\nimport { initCustomerIO } from '../../utils/customer-io';\n\ndocument.addEventListener('alpine:init', () => {\n Alpine.data('flowForm', () => ({\n blockID: '',\n customBlockID: 'acf/flow-form',\n formData: {},\n data: { fields: [] },\n countries: [],\n tabs: [],\n activeTab: 0,\n changes: 0,\n disabled: false,\n recaptchaValue: '',\n success: false,\n entryLimit: 0,\n mfqId: '',\n customerIoFormId: '',\n addToCalendarScriptInitialized: false,\n\n init() {\n window._mfq = window._mfq || [];\n this.mfqId = this.$root.dataset.mfqId;\n this.customerIoFormId = this.$root.dataset.customerIoFormId;\n\n this.blockID = this.$root.dataset.id;\n\n if (utm) {\n Object.keys(utm).forEach((p) => {\n if (utm[p]) {\n const utmInput = document.createElement('input');\n utmInput.hidden = true;\n utmInput.name = p === 'gclid' ? p : `utm_${p}`;\n utmInput.setAttribute('value', utm[p]);\n this.$refs.form.append(utmInput);\n\n if (p === 'gclid') {\n this.formData[p] = utm[p];\n } else {\n this.formData[`utm_${p}`] = utm[p];\n }\n }\n });\n }\n\n if (this.customerIoFormId) {\n initCustomerIO();\n }\n\n this.$nextTick(() => this.ready());\n },\n\n ready() {\n // Resolve custom block ID\n document.querySelectorAll('.flow-form').forEach((input, i) => {\n if (input === this.$root) {\n this.customBlockID += `|${i}`;\n }\n });\n\n this.entryLimit = +this.$root.dataset.entryLimit;\n\n if (this.entryLimit) {\n fetch(\n `${window.ajaxurl}?action=flow_entry_count&post_id=${this.$root.dataset.postId}&block_id=${this.customBlockID}`,\n { method: 'GET' }\n )\n .then((response) => response.json())\n .then((response) => {\n if (response.success) {\n if (+response.data.entry_count < this.entryLimit) {\n this.initForm();\n } else {\n this.success = true;\n this.$refs.form.innerHTML = response.data.message;\n }\n }\n })\n .catch((error) => console.error(error));\n } else {\n this.initForm();\n }\n },\n\n initForm() {\n this.data = JSON.parse(this.$refs.data.innerHTML);\n\n this.countries = JSON.parse(this.$refs.countries.innerHTML)\n .split(/\\r?\\n/)\n .filter((line) => line.trim())\n .map((line) => line.split(' : '))\n .map(([value, label]) => ({\n value: value === 'no_select' ? '' : value,\n label: label ?? value,\n disabled: value === 'no_select',\n }));\n this.formatChoices(this.countries);\n\n if (window.location.pathname.startsWith('/zh-hans/')) {\n const chinaIndex = this.countries.findIndex((country) => country.value === 'China');\n const china = this.countries[chinaIndex];\n\n this.countries.splice(chinaIndex, 1);\n this.countries.splice(1, 0, china);\n }\n\n let tab = -1;\n\n if (this.data.fields.length > 0 && this.data.fields[0].acf_fc_layout !== 'tab') {\n tab = 0;\n this.tabs.push({\n label: 'Form',\n logic: '',\n });\n }\n\n for (const field of this.data.fields) {\n field.tab = tab;\n\n if (field.acf_fc_layout === 'text_input') {\n this.formData[field.name] = '';\n } else if (field.acf_fc_layout === 'select' || field.acf_fc_layout === 'radio_group') {\n this.formData[field.name] = field.default;\n } else if (field.acf_fc_layout === 'checkbox') {\n this.formData[field.name] = field.checked;\n } else if (field.acf_fc_layout === 'text') {\n field.text = field.text.replace(/</g, '<').replace(/>/g, '>');\n } else if (field.acf_fc_layout === 'tab') {\n tab++;\n this.tabs.push(field);\n }\n\n if (field.choices === 'countries') {\n field.choices = this.countries;\n } else if (field.choices) {\n field.choices = field.choices\n .split(/\\r?\\n/)\n .filter((line) => line.trim())\n .map((line) => line.split(' : '))\n .map(([value, label]) => ({\n value: value === 'no_select' ? '' : value,\n label: label ?? value,\n disabled: value === 'no_select',\n }));\n\n this.formatChoices(field.choices);\n }\n }\n\n if (this.$root.dataset.recaptcha) {\n grecaptcha.ready(() => {\n this.refreshRecaptcha();\n setInterval(() => this.refreshRecaptcha(), 60000);\n });\n }\n },\n\n formatChoices(choices) {\n choices.forEach((choice) => {\n choice.value = choice.value.replace(/&/g, '&');\n choice.label = choice.label.replace(/&/g, '&');\n });\n },\n\n onSubmit() {\n let valid = true;\n\n if (this.mfqId) {\n window._mfq.push(['formSubmitAttempt', this.mfqId]);\n }\n\n if (this.customerIoFormId && window._cio) {\n _cio.track('formSubmitAttempt', {\n formId: this.customerIoFormId,\n url: window.location.href,\n });\n }\n\n for (const field of this.data.fields) {\n if (field.tab === this.activeTab && field.validation?.length > 0) {\n const logic = field.logic\n .trim()\n .replace(/form\\./g, 'this.formData.')\n .replace(/&/g, '&');\n\n if (!logic || new Function(`return ${logic}`).call(this)) {\n for (const validation of field.validation) {\n if (new RegExp(validation.regexp.replaceAll('§', '\\\\')).test(this.formData[field.name])) {\n field.error = null;\n } else {\n field.error = validation.message;\n valid = false;\n }\n }\n\n if (\n valid &&\n field.email_blacklist &&\n field.email_blacklist\n .split('\\n')\n .map((d) => d.trim())\n .some((d) => this.formData[field.name].includes(d))\n ) {\n field.error = field.email_blacklist_error;\n }\n }\n }\n }\n\n if (valid) {\n if (this.activeTab < this.tabs.length - 1) {\n this.activeTab++;\n setTimeout(() => this.scrollToTop());\n } else if (!this.disabled) {\n this.disabled = true;\n\n const body = new FormData();\n\n body.append('action', 'submit_flow');\n body.append('block_id', this.customBlockID);\n body.append('post_id', this.$root.dataset.postId);\n\n if (this.recaptchaValue) {\n body.append('recaptcha', this.recaptchaValue);\n }\n\n for (const name in this.formData) {\n body.append(name, this.formData[name]);\n }\n\n fetch(window.ajaxurl, { method: 'POST', body })\n .then((response) => response.json())\n .then((response) => {\n if (response.success) {\n this.success = true;\n this.$refs.form.innerHTML = response.data.success_message.replace(\n '[calendar-invite-buttons]',\n this.createInviteButtons()\n );\n this.$refs.form.classList.add('sales-form-success');\n setTimeout(() => this.scrollToTop());\n\n if (this.mfqId) {\n window._mfq.push(['formSubmitSuccess', this.mfqId]);\n }\n\n if (this.customerIoFormId && window._cio) {\n if (body.get('email')) {\n _cio.identify({\n id: body.get('email'),\n });\n }\n\n _cio.track('formSubmitSuccess', {\n formId: this.customerIoFormId,\n url: window.location.href,\n });\n }\n\n this.$refs.form.dispatchEvent(new CustomEvent('form-success'));\n } else if (response.data?.errors) {\n for (const [name, error] of Object.entries(response.data.errors)) {\n const field = this.data.fields.find((field) => field.name === name);\n\n if (field) {\n field.error = error;\n }\n\n if (this.mfqId) {\n window._mfq.push(['formSubmitFailure', this.mfqId]);\n }\n\n if (this.customerIoFormId && window._cio) {\n _cio.track('formSubmitFailure', {\n formId: this.customerIoFormId,\n url: window.location.href,\n });\n }\n }\n }\n })\n .catch((error) => {\n console.error(error);\n\n if (this.mfqId) {\n window._mfq.push(['formSubmitFailure', this.mfqId]);\n }\n\n if (this.customerIoFormId && window._cio) {\n _cio.track('formSubmitFailure', {\n formId: this.customerIoFormId,\n url: window.location.href,\n });\n }\n })\n .finally(() => {\n this.disabled = false;\n\n if (!this.success) {\n this.refreshRecaptcha();\n }\n });\n }\n } else {\n setTimeout(() =>\n this.$root.querySelector('.error-text:not([hidden])')?.parentElement.scrollIntoView({ behavior: 'smooth' })\n );\n }\n },\n\n onClickTab(index) {\n if (index < this.activeTab) {\n this.activeTab = index;\n } else if (index > this.activeTab) {\n this.onSubmit();\n }\n },\n\n refreshRecaptcha() {\n if (!this.disabled) {\n grecaptcha\n .execute(this.$root.dataset.recaptcha, {\n action: 'homepage',\n })\n .then((token) => {\n this.recaptchaValue = token;\n });\n }\n },\n\n scrollToTop() {\n this.$refs.form.scrollIntoView({ behavior: 'smooth' });\n window.scrollTo({ top: 0, behavior: 'smooth' });\n },\n\n tabEl: {\n ':disabled'() {\n if (this.i > this.activeTab + 1) {\n return true;\n }\n\n const logic = this.tab.logic\n .trim()\n .replace(/form\\./g, 'this.formData.')\n .replace(/&/g, '&');\n\n if (!logic) {\n return false;\n }\n\n return this.changes > -1 && !new Function(`return ${logic}`).call(this);\n },\n },\n\n fieldEl: {\n ':class'() {\n return {\n 'flow-form__field--half': this.field.width === 'half',\n };\n },\n ':hidden'() {\n if (this.field.acf_fc_layout === 'tab') {\n return true;\n }\n\n const logic = this.field.logic\n ?.trim()\n .replace(/form\\./g, 'this.formData.')\n .replace(/&/g, '&');\n\n if (!logic) {\n return false;\n }\n\n return this.changes > -1 && !new Function(`return ${logic}`).call(this);\n },\n },\n\n inputEl: {\n ':class'() {\n return {\n dirty: this.formData[this.field.name],\n };\n },\n '@change'() {\n this.changes++;\n },\n },\n\n createInviteButtons() {\n if (!this.addToCalendarScriptInitialized) {\n this.addToCalendarScriptInitialized = true;\n\n const script = document.createElement('script');\n script.src = 'https://cdn.jsdelivr.net/npm/add-to-calendar-button@2';\n script.async = true;\n script.defer = true;\n\n document.head.appendChild(script);\n }\n\n if (this.data.add_calendar_invite) {\n return this.data.calendar_invite_script.replace(/</g, '<').replace(/>/g, '>');\n }\n\n return '';\n },\n }));\n});","import { utm } from '../../utils/utm';\nimport { initCustomerIO } from '../../utils/customer-io';\n\nclass FormBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n if (block.hasAttribute('data-ignore')) {\n return;\n }\n\n this.block = block;\n this.wrapper = block.querySelector('.form__wrapper');\n this.form = block.querySelector('.form__form');\n this.innerBlocks = block.querySelectorAll('.block__inner-blocks > *');\n this.groups = this.form.querySelectorAll('.form__group');\n this.errors = this.form.querySelectorAll('.error-text');\n this.recaptcha = this.form.querySelector('input[data-recaptcha]');\n this.submit = this.form.querySelector('button[type=\"submit\"]');\n this.success = this.block.querySelector('.form__success');\n this.steps = [];\n this.customerIoFormId = this.block.dataset.customerIoFormId;\n\n window._mfq = window._mfq || [];\n\n if (this.customerIoFormId) {\n initCustomerIO();\n }\n\n if (this.recaptcha && window.grecaptcha) {\n grecaptcha.ready(() => {\n this.refreshRecaptcha();\n setInterval(() => this.refreshRecaptcha(), 60000);\n });\n }\n\n if (utm) {\n Object.keys(utm).forEach((p) => {\n if (utm[p]) {\n const utmInput = document.createElement('input');\n utmInput.hidden = true;\n utmInput.name = p === 'gclid' ? p : `utm_${p}`;\n utmInput.value = utm[p];\n this.form.append(utmInput);\n }\n });\n }\n\n if ([...this.groups].some((group) => group.classList.contains('form__group--step'))) {\n const steps = document.createElement('div');\n steps.classList.add('form__steps');\n this.wrapper.appendChild(steps);\n let i = 1;\n\n this.groups.forEach((group) => {\n const inputs = group.querySelectorAll('input');\n const selects = group.querySelectorAll('select');\n\n inputs.forEach((input) => input.addEventListener('change', () => this.refresh()));\n selects.forEach((select) => select.addEventListener('change', () => this.refresh()));\n\n if (group.classList.contains('form__group--step')) {\n const step = document.createElement('div');\n step.classList.add('form__step');\n step.classList.add(`form__step--${i}`);\n steps.appendChild(step);\n this.steps.push(step);\n i++;\n }\n });\n\n window.addEventListener('resize', () => this.updateStepBar());\n\n this.refresh();\n\n setTimeout(() => {\n this.updateStepBar();\n }, 0);\n }\n\n this.form.addEventListener('submit', (e) => {\n e.preventDefault();\n\n const formData = new FormData(this.form);\n formData.append('action', 'submit');\n\n this.groups.forEach((group) => group.classList.remove('has-errors'));\n this.errors.forEach((error) => (error.innerHTML = ''));\n this.submit.disabled = true;\n\n window._mfq.push(['formSubmitAttempt', `#${this.form.id}`]);\n\n if (this.customerIoFormId && window._cio) {\n _cio.track('formSubmitAttempt', {\n formId: this.customerIoFormId,\n url: window.location.href,\n });\n }\n\n fetch(ajaxurl, {\n method: 'POST',\n body: formData,\n })\n .then((response) => response.json())\n .then((data) => {\n if (data.success) {\n window._mfq.push(['formSubmitSuccess', `#${this.form.id}`]);\n\n if (this.customerIoFormId && window._cio) {\n if (formData.get('email')) {\n _cio.identify({\n id: formData.get('email'),\n });\n }\n\n _cio.track('formSubmitSuccess', {\n formId: this.customerIoFormId,\n url: window.location.href,\n });\n }\n\n this.block.querySelector('.form__form').dispatchEvent(new CustomEvent('form-success'));\n\n if (data.data && data.data.redirectTo) {\n window.location.href = data.data.redirectTo;\n } else {\n this.form.style.height = this.form.scrollHeight + 'px';\n this.form.classList.add('sales-form-success');\n\n const steps = document.querySelector('.form__steps');\n\n if (steps) {\n steps.style.display = 'none';\n }\n\n const _form = this.block.querySelector('.form__form');\n\n if (_form) {\n _form.style.overflow = 'hidden';\n }\n\n setTimeout(() => {\n this.form.style.height = 0;\n this.success.style.height = this.success.scrollHeight + 'px';\n\n setTimeout(() => {\n this.form.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }, 400);\n }, 100);\n\n if (data.data && data.data.download) {\n const date = new Date();\n date.setTime(date.getTime() + 365 * 24 * 60 * 60 * 1000);\n document.cookie = `wp-vb-token=${data.data.download.token}; expires=${date.toUTCString()}; path=/`;\n // console.log(this.success.innerHTML);\n this.success.innerHTML = this.success.innerHTML.replace(\n '[link]',\n `Download link`\n );\n window.open(data.data.download.url, '_blank');\n }\n }\n } else {\n window._mfq.push(['formSubmitFailure', `#${this.form.id}`]);\n\n if (this.customerIoFormId && window._cio) {\n _cio.track('formSubmitFailure', {\n formId: this.customerIoFormId,\n url: window.location.href,\n });\n }\n\n for (let name in data.data) {\n if (data.data[name].length) {\n const groupEl = this.form.querySelector(`.form__group[data-name=\"${name}\"]`);\n const errorEl = groupEl && groupEl.querySelector('.error-text');\n\n if (groupEl) {\n groupEl.classList.add('has-errors');\n }\n\n if (errorEl) {\n errorEl.innerHTML = data.data[name][0];\n }\n }\n\n this.submit.disabled = false;\n this.refreshRecaptcha();\n }\n }\n });\n });\n\n // Tooltip\n const tooltip = this.block.querySelector('.tooltip');\n const checkbox = this.block.querySelector('.form__group--checkbox');\n const _form = this.block.querySelector('.form__form');\n\n if (checkbox) {\n if (tooltip) {\n checkbox.append(tooltip);\n }\n\n checkbox.style.display = 'flex';\n checkbox.style.justifyContent = 'space-between';\n checkbox.style.gap = '24px';\n\n if (window.innerWidth < 768) {\n checkbox.style.flexDirection = 'column';\n\n if (tooltip) {\n tooltip.style.marginLeft = 'auto';\n }\n }\n\n if (_form) {\n _form.style.overflow = 'visible';\n }\n }\n\n if (tooltip) {\n tooltip.style.display = '';\n tooltip.style.marginTop = '4px';\n document.addEventListener('click', () => {\n tooltip.classList.remove('tooltip-open');\n });\n }\n }\n\n refresh() {\n this.refreshConditionalLogic();\n this.refreshSteps();\n this.updateStepBar();\n }\n\n refreshSteps() {\n let filled = true;\n let currentGroupStep = null;\n let skip = false;\n let i = 1;\n\n this.steps.forEach((step) => {\n step.classList.remove('form__step--visible');\n step.classList.remove('form__step--filled');\n step.classList.remove('form__step--active');\n });\n\n this.groups.forEach((group) => {\n if (group.classList.contains('form__group--step')) {\n if (!group.classList.contains('form__group--hidden')) {\n this.steps.find((step) => step.classList.contains(`form__step--${i}`))?.classList.add('form__step--visible');\n }\n\n i++;\n }\n });\n\n i = 1;\n\n this.groups.forEach((group) => {\n if (skip && !group.classList.contains('form__group--step')) {\n return;\n }\n\n skip = false;\n\n const inputs = group.querySelectorAll('input');\n const selects = group.querySelectorAll('select');\n\n if (group.classList.contains('form__group--step')) {\n if (group.classList.contains('form__group--hidden')) {\n skip = true;\n } else {\n if (currentGroupStep) {\n if (currentGroupStep.disable) {\n currentGroupStep.groups.forEach((group) => group.classList.add('is-disabled'));\n } else {\n currentGroupStep.groups.forEach((group) => group.classList.remove('is-disabled'));\n }\n\n if (filled) {\n currentGroupStep.step.classList.add('form__step--filled');\n }\n }\n\n currentGroupStep = {\n step: this.steps.find((step) => step.classList.contains(`form__step--${i}`)),\n groups: [],\n disable: !filled,\n };\n }\n\n i++;\n } else {\n if (currentGroupStep) {\n currentGroupStep.groups.push(group);\n }\n\n inputs.forEach((input) => {\n if (input.type === 'radio' || input.type === 'checkbox') {\n filled = filled && !!group.querySelector(`[name=\"${input.name}\"]:checked`);\n } else {\n filled = filled && !!input.value;\n }\n });\n\n selects.forEach((select) => {\n if (!select.value || select.value === 'no_select') {\n filled = false;\n }\n });\n }\n });\n\n // For the last group\n if (currentGroupStep) {\n if (currentGroupStep.disable) {\n currentGroupStep.groups.forEach((group) => group.classList.add('is-disabled'));\n } else {\n currentGroupStep.groups.forEach((group) => group.classList.remove('is-disabled'));\n }\n\n if (filled) {\n currentGroupStep.step.classList.add('form__step--filled');\n }\n }\n\n const visibleSteps = this.steps.filter((step) => step.classList.contains('form__step--visible'));\n\n visibleSteps.find((step) => !step.classList.contains('form__step--filled'))?.classList.add('form__step--active');\n }\n\n updateStepBar() {\n let i = 1;\n\n this.groups.forEach((group) => {\n if (group.classList.contains('form__group--step')) {\n const step = this.steps.find((step) => step.classList.contains(`form__step--${i}`));\n\n if (step) {\n step.style.top = `${group.offsetTop}px`;\n }\n\n i++;\n }\n });\n }\n\n refreshConditionalLogic() {\n this.groups.forEach((group, i) => {\n if (group.dataset.cl) {\n const cl = JSON.parse(group.dataset.cl);\n const subGroups = [...this.groups].slice(i);\n subGroups.splice(subGroups.findIndex((sg, i) => i > 0 && sg.classList.contains('form__group--step')));\n\n const visible = cl.every((r) => {\n const field = this.form.querySelector(`[name=\"formData[${r.name}]\"]`);\n\n if (field && field.type === 'radio') {\n const checked = this.form.querySelector(`[name=\"formData[${r.name}]\"]:checked`);\n return checked && checked.value == r.value;\n }\n\n return field && field.value == r.value;\n });\n\n // console.log(cl, visible);\n\n if (visible) {\n subGroups.forEach((sg) => sg.classList.remove('form__group--hidden'));\n } else {\n subGroups.forEach((sg) => sg.classList.add('form__group--hidden'));\n }\n }\n });\n }\n\n refreshRecaptcha() {\n if (this.recaptcha && !this.submit.disabled) {\n grecaptcha\n .execute(this.recaptcha.dataset.recaptcha, {\n action: 'homepage',\n })\n .then((token) => {\n this.recaptcha.value = token;\n });\n }\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.form').forEach((block) => {\n new FormBlock(block);\n});\n\n// Initialize the dynamic block preview (editor)\nif (window.acf) {\n window.acf.addAction('render_block_preview/type=form', ($block, attributes) => {\n new FormBlock($block.find('.form').get(0), attributes);\n });\n}\n\nexport { FormBlock };","document.addEventListener('alpine:init', () => {\n Alpine.data('gallery', () => ({\n swiper: null,\n swiper2: null,\n\n init() {\n this.$nextTick(() => this.ready());\n },\n\n ready() {\n const options2 = {\n slidesPerView: 3,\n loop: true,\n loopedSlides: +this.$el.dataset.slides,\n spaceBetween: 10,\n watchSlidesProgress: true,\n breakpoints: {\n 1024: {\n slidesPerView: 8,\n },\n 768: {\n slidesPerView: 6,\n },\n 640: {\n slidesPerView: 4,\n },\n },\n };\n\n this.swiper2 = new Swiper(this.$refs.container2, options2);\n\n const options = {\n slidesPerView: 1,\n loop: true,\n loopedSlides: +this.$el.dataset.slides,\n navigation: {\n prevEl: '.slider__slider-nav-button--prev',\n nextEl: '.slider__slider-nav-button--next',\n },\n keyboard: {\n enabled: true,\n onlyInViewport: false,\n },\n pagination: {\n el: '.swiper-pagination',\n type: 'bullets',\n clickable: true,\n },\n thumbs: {\n swiper: this.swiper2,\n },\n };\n\n this.swiper = new Swiper(this.$refs.container, options);\n },\n }));\n});","document.addEventListener('alpine:init', () => {\n Alpine.data('gatedContentHero', () => ({\n async play() {\n const match = this.$refs.videoContainer.dataset.vimeo.match(/([0-9]+)(?:\\/([0-9a-z]+)|$)?/i);\n\n if (match) {\n await new Promise((resolve) => {\n this.$refs.videoContainer.addEventListener('next', () => resolve(), {\n once: true,\n });\n this.$refs.videoContainer.innerHTML += ``;\n\n this.$refs.playButton.classList.add('opacity-0', 'invisible');\n });\n }\n },\n }));\n});","import { viewport } from '../../utils/viewport';\n\ndocument.querySelectorAll('.hero__cta--jobs button').forEach((button) => {\n const jobsBlock = document.querySelector('.jobs');\n\n if (jobsBlock) {\n button.addEventListener('click', () => {\n jobsBlock.scrollIntoView({ behavior: 'smooth' });\n });\n\n viewport.observe(\n jobsBlock,\n () => button.classList.add('hidden'),\n () => button.classList.remove('hidden')\n );\n } else {\n button.parentElement.removeChild(button);\n }\n});","document.addEventListener('alpine:init', () => {\n Alpine.data('homeHero', () => ({\n init() {\n this.$nextTick(() => {\n bodymovin.loadAnimation({\n container: this.$refs.lottie,\n path: this.$refs.lottie.dataset.lottie,\n assetsPath: `${this.$refs.lottie.dataset.lottie.replace('/lottie.json', '')}/images/`,\n renderer: 'svg',\n autoplay: true,\n loop: !!+this.$root.dataset.loop,\n rendererSettings: {\n filterSize: {\n width: '200%',\n height: '200%',\n x: '-50%',\n y: '-50%',\n },\n },\n });\n });\n },\n }));\n});","class JobsBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.items = block.querySelectorAll('.jobs__item');\n this.showingCountEl = block.querySelector('.jobs__count-showing');\n this.resetButton = block.querySelector('.filters__reset');\n this.departmentFilter = block.querySelector(\n `.filters__select[name=\"jobs-department-filter-${block.dataset.blockId}\"]`\n );\n this.commitmentFilter = block.querySelector(\n `.filters__select[name=\"jobs-commitment-filter-${block.dataset.blockId}\"]`\n );\n this.locationFilter = block.querySelector(`.filters__select[name=\"jobs-location-filter-${block.dataset.blockId}\"]`);\n this.keywordsFilter = block.querySelector('.filters__text-input');\n this.showResultsButtonCount = block.querySelector('.filters__show-results-button span');\n this.loadMoreButton = block.querySelector('.jobs__load-more-button');\n this.filterToggle = block.querySelector('.filters__toggle--open');\n this.notFoundMessage = block.querySelector('.jobs__not-found');\n\n this.getFragmentData();\n this.calcShowingCount();\n\n this.resetButton.addEventListener('click', () => {\n this.departmentFilter.value = 'all';\n this.commitmentFilter.value = 'all';\n this.locationFilter.value = 'all';\n this.keywordsFilter.value = '';\n this.refresh();\n });\n\n this.departmentFilter.addEventListener('change', () => this.refresh());\n this.commitmentFilter.addEventListener('change', () => this.refresh());\n this.locationFilter.addEventListener('change', () => this.refresh());\n this.keywordsFilter.addEventListener('keyup', () => this.refresh());\n this.keywordsFilter.addEventListener('change', () => this.refresh());\n this.filterToggle.addEventListener('click', () => setTimeout(() => this.refresh(), 400));\n\n if (this.loadMoreButton) {\n this.loadMoreButton.addEventListener('click', () => {\n this.refresh();\n });\n }\n }\n\n /**\n * Get the filter selection from the URL fragment.\n */\n getFragmentData() {\n if (window.location.hash) {\n const parts = window.location.hash.substr(1).split('+');\n const blockId = parts[0];\n\n parts.forEach((part) => {\n const _parts = part.split('!');\n\n if (_parts.length === 2) {\n switch (_parts[0]) {\n case 'department':\n this.departmentFilter.value = _parts[1];\n break;\n case 'commitment':\n this.commitmentFilter.value = _parts[1];\n break;\n case 'location':\n this.locationFilter.value = _parts[1];\n break;\n }\n }\n\n if (parts.length > 1) {\n this.refresh();\n window.location.href = '#' + parts[0];\n }\n });\n }\n }\n\n /**\n * Refresh the visibility of all job items.\n */\n refresh() {\n this.items.forEach((item) => {\n let visible = true;\n\n if (this.departmentFilter.value !== 'all' && this.departmentFilter.value !== item.dataset.department) {\n visible = false;\n }\n\n if (this.commitmentFilter.value !== 'all' && this.commitmentFilter.value !== item.dataset.commitment) {\n visible = false;\n }\n\n if (this.locationFilter.value !== 'all' && this.locationFilter.value !== item.dataset.location) {\n visible = false;\n }\n\n if (this.keywordsFilter.value) {\n const needles = this.keywordsFilter.value\n .toLowerCase()\n .trim()\n .replace(/ +(?= )/g, '')\n .split(' ');\n\n const haystack = `${item.textContent.trim()} ${item.dataset.department} ${item.dataset.commitment} ${\n item.dataset.location\n }`.toLowerCase();\n\n needles.forEach((needle) => {\n if (!haystack.includes(needle)) {\n visible = false;\n }\n });\n }\n\n if (visible) {\n item.classList.add('jobs__item--visible');\n } else {\n item.classList.remove('jobs__item--visible');\n }\n });\n\n this.calcShowingCount();\n\n if (\n this.departmentFilter.value !== 'all' ||\n this.commitmentFilter.value !== 'all' ||\n this.locationFilter.value !== 'all'\n ) {\n this.filterToggle.classList.add('filters__toggle--active');\n } else {\n this.filterToggle.classList.remove('filters__toggle--active');\n }\n\n if (this.loadMoreButton) {\n this.loadMoreButton.parentElement.removeChild(this.loadMoreButton);\n this.loadMoreButton = null;\n }\n }\n\n /**\n * Count the visible job items.\n */\n calcShowingCount() {\n const count = Array.from(this.items).filter((item) => item.classList.contains('jobs__item--visible')).length;\n\n this.showingCountEl.textContent = count;\n this.showResultsButtonCount.textContent = count;\n this.notFoundMessage.style.display = count ? 'none' : 'block';\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.jobs').forEach((block) => {\n new JobsBlock(block);\n});\n\nwindow.addEventListener('init', () => {\n document.querySelectorAll('.jobs').forEach((block) => {\n new JobsBlock(block);\n });\n});\n\n// Initialize the dynamic block preview (editor)\nif (window.acf) {\n window.acf.addAction('render_block_preview/type=jobs', ($block, attributes) => {\n new JobsBlock($block.find('.jobs').get(0), attributes);\n });\n}","document.addEventListener('alpine:init', () => {\n Alpine.data('latamHero', () => ({\n animated: false,\n active: 'red',\n transitioning: false,\n\n init() {\n const colors = ['red', 'blue', 'turquoise', 'yellow'];\n let currentIndex = 0;\n\n setInterval(() => {\n currentIndex = (currentIndex + 1) % colors.length;\n this.active = colors[currentIndex];\n this.transitioning = true;\n setTimeout(() => (this.transitioning = false), 700);\n }, 2000);\n },\n\n animate() {\n this.animated = true;\n },\n }));\n});","class LocationsBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.regionSelect = block.querySelector('.locations__select--region');\n this.countrySelect = block.querySelector('.locations__select--country');\n\n if (this.regionSelect) {\n this.regionSelect.addEventListener('change', () => {\n window.location.href = this.regionSelect.value;\n });\n }\n\n if (this.countrySelect) {\n this.countrySelect.addEventListener('change', () => {\n window.location.href = this.countrySelect.value;\n });\n }\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.locations').forEach((block) => {\n new LocationsBlock(block);\n});\n\n// Initialize the dynamic block preview (editor)\nif (window.acf) {\n window.acf.addAction('render_block_preview/type=locations', ($block, attributes) => {\n new LocationsBlock($block.find('.locations').get(0), attributes);\n });\n}","document.addEventListener('alpine:init', () => {\n Alpine.data('logoCarousel', () => ({\n rows: [],\n rowLoads: [],\n progress: 0,\n speed: 1,\n\n init() {\n if (!document.body.classList.contains('wp-admin')) {\n this.$nextTick(() => {\n this.rows = [...this.$root.querySelectorAll('[data-row]')];\n this.speed = +this.$root.dataset.speed;\n this.tick = this.tick.bind(this);\n requestAnimationFrame(this.tick);\n });\n }\n },\n\n tick(t) {\n for (const [i, row] of this.rows.entries()) {\n const p = i % 2 ? 1 : -1;\n const o = row.offsetWidth / 2 + (window.innerWidth < 768 ? 12 : 24);\n let x = (p * t * this.speed) / 100;\n\n while (Math.abs(x) > o) {\n if (x > 0) {\n x -= o;\n } else {\n x += o;\n }\n }\n\n row.style.transform = `translate3d(${x}px, 0, 0)`;\n }\n\n requestAnimationFrame(this.tick);\n },\n }));\n});","import { viewport } from '../../utils/viewport';\n\nclass LogosBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.container = block.querySelector('.logos__container');\n this.rows = block.querySelectorAll('.logos__row');\n this.items = block.querySelectorAll('.logos__item');\n\n if (this.block.classList.contains('logos--carousel')) {\n this.init();\n }\n }\n\n init() {\n this.rows.forEach((row) => {\n viewport.observe(row, (el) => el.classList.add('logos__row--visible'));\n });\n\n setTimeout(() => {\n this.rows.forEach((row) => {\n const group = row.querySelector('.logos__row-group');\n\n if (group) {\n row.appendChild(group);\n }\n });\n }, 15000);\n\n window.addEventListener('blur', () => this.pause());\n window.addEventListener('focus', () => this.resume());\n }\n\n pause() {\n this.block.classList.add('logos--paused');\n }\n\n resume() {\n this.block.classList.remove('logos--paused');\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.logos').forEach((block) => {\n new LogosBlock(block);\n});\n\n// Initialize the dynamic block preview (editor)\nif (window.acf) {\n window.acf.addAction('render_block_preview/type=logos', ($block, attributes) => {\n new LogosBlock($block.find('.logos').get(0), attributes);\n });\n}","import { Viewport } from '../../utils/viewport';\nimport { mqLaptop, mqTabletLandscape, mqTabletPortrait, mqPhone } from '../../utils/mq';\n\nclass LottieBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.wrapper = block.querySelector('.lottie__wrapper');\n this.viewport = new Viewport({ rootMargin: '-20%' });\n\n this.init();\n\n this.viewport.observe(this.block, (block) => {\n if (this.animation) {\n this.animation.play();\n }\n });\n\n if (mqLaptop.addEventListener) {\n mqLaptop.addEventListener('change', () => this.resize());\n mqTabletLandscape.addEventListener('change', () => this.resize());\n mqTabletPortrait.addEventListener('change', () => this.resize());\n mqPhone.addEventListener('change', () => this.resize());\n } else {\n mqLaptop.addEventListener(() => this.resize());\n mqTabletLandscape.addEventListener(() => this.resize());\n mqTabletPortrait.addEventListener(() => this.resize());\n mqPhone.addEventListener(() => this.resize());\n }\n\n this.resize();\n }\n\n init() {\n if (this.wrapper.dataset.file) {\n this.animation = bodymovin.loadAnimation({\n container: this.wrapper,\n path: this.wrapper.dataset.file,\n renderer: 'svg',\n loop: !!this.wrapper.dataset.loop,\n autoplay: false,\n });\n }\n }\n\n resize() {\n let maxWidth = this.wrapper.dataset.maxWidth ? this.wrapper.dataset.maxWidth : null;\n\n if (mqPhone.matches) {\n maxWidth = this.wrapper.dataset.maxWidthPh ? this.wrapper.dataset.maxWidthPh : maxWidth;\n } else if (mqTabletPortrait.matches) {\n maxWidth = this.wrapper.dataset.maxWidthTp ? this.wrapper.dataset.maxWidthTp : maxWidth;\n } else if (mqTabletLandscape.matches) {\n maxWidth = this.wrapper.dataset.maxWidthTl ? this.wrapper.dataset.maxWidthTl : maxWidth;\n } else if (mqLaptop.matches) {\n maxWidth = this.wrapper.dataset.maxWidthLp ? this.wrapper.dataset.maxWidthLp : maxWidth;\n }\n\n if (maxWidth) {\n this.wrapper.style.maxWidth = maxWidth + 'px';\n }\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.lottie').forEach((block) => {\n new LottieBlock(block);\n});\n\n// Initialize the dynamic block preview (editor)\nif (window.acf) {\n window.acf.addAction('render_block_preview/type=lottie', ($block, attributes) => {\n new LottieBlock($block.find('.lottie').get(0), attributes);\n });\n}","document.addEventListener('alpine:init', () => {\n Alpine.data('multiform', () => ({\n init() {\n this.$nextTick(() => {\n if (!document.body.classList.contains('wp-admin')) {\n this.$nextTick(() => {});\n }\n });\n },\n\n change(id) {\n const index = +id.slice(2);\n\n this.$refs.forms.classList.remove('hidden');\n\n for (const [i, block] of [...this.$refs.forms.children].entries()) {\n if (index === i) {\n block.classList.remove('hidden');\n } else {\n block.classList.add('hidden');\n }\n }\n },\n }));\n});","class NewsletterBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.form = block.querySelector('.newsletter__form');\n this.success = block.querySelector('.newsletter__success');\n this.agreement = block.querySelector('input[name=\"formData[agreement]\"]');\n this.agreementError = block.querySelector('.newsletter__checkbox-error');\n\n if (!this.form) {\n return;\n }\n\n this.group = this.form.querySelector('.newsletter__form-field');\n this.error = this.form.querySelector('.error-text');\n this.recaptcha = this.form.querySelector('input[data-recaptcha]');\n\n window._mfq = window._mfq || [];\n\n if (this.recaptcha && window.grecaptcha) {\n grecaptcha.ready(() => {\n this.refreshRecaptcha();\n setInterval(() => this.refreshRecaptcha(), 60000);\n });\n }\n\n this.form.addEventListener('submit', (e) => {\n e.preventDefault();\n\n if (!this.agreement.checked) {\n // this.agreementError.classList.add('has-errors');\n // return;\n } else {\n // this.agreementError.classList.remove('has-errors');\n }\n\n const formData = new FormData(this.form);\n formData.append('action', 'submit');\n\n this.form.classList.add('disabled');\n this.group.classList.remove('has-errors');\n this.error.innerHTML = '';\n\n window._mfq?.push(['formSubmitAttempt', `#${this.form.id}`]);\n\n fetch(ajaxurl, {\n method: 'POST',\n body: formData,\n })\n .then((response) => response.json())\n .then((data) => {\n if (data.success) {\n window._mfq?.push(['formSubmitSuccess', `#${this.form.id}`]);\n\n this.form.style.height = this.form.scrollHeight + 'px';\n\n setTimeout(() => {\n this.form.style.height = 0;\n this.form.style.padding = 0;\n this.form.style.overflow = 'hidden';\n this.success.style.height = this.success.scrollHeight + 'px';\n }, 200);\n } else {\n window._mfq?.push(['formSubmitFailure', `#${this.form.id}`]);\n\n this.form.classList.remove('disabled');\n this.group.classList.add('has-errors');\n\n if (data.data['email']) {\n this.error.innerHTML = this.form.dataset.emailError ?? data.data['email'][0];\n }\n\n this.refreshRecaptcha();\n }\n });\n });\n }\n\n refreshRecaptcha() {\n if (this.recaptcha && !this.form.classList.contains('disabled')) {\n grecaptcha\n .execute(this.recaptcha.dataset.recaptcha, {\n action: 'homepage',\n })\n .then((token) => {\n this.recaptcha.value = token;\n });\n }\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.newsletter').forEach((block) => {\n new NewsletterBlock(block);\n});\n\n// Initialize the dynamic block preview (editor)\nif (window.acf) {\n window.acf.addAction('render_block_preview/type=newsletter', ($block, attributes) => {\n new NewsletterBlock($block.find('.newsletter').get(0), attributes);\n });\n}\n\nexport { NewsletterBlock };","class OfficesBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.items = block.querySelectorAll('.offices__item');\n\n this.items.forEach((item) => {\n item.addEventListener('mouseenter', () => this.updatePopupPosition(item));\n item.addEventListener('click', () => this.updatePopupPosition(item));\n });\n }\n\n updatePopupPosition(item) {\n const offset = item.getBoundingClientRect();\n const popup = item.querySelector('.offices__popup');\n\n if (offset.width + offset.left + popup.offsetWidth < window.innerWidth + 32) {\n popup.classList.remove('offices__popup--left');\n } else {\n popup.classList.add('offices__popup--left');\n }\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.offices').forEach((block) => {\n new OfficesBlock(block);\n});\n\nwindow.addEventListener('init', () => {\n document.querySelectorAll('.offices').forEach((block) => {\n new OfficesBlock(block);\n });\n});\n\n// Initialize the dynamic block preview (editor)\nif (window.acf) {\n window.acf.addAction('render_block_preview/type=offices', ($block, attributes) => {\n new OfficesBlock($block.find('.offices').get(0), attributes);\n });\n}","document.addEventListener('alpine:init', () => {\n Alpine.data('pageNavigation', () => ({\n buttons: [],\n\n init() {\n document.querySelectorAll('.block[id] h2').forEach((heading) => {\n const title = heading.textContent;\n const contentBlock = this.findParentContentBlock(heading);\n\n if (title && contentBlock?.id) {\n this.buttons.push({\n href: `#${contentBlock.id}`,\n text: title,\n });\n }\n });\n },\n\n findParentContentBlock(section) {\n let parent = section.parentElement;\n\n while (parent && parent.tagName !== 'BODY') {\n if (parent.classList.contains('block')) {\n return parent;\n }\n\n parent = parent.parentElement;\n }\n\n return null;\n },\n }));\n});","import { mqLaptop, mqTabletPortrait, mqPhone } from '../../utils/mq';\n\ndocument.addEventListener('alpine:init', () => {\n Alpine.data('payments101Grid', () => ({\n loadMoreWrapper: undefined,\n\n loadMoreButton: undefined,\n\n cardWrappers: undefined,\n\n showPerLoad: 0,\n\n showing: 0,\n\n init() {\n if (mqPhone.matches) {\n this.showPerLoad = 3;\n } else if (mqTabletPortrait.matches) {\n this.showPerLoad = 4;\n } else if (mqLaptop.matches) {\n this.showPerLoad = 6;\n } else {\n this.showPerLoad = 8;\n }\n\n this.showing = this.showPerLoad;\n\n this.$nextTick(() => {\n this.loadMoreWrapper = this.$root.querySelector('.payments-101-grid__load-more');\n this.loadMoreButton = this.loadMoreWrapper.querySelector('.button');\n this.cardWrappers = this.$root.querySelectorAll('.payments-101-grid__card-wrapper');\n\n this.loadMoreButton.addEventListener('click', () => {\n this.showing += this.showPerLoad;\n this.refresh();\n });\n\n this.refresh();\n });\n },\n\n refresh() {\n if (this.cardWrappers.length > this.showing) {\n this.loadMoreWrapper.classList.add('payments-101-grid__load-more--visible');\n } else {\n this.loadMoreWrapper.classList.remove('payments-101-grid__load-more--visible');\n }\n },\n\n card: {\n ':class'() {\n return {\n 'payments-101-grid__card--hidden': +this.$el.dataset.index > this.showing,\n };\n },\n },\n }));\n});","import { mqTabletPortrait } from '../../utils/mq';\n\nclass PmHeroBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.cards = block.querySelector('.pm-hero__cards');\n this.cardsItems = block.querySelectorAll('.pm-hero__cards-item');\n this.content = block.querySelector('.pm-hero__content');\n this.teleportSpan = block.querySelector('.teleport');\n this.contentShowMore = document.createElement('button');\n this.contentShowMore.className = 'pm-hero__content-show-more';\n this.teaser = block.querySelector('.pm-hero__teaser');\n this.right = block.querySelector('.pm-hero__right');\n this.details = block.querySelector('.pm-hero__details');\n this.cta = block.querySelector('.pm-hero__cta');\n this.firstContentItem = block.querySelector('.pm-hero__content > *');\n\n this.shortenLists();\n\n if (this.cards) {\n this.initCardsSlider();\n }\n\n this.teleport = this.teleport.bind(this);\n this.shortenContent = this.shortenContent.bind(this);\n this.teleport();\n setTimeout(() => this.shortenContent());\n\n mqTabletPortrait.addEventListener('change', this.teleport);\n mqTabletPortrait.addEventListener('change', this.shortenContent);\n\n this.contentShowMore.addEventListener('click', () => {\n this.content.classList.add('pm-hero__content--expanded');\n this.content.classList.remove('pm-hero__content--has-hidden-content');\n this.contentShowMore.remove();\n });\n\n addEventListener(\n 'resize',\n () => {\n this.content.style.maxHeight = this.details.offsetTop + this.details.offsetHeight + 300 + 'px';\n this.shortenContent();\n },\n { passive: true }\n );\n\n this.content.style.maxHeight = this.details.offsetTop + this.details.offsetHeight + 300 + 'px';\n this.shortenContent();\n }\n\n shortenLists() {\n const countriesShort = this.block.querySelector('.pm-hero__locations-list--short');\n const countriesFull = this.block.querySelector('.pm-hero__locations-list--full');\n\n if (countriesShort) {\n const loadMore = countriesShort.querySelector('strong');\n\n if (loadMore) {\n loadMore.addEventListener('click', () => {\n countriesShort.classList.add('pm-hero__locations-list--hidden');\n countriesFull.classList.add('pm-hero__locations-list--visible');\n });\n }\n }\n }\n\n initCardsSlider() {\n const options = {\n autoHeight: true,\n speed: 400,\n spaceBetween: 24,\n slidesPerView: 1,\n navigation: {\n nextEl: this.cards.querySelector('.pm-hero-cards-button--next'),\n prevEl: this.cards.querySelector('.pm-hero-cards-button--prev'),\n disabledClass: 'pm-hero-cards-button--disabled',\n },\n keyboard: {\n enabled: true,\n },\n threshold: 1,\n breakpoints: {\n 1024: {\n slidesPerView: Math.min(3, this.cardsItems.length),\n },\n 768: {\n slidesPerView: Math.min(2, this.cardsItems.length),\n },\n },\n };\n\n new Swiper(this.cards, options);\n }\n\n teleport() {\n if (mqTabletPortrait.matches) {\n if (this.details) {\n if (this.teleportSpan) {\n this.teleportSpan.parentElement.before(this.details);\n } else if (this.teaser) {\n this.teaser.before(this.details);\n }\n }\n } else {\n if (this.details) {\n this.right.append(this.details);\n }\n }\n }\n\n shortenContent() {\n if (mqTabletPortrait.matches) {\n if (\n !this.content.classList.contains('pm-hero__content--expanded') &&\n this.content.scrollHeight > this.content.offsetHeight + 30\n ) {\n this.content.append(this.contentShowMore);\n this.content.classList.add('pm-hero__content--has-hidden-content');\n }\n } else {\n this.contentShowMore.remove();\n this.content.classList.remove('pm-hero__content--has-hidden-content');\n }\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.pm-hero').forEach((block) => {\n new PmHeroBlock(block);\n});","import { mqTabletLandscape, mqTabletPortrait, mqPhone } from '../../utils/mq';\n\nclass PmsCardsBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.items = block.querySelectorAll('.pm-card');\n this.loadMoreButton = block.querySelector('.pms-cards__load-more-button');\n this.pagination = 1;\n\n this.calcPerPage();\n this.refresh();\n\n this.loadMoreButton.addEventListener('click', () => {\n this.pagination++;\n this.refresh();\n });\n\n mqTabletLandscape.addListener((e) => {\n this.calcPerPage();\n this.refresh();\n });\n }\n\n /**\n * Refresh the visibility of all job items.\n */\n refresh() {\n const foundItems = [];\n\n this.items.forEach((item) => {\n foundItems.push(item);\n item.classList.remove('pm-card--hidden');\n });\n\n for (let i = foundItems.length; i > this.pagination * this.perPage; i--) {\n foundItems[i - 1].classList.add('pm-card--hidden');\n }\n\n if (this.pagination * this.perPage >= foundItems.length) {\n this.loadMoreButton.classList.add('pms-cards__load-more-button--hidden');\n } else {\n this.loadMoreButton.classList.remove('pms-cards__load-more-button--hidden');\n }\n }\n\n /**\n * Define how many items to show.\n */\n calcPerPage() {\n if (mqPhone.matches) {\n this.perPage = 8;\n } else if (mqTabletPortrait.matches) {\n this.perPage = 6;\n } else if (mqTabletLandscape.matches) {\n this.perPage = 6;\n } else {\n this.perPage = 8;\n }\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.block .pms-cards').forEach((block) => {\n new PmsCardsBlock(block);\n});\n\n// Initialize the dynamic block preview (editor)\nif (window.acf) {\n window.acf.addAction('render_block_preview/type=pms-cards', ($block, attributes) => {\n new PmsCardsBlock($block.find('.pms-cards').get(0), attributes);\n });\n}","document.addEventListener('alpine:init', () => {\n Alpine.data('recruitmentSlider', () => ({\n slider: null,\n\n init() {\n if (document.body.classList.contains('wp-admin')) {\n this.$refs.cardSlider.classList.add('flex', 'gap-8', 'overflow-x-auto');\n\n for (const child of [...this.$refs.cardSlider.children]) {\n child.classList.add('shrink-0', 'w-auto');\n }\n }\n\n this.$nextTick(() => {\n this.slider = new Swiper(this.$refs.slider, {\n speed: 400,\n slidesPerView: 'auto',\n centeredSlides: true,\n spaceBetween: 24,\n navigation: {\n nextEl: '.dna-cards__slider-nav-button--next',\n prevEl: '.dna-cards__slider-nav-button--prev',\n disabledClass: 'dna-cards__slider-nav-button--disabled',\n },\n keyboard: {\n enabled: true,\n },\n threshold: 3,\n });\n\n window.addEventListener('fast-tabs', () => this.slider.update());\n });\n\n this.$refs.overlay.addEventListener('click', (e) => this.closeClick(e));\n },\n\n closeClick(e) {\n if (\n e.target.classList.contains('dna-cards__overlay') ||\n e.target.classList.contains('swiper-container') ||\n e.target.classList.contains('swiper-wrapper') ||\n e.target.classList.contains('swiper-slide')\n ) {\n this.hide();\n }\n },\n\n show(i) {\n this.slider.slideTo(i, 0);\n this.$root.classList.add('dna-cards--overlay-visible');\n this.$refs.overlay.classList.add('dna-cards__overlay--visible');\n },\n\n hide() {\n this.$root.classList.remove('dna-cards--overlay-visible');\n this.$refs.overlay.classList.remove('dna-cards__overlay--visible');\n },\n }));\n});","import { viewport } from '../../utils/viewport';\n\ndocument.querySelectorAll('.hero__cta--region-report a').forEach((button) => {\n const downloadButton = document.querySelector('.region-hero__right .button');\n\n if (downloadButton) {\n viewport.observe(\n downloadButton,\n () => button.classList.add('hidden'),\n () => button.classList.remove('hidden')\n );\n } else {\n button.parentElement.removeChild(button);\n }\n});","document.addEventListener('alpine:init', () => {\n Alpine.data('regionIntro', () => ({\n reportTop: 0,\n\n reportFloating: false,\n\n report: {\n ':style'() {\n return {\n transform: `translate3d(0, ${this.reportTop}px, 0)`,\n };\n },\n },\n\n init() {\n if (this.$refs.side) {\n document.body.append(this.$refs.floatingButton);\n\n window.addEventListener('scroll', () => this.onScroll());\n\n this.$refs.floatingButton.addEventListener('click', () =>\n this.$refs.side.scrollIntoView({ behavior: 'smooth' })\n );\n }\n },\n\n onScroll() {\n const rect = this.$refs.side.getBoundingClientRect();\n const top = Math.max(-rect.top, 0);\n const maxTop = Math.max(rect.height - this.$refs.report.offsetHeight, 0);\n this.reportTop = Math.min(top, maxTop);\n\n if (top > 0 && this.reportFloating) {\n this.$refs.floatingButton.classList.add('visible');\n } else {\n this.$refs.floatingButton.classList.remove('visible');\n }\n },\n }));\n});","document.querySelectorAll('.share__button--twitter').forEach((button) => {\n button.addEventListener('click', (e) => {\n e.preventDefault();\n\n window.open(\n 'https://twitter.com/intent/tweet?url=' +\n encodeURIComponent(window.location.href) +\n '&text=' +\n encodeURIComponent(document.title),\n '',\n 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600'\n );\n });\n});\n\ndocument.querySelectorAll('.share__button--linkedin').forEach((button) => {\n button.addEventListener('click', (e) => {\n e.preventDefault();\n\n window.open(\n 'https://www.linkedin.com/sharing/share-offsite/?url=' + encodeURIComponent(window.location.href),\n '',\n 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600'\n );\n });\n});\n\ndocument.querySelectorAll('.share__button--mail').forEach((button) => {\n button.addEventListener('click', (e) => {\n e.preventDefault();\n\n window.open(\n `mailto:?subject=${encodeURIComponent(document.title)}&body=${encodeURIComponent(window.location.href)}`\n );\n });\n});","class SliderBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.sliderContainer = block.querySelector('.slider__container');\n\n new Swiper(this.sliderContainer, {\n autoHeight: true,\n speed: 400,\n slidesPerView: 1,\n centeredSlides: true,\n navigation: {\n nextEl: '.slider__slider-nav-button--next',\n prevEl: '.slider__slider-nav-button--prev',\n disabledClass: 'slider__slider-nav-button--disabled',\n },\n pagination: {\n el: '.swiper-pagination',\n type: 'bullets',\n },\n keyboard: {\n enabled: true,\n },\n threshold: 1,\n });\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.slider').forEach((block) => {\n new SliderBlock(block);\n});\n\n// Initialize the dynamic block preview (editor)\nif (window.acf) {\n window.acf.addAction('render_block_preview/type=slider', ($block, attributes) => {\n new SliderBlock($block.find('.slider').get(0), attributes);\n });\n}","document.addEventListener('alpine:init', () => {\n Alpine.data('stickyHero', () => ({\n init() {\n this.$nextTick(() => {\n bodymovin.loadAnimation({\n container: this.$refs.lottie,\n path: this.$refs.lottie.dataset.lottie,\n assetsPath: `${this.$refs.lottie.dataset.lottie.replace('/lottie.json', '')}/images/`,\n renderer: 'svg',\n autoplay: true,\n loop: !!+this.$root.dataset.loop,\n rendererSettings: {\n filterSize: {\n width: '200%',\n height: '200%',\n x: '-50%',\n y: '-50%',\n },\n },\n });\n\n document.body.style.overflowX = 'clip';\n });\n },\n }));\n});","class TabsBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.container = this.block.querySelector('.tabs__container');\n this.panels = [...this.container.children];\n this.buttons = document.createElement('div');\n this.data = JSON.parse(block.dataset.tabs);\n\n this.buttons.className = 'tabs__buttons';\n\n if (this.container.firstElementChild) {\n this.container.insertBefore(this.buttons, this.container.firstElementChild);\n } else {\n this.container.appendChild(this.buttons);\n }\n\n this.panels.forEach((panel, i) => {\n panel.style.display = 'none';\n\n const button = document.createElement('button');\n button.className = 'tabs__button';\n button.textContent = this.data[i].label ?? `Tab ${i}`;\n this.buttons.appendChild(button);\n\n button.addEventListener('click', () => {\n [...this.buttons.children].forEach((b) => b.classList.remove('tabs__button--active'));\n\n this.panels.forEach((p, j) => {\n button.classList.add('tabs__button--active');\n\n if (i === j) {\n p.style.display = 'block';\n } else {\n p.style.display = 'none';\n }\n });\n });\n });\n\n if (this.buttons.children) {\n this.buttons.children[0].click();\n }\n }\n}\n\n// Initialize each block on page load (front end)\nif (!window.acf) {\n document.querySelectorAll('.tabs').forEach((block) => {\n new TabsBlock(block);\n });\n}","(function () {\n let sliderInitialized = false;\n\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n const initializeBlock = (block, attributes = null) => {\n block.querySelectorAll('.team__member-button').forEach((button) => {\n let swiper;\n\n button.addEventListener('click', () => {\n if (!sliderInitialized) {\n swiper = initializeSlider(block);\n }\n\n swiper.slideTo(button.dataset.index, 0);\n showOverlay(block);\n });\n });\n\n block.querySelectorAll('.team__slide-close-button').forEach((button) => {\n button.addEventListener('click', () => {\n hideOverlay(block);\n });\n });\n\n block.querySelector('.team__overlay').addEventListener('click', (e) => {\n if (\n e.target.classList.contains('team__overlay') ||\n e.target.classList.contains('swiper-container') ||\n e.target.classList.contains('swiper-wrapper') ||\n e.target.classList.contains('swiper-slide')\n ) {\n hideOverlay(block);\n }\n });\n\n window.addEventListener('keydown', (e) => {\n if (e.code === 'Escape') {\n hideOverlay(block);\n }\n });\n };\n\n const initializeSlider = (block) => {\n return new Swiper(block.querySelector('.team__slider'), {\n speed: 400,\n slidesPerView: 'auto',\n centeredSlides: true,\n navigation: {\n nextEl: '.team__slider-nav-button--next',\n prevEl: '.team__slider-nav-button--prev',\n disabledClass: 'team__slider-nav-button--disabled',\n },\n keyboard: {\n enabled: true,\n },\n threshold: 3,\n });\n };\n\n const getOverlay = (block) => {\n return block.querySelector('.team__overlay');\n };\n\n const showOverlay = (block) => {\n block.classList.add('team--overlay-visible');\n getOverlay(block).classList.add('team__overlay--visible');\n };\n\n const hideOverlay = (block) => {\n block.classList.remove('team--overlay-visible');\n getOverlay(block).classList.remove('team__overlay--visible');\n };\n\n // Initialize each block on page load (front end)\n document.querySelectorAll('.team').forEach((block) => {\n initializeBlock(block);\n });\n\n window.addEventListener('init', () => {\n document.querySelectorAll('.team').forEach((block) => {\n initializeBlock(block);\n });\n });\n\n // Initialize the dynamic block preview (editor)\n if (window.acf) {\n window.acf.addAction('render_block_preview/type=team', ($block, attributes) => {\n initializeBlock($block.find('.team').get(0), attributes);\n });\n }\n})();","document.addEventListener('alpine:init', () => {\n Alpine.data('testimonialsSlider', () => ({\n color: null,\n\n init() {\n this.$nextTick(() => {\n this.color = this.$root.querySelector('.swiper-slide')?.dataset.color;\n\n if (!document.body.classList.contains('wp-admin')) {\n new Swiper(this.$refs.slider, {\n speed: 400,\n slidesPerView: 1,\n autoHeight: true,\n pagination: {\n enabled: true,\n el: '.swiper-pagination',\n clickable: true,\n },\n keyboard: {\n enabled: true,\n },\n mousewheel: {\n enabled: true,\n forceToAxis: true,\n },\n on: {\n slideChange: (swiper) => {\n this.color = swiper.slides[swiper.activeIndex].dataset.color;\n },\n },\n });\n }\n });\n },\n }));\n});","class TestimonialsBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.mainSlider = block.querySelector('.testimonials__main-slider');\n this.logoSlider = block.querySelector('.testimonials__logos .swiper-container');\n this.videoButtons = block.querySelectorAll('button.testimonials__image');\n this.overlay = block.querySelector('.testimonials__overlay');\n this.iframe = block.querySelector('.testimonials__iframe');\n\n this.mainSwiperOptions = {\n autoHeight: true,\n speed: 400,\n slidesPerView: 1,\n centeredSlides: true,\n navigation: {\n nextEl: this.mainSlider.querySelector('.slider__slider-nav-button--next'),\n prevEl: this.mainSlider.querySelector('.slider__slider-nav-button--prev'),\n disabledClass: 'slider__slider-nav-button--disabled',\n },\n pagination: {\n el: this.block.querySelector('.swiper-pagination'),\n type: 'bullets',\n },\n keyboard: {\n enabled: true,\n },\n threshold: 1,\n };\n\n this.videoButtons.forEach((button) => {\n button.addEventListener('click', () => {\n this.iframe.innerHTML = ``;\n this.block.classList.add('testimonials--overlay-visible');\n });\n });\n\n if (this.overlay) {\n this.overlay.addEventListener('click', (e) => {\n if (e.target.classList.contains('testimonials__overlay')) {\n this.closeVideo();\n }\n });\n\n this.overlay.querySelector('.testimonials__close').addEventListener('click', (e) => {\n this.closeVideo();\n });\n\n window.addEventListener('keydown', (e) => {\n if (e.code === 'Escape') {\n this.closeVideo();\n }\n });\n\n this.logoSwiper = new Swiper(this.logoSlider, {\n speed: 400,\n slidesPerView: 'auto',\n spaceBetween: 16,\n watchSlidesVisibility: true,\n centeredSlides: true,\n centeredSlidesBounds: true,\n centerInsufficientSlides: true,\n breakpoints: {\n 768: {\n spaceBetween: 24,\n },\n },\n });\n\n this.mainSwiperOptions.thumbs = {\n swiper: this.logoSwiper,\n };\n }\n\n this.mainSwiper = new Swiper(this.mainSlider, this.mainSwiperOptions);\n }\n\n closeVideo() {\n this.block.classList.remove('testimonials--overlay-visible');\n this.iframe.innerHTML = '';\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.testimonials').forEach((block) => {\n new TestimonialsBlock(block);\n});\n\n// Initialize the dynamic block preview (editor)\nif (window.acf) {\n window.acf.addAction('render_block_preview/type=testimonials', ($block, attributes) => {\n new TestimonialsBlock($block.find('.testimonials').get(0), attributes);\n });\n}","class NewsletterBlock {\n /**\n * Add custom JavaScript to the block HTML.\n *\n * @param Element block The block element\n * @param object attributes The block attributes (only available when editing)\n * @return void\n */\n constructor(block, attributes = null) {\n this.block = block;\n this.form = block.querySelector('.newsletter__form');\n this.success = block.querySelector('.newsletter__success');\n this.agreement = block.querySelector('input[name=\"formData[agreement]\"]');\n this.agreementError = block.querySelector('.newsletter__checkbox-error');\n\n if (!this.form) {\n return;\n }\n\n this.group = this.form.querySelector('.newsletter__form-field');\n this.error = this.form.querySelector('.error-text');\n this.recaptcha = this.form.querySelector('input[data-recaptcha]');\n\n window._mfq = window._mfq || [];\n\n if (this.recaptcha && window.grecaptcha) {\n grecaptcha.ready(() => {\n this.refreshRecaptcha();\n setInterval(() => this.refreshRecaptcha(), 60000);\n });\n }\n\n this.form.addEventListener('submit', (e) => {\n e.preventDefault();\n\n if (!this.agreement.checked) {\n // this.agreementError.classList.add('has-errors');\n // return;\n } else {\n // this.agreementError.classList.remove('has-errors');\n }\n\n const formData = new FormData(this.form);\n formData.append('action', 'submit');\n\n this.form.classList.add('disabled');\n this.group.classList.remove('has-errors');\n this.error.innerHTML = '';\n\n window._mfq?.push(['formSubmitAttempt', `#${this.form.id}`]);\n\n fetch(ajaxurl, {\n method: 'POST',\n body: formData,\n })\n .then((response) => response.json())\n .then((data) => {\n if (data.success) {\n window._mfq?.push(['formSubmitSuccess', `#${this.form.id}`]);\n\n this.form.style.height = this.form.scrollHeight + 'px';\n\n setTimeout(() => {\n this.form.style.height = 0;\n this.form.style.padding = 0;\n this.form.style.overflow = 'hidden';\n this.success.style.height = this.success.scrollHeight + 'px';\n }, 200);\n } else {\n window._mfq?.push(['formSubmitFailure', `#${this.form.id}`]);\n\n this.form.classList.remove('disabled');\n this.group.classList.add('has-errors');\n\n if (data.data['email']) {\n this.error.innerHTML = this.form.dataset.emailError ?? data.data['email'][0];\n }\n\n this.refreshRecaptcha();\n }\n });\n });\n }\n\n refreshRecaptcha() {\n if (this.recaptcha && !this.form.classList.contains('disabled')) {\n grecaptcha\n .execute(this.recaptcha.dataset.recaptcha, {\n action: 'homepage',\n })\n .then((token) => {\n this.recaptcha.value = token;\n });\n }\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.text-newsletter').forEach((block) => {\n new NewsletterBlock(block);\n});\n\n// Initialize the dynamic block preview (editor)\nif (window.acf) {\n window.acf.addAction('render_block_preview/type=text-newsletter', ($block, attributes) => {\n new NewsletterBlock($block.find('.text-newsletter').get(0), attributes);\n });\n}\n\nexport { NewsletterBlock };","document.addEventListener('alpine:init', () => {\n Alpine.data('text', () => ({\n init() {\n this.$nextTick(() => {\n this.$el.querySelectorAll('h1, h2, h3, h4, h5, h6, p').forEach((el) => {\n let match;\n let index = 0;\n\n while ((match = /\\*(.*?\\|.*?)\\*/g.exec(el.innerHTML)) !== null) {\n const words = match[1].split('|').map((word) => word.trim());\n el.innerHTML = el.innerHTML.replace(\n match[0],\n `${words[0]}`\n );\n index++;\n }\n\n setTimeout(() => {\n for (let i = 0; i < index; i++) {\n const span = el.querySelector(`span[data-wd-index=\"${i}\"]`);\n const words = span.dataset.wdWords.split('|');\n\n writeAndDelete(span, words, {\n timeout: 1500,\n loop: true,\n speed: 100,\n errorQuota: 0,\n cursor: '|',\n cursorSpeed: 500,\n });\n }\n });\n });\n });\n },\n }));\n});","document.addEventListener('alpine:init', () => {\n Alpine.data('universalSlider', () => ({\n sliderEl: document.createElement('div'),\n\n init() {\n if (!window.wp) {\n this.sliderEl.classList.add(\n 'swiper-container',\n 'w-full',\n '-my-10',\n 'py-10',\n 'px-[Max(144px,calc((100%-1639px)/2+144px))]',\n 'tl:px-[Max(24px,calc((100%-1639px)/2+24px))]',\n 'overflow-hidden'\n );\n\n const innerBlocks = this.$root.querySelector('[data-inner-blocks]');\n const children = [...innerBlocks.children];\n const wrapper = document.createElement('div');\n wrapper.classList.add('swiper-wrapper');\n\n children.forEach((child) => {\n const slide = document.createElement('div');\n slide.classList.add('swiper-slide', 'w-[360px]', 'ph:w-[316px]');\n slide.append(child);\n wrapper.append(slide);\n });\n\n this.sliderEl.append(wrapper);\n innerBlocks.append(this.sliderEl);\n\n setTimeout(() => this.initSwiper());\n }\n },\n\n initSwiper() {\n new Swiper(this.sliderEl, {\n slidesPerView: 'auto',\n spaceBetween: 16,\n centeredSlides: true,\n centeredSlidesBounds: true,\n centerInsufficientSlides: true,\n breakpoints: {\n 769: {\n spaceBetween: 32,\n centeredSlides: false,\n centeredSlidesBounds: false,\n },\n },\n keyboard: true,\n mousewheel: {\n enabled: true,\n forceToAxis: true,\n },\n pagination: {\n el: this.$root.querySelector('.swiper-pagination'),\n clickable: true,\n },\n });\n },\n }));\n});","document.addEventListener('alpine:init', () => {\n Alpine.data('verticalTabs', () => ({\n activeTab: null,\n tabs: [],\n breakpoints: [],\n\n init() {\n if (!document.body.classList.contains('wp-admin')) {\n this.$nextTick(() => {\n const headings = [...this.$root.querySelectorAll('[data-inner-blocks] > :where(h1, h2, h3, h4, h5, h6)')];\n\n for (const h of headings) {\n this.tabs.push({ label: h.innerText.trim(), el: h });\n }\n\n document.body.style.overflowX = 'clip';\n\n window.addEventListener('resize', () => this.onResize());\n window.addEventListener('load', () => this.onResize());\n window.addEventListener('scroll', () => this.onScroll());\n\n this.onResize();\n this.onScroll();\n\n setTimeout(() => this.onResize(), 500);\n });\n }\n },\n\n scrollToTab(tab) {\n this.activeTab = tab.el;\n tab.el.scrollIntoView({ behavior: 'smooth' });\n },\n\n onResize() {\n this.breakpoints = this.tabs.map(\n ({ el }) => el.getBoundingClientRect().top + window.scrollY - window.innerHeight / 2\n );\n },\n\n onScroll() {\n this.activeTab = this.tabs[0]?.el ?? null;\n\n for (const [i, b] of this.breakpoints.entries()) {\n if (window.scrollY > b) {\n this.activeTab = this.tabs[i].el;\n }\n }\n },\n }));\n});","document.addEventListener('alpine:init', () => {\n Alpine.data('videoHeroBackground', () => ({\n init() {\n this.$refs.iframe.src = `https://player.vimeo.com/video/${this.$refs.iframe.dataset.vimeoId}?autoplay=1&title=0&byline=0&portrait=0&muted=1&loop=1&controls=0&autopause=0`;\n },\n }));\n});","document.addEventListener('alpine:init', () => {\n Alpine.data('video', () => ({\n play(muted = 0) {\n this.$root.classList.add('video--played');\n const match = this.$refs.iframe.dataset.vimeoId.match(/([0-9]+)(?:\\/([0-9a-z]+)|$)?/i);\n\n if (!match) {\n return;\n }\n\n const m1 = match[1];\n const m2 = match[2] ? `h=${match[2]}&` : '';\n this.$refs.iframe.src = `https://player.vimeo.com/video/${m1}?${m2}autoplay=1&title=0&byline=0&portrait=0&muted=${muted}`;\n console.log(this.$refs.iframe.src);\n },\n }));\n});","document.addEventListener('alpine:init', () => {\n Alpine.data('videosGrid', () => ({\n videos: [],\n isOpen: false,\n popup: null,\n mainIframe: null,\n\n init() {\n this.close = this.close.bind(this);\n\n this.$nextTick(() => {\n this.videos = this.$el.querySelectorAll('.video');\n\n this.videos.forEach((video, index) => {\n video.querySelector('.video__cover').addEventListener('click', (event) => {\n event.preventDefault();\n this.open(index);\n });\n });\n\n this.popup = this.$refs.popup;\n this.mainIframe = this.$refs.iframe;\n this.$el.after(this.popup);\n this.popup.setAttribute('x-data', '');\n });\n },\n\n open(index) {\n const iframe = this.videos[index].querySelector('iframe');\n this.mainIframe.src = `https://player.vimeo.com/video/${iframe.dataset.vimeoId}?autoplay=1&title=0&byline=0&portrait=0`;\n this.isOpen = true;\n this.popup.classList.add('open');\n },\n\n close() {\n this.mainIframe.removeAttribute('src');\n this.isOpen = false;\n this.popup.classList.remove('open');\n },\n\n getIframe() {\n return this.$el.nextElementSibling.querySelector('iframe');\n },\n }));\n});","import { viewport } from '../../../utils/viewport';\n\nclass ChartDoughnut {\n constructor(el) {\n this.el = el;\n this.canvas = el.querySelector('.chart-doughnut__canvas');\n this.ctx = this.canvas.getContext('2d');\n this.data = JSON.parse(el.querySelector('.chart-doughnut__data').innerHTML);\n this.palette = [\n 'rgb(38, 116, 224)',\n 'rgb(255, 205, 50)',\n 'rgb(135, 205, 220)',\n 'rgb(245, 75, 25)',\n 'rgb(245, 200, 200)',\n ];\n\n viewport.observe(this.el, () => {\n if (!this.chart) {\n this.chart = new Chart(this.ctx, this.getOptions());\n }\n });\n }\n\n getOptions() {\n return {\n type: 'doughnut',\n data: {\n labels: this.data.map((item) => item.label),\n datasets: [\n {\n data: this.data.map((item) => item.value),\n backgroundColor: this.palette,\n hoverBackgroundColor: this.palette,\n },\n ],\n },\n options: {\n datasets: {\n doughnut: {\n cutout: '56%',\n hoverBorderWidth: 0,\n hoverOffset: 0,\n offset: 0,\n borderRadius: 6,\n },\n },\n animation: {\n animateScale: true,\n },\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n backgroundColor: 'rgb(255, 255, 255)',\n bodyColor: 'rgb(40, 25, 50)',\n titleColor: 'rgb(40, 25, 50)',\n padding: 16,\n callbacks: {\n label: (item) => {\n return this.el.dataset.prefix + item.parsed + this.el.dataset.suffix;\n },\n title: (item) => {\n return item[0].label;\n },\n },\n },\n },\n },\n };\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.chart-doughnut').forEach((el) => new ChartDoughnut(el));\n\n// Initialize the dynamic block preview (editor)\nif (window.acf) {\n window.acf.addAction('render_block_preview', ($block, attributes) => {\n $block.find('.chart-doughnut').each((i, el) => new ChartDoughnut(el, attributes));\n });\n}","import { viewport } from '../../../utils/viewport';\n\nclass ChartHbar2 {\n constructor(el) {\n this.el = el;\n this.fills = el.querySelectorAll('.chart-hbar-2__item-fill');\n this.max = 0;\n\n viewport.observe(this.el, () => {\n if (!this.chart) {\n this.init();\n }\n });\n }\n\n init() {\n this.fills.forEach((fill) => {\n if (+fill.dataset.value > this.max) {\n this.max = +fill.dataset.value;\n }\n });\n\n this.fills.forEach((fill) => {\n fill.style.width = (fill.dataset.value / this.max) * 100 + '%';\n });\n }\n}\n\n// Initialize each block on page load (front end)\ndocument.querySelectorAll('.chart-hbar-2').forEach((el) => new ChartHbar2(el));\n\n// Initialize the dynamic block preview (editor)\nif (window.acf) {\n window.acf.addAction('render_block_preview', ($block, attributes) => {\n $block.find('.chart-hbar-2').each((i, el) => new ChartHbar2(el, attributes));\n });\n}","document.querySelectorAll('.filters').forEach((filters) => {\n const toggleable = filters.querySelector('.filters__toggleable');\n\n filters.querySelectorAll('.filters__toggle, .filters__show-results-button').forEach((toggle) =>\n toggle.addEventListener('click', () => {\n toggleable.classList.toggle('filters__toggleable--visible');\n toggleable.classList.toggle('has-light-background');\n document.body.classList.toggle('is-mobile-filter-visible');\n })\n );\n});","import { Viewport } from '../../utils/viewport';\n\nconst viewport = new Viewport({ rootMargin: '1024px 0px', threshold: 0.5 });\n\nclass SliderPagination {\n constructor(el) {\n this.el = el;\n this.bullets = [];\n this.items = [...el.previousElementSibling.children];\n\n this.init();\n }\n\n init() {\n this.items.forEach((item, index) => {\n const bullet = document.createElement('span');\n this.bullets.push(bullet);\n this.el.appendChild(bullet);\n\n item.dataset.paginationIndex = index;\n\n viewport.observe(\n item,\n () => this.bullets[item.dataset.paginationIndex].classList.add('active'),\n () => this.bullets[item.dataset.paginationIndex].classList.remove('active')\n );\n });\n }\n}\n\ndocument.querySelectorAll('.slider-pagination').forEach((el) => new SliderPagination(el));","import { mqLaptop, mqTabletPortrait, mqPhone } from '../../utils/mq';\n\ndocument.addEventListener('alpine:init', () => {\n Alpine.data('countriesFilterable', () => ({\n get shown() {\n return this._shown;\n },\n set shown(value) {\n if (!this._firstTimeShown && history.state?.restoreScrollPosition) {\n if (history.state?.activeRegionName) {\n this.$root.querySelector(`button[data-region-name=\"${history.state.activeRegionName}\"]`)?.click();\n }\n\n this.$nextTick(() => {\n this.pushAndFilter(history.state?.page ?? 1, false, false);\n this.$nextTick(() => this.$refs.results.scrollIntoView());\n });\n }\n\n this._shown = value;\n this._firstTimeShown = true;\n },\n _shown: false,\n _firstTimeShown: false,\n\n items: [],\n\n filteredItems: [],\n\n keywords: history.state?.restoreScrollPosition ? history.state.keywords : '',\n\n regions: [],\n\n activeRegionName: 'all',\n\n page: 1,\n\n perPage: 0,\n\n lastPage: 0,\n\n count: 0,\n\n pagination: [],\n\n init() {\n if (mqPhone.matches) {\n this.perPage = 6;\n } else if (mqTabletPortrait.matches) {\n this.perPage = 8;\n } else if (mqLaptop.matches) {\n this.perPage = 12;\n } else {\n this.perPage = 12;\n }\n\n this.items = [\n ...this.$root.querySelectorAll(\n '.countries-filterable__results-items--static .countries-filterable__results-item'\n ),\n ].map((el) => ({\n id: el.dataset.id,\n name: el.dataset.name,\n image: el.dataset.image,\n link: el.href,\n region: +el.dataset.region,\n marketSize: +el.dataset.marketSize.trim().replace(/[^0-9\\.]/g, ''),\n }));\n\n this.items.sort((a, b) => b.marketSize - a.marketSize);\n\n this.regions = this.$root.dataset.regions.split(',').map((r) => +r);\n\n this.filter();\n },\n\n filter(page, scrollIntoView = false) {\n if (page && !this.shown) {\n return;\n }\n\n const results = this.items.filter((item) => {\n if (!this.regions.includes(item.region)) {\n return false;\n }\n\n if (this.keywords.trim() && !item.name.toLowerCase().includes(this.keywords.trim().toLowerCase())) {\n return false;\n }\n\n return true;\n });\n\n this.count = results.length;\n this.lastPage = Math.ceil(this.count / this.perPage);\n this.page = page ? Math.min(this.lastPage, Math.max(1, page)) : 1;\n this.pagination = [];\n\n const paginationStart = Math.max(1, this.page - 2);\n const paginationEnd = Math.min(paginationStart + 4, this.lastPage);\n\n for (let i = paginationStart; i <= paginationEnd; i++) {\n this.pagination.push(i);\n }\n\n const missing = 5 - this.pagination.length;\n\n for (let i = 0; i < missing; i++) {\n if (paginationStart - i - 1 >= 1) {\n this.pagination.unshift(paginationStart - i - 1);\n }\n }\n\n this.filteredItems = results.slice((this.page - 1) * this.perPage, (this.page - 1) * this.perPage + this.perPage);\n\n if (scrollIntoView) {\n this.$nextTick(() => this.$refs.results.scrollIntoView());\n }\n },\n\n pushAndFilter(page, restoreScrollPosition = false, scrollIntoView = false) {\n this.push(page, restoreScrollPosition);\n this.filter(page, scrollIntoView);\n },\n\n push(page, restoreScrollPosition = false) {\n history.pushState(\n {\n activeRegionName: this.activeRegionName,\n keywords: this.keywords,\n page: page ?? 1,\n restoreScrollPosition,\n },\n null\n );\n },\n\n changeRegion(e, name, ids) {\n this.activeRegionName = name;\n this.regions = ids;\n\n if (e.isTrusted) {\n this.pushAndFilter();\n } else {\n this.filter();\n }\n },\n\n clearKeywords() {\n this.keywords = '';\n this.pushAndFilter();\n },\n\n onResultClick() {\n this.push(this.page, true);\n },\n }));\n});","document.addEventListener('alpine:init', () => {\n Alpine.data('countryListTrimmed', () => ({\n visible: [],\n rest: [],\n maxLength: 0,\n expanded: false,\n alt: '',\n\n init() {\n this.maxLength = +this.$root.dataset.maxLength;\n\n this.$nextTick(() => {\n const alt = this.$refs.data.textContent.trim();\n\n if (alt === '-') {\n this.alt = '-';\n return;\n }\n\n const els = [...this.$refs.data.querySelectorAll('*')];\n let c = 0;\n\n do {\n const el = els.shift();\n c += el.textContent.trim().length;\n this.visible.push(el.outerHTML);\n\n if (c > this.maxLength) {\n break;\n }\n } while (els.length);\n\n this.rest.push(...els.map((el) => el.outerHTML));\n });\n },\n }));\n});","document.querySelectorAll('.events-list[data-events]').forEach((list) => {\n let page = 1;\n const perPage = 16;\n const container = list.querySelector('.cards-grid__container');\n let items = list.querySelectorAll('.event-card');\n const loadMoreButton = list.querySelector('.insights-list__load-more-button');\n\n if (loadMoreButton && items.length < perPage) {\n loadMoreButton.style.display = 'none';\n }\n\n loadMoreButton?.addEventListener('click', () => {\n page++;\n\n loadMoreButton.disabled = true;\n\n fetch(`${ajaxurl}?action=get_events&page=${page}`)\n .then((response) => response.json())\n .then((data) => {\n container.innerHTML += data.data;\n\n items = list.querySelectorAll('.event-card');\n\n if (items.length < perPage * page) {\n loadMoreButton.style.display = 'none';\n } else {\n loadMoreButton.disabled = false;\n }\n });\n });\n});","import { megaMenu } from '../../utils/mega-menu';\n\nconst headerMenu = document.querySelector('.header-menu');\nconst headerMenuActiveItem = document.querySelector('.header-menu__item--active');\nconst headerMenuDot = document.querySelector('.header-menu__dot');\n\nlet isDirty = false;\n\nconst updateDotPosition = (x = null) => {\n if (x === null) {\n if (headerMenuActiveItem) {\n x = headerMenuActiveItem.offsetLeft - headerMenu.offsetLeft;\n headerMenuDot.classList.remove('header-menu__dot--hidden');\n } else {\n x = 0;\n headerMenuDot.classList.add('header-menu__dot--hidden');\n }\n } else {\n isDirty = true;\n headerMenuDot.classList.remove('header-menu__dot--hidden');\n }\n\n const transform = `translate3d(${x}px, 0, 0)`;\n\n headerMenuDot.style.webkitTransform = transform;\n headerMenuDot.style.msTransform = transform;\n headerMenuDot.style.transform = transform;\n\n if (!headerMenuDot.classList.contains('header-menu__dot--initialized')) {\n setTimeout(() => headerMenuDot.classList.add('header-menu__dot--initialized'), 400);\n }\n};\n\nif (headerMenu) {\n // Update dot position\n updateDotPosition();\n window.addEventListener('resize', () => updateDotPosition());\n window.addEventListener('load', () => !isDirty && updateDotPosition());\n\n // Mega menu toggles\n headerMenu.querySelectorAll('.header-menu__item-button').forEach((button) => {\n button.addEventListener('click', () => {\n megaMenu.toggle(button.nextElementSibling);\n });\n });\n\n // Set hover classes\n headerMenu.querySelectorAll('.header-menu__item').forEach((item) => {\n item.addEventListener('mouseenter', () => updateDotPosition(item.offsetLeft - headerMenu.offsetLeft));\n });\n\n // Remove hover classes\n headerMenu.addEventListener('mouseleave', () => updateDotPosition());\n}","document.addEventListener('alpine:init', () => {\n Alpine.store('header', {\n h: 0,\n ty: 0,\n isMobileMenuVisible: false,\n mobileMenuSecondLevelVisible: false,\n mobileMenuSecondLevelIndex: null,\n\n openMobileMenu() {\n this.isMobileMenuVisible = true;\n this.mobileMenuSecondLevelVisible = false;\n },\n\n closeMobileMenu() {\n this.isMobileMenuVisible = false;\n },\n\n toggleMobileMenu() {\n if (this.isMobileMenuVisible) {\n this.closeMobileMenu();\n } else {\n this.openMobileMenu();\n }\n },\n\n openMobileMenuSecondLevel(index) {\n this.mobileMenuSecondLevelVisible = true;\n this.mobileMenuSecondLevelIndex = index;\n },\n\n closeMobileMenuSecondLevel() {\n this.mobileMenuSecondLevelVisible = false;\n },\n });\n\n Alpine.data('headerNew', () => ({\n currentSubmenu: -1,\n prevY: 0,\n\n init() {\n this.$nextTick(() => {\n this.onScroll();\n window.addEventListener('scroll', () => this.onScroll());\n });\n },\n\n toggle(i) {\n this.currentSubmenu = this.currentSubmenu === i ? -1 : i;\n },\n\n onScroll() {\n const y = window.scrollY;\n this.$store.header.h = this.$root.offsetHeight;\n this.$store.header.ty = Math.max(0, Math.min(this.$store.header.h, this.$store.header.ty + y - this.prevY));\n this.prevY = y;\n },\n }));\n});","import { megaMenu } from '../../utils/mega-menu';\nimport { mobileMenu } from '../../utils/mobile-menu';\n\nconst header = document.querySelector('.header');\nconst darkHeroBlock = document.querySelector('.hero--merge-with-header.has-dark-background:first-child');\n\nif (header) {\n const logo = document.querySelector('.header__logo');\n const burger = document.querySelector('.header__burger');\n\n if (darkHeroBlock) {\n header.classList.add('has-always-dark-background');\n }\n\n // Click on the logo closes all visible menus\n logo.addEventListener('click', (e) => {\n if (megaMenu.isVisible()) {\n e.preventDefault();\n megaMenu.hide();\n }\n\n if (mobileMenu.isVisible()) {\n e.preventDefault();\n mobileMenu.hide();\n }\n });\n\n // Click on burger toggles the mobile menu\n burger.addEventListener('click', (e) => mobileMenu.toggle());\n}\n\ndocument.addEventListener('alpine:init', () => {\n Alpine.data('header', () => ({\n switchLanguage(lang) {\n const link = document.head.querySelector(`link[hreflang=\"${lang}\"]`);\n\n console.log(lang, link);\n\n if (link?.href) {\n window.location.href = link.href;\n }\n },\n }));\n});","document.querySelectorAll('.insights-list[data-insights]').forEach((list) => {\n let page = 1;\n const perPage = 12;\n const container = list.querySelector('.cards-grid__container');\n let items = list.querySelectorAll('.insight-card');\n const loadMoreButton = list.querySelector('.insights-list__load-more-button');\n\n if (items.length < perPage) {\n loadMoreButton.style.display = 'none';\n }\n\n loadMoreButton.addEventListener('click', () => {\n page++;\n\n loadMoreButton.disabled = true;\n\n fetch(`${ajaxurl}?action=get_insights&page=${page}`)\n .then((response) => response.json())\n .then((data) => {\n container.innerHTML += data.data;\n\n items = list.querySelectorAll('.insight-card');\n\n if (items.length < perPage * page) {\n loadMoreButton.style.display = 'none';\n } else {\n loadMoreButton.disabled = false;\n }\n });\n });\n});","document.querySelectorAll('.news-list[data-news]').forEach((list) => {\n let page = 1;\n const perPage = 12;\n const container = list.querySelector('.cards-grid__container');\n let items = list.querySelectorAll('.news-card');\n const loadMoreButton = list.querySelector('.news-list__load-more-button');\n\n if (items.length < perPage) {\n loadMoreButton.style.display = 'none';\n }\n\n loadMoreButton.addEventListener('click', () => {\n page++;\n\n loadMoreButton.disabled = true;\n\n fetch(`${ajaxurl}?action=get_news&page=${page}`)\n .then((response) => response.json())\n .then((data) => {\n container.innerHTML += data.data;\n\n items = list.querySelectorAll('.news-card');\n\n if (items.length < perPage * page) {\n loadMoreButton.style.display = 'none';\n } else {\n loadMoreButton.disabled = false;\n }\n });\n });\n});","import { getCookie, setCookie } from '../../utils/cookie';\n\ndocument.addEventListener('alpine:init', () => {\n Alpine.data('passwordCustom', () => ({\n visible: false,\n postId: null,\n password: '',\n submitting: false,\n error: null,\n $root: null,\n\n init() {\n this.$root = this.$el;\n this.postId = this.$el.dataset.postId;\n this.$nextTick(() => this.ready());\n },\n\n ready() {\n const cookie = getCookie(`wp-vb-password-custom-${this.postId}`);\n\n if (cookie) {\n this.password = cookie;\n this.getContent();\n } else {\n this.visible = true;\n }\n },\n\n getContent() {\n this.submitting = true;\n this.error = null;\n\n const query = new URLSearchParams({\n action: 'content',\n post_id: this.postId,\n password: this.password,\n });\n\n fetch(`${window.ajaxurl}?${query}`)\n .then((response) => response.json())\n .then((response) => {\n if (response.success) {\n setCookie(`wp-vb-password-custom-${this.postId}`, this.password, 365);\n const content = document.createElement('div');\n this.$root.after(content);\n content.outerHTML = response.data;\n setTimeout(() => window.dispatchEvent(new CustomEvent('init')));\n this.visible = false;\n } else {\n this.error = response.data;\n this.visible = true;\n }\n })\n .finally(() => (this.submitting = false));\n },\n\n onSubmit() {\n if (!this.submitting) {\n this.password = document.getElementById('password').value;\n this.getContent();\n }\n },\n }));\n});","import { getCookie, setCookie } from '../../utils/cookie';\n\ndocument.addEventListener('alpine:init', () => {\n Alpine.data('password', () => ({\n visible: false,\n postId: null,\n password: '',\n submitting: false,\n error: null,\n $root: null,\n\n init() {\n this.$root = this.$el;\n this.postId = this.$el.dataset.postId;\n this.$nextTick(() => this.ready());\n },\n\n ready() {\n const cookie = getCookie(`wp-vb-password-${this.postId}`);\n\n if (cookie) {\n this.password = cookie;\n this.getContent();\n } else {\n this.visible = true;\n }\n },\n\n getContent() {\n this.submitting = true;\n this.error = null;\n\n const query = new URLSearchParams({\n action: 'content',\n post_id: this.postId,\n password: this.password,\n });\n\n fetch(`${window.ajaxurl}?${query}`)\n .then((response) => response.json())\n .then((response) => {\n if (response.success) {\n setCookie(`wp-vb-password-${this.postId}`, this.password, 365);\n const content = document.createElement('div');\n this.$root.after(content);\n content.outerHTML = response.data;\n setTimeout(() => window.dispatchEvent(new CustomEvent('init')));\n this.visible = false;\n } else {\n this.error = response.data;\n this.visible = true;\n }\n })\n .finally(() => (this.submitting = false));\n },\n\n onSubmit() {\n if (!this.submitting) {\n this.password = document.getElementById('password').value;\n this.getContent();\n }\n },\n }));\n});","import { viewport } from '../../utils/viewport';\n\ndocument\n .querySelectorAll('.pm-card img[data-isrc]')\n .forEach((el) => viewport.observe(el, () => (el.src = el.dataset.isrc)));","document.addEventListener('alpine:init', () => {\n Alpine.data('pmsTable', () => ({\n get shown() {\n return this._shown;\n },\n set shown(value) {\n if (!this._firstTimeShown && history.state?.restoreScrollPosition) {\n if (history.state?.activeRegionName) {\n this.$root.querySelector(`button[data-region-name=\"${history.state.activeRegionName}\"]`)?.click();\n }\n\n if (history.state?.country) {\n this.$nextTick(() => (this.country = history.state.country));\n }\n\n this.$nextTick(() => {\n this.pushAndFilter(history.state?.page ?? 1, false, false);\n this.$nextTick(() => this.$refs.results.scrollIntoView());\n });\n }\n\n this._shown = value;\n this._firstTimeShown = true;\n },\n _shown: false,\n _firstTimeShown: false,\n\n popular: true,\n\n rows: [],\n\n filteredRows: [],\n\n keywords: history.state?.restoreScrollPosition ? history.state.keywords : '',\n\n regions: [],\n\n activeRegionName: 'all',\n\n country: 'all',\n\n type: history.state?.restoreScrollPosition ? history.state?.type : 'all',\n\n page: 1,\n\n perPage: 10,\n\n lastPage: 0,\n\n count: 0,\n\n pagination: [],\n\n init() {\n this.popular = !!this.$root.dataset.popular;\n\n if (this.popular) {\n this.perPage = 9999999;\n }\n\n this.rows = [\n ...this.$root.querySelectorAll('.pms-table__results-table-rows--static .pms-table__results-table-row'),\n ].map((el) => {\n const regionAnchors = [...el.querySelectorAll('.pms-table__results-table-row-locations--regions a')];\n const countryAnchors = [...el.querySelectorAll('.pms-table__results-table-row-locations--countries a')];\n\n return {\n id: el.dataset.id,\n name: el.dataset.name,\n image: el.dataset.image,\n link: el.dataset.href,\n types: el.dataset.types.split(',').map(Number),\n regions: el.dataset.regions.split(',').map(Number),\n countries: el.dataset.countries.split(',').map(Number),\n relevance: el.dataset.relevance,\n typeNames: el.querySelector('.pms-table__results-table-row-pm-types')?.innerHTML.trim() ?? '',\n regionAnchors: {\n elements: regionAnchors.map((el) => ({ text: el.textContent, link: el.getAttribute('href') })),\n max: this.calcMaxLocationItems(regionAnchors),\n },\n countryAnchors: {\n elements: countryAnchors.map((el) => ({ text: el.textContent, link: el.getAttribute('href') })),\n max: this.calcMaxLocationItems(countryAnchors),\n },\n regionNames: el.querySelector('.pms-table__results-table-row-locations--regions')?.innerHTML.trim() ?? '',\n countryNames: el.querySelector('.pms-table__results-table-row-locations--countries')?.innerHTML.trim() ?? '',\n };\n });\n\n this.regions = this.$root.dataset.regions.split(',').map((r) => +r);\n\n this.filter();\n },\n\n filter(page, scrollIntoView = false) {\n if (page && !this.shown) {\n // return;\n }\n\n const results = this.rows.filter((row) => {\n if (row.regions.every((r) => !this.regions.includes(r))) {\n return false;\n }\n\n if (this.country !== 'all' && !row.countries.includes(this.country)) {\n return false;\n }\n\n if (this.type !== 'all' && !row.types.includes(this.type)) {\n return false;\n }\n\n if (this.keywords.trim() && !row.name.toLowerCase().includes(this.keywords.trim().toLowerCase())) {\n return false;\n }\n\n return true;\n });\n\n this.count = results.length;\n this.lastPage = Math.ceil(this.count / this.perPage);\n this.page = page ? Math.min(this.lastPage, Math.max(1, page)) : 1;\n this.pagination = [];\n\n const paginationStart = Math.max(1, this.page - 2);\n const paginationEnd = Math.min(paginationStart + 4, this.lastPage);\n\n for (let i = paginationStart; i <= paginationEnd; i++) {\n this.pagination.push(i);\n }\n\n const missing = 5 - this.pagination.length;\n\n for (let i = 0; i < missing; i++) {\n if (paginationStart - i - 1 >= 1) {\n this.pagination.unshift(paginationStart - i - 1);\n }\n }\n\n this.filteredRows = results.slice((this.page - 1) * this.perPage, (this.page - 1) * this.perPage + this.perPage);\n\n if (scrollIntoView) {\n this.$nextTick(() => this.$refs.results.scrollIntoView());\n }\n },\n\n pushAndFilter(page, restoreScrollPosition = false, scrollIntoView = false) {\n this.push(page, restoreScrollPosition);\n this.filter(page, scrollIntoView);\n },\n\n push(page, restoreScrollPosition = false) {\n history.pushState(\n {\n activeRegionName: this.activeRegionName,\n country: this.country,\n keywords: this.keywords,\n type: this.type,\n page: page ?? 1,\n restoreScrollPosition,\n },\n null\n );\n },\n\n changeRegion(e, name, ids) {\n this.activeRegionName = name;\n this.regions = ids;\n this.country = 'all';\n\n if (e.isTrusted) {\n this.pushAndFilter();\n } else {\n this.filter();\n }\n },\n\n clearKeywords() {\n this.keywords = '';\n this.pushAndFilter();\n },\n\n onResultClick() {\n this.push(this.page, true);\n },\n\n calcMaxLocationItems(elements) {\n let usedCharacters = 0;\n\n return elements.reduce((max, element) => {\n usedCharacters += element.textContent.length;\n\n if (usedCharacters <= 100) {\n max++;\n }\n\n return max;\n }, 0);\n },\n }));\n});","import { FormBlock } from '../blocks/form';\n\nconst popup = document.querySelector('.popup');\n\nif (popup) {\n const popupContent = popup.querySelector('.popup__content');\n const closeButton = popup.querySelector('.popup__close');\n const downloadLinks = document.querySelectorAll(`a[href^=\"${siteurl}/download/\"]`);\n\n closeButton.addEventListener('click', () => popup.classList.remove('popup--visible'));\n\n popup.addEventListener('click', (e) => {\n if (e.target.classList.contains('popup')) {\n popup.classList.remove('popup--visible');\n }\n });\n\n window.addEventListener('keydown', (e) => {\n if (e.code === 'Escape') {\n popup.classList.remove('popup--visible');\n }\n });\n\n downloadLinks.forEach((link) => {\n link.addEventListener('click', (e) => {\n e.preventDefault();\n\n if (getCookie('wp-vb-token')) {\n return window.open(link.href, '_blank');\n }\n\n popupContent.innerHTML = 'Loading...';\n popup.classList.add('popup--visible');\n\n let href = '';\n let target = e.target;\n\n do {\n href = target?.href;\n target = target.parentElement;\n } while (target && !href && !target.nodeName !== 'BODY');\n\n fetch(ajaxurl + '?action=get_download_popup&url=' + encodeURI(href))\n .then((response) => response.json())\n .then((data) => {\n if (data.data) {\n popupContent.innerHTML = data.data;\n\n popupContent.querySelectorAll('.form').forEach((block) => {\n new FormBlock(block);\n });\n } else {\n popup.classList.remove('popup--visible');\n window.location.href = link.href;\n }\n });\n });\n });\n}\n\nfunction getCookie(name) {\n var dc = document.cookie;\n var prefix = name + '=';\n var begin = dc.indexOf('; ' + prefix);\n if (begin == -1) {\n begin = dc.indexOf(prefix);\n if (begin != 0) return null;\n } else {\n begin += 2;\n var end = document.cookie.indexOf(';', begin);\n if (end == -1) {\n end = dc.length;\n }\n }\n\n return decodeURI(dc.substring(begin + prefix.length, end));\n}","import { getCookie, setCookie } from '../../utils/cookie';\n\nconst scrollPopup = document.querySelector('.scroll-popup');\n\nlet time = 0;\nlet timeout = 0;\nlet stopped = false;\n\nfunction frame() {\n time += 1 / 60;\n\n if (timeout > time && !stopped) {\n return requestAnimationFrame(frame);\n }\n\n scrollPopup.classList.add('scroll-popup--visible');\n}\n\nif (scrollPopup && getCookie(`wp-vb-scroll-popup-${scrollPopup.dataset.id}`) !== 'closed') {\n const closeButton = document.querySelector('.scroll-popup__close');\n\n closeButton.addEventListener('click', () => {\n setCookie(`wp-vb-scroll-popup-${scrollPopup.dataset.id}`, 'closed', scrollPopup.dataset.exp);\n scrollPopup.classList.remove('scroll-popup--visible');\n });\n\n time = +getCookie(`wp-vb-scroll-popup-${scrollPopup.dataset.id}`);\n timeout = +scrollPopup.dataset.timeout;\n\n requestAnimationFrame(frame);\n}\n\nwindow.addEventListener('beforeunload', () => {\n stopped = true;\n\n if (scrollPopup) {\n if (getCookie(`wp-vb-scroll-popup-${scrollPopup.dataset.id}`) !== 'closed') {\n setCookie(`wp-vb-scroll-popup-${scrollPopup.dataset.id}`, time, scrollPopup.dataset.exp);\n }\n }\n});","document.addEventListener('alpine:init', () => {\n Alpine.data('pmVideos', () => ({\n _activeTab: 0,\n get activeTab() {\n return this._activeTab;\n },\n set activeTab(index) {\n this._activeTab = index;\n this.initVideo(index).then(() => this.destroyInactiveVideos());\n },\n iframes: [],\n\n init() {\n this.$nextTick(() => {\n this.activeTab = 0;\n });\n },\n\n async initVideo(index) {\n const el = this.$root.querySelector(`[data-video-url][data-index=\"${index}\"]`);\n el.innerHTML = await this.createVimeoEmbed(el.dataset.videoUrl);\n },\n\n destroyInactiveVideos() {\n this.$root.querySelectorAll('[data-video-url]').forEach((el) => {\n if (+el.dataset.index !== this.activeTab) {\n el.innerHTML = '';\n }\n });\n },\n\n async createVimeoEmbed(vimeoUrl) {\n const res = await fetch(`https://vimeo.com/api/oembed.json?url=${vimeoUrl}`).then((r) => r.json());\n return decodeURIComponent(res.html).replace(\n ' {\n setCookie('wp-vb-top-bar', topBar.dataset.id, topBar.dataset.exp);\n topBar.classList.add('hidden');\n });\n}","document.querySelectorAll('.widget-menu__headline').forEach((headline) => {\n headline.addEventListener('click', () => {\n headline.nextElementSibling.style.height = headline.nextElementSibling.scrollHeight + 'px';\n headline.parentElement.classList.toggle('widget-menu__group--visible');\n });\n});","import { viewport } from '../../utils/viewport';\n\ndocument.addEventListener('alpine:init', () => {\n Alpine.data('countryStat', () => ({\n format(value, suffix) {\n if (value > 9999) {\n value = value.toLocaleString('en', { useGrouping: true });\n }\n\n return value + suffix;\n },\n }));\n\n Alpine.data('countryStatCard', () => ({\n init() {\n this.$nextTick(() => {\n new CountryStatCardChart(this.$refs.chart);\n });\n },\n }));\n\n Alpine.data('pmCountries', () => ({\n list: [],\n allVisible: false,\n rest: 0,\n\n init() {\n const a = [...this.$root.querySelectorAll('[data-item]')];\n const max = this.calcMax(a);\n\n this.rest = a.length - max;\n\n a.forEach((a, i) => {\n this.list.push({ html: a.outerHTML, visible: i <= max });\n a.remove();\n });\n },\n\n calcMax(elements) {\n let usedCharacters = 0;\n\n return elements.reduce((max, element) => {\n usedCharacters += element.textContent.length;\n\n if (usedCharacters <= 50) {\n max++;\n }\n\n return max;\n }, 0);\n },\n }));\n});\n\nclass CountryStatCardChart {\n constructor(el) {\n this.el = el;\n this.canvas = el.querySelector('.ecommerce-text-lists__charts-percent-canvas');\n this.ctx = this.canvas.getContext('2d');\n this.percent = +this.canvas.dataset.percent.replace('%', '');\n this.data = [\n { label: '', value: this.percent },\n { label: '', value: 100 - this.percent },\n ];\n this.palette = ['rgb(38, 116, 224)', 'rgb(230, 230, 230)'];\n\n viewport.observe(this.el, () => {\n if (!this.chart) {\n this.chart = new Chart(this.ctx, this.getOptions());\n }\n });\n }\n\n getOptions() {\n return {\n type: 'doughnut',\n data: {\n labels: this.data.map((item) => item.label),\n datasets: [\n {\n data: this.data.map((item) => item.value),\n backgroundColor: this.palette,\n hoverBackgroundColor: this.palette,\n },\n ],\n },\n options: {\n datasets: {\n doughnut: {\n cutout: '56%',\n hoverBorderWidth: 0,\n hoverOffset: 0,\n offset: 0,\n borderRadius: 6,\n },\n },\n animation: {\n animateScale: true,\n },\n plugins: {\n legend: {\n display: false,\n },\n },\n },\n };\n }\n}","document.addEventListener('alpine:init', () => {\n Alpine.data('paymentMethodSingle', () => ({\n sourcesVisible: false,\n activeGroup: 0,\n\n init() {\n if (this.$root.dataset.grouped === 'true') {\n this.activeGroup = +this.$root.dataset.postId;\n\n history.replaceState({ postId: this.activeGroup }, document.title, window.location.href);\n\n if (window.innerWidth <= 787) {\n setTimeout(() => {\n const active = this.$root.querySelector(`.group-tabs a[data-id=\"${this.activeGroup}\"]`);\n\n if (active) {\n this.$root.querySelector('.group-tabs').scrollLeft = active.offsetLeft - 24;\n }\n });\n }\n\n addEventListener('popstate', (e) => {\n if (e.state.postId) {\n this.activeGroup = e.state.postId;\n }\n });\n }\n },\n\n setGroup(postId, title, url) {\n this.activeGroup = postId;\n history.pushState({ postId }, title, url);\n },\n }));\n});","import { mqLaptop, mqTabletPortrait, mqPhone } from '../../utils/mq';\n\ndocument.addEventListener('alpine:init', () => {\n Alpine.data('countriesNew', () => ({\n get shown() {\n return this._shown;\n },\n set shown(value) {\n if (!this._firstTimeShown && history.state?.restoreScrollPosition) {\n if (history.state?.activeRegion) {\n this.$root.querySelector(`button[data-region=\"${history.state.activeRegion}\"]`)?.click();\n }\n\n this.$nextTick(() => {\n this.pushAndFilter(history.state?.page ?? 1, false, false);\n this.$nextTick(() => this.$refs.results.scrollIntoView());\n });\n }\n\n this._shown = value;\n this._firstTimeShown = true;\n },\n _shown: false,\n _firstTimeShown: false,\n\n items: [],\n\n filteredItems: [],\n\n keywords: history.state?.restoreScrollPosition ? history.state.keywords : '',\n\n regions: [],\n\n activeRegion: 'All',\n\n page: 1,\n\n perPage: 0,\n\n lastPage: 0,\n\n count: 0,\n\n pagination: [],\n\n init() {\n if (mqPhone.matches) {\n this.perPage = 6;\n } else if (mqTabletPortrait.matches) {\n this.perPage = 9;\n } else if (mqLaptop.matches) {\n this.perPage = 20;\n } else {\n this.perPage = 20;\n }\n\n this.items = [\n ...this.$root.querySelectorAll(\n '.countries-filterable__results-items--static .countries-filterable__results-item'\n ),\n ].map((el) => ({\n id: el.dataset.id,\n name: el.dataset.name,\n excerpt: el.dataset.excerpt,\n image: el.dataset.image,\n link: el.href,\n region: el.dataset.region,\n weight: +el.dataset.weight.trim().replace(/[^0-9\\.]/g, ''),\n }));\n\n this.items.sort((a, b) => b.weight - a.weight);\n\n this.regions = this.$root.dataset.regions.split(',');\n\n this.filter();\n\n const qs = new URLSearchParams(window.location.search).get('r');\n\n if (qs) {\n setTimeout(() => {\n this.$root.querySelector(`button[data-region=\"${qs}\"]`)?.click();\n this.$root.querySelector(`button[data-region-slug=\"${qs}\"]`)?.click();\n });\n }\n },\n\n filter(page, scrollIntoView = false) {\n if (page && !this.shown) {\n return;\n }\n\n const results = this.items.filter((item) => {\n if (this.activeRegion !== 'All' && this.activeRegion !== item.region) {\n return false;\n }\n\n if (this.keywords.trim() && !item.name.toLowerCase().includes(this.keywords.trim().toLowerCase())) {\n return false;\n }\n\n return true;\n });\n\n this.count = results.length;\n this.lastPage = Math.ceil(this.count / this.perPage);\n this.page = page ? Math.min(this.lastPage, Math.max(1, page)) : 1;\n this.pagination = [];\n\n const paginationStart = Math.max(1, this.page - 2);\n const paginationEnd = Math.min(paginationStart + 4, this.lastPage);\n\n for (let i = paginationStart; i <= paginationEnd; i++) {\n this.pagination.push(i);\n }\n\n const missing = 5 - this.pagination.length;\n\n for (let i = 0; i < missing; i++) {\n if (paginationStart - i - 1 >= 1) {\n this.pagination.unshift(paginationStart - i - 1);\n }\n }\n\n this.filteredItems = results.slice((this.page - 1) * this.perPage, (this.page - 1) * this.perPage + this.perPage);\n\n if (scrollIntoView) {\n this.$nextTick(() => this.$refs.results.scrollIntoView());\n }\n },\n\n pushAndFilter(page, restoreScrollPosition = false, scrollIntoView = false) {\n this.push(page, restoreScrollPosition);\n this.filter(page, scrollIntoView);\n },\n\n push(page, restoreScrollPosition = false) {\n history.pushState(\n {\n activeRegion: this.activeRegion,\n keywords: this.keywords,\n page: page ?? 1,\n restoreScrollPosition,\n },\n null\n );\n },\n\n changeRegion(e, name) {\n this.activeRegion = name;\n\n if (e.isTrusted) {\n this.pushAndFilter();\n } else {\n this.filter();\n }\n },\n\n clearKeywords() {\n this.keywords = '';\n this.pushAndFilter();\n },\n\n onResultClick() {\n this.push(this.page, true);\n },\n }));\n});","import { mqLaptop, mqTabletPortrait, mqPhone } from '../../utils/mq';\n\ndocument.addEventListener('alpine:init', () => {\n Alpine.data('paymentMethodsNew', () => ({\n items: [],\n\n filteredItems: [],\n\n keywords: '',\n\n location: 'all',\n\n type: 'all',\n\n page: 1,\n\n perPage: 20,\n\n lastPage: 0,\n\n count: 0,\n\n pagination: [],\n\n ppmsPerCountry: {},\n\n init() {\n /*if (mqPhone.matches) {\n this.perPage = 6;\n } else if (mqTabletPortrait.matches) {\n this.perPage = 9;\n } else if (mqLaptop.matches) {\n this.perPage = 20;\n } else {\n this.perPage = 20;\n }*/\n\n this.items = [...this.$root.querySelectorAll('.payment-methods-filterable__results-items--static > span')].map(\n (el) => {\n const consumerCountryNames = el.dataset.consumerCountryNames.split(', ');\n const visibleConsumerCountryNames = [];\n let characters = 0;\n\n do {\n if (\n visibleConsumerCountryNames.length &&\n consumerCountryNames.length &&\n characters + consumerCountryNames[0].length > 36\n ) {\n break;\n }\n\n const consumerCountryName = consumerCountryNames.shift();\n characters += consumerCountryName.length;\n visibleConsumerCountryNames.push(consumerCountryName);\n } while (consumerCountryNames.length && characters <= 36);\n\n return {\n id: +el.dataset.id,\n name: el.dataset.name,\n image: el.dataset.image,\n link: el.dataset.href,\n types: el.dataset.types.split(',').map(Number),\n regions: el.dataset.regions.split(','),\n consumerCountries: el.dataset.consumerCountries.split(',').map(Number),\n countries: el.dataset.countries.split(',').map(Number),\n typeNames: el.dataset.typeNames,\n consumerCountryNames: visibleConsumerCountryNames.join(', ') || '-',\n countryNames: visibleConsumerCountryNames.join(', ') || '-',\n countryNamesRest: consumerCountryNames,\n comingSoon: el.dataset.comingSoon === '1',\n badge: JSON.parse(el.dataset.badge.replace(/§/g, '\"')),\n weight: +el.dataset.weight,\n };\n }\n );\n\n this.ppmsPerCountry = JSON.parse(this.$refs.ppmsPerCountry.innerHTML.trim());\n\n window.addEventListener('popstate', () => this.parseURL());\n\n this.parseURL();\n },\n\n parseURL(scrollIntoView = false) {\n const { keywords, location, type, page } = this.extractParams(new URLSearchParams(window.location.search));\n\n this.keywords = keywords;\n this.location = location;\n this.type = type;\n this.page = page;\n\n this.filter(scrollIntoView);\n },\n\n filter(scrollIntoView = false) {\n const results = this.items.filter((row) => {\n if (this.location !== 'all' && this.location.match(/^[a-z]/i)) {\n const region = this.location;\n\n if (!row.regions.some((_region) => region === _region)) {\n return false;\n }\n } else if (this.location !== 'all' && !row.countries.includes(+this.location)) {\n return false;\n }\n\n if (this.type !== 'all' && !row.types.includes(+this.type)) {\n return false;\n }\n\n if (this.keywords.trim() && !row.name.toLowerCase().includes(this.keywords.trim().toLowerCase())) {\n return false;\n }\n\n return true;\n });\n\n if (this.location !== 'all' && this.location.match(/^[1-9][0-9]*$/) && this.ppmsPerCountry[this.location]) {\n results.sort(\n (a, b) => this.ppmsPerCountry[this.location].indexOf(a.id) - this.ppmsPerCountry[this.location].indexOf(b.id)\n );\n } else {\n results.sort((a, b) => b.weight - a.weight);\n }\n\n this.count = results.length;\n this.lastPage = Math.ceil(this.count / this.perPage);\n this.page = Math.max(Math.min(this.page, this.lastPage), 1);\n this.pagination = [];\n\n const paginationStart = Math.max(1, this.page - 2);\n const paginationEnd = Math.min(paginationStart + 4, this.lastPage);\n\n for (let i = paginationStart; i <= paginationEnd; i++) {\n this.pagination.push(i);\n }\n\n const missing = 5 - this.pagination.length;\n\n for (let i = 0; i < missing; i++) {\n if (paginationStart - i - 1 >= 1) {\n this.pagination.unshift(paginationStart - i - 1);\n }\n }\n\n this.filteredItems = results.slice((this.page - 1) * this.perPage, (this.page - 1) * this.perPage + this.perPage);\n\n if (scrollIntoView) {\n setTimeout(() => {\n window.scrollTo(0, this.$refs.results.offsetTop - 200);\n });\n }\n },\n\n push(page, scrollIntoView = false) {\n const { url } = this.extractParams(\n new URLSearchParams({\n _keywords: this.keywords,\n _location: this.location,\n _type: this.type,\n _page: page ?? this.page,\n })\n );\n\n if (url.search !== window.location.search) {\n window.history.pushState({}, '', url);\n this.parseURL(scrollIntoView);\n }\n },\n\n extractParams(params) {\n const keywords = params.get('_keywords') ?? '';\n const location = params.get('_location') ?? 'all';\n const type = params.get('_type') ?? 'all';\n const page = params.get('_page') && /^[1-9][0-9]*$/.test(params.get('_page')) ? +params.get('_page') : 1;\n\n const url = new URL(window.location.href);\n const newParams = new URLSearchParams();\n\n if (keywords) {\n newParams.append('_keywords', keywords);\n }\n\n if (location !== 'all') {\n newParams.append('_location', location);\n }\n\n if (type !== 'all') {\n newParams.append('_type', type);\n }\n\n if (page !== 1) {\n newParams.append('_page', page);\n }\n\n url.search = newParams.toString();\n\n return { page, keywords, location, type, url, params: newParams };\n },\n\n clearKeywords() {\n this.keywords = '';\n this.push();\n },\n }));\n});","const search = document.querySelector('#search');\n\nif (search) {\n let page = 1;\n let request = 0;\n const hero = document.querySelector('.search-hero');\n const spinner = document.querySelector('.search-hero__spinner');\n const results = document.querySelector('.search-results__found');\n const noResults = document.querySelector('.search-results__none');\n const total = document.querySelector('.search-results__total');\n const list = document.querySelector('.search-results__list');\n const loadMore = document.querySelector('.search-results__load-more');\n const query = new URLSearchParams(location.search);\n const keywords = query.get('keywords');\n\n if (!search.value && keywords) {\n search.value = keywords;\n doSearch();\n emit();\n }\n\n let delay;\n let emitDelay;\n\n search.addEventListener('input', () => {\n if (delay) {\n clearTimeout(delay);\n delay = null;\n }\n\n if (emitDelay) {\n clearTimeout(emitDelay);\n emitDelay = null;\n }\n\n if (search.value) {\n hero.classList.add('search-hero--small');\n } else {\n hero.classList.remove('search-hero--small');\n }\n\n delay = setTimeout(onSearch, 500);\n });\n\n function onSearch() {\n delay = null;\n emitDelay = setTimeout(emit, 2000);\n history.replaceState(null, null, '?keywords=' + encodeURIComponent(search.value));\n doSearch();\n }\n\n loadMore.addEventListener('click', () => {\n loadMore.disabled = true;\n doSearch(page + 1, true);\n });\n\n function doSearch(p = 1, append = false) {\n page = p;\n request++;\n const _request = request;\n spinner.style.display = 'block';\n\n if (search.value) {\n fetch(`${ajaxurl}?action=search&s=${encodeURIComponent(search.value)}&p=${p}`)\n .then((response) => response.json())\n .then((response) => {\n results.style.display = response.data.total ? null : 'none';\n noResults.style.display = response.data.total ? 'none' : null;\n total.textContent = `${response.data.total} entr${response.data.total > 1 ? 'ies' : 'y'} found`;\n\n if (append) {\n list.innerHTML += response.data.html;\n } else {\n list.innerHTML = response.data.html;\n }\n\n if (p * 6 < response.data.total) {\n loadMore.style.display = null;\n loadMore.disabled = false;\n } else {\n loadMore.style.display = 'none';\n loadMore.disabled = true;\n }\n\n if (_request === request) {\n spinner.style.display = 'none';\n }\n });\n } else {\n results.style.display = 'none';\n noResults.style.display = 'none';\n spinner.style.display = 'none';\n }\n }\n\n function emit() {\n emitDelay = null;\n\n if (typeof window.ga === 'function') {\n window.ga('send', 'pageview');\n }\n }\n}","import { viewport } from './viewport';\n\nfunction init() {\n document.querySelectorAll('.content').forEach((content) => {\n [...content.children].forEach((el, i) => {\n el.classList.add('animation');\n el.offsetWidth;\n\n viewport.observe(el, () => {\n el.style.transitionDelay = `${i * 100}ms`;\n el.classList.add('animated');\n });\n });\n });\n\n document.querySelectorAll('.hero__shape').forEach((shape) => {\n [...shape.children].forEach((el, i) => {\n el.classList.add('animation');\n el.offsetWidth;\n\n viewport.observe(el, () => {\n el.style.transitionDelay = `${i * 100}ms`;\n el.classList.add('animated');\n });\n });\n });\n}\n\ninit();\n\nwindow.addEventListener('init', () => init());","import { getCookie, setCookie } from '../utils/cookie';\n\ndocument.querySelectorAll('.closable').forEach((el) => {\n if (!getCookie(`wp-vb-closable-` + el.id)) {\n el.classList.remove('closable');\n const container = el.querySelector('.container');\n\n if (container) {\n const wrapper = document.createElement('div');\n const button = document.createElement('button');\n const icon = document.createElement('i');\n\n button.setAttribute('aria-label', 'close');\n\n wrapper.className = 'closable__wrapper';\n button.className = 'top-bar__close-button closable__button';\n icon.className = 'icon-cross';\n\n button.append(icon);\n wrapper.append(button);\n container.prepend(wrapper);\n\n button.addEventListener('click', () => {\n setCookie(`wp-vb-closable-` + el.id, 'hidden', 30);\n el.classList.add('closable');\n });\n }\n }\n});","export function setCookie(name, value, days) {\n var expires = '';\n if (days) {\n var date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = '; expires=' + date.toUTCString();\n }\n document.cookie = name + '=' + (value || '') + expires + '; path=/';\n}\n\nexport function getCookie(name) {\n var nameEQ = name + '=';\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n}\n\nexport function eraseCookie(name) {\n document.cookie = name + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';\n}","let initialized = false;\n\nexport function initCustomerIO() {\n /* if (!initialized) {\n initialized = true;\n var _cio = _cio || [];\n window._cio = _cio;\n (function () {\n var a, b, c;\n a = function (f) {\n return function () {\n _cio.push([f].concat(Array.prototype.slice.call(arguments, 0)));\n };\n };\n b = ['load', 'identify', 'sidentify', 'track', 'page', 'on', 'off'];\n for (c = 0; c < b.length; c++) {\n _cio[b[c]] = a(b[c]);\n }\n var t = document.createElement('script'),\n s = document.getElementsByTagName('script')[0];\n t.async = true;\n t.id = 'cio-tracker';\n t.setAttribute('data-site-id', '721b2e97ee4b125ab40d');\n t.setAttribute('data-use-array-params', 'true');\n\n //Enables in-app messaging\n t.setAttribute('data-use-in-app', 'true');\n\n t.src = 'https://assets.customer.io/assets/track-eu.js';\n s.parentNode.insertBefore(t, s);\n })();\n } */\n}\n\ninitCustomerIO();","document.querySelectorAll('a[href=\"#privacy-notice\"]').forEach((link) => {\n link.addEventListener('click', (e) => {\n e.preventDefault();\n UC_UI.showSecondLayer();\n });\n});","document.addEventListener('alpine:init', () => {\n Alpine.store('geolocation', {\n country: null,\n\n init() {\n fetch(`${ajaxurl}?action=get_geolocation`)\n .then((response) => response.json())\n .then((data) => {\n if (data.data) {\n this.country = data.data.toLowerCase();\n }\n });\n },\n });\n});","document.addEventListener('alpine:init', () => {\n Alpine.store('lang', {\n current: document.body.dataset.lang,\n\n languages: [\n {\n code: 'en',\n labels: {\n en: 'EN',\n 'zh-hans': 'EN',\n },\n },\n {\n code: 'zh-hans',\n labels: {\n en: '中文',\n 'zh-hans': '中文',\n },\n },\n ],\n\n init() {},\n });\n});","import { mqTabletLandscape } from './mq';\n\nexport const megaMenu = {\n all: document.querySelectorAll('.mega-menu--any'),\n header: document.querySelector('.header'),\n overlay: document.querySelector('.mega-menu-overlay'),\n initiated: false,\n classes: {\n megaMenu: 'mega-menu--any',\n hasVisibleMegaMenu: 'has-visible-mega-menu',\n headerMenuItemButton: 'header-menu__item-button',\n isMegaMenuVisible: 'is-mega-menu-visible',\n },\n\n init: function () {\n // Close mega menu when clicked outside its area\n document.body.addEventListener('click', (e) => {\n if (this.isVisible()) {\n let el = e.target;\n\n do {\n if (\n el.classList.contains(this.classes.megaMenu) ||\n el.classList.contains(this.classes.headerMenuItemButton)\n ) {\n return;\n }\n\n el = el.parentElement;\n } while (el.parentElement);\n\n this.hide();\n }\n });\n\n // Bind Escape key\n document.addEventListener('keydown', (e) => {\n if (e.code === 'Escape' && this.isVisible()) {\n document.activeElement.blur();\n this.hide();\n }\n });\n\n // Bind all close buttons\n this.all.forEach((megaMenu) => {\n megaMenu.querySelectorAll('.mega-menu__close').forEach((button) => {\n button.addEventListener('click', () => this.hide());\n });\n });\n\n // Update overlay height on window resize\n window.addEventListener('resize', () => {\n if (this.isVisible()) {\n this.updateOverlayHeight();\n }\n });\n\n // Hide in mobile layout\n mqTabletLandscape.addListener((e) => {\n if (e.matches) {\n this.hide();\n }\n });\n\n // Set as initiated\n this.initiated = true;\n },\n\n show: function (el) {\n this.hide();\n\n el.parentElement.classList.add(this.classes.hasVisibleMegaMenu);\n this.updateOverlayHeight();\n document.documentElement.classList.add(this.classes.isMegaMenuVisible);\n document.body.classList.add(this.classes.isMegaMenuVisible);\n\n if (this.header.classList.contains('is-header-menu-dark')) {\n this.header.classList.add('has-dark-background');\n }\n\n if (!this.initiated) {\n this.init();\n }\n },\n\n hide: function () {\n this.all.forEach((menu) => menu.parentElement.classList.remove(this.classes.hasVisibleMegaMenu));\n document.documentElement.classList.remove(this.classes.isMegaMenuVisible);\n document.body.classList.remove(this.classes.isMegaMenuVisible);\n this.header.classList.remove('has-dark-background');\n },\n\n toggle: function (el) {\n if (el.parentElement.classList.contains(this.classes.hasVisibleMegaMenu)) {\n this.hide();\n } else {\n this.show(el);\n }\n },\n\n isVisible: function () {\n return document.body.classList.contains(this.classes.isMegaMenuVisible);\n },\n\n getVisible: function () {\n return Array.from(this.all).find((menu) => menu.parentElement.classList.contains(this.classes.hasVisibleMegaMenu));\n },\n\n updateOverlayHeight: function () {\n const visibleMenu = this.getVisible();\n\n if (visibleMenu) {\n this.overlay.style.height = visibleMenu.offsetHeight + 'px';\n }\n },\n};","import { mqTabletPortrait } from './mq';\n\nclass MobileImages {\n constructor() {\n this.images = [];\n\n this.reinit();\n\n if (mqTabletPortrait.addEventListener) {\n mqTabletPortrait.addEventListener('change', (e) => this.onChange(e.matches));\n } else {\n mqTabletPortrait.addListener((e) => this.onChange(e.matches));\n }\n\n this.onChange(mqTabletPortrait.matches);\n\n window.addEventListener('init', () => {\n this.reinit();\n this.onChange(mqTabletPortrait.matches);\n });\n }\n\n reinit() {\n document.querySelectorAll('img[data-src]:not([data-initialized])').forEach((img) => {\n img.setAttribute('data-initialized', '1');\n this.images.push(img);\n });\n }\n\n onChange(matches) {\n if (matches) {\n this.setMobileImages();\n } else {\n this.setRegularImages();\n }\n }\n\n setRegularImages() {\n this.images.forEach((img) => {\n img.src = img.dataset.src;\n\n if (img.dataset.maxWidth) {\n img.style.maxWidth = img.dataset.maxWidth + '%';\n }\n });\n }\n\n setMobileImages() {\n this.images.forEach((img) => {\n if (img.dataset.srcMobile) {\n img.src = img.dataset.srcMobile;\n } else if (img.dataset.src) {\n img.src = img.dataset.src;\n }\n\n if (img.dataset.maxWidthMobile) {\n img.style.maxWidth = img.dataset.maxWidthMobile + '%';\n } else if (img.dataset.maxWidth) {\n img.style.maxWidth = img.dataset.maxWidth + '%';\n }\n });\n }\n}\n\nconst mobileImages = new MobileImages();\n\nexport { mobileImages, MobileImages };","import { mqTabletLandscape } from './mq';\n\nexport const mobileMenu = {\n parentItems: document.querySelectorAll('.header-mobile-menu__item-button'),\n activeParent: null,\n subContainer: document.querySelector('.header-mobile-menu__sub-container'),\n subTransition: null,\n backButtons: document.querySelectorAll('.header-mobile-menu__sub-back'),\n header: document.querySelector('.header'),\n initiated: false,\n classes: {\n isMobileMenuVisible: 'is-mobile-menu-visible',\n isMobileSubMenuVisible: 'is-mobile-sub-menu-visible',\n isMobileSubMenuTransitioning: 'is-mobile-sub-menu-transitioning',\n },\n\n init: function () {\n // Add click events to parent items in the main list\n this.parentItems.forEach((item) => {\n item.addEventListener('click', () => {\n this.cancelSubTransition();\n\n if (this.activeParent !== item) {\n const subList = item.nextElementSibling;\n this.resetSubList();\n this.subContainer.appendChild(subList);\n this.activeParent = item;\n subList.offsetWidth; // Trigger reflow\n }\n\n document.body.classList.add(this.classes.isMobileSubMenuVisible);\n this.setSubTransition();\n });\n });\n\n // Add click events to back buttons in the sub list\n this.backButtons.forEach((button) => {\n button.addEventListener('click', () => {\n document.body.classList.remove(this.classes.isMobileSubMenuVisible);\n this.setSubTransition();\n\n setTimeout(() => {\n if (!this.isSubVisible()) {\n this.resetSubList();\n }\n }, 400);\n });\n });\n\n // Hide mobile menu on larger screens\n mqTabletLandscape.addListener((e) => {\n if (!e.matches) {\n mobileMenu.hide();\n }\n });\n\n // Set as initiated\n this.initiated = true;\n },\n\n show: function () {\n document.documentElement.classList.add(this.classes.isMobileMenuVisible);\n document.body.classList.add(this.classes.isMobileMenuVisible);\n\n if (this.header.classList.contains('is-header-menu-dark')) {\n this.header.classList.add('has-dark-background');\n }\n\n if (!this.initiated) {\n this.init();\n }\n },\n\n hide: function () {\n document.documentElement.classList.remove(this.classes.isMobileMenuVisible);\n document.body.classList.remove(this.classes.isMobileMenuVisible);\n\n setTimeout(() => {\n if (!this.isVisible()) {\n document.documentElement.classList.remove(this.classes.isMobileSubMenuVisible);\n document.body.classList.remove(this.classes.isMobileSubMenuVisible);\n this.header.classList.remove('has-dark-background');\n }\n }, 400);\n },\n\n toggle: function () {\n if (this.isVisible()) {\n this.hide();\n } else {\n this.show();\n }\n },\n\n isVisible: function () {\n return document.body.classList.contains(this.classes.isMobileMenuVisible);\n },\n\n resetSubList: function () {\n if (this.activeParent) {\n this.activeParent.parentElement.appendChild(this.subContainer.firstChild);\n this.activeParent = null;\n }\n },\n\n isSubVisible: function () {\n return document.body.classList.remove(this.classes.isMobileSubMenuVisible);\n },\n\n setSubTransition: function () {\n document.documentElement.classList.add(this.classes.isMobileSubMenuTransitioning);\n document.body.classList.add(this.classes.isMobileSubMenuTransitioning);\n\n this.subTransition = setTimeout(() => {\n document.documentElement.classList.remove(this.classes.isMobileSubMenuTransitioning);\n document.body.classList.remove(this.classes.isMobileSubMenuTransitioning);\n }, 400);\n },\n\n cancelSubTransition: function () {\n if (this.subTransition) {\n clearTimeout(this.subTransition);\n }\n },\n};","export const mqLaptop = window.matchMedia('(max-width: 1444px)');\nexport const mqTabletLandscape = window.matchMedia('(max-width: 1279px)');\nexport const mqTabletPortrait = window.matchMedia('(max-width: 1023px)');\nexport const mqAdminBar = window.matchMedia('(max-width: 782px)');\nexport const mqPhone = window.matchMedia('(max-width: 767px)');","window.addEventListener('scroll', onScroll);\n\nlet lastScrollTop = 0;\n\nfunction onScroll() {\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n\n if (scrollTop > lastScrollTop) {\n document.body.classList.remove('scrolled-up');\n document.body.classList.add('scrolled-down');\n } else {\n document.body.classList.add('scrolled-up');\n document.body.classList.remove('scrolled-down');\n }\n\n lastScrollTop = scrollTop <= 0 ? 0 : scrollTop;\n\n if (window.scrollY === 0) {\n document.body.classList.remove('scrolled');\n } else {\n document.body.classList.add('scrolled');\n }\n\n if (window.scrollY >= 100) {\n document.body.classList.add('scrolled-100');\n } else {\n document.body.classList.remove('scrolled-100');\n }\n\n if (window.scrollY >= 160) {\n document.body.classList.add('scrolled-160');\n setTimeout(() => document.body.classList.add('scrolled-160-after'), 300);\n } else {\n document.body.classList.remove('scrolled-160');\n setTimeout(() => document.body.classList.remove('scrolled-160-after'), 300);\n }\n}","import { getCookie, setCookie } from './cookie';\n\nconst urlSearchParams = new URLSearchParams(window.location.search);\nconst params = Object.fromEntries(urlSearchParams.entries());\nconst cookie = getCookie('wp-vb-utm');\nlet utm = null;\n\nif (cookie) {\n try {\n utm = JSON.parse(cookie);\n } catch (e) {}\n}\n\nif (\n params.utm_source ||\n params.utm_medium ||\n params.utm_campaign ||\n params.utm_term ||\n params.utm_content ||\n params.gclid\n) {\n const newUtm = {};\n\n newUtm.source = params.utm_source ?? utm?.source;\n newUtm.medium = params.utm_medium ?? utm?.medium;\n newUtm.campaign = params.utm_campaign ?? utm?.campaign;\n newUtm.term = params.utm_term ?? utm?.term;\n newUtm.content = params.utm_content ?? utm?.content;\n newUtm.gclid = params.gclid ?? utm?.gclid;\n\n utm = newUtm;\n\n setCookie('wp-vb-utm', JSON.stringify(utm), 14);\n}\n\nexport { utm };","class Viewport {\n constructor(options = {}) {\n this.callback = this.callback.bind(this);\n this.observer = new IntersectionObserver(this.callback, options);\n this.index = 0;\n this.intersectionCallbacks = {};\n }\n\n observe(target, isIntersectingCb = null, notIntersectingCb = null) {\n this.intersectionCallbacks[this.index] = {\n yes: isIntersectingCb,\n no: notIntersectingCb,\n };\n\n target.dataset.viewportIndex = this.index;\n this.index++;\n this.observer.observe(target);\n }\n\n callback(entries, observer) {\n entries.forEach((entry) => {\n const cb = this.intersectionCallbacks[entry.target.dataset.viewportIndex];\n\n if (entry.isIntersecting && cb.yes) {\n cb.yes(entry.target);\n } else if (cb.no) {\n cb.no(entry.target);\n }\n });\n }\n}\n\nconst viewport = new Viewport();\n\nexport { viewport, Viewport };","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import './main-modules/utils/mq.js';\nimport './main-modules/utils/mega-menu.js';\nimport './main-modules/utils/mobile-menu.js';\nimport './main-modules/utils/viewport.js';\nimport './main-modules/utils/mobile-images.js';\nimport './main-modules/utils/animations.js';\nimport './main-modules/utils/scrolled.js';\nimport './main-modules/utils/cookie.js';\nimport './main-modules/utils/utm.js';\nimport './main-modules/utils/customer-io.js';\nimport './main-modules/utils/disclaimer.js';\nimport './main-modules/utils/closable.js';\nimport './main-modules/utils/lang.js';\nimport './main-modules/utils/geolocation.js';\nimport './main-modules/layout/partials/header-menu.js';\nimport './main-modules/layout/partials/header.js';\nimport './main-modules/layout/blocks/team.js';\nimport './main-modules/layout/partials/widget-menu.js';\nimport './main-modules/layout/blocks/jobs.js';\nimport './main-modules/layout/components/filters.js';\nimport './main-modules/layout/blocks/offices.js';\nimport './main-modules/layout/blocks/logos.js';\nimport './main-modules/layout/blocks/slider.js';\nimport './main-modules/layout/components/slider-pagination.js';\nimport './main-modules/layout/components/chart/doughnut.js';\nimport './main-modules/layout/blocks/pms-cards.js';\nimport './main-modules/layout/blocks/colored-card.js';\nimport './main-modules/layout/blocks/cards-slider.js';\nimport './main-modules/layout/blocks/block.js';\nimport './main-modules/layout/components/chart/hbar-2.js';\nimport './main-modules/layout/blocks/lottie.js';\nimport './main-modules/layout/blocks/cards-grid.js';\nimport './main-modules/layout/partials/insights-list.js';\nimport './main-modules/layout/partials/news-list.js';\nimport './main-modules/layout/blocks/dna-cards.js';\nimport './main-modules/layout/blocks/testimonials.js';\nimport './main-modules/layout/blocks/video.js';\nimport './main-modules/layout/blocks/form.js';\nimport './main-modules/layout/partials/popup.js';\nimport './main-modules/layout/blocks/newsletter.js';\nimport './main-modules/layout/blocks/contact-form.js';\nimport './main-modules/layout/partials/pm-card.js';\nimport './main-modules/layout/blocks/share.js';\nimport './main-modules/layout/blocks/tabs.js';\nimport './main-modules/layout/blocks/hero.js';\nimport './main-modules/layout/blocks/accordion.js';\nimport './main-modules/layout/blocks/locations.js';\nimport './main-modules/layout/templates/template-search.js';\nimport './main-modules/layout/partials/top-bar.js';\nimport './main-modules/layout/blocks/pm-hero.js';\nimport './main-modules/layout/blocks/countries.js';\nimport './main-modules/layout/blocks/region-hero.js';\nimport './main-modules/layout/partials/pms-table.js';\nimport './main-modules/layout/blocks/payments-101-grid.js';\nimport './main-modules/layout/blocks/boxed-text.js';\nimport './main-modules/layout/partials/countries-filterable.js';\nimport './main-modules/layout/blocks/ecommerce-text-lists.js';\nimport './main-modules/layout/blocks/region-intro.js';\nimport './main-modules/layout/blocks/ecommerce-boxed-items.js';\nimport './main-modules/layout/blocks/page-navigation.js';\nimport './main-modules/layout/blocks/country-intro.js';\nimport './main-modules/layout/blocks/country-shuffle-hero.js';\nimport './main-modules/layout/blocks/gallery.js';\nimport './main-modules/layout/blocks/videos-grid.js';\nimport './main-modules/layout/partials/password.js';\nimport './main-modules/layout/blocks/flex-block.js';\nimport './main-modules/layout/blocks/text.js';\nimport './main-modules/layout/blocks/fast-tabs.js';\nimport './main-modules/layout/blocks/flow-form.js';\nimport './main-modules/layout/partials/scroll-popup.js';\nimport './main-modules/layout/partials/events-list.js';\nimport './main-modules/layout/blocks/employees.js';\nimport './main-modules/layout/templates/template-countries-new.js';\nimport './main-modules/layout/templates/single-country-new.js';\nimport './main-modules/layout/blocks/recruitment-slider.js';\nimport './main-modules/layout/templates/single-payment-method-new.js';\nimport './main-modules/layout/templates/template-payment-methods-new.js';\nimport './main-modules/layout/partials/country-list-trimmed.js';\nimport './main-modules/layout/blocks/video-hero-background.js';\nimport './main-modules/layout/blocks/text-newsletter.js';\nimport './main-modules/layout/blocks/testimonials-slider.js';\nimport './main-modules/layout/blocks/logo-carousel.js';\nimport './main-modules/layout/blocks/latam-hero.js';\nimport './main-modules/layout/blocks/universal-slider.js';\nimport './main-modules/layout/partials/header-new.js';\nimport './main-modules/layout/blocks/vertical-tabs.js';\nimport './main-modules/layout/blocks/gated-content-hero.js';\nimport './main-modules/layout/blocks/home-hero.js';\nimport './main-modules/layout/blocks/multiform.js';\nimport './main-modules/layout/blocks/sticky-hero.js';\nimport './main-modules/layout/partials/password-custom.js';\nimport './main-modules/layout/partials/spmn-rest.js';"],"names":["AccordionBlock","block","attributes","sections","querySelectorAll","forEach","section","i","header","querySelector","content","wrapper","createColumnWrapper","children","child","nodeName","removeChild","appendChild","append","addEventListener","s","classList","remove","style","height","toggle","contains","scrollHeight","window","resize","img","document","createElement","add","transition","offsetWidth","acf","ContentBlock","innerBlocks","body","length","addAction","$block","find","get","Alpine","data","maxHeight","collapsed","bgColor","rootEl","init","$root","dataset","$nextTick","calcHeight","resolveBgColor","offsetHeight","expand","parent","parentElement","tagName","backgroundColor","CardsGridBlock","container","cards","CardsSliderBlock","slides","scrollAim","scrollFactor","scrollTime","slidesPerView","onMouseDown","bind","onMouseMove","onMouseUp","scroll","slide","nav","navButtonPrev","setAttribute","navArrowLeft","navButtonNext","navArrowRight","e","prev","next","setTimeout","toggleNav","el","initialScroll","scrollLeft","normalize","Date","now","requestAnimationFrame","dragStart","clientX","Math","abs","removeEventListener","speed","dx","dt","max","p","t","x","min","d","scrollWidth","value","distance","duration","ColoredCardBlock","number","root","parentNode","innerText","indexOf","ContactFormBlock","tabs","supportTabsWrapper","supportTabs","supportSelect","forms","initTabs","location","hash","tab","click","form","dispatchEvent","Event","refreshSupportForms","latamSupportForm","globalSupportForm","CountriesBlock","countries","geolocation","getMyCountry","fetch","ajaxurl","then","response","json","replaceIndex","findIndex","country","name","title","replace","textContent","backgroundImage","image","href","link","insertBefore","scrollTo","buttons","heading","contentBlock","findParentContentBlock","id","push","text","JSON","parse","$refs","innerHTML","headline","writeAndDelete","countryName","map","c","timeout","loop","errorQuota","cursor","cursorSpeed","changeImage","event","index","detail","opacity","DnaCardsBlock","overlay","swiperContainer","swiperWrapper","swiper","card","cardClone","cloneNode","slideTo","show","target","hide","code","Swiper","centeredSlides","spaceBetween","navigation","nextEl","prevEl","disabledClass","keyboard","enabled","threshold","viewport","box","EcommerceBoxedItemsChart","each","canvas","ctx","getContext","percent","label","palette","observe","chart","Chart","getOptions","type","labels","item","datasets","hoverBackgroundColor","options","doughnut","cutout","hoverBorderWidth","hoverOffset","offset","borderRadius","animation","animateScale","plugins","legend","display","lists","source","list","rows","trim","split","compare","row","part","filter","Boolean","charts","every","includes","items","values","pv","endsWith","boxHTML","outerHTML","EcommerceTextListsChart","sliderInitialized","initializeBlock","button","initializeSlider","showOverlay","hideOverlay","getOverlay","contents","slider","activeTab","_activeTab","CustomEvent","ready","fastTabs","fastTab","found","breakpoints","styles","$el","imgIndex","breakpoint","min_screen_width","padding_top","padding_bottom","max_content_width","content_position","images","imgWrapper","imgEl","src","url","alt","width","top","right","bottom","left","position","offset_left","offset_top","join","utm","initCustomerIO","blockID","customBlockID","formData","fields","changes","disabled","recaptchaValue","success","entryLimit","mfqId","customerIoFormId","addToCalendarScriptInitialized","_mfq","Object","keys","utmInput","hidden","input","postId","method","entry_count","initForm","message","error","console","line","formatChoices","pathname","startsWith","chinaIndex","china","splice","acf_fc_layout","logic","field","checked","choices","recaptcha","grecaptcha","refreshRecaptcha","setInterval","choice","onSubmit","valid","_cio","track","formId","validation","Function","call","RegExp","regexp","replaceAll","test","email_blacklist","some","email_blacklist_error","scrollToTop","FormData","success_message","createInviteButtons","identify","errors","entries","scrollIntoView","behavior","onClickTab","execute","action","token","tabEl","fieldEl","inputEl","dirty","script","async","defer","head","add_calendar_invite","calendar_invite_script","FormBlock","hasAttribute","groups","submit","steps","group","inputs","selects","refresh","select","step","updateStepBar","preventDefault","redirectTo","_form","overflow","download","date","setTime","getTime","cookie","toUTCString","open","groupEl","errorEl","tooltip","checkbox","justifyContent","gap","innerWidth","flexDirection","marginLeft","marginTop","refreshConditionalLogic","refreshSteps","filled","currentGroupStep","skip","disable","visibleSteps","offsetTop","cl","subGroups","slice","sg","visible","r","swiper2","options2","loopedSlides","watchSlidesProgress","container2","onlyInViewport","pagination","clickable","thumbs","play","match","videoContainer","vimeo","Promise","resolve","once","playButton","jobsBlock","bodymovin","loadAnimation","lottie","path","assetsPath","renderer","autoplay","rendererSettings","filterSize","y","JobsBlock","showingCountEl","resetButton","departmentFilter","blockId","commitmentFilter","locationFilter","keywordsFilter","showResultsButtonCount","loadMoreButton","filterToggle","notFoundMessage","getFragmentData","calcShowingCount","parts","substr","_parts","department","commitment","needles","toLowerCase","haystack","needle","count","Array","from","animated","active","transitioning","colors","currentIndex","animate","LocationsBlock","regionSelect","countrySelect","rowLoads","progress","tick","o","transform","LogosBlock","pause","resume","Viewport","mqLaptop","mqTabletLandscape","mqTabletPortrait","mqPhone","LottieBlock","rootMargin","file","maxWidth","matches","maxWidthPh","maxWidthTp","maxWidthTl","maxWidthLp","change","NewsletterBlock","agreement","agreementError","padding","emailError","OfficesBlock","updatePopupPosition","getBoundingClientRect","popup","loadMoreWrapper","undefined","cardWrappers","showPerLoad","showing","PmHeroBlock","cardsItems","teleportSpan","contentShowMore","className","teaser","details","cta","firstContentItem","shortenLists","initCardsSlider","teleport","shortenContent","passive","countriesShort","countriesFull","loadMore","autoHeight","before","PmsCardsBlock","calcPerPage","addListener","foundItems","perPage","cardSlider","update","closeClick","downloadButton","reportTop","reportFloating","report","side","floatingButton","onScroll","rect","maxTop","encodeURIComponent","SliderBlock","sliderContainer","overflowX","TabsBlock","panels","firstElementChild","panel","b","j","color","mousewheel","forceToAxis","on","slideChange","activeIndex","TestimonialsBlock","mainSlider","logoSlider","videoButtons","iframe","mainSwiperOptions","video","closeVideo","logoSwiper","watchSlidesVisibility","centeredSlidesBounds","centerInsufficientSlides","mainSwiper","exec","words","word","span","wdWords","sliderEl","wp","initSwiper","headings","h","onResize","scrollToTab","scrollY","innerHeight","vimeoId","muted","m1","m2","log","videos","isOpen","mainIframe","close","after","removeAttribute","getIframe","nextElementSibling","ChartDoughnut","bodyColor","titleColor","callbacks","prefix","parsed","suffix","ChartHbar2","fills","fill","filters","toggleable","SliderPagination","bullets","previousElementSibling","bullet","paginationIndex","shown","_shown","_firstTimeShown","history","state","restoreScrollPosition","activeRegionName","pushAndFilter","page","results","filteredItems","keywords","regions","lastPage","region","marketSize","sort","a","ceil","paginationStart","paginationEnd","missing","unshift","pushState","changeRegion","ids","isTrusted","clearKeywords","onResultClick","rest","maxLength","expanded","els","shift","megaMenu","headerMenu","headerMenuActiveItem","headerMenuDot","isDirty","updateDotPosition","offsetLeft","webkitTransform","msTransform","store","ty","isMobileMenuVisible","mobileMenuSecondLevelVisible","mobileMenuSecondLevelIndex","openMobileMenu","closeMobileMenu","toggleMobileMenu","openMobileMenuSecondLevel","closeMobileMenuSecondLevel","currentSubmenu","prevY","$store","mobileMenu","darkHeroBlock","logo","burger","isVisible","switchLanguage","lang","getCookie","setCookie","password","submitting","getContent","query","URLSearchParams","post_id","getElementById","isrc","popular","filteredRows","regionAnchors","countryAnchors","types","Number","relevance","typeNames","elements","getAttribute","calcMaxLocationItems","regionNames","countryNames","usedCharacters","reduce","element","popupContent","closeButton","downloadLinks","siteurl","encodeURI","dc","begin","end","decodeURI","substring","scrollPopup","time","stopped","frame","exp","initVideo","destroyInactiveVideos","iframes","createVimeoEmbed","videoUrl","vimeoUrl","res","decodeURIComponent","html","topBar","format","toLocaleString","useGrouping","CountryStatCardChart","allVisible","calcMax","sourcesVisible","activeGroup","grouped","replaceState","setGroup","activeRegion","excerpt","weight","qs","search","ppmsPerCountry","consumerCountryNames","visibleConsumerCountryNames","characters","consumerCountryName","consumerCountries","countryNamesRest","comingSoon","badge","parseURL","extractParams","_region","_keywords","_location","_type","_page","params","URL","newParams","toString","onSearch","delay","emitDelay","emit","doSearch","request","_request","spinner","total","noResults","ga","hero","clearTimeout","transitionDelay","shape","icon","prepend","days","expires","nameEQ","ca","charAt","eraseCookie","initialized","UC_UI","showSecondLayer","current","languages","en","all","initiated","classes","hasVisibleMegaMenu","headerMenuItemButton","isMegaMenuVisible","activeElement","blur","updateOverlayHeight","documentElement","menu","getVisible","visibleMenu","MobileImages","reinit","onChange","setMobileImages","setRegularImages","srcMobile","maxWidthMobile","mobileImages","parentItems","activeParent","subContainer","subTransition","backButtons","isMobileSubMenuVisible","isMobileSubMenuTransitioning","cancelSubTransition","subList","resetSubList","setSubTransition","isSubVisible","firstChild","matchMedia","mqAdminBar","lastScrollTop","scrollTop","pageYOffset","urlSearchParams","fromEntries","utm_source","utm_medium","utm_campaign","utm_term","utm_content","gclid","newUtm","medium","campaign","term","stringify","callback","observer","IntersectionObserver","intersectionCallbacks","isIntersectingCb","notIntersectingCb","yes","no","viewportIndex","entry","cb","isIntersecting"],"sourceRoot":""}