{"version":3,"file":"chunk/487.d35287f84b5e4b79e957.js","mappings":"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","sources":["webpack://resume-io-frontend/./frontend/shared/ready/index.ts","webpack://resume-io-frontend/./frontend/landing/js/components/blogScrollableSlideShow.js","webpack://resume-io-frontend/./frontend/landing/js/utils/throttle.js","webpack://resume-io-frontend/./packages/tracking/src/trackMarketingEvent.ts","webpack://resume-io-frontend/./packages/tracking/src/trackInternalEvent.ts","webpack://resume-io-frontend/./frontend/landing/js/components/blogAside.js","webpack://resume-io-frontend/./frontend/landing/js/components/blogAsideEmailShare.js","webpack://resume-io-frontend/./frontend/landing/js/support/mediaQueries.js","webpack://resume-io-frontend/./frontend/landing/js/components/collapse.js","webpack://resume-io-frontend/./frontend/landing/js/components/blogAsideToc.js","webpack://resume-io-frontend/./frontend/landing/js/components/richContentBlocks/embed.js","webpack://resume-io-frontend/./frontend/landing/js/components/richContentBlocks/copyable.js","webpack://resume-io-frontend/./frontend/landing/js/components/richContentBlocks/resources.js","webpack://resume-io-frontend/./frontend/landing/js/support/VisibilityObserver.js","webpack://resume-io-frontend/./frontend/landing/js/components/richContentBlocks/templateSlider.js","webpack://resume-io-frontend/./frontend/landing/js/components/richContentBlocks/compareResumes.js","webpack://resume-io-frontend/./frontend/landing/js/components/richContentBlocks/salaries.js","webpack://resume-io-frontend/./frontend/landing/js/components/blogPost.js","webpack://resume-io-frontend/./frontend/landing/js/components/blogPostFooter.js","webpack://resume-io-frontend/./frontend/landing/js/components/pageLoader.js","webpack://resume-io-frontend/./frontend/landing/js/utils/debounce.js","webpack://resume-io-frontend/./frontend/landing/js/components/blogSearch.js","webpack://resume-io-frontend/./frontend/landing/js/components/blogTopScrollPanel.js","webpack://resume-io-frontend/./frontend/landing/js/components/blogFeaturedPosts.js","webpack://resume-io-frontend/./frontend/landing/js/components/blogFeaturedPostsNew.js","webpack://resume-io-frontend/./frontend/landing/js/components/blogArticlesHeadersNav.js","webpack://resume-io-frontend/./frontend/landing/js/support/recaptcha.js","webpack://resume-io-frontend/./frontend/landing/js/components/cancellation.js","webpack://resume-io-frontend/./frontend/landing/js/components/contact.js","webpack://resume-io-frontend/./frontend/landing/js/components/baseModal.js","webpack://resume-io-frontend/./frontend/landing/js/components/changeCountryModal.js","webpack://resume-io-frontend/./frontend/landing/js/components/interviewModal.js","webpack://resume-io-frontend/./frontend/landing/js/components/cookie/cookieSettingsModal.js","webpack://resume-io-frontend/./frontend/landing/js/support/modals.js","webpack://resume-io-frontend/./frontend/landing/js/components/cookie/index.js","webpack://resume-io-frontend/./frontend/landing/js/components/cookie/cookiePanel.js","webpack://resume-io-frontend/./frontend/landing/js/components/cookie/cookieSettingsForm.js","webpack://resume-io-frontend/./frontend/landing/js/components/cookie/cookiebar.js","webpack://resume-io-frontend/./frontend/landing/js/components/documents.js","webpack://resume-io-frontend/./frontend/landing/js/components/examplesRoot.js","webpack://resume-io-frontend/./frontend/landing/js/components/examplesSearch.js","webpack://resume-io-frontend/./frontend/landing/js/components/examplesCardsSlider.js","webpack://resume-io-frontend/./frontend/landing/js/components/examplesSeniority.js","webpack://resume-io-frontend/./frontend/landing/js/components/footer.js","webpack://resume-io-frontend/./frontend/landing/js/components/nav.js","webpack://resume-io-frontend/./frontend/landing/js/components/pricing.js","webpack://resume-io-frontend/./frontend/landing/js/components/showcase.js","webpack://resume-io-frontend/./frontend/landing/js/components/documentExamples.js","webpack://resume-io-frontend/./frontend/landing/js/components/resumeTemplates.js","webpack://resume-io-frontend/./frontend/landing/js/components/templatesRoot.js","webpack://resume-io-frontend/./frontend/landing/js/components/templatesCard.js","webpack://resume-io-frontend/./frontend/landing/js/components/trustpilotSlider.js","webpack://resume-io-frontend/./frontend/landing/js/components/videoCta.js","webpack://resume-io-frontend/./frontend/landing/js/components/partnerBanner.js","webpack://resume-io-frontend/./frontend/landing/js/components/builderHero.js","webpack://resume-io-frontend/./frontend/landing/js/components/builderBenefits.js","webpack://resume-io-frontend/./frontend/landing/js/components/builderResources.js","webpack://resume-io-frontend/./frontend/landing/js/components/builderHow.js","webpack://resume-io-frontend/./frontend/landing/js/components/homeResumeMaker.js","webpack://resume-io-frontend/./frontend/landing/js/components/homeTemplates.js","webpack://resume-io-frontend/./frontend/landing/js/components/homeHow.js","webpack://resume-io-frontend/./frontend/landing/js/components/homeLetters.js","webpack://resume-io-frontend/./frontend/landing/js/components/subscribeNewsletter.js","webpack://resume-io-frontend/./frontend/landing/js/components/aboutUsHistory.js","webpack://resume-io-frontend/./frontend/landing/js/components/aboutUsLeadership.js","webpack://resume-io-frontend/./frontend/landing/js/components/aboutUsFeatureGallery.js","webpack://resume-io-frontend/./frontend/landing/js/components/aboutUsHero.js","webpack://resume-io-frontend/./frontend/landing/js/components/homeBlogSlider.js","webpack://resume-io-frontend/./frontend/landing/js/components/homePodcastSlider.js","webpack://resume-io-frontend/./frontend/landing/js/components/homeMoreThanResumeSlider.js","webpack://resume-io-frontend/./frontend/landing/js/components/popup-modal.js","webpack://resume-io-frontend/./frontend/landing/js/components/upload-modal.js","webpack://resume-io-frontend/./frontend/landing/js/components/exampleTextContent.js","webpack://resume-io-frontend/./frontend/landing/js/support/anchor.js","webpack://resume-io-frontend/./frontend/landing/js/support/lazyLoader.js","webpack://resume-io-frontend/./frontend/landing/js/support/clickTracker.js","webpack://resume-io-frontend/./frontend/landing/js/views/affiliates-signup.js","webpack://resume-io-frontend/./frontend/landing/js/views/sponsorship.js","webpack://resume-io-frontend/./frontend/landing/js/components/faq.js","webpack://resume-io-frontend/./frontend/landing/js/views/billing.js","webpack://resume-io-frontend/./frontend/landing/js/components/languageSelect.js","webpack://resume-io-frontend/./frontend/landing/js/views/home.js","webpack://resume-io-frontend/./frontend/landing/js/views/ai-builder.js","webpack://resume-io-frontend/./frontend/landing/js/support/setVw.js"],"sourcesContent":["export const ready = (callback: () => void) => {\n if (document.readyState !== 'loading') {\n window.queueMicrotask(callback)\n } else {\n document.addEventListener('DOMContentLoaded', callback, { once: true })\n }\n}\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport throttle from 'lodash/throttle'\nimport debounce from 'lodash/debounce'\n\nconst $window = $(window)\n\nexport default class ScrollableSlideShow {\n constructor($el, config) {\n this.$el = $el\n this.config = config || {}\n this.$container = this.$el.find(this.config.contentSelector)\n this.$items = this.$el.find(this.config.itemSelector)\n\n if (!this.$el.length && !this.$items.length && !this.$container.length && !this.$items.length)\n return\n\n if (this.$items.length > 1) {\n $window.on('scroll', this.handleScroll)\n $window.on('resize', this.handleResize)\n this.handleResize()\n } else {\n this.$items.addClass('show').css({ position: 'static' })\n }\n }\n\n showStep = throttle(stepNumber => {\n if (stepNumber === this.currentStep) return false\n\n this.$items.eq(this.currentStep).removeClass('show')\n this.$items.eq(stepNumber).addClass('show')\n this.currentStep = stepNumber\n }, 350)\n\n setSizes = () => {\n this.offsetY = parseInt(this.$container.css('top')) || 0\n const trackHeight = this.$el.height()\n const trackTopPos = this.$el.offset().top\n const itemsLength = this.$items.length\n const lastItemHeight = this.$items.last().height()\n\n const stepHeight = (trackHeight - lastItemHeight) / itemsLength\n this.stepsBorders = this.$items.toArray().map((_, i) => {\n const nextIndex = i + 1\n const top = i === 0 ? 0 : stepHeight * i + trackTopPos\n const bottom = nextIndex < itemsLength ? stepHeight * nextIndex + trackTopPos : Infinity\n\n return [top, bottom]\n })\n\n this.$container.css({ height: lastItemHeight })\n }\n\n handleResize = debounce(() => {\n this.setSizes()\n this.handleScroll()\n }, 300)\n\n handleScroll = () => {\n const scrollTop = $window.scrollTop() + this.offsetY\n\n this.stepsBorders.some((step, index) => {\n const [topBorderStep, bottomBorderStep] = step\n\n if (scrollTop >= topBorderStep && scrollTop < bottomBorderStep) {\n this.showStep(index)\n return true\n }\n return false\n })\n }\n}\n\n// ---\n// Init\n// ---\nready(function () {\n return new ScrollableSlideShow($('.author__aside'), {\n contentSelector: '.author__aside-content',\n itemSelector: '.author__aside-content-item',\n })\n})\n","/**\n * Lighter version of lodash/throttle\n * https://you-dont-need.github.io/You-Dont-Need-Lodash-Underscore/#/?id=_throttle\n */\nexport default function throttle(func, timeFrame) {\n let lastTime = 0\n\n return function (...args) {\n let now = Date.now()\n\n if (now - lastTime >= timeFrame) {\n func(...args)\n lastTime = now\n }\n }\n}\n","const TRACK_EVENT_TIMEOUT = process.env.NODE_ENV === 'development' ? 200 : 5000\n\ninterface Options {\n eventLabel?: string | number\n documentType?: string\n}\n\n// Declare `dataLayer` array in window\ndeclare global {\n interface Window {\n dataLayer?: Array\n }\n}\n\n/** Constructs a callback function with timeout */\nconst callbackWithTimeout = (callback: () => void, timeout: number) => {\n let timeoutFired = false\n\n const timer = setTimeout(() => {\n timeoutFired = true\n callback()\n }, timeout)\n\n return () => {\n if (timeoutFired) return\n clearTimeout(timer)\n callback()\n }\n}\n\n/**\n * Send event to Google Analytics.\n */\nexport const trackMarketingEvent = (\n eventCategory: string,\n eventAction: string,\n options: Options = {},\n) => {\n return new Promise(resolve => {\n // the following lines ensure that the promise is resolved\n // even if the analytics engine will never response\n const eventCallback = callbackWithTimeout(() => resolve(), TRACK_EVENT_TIMEOUT)\n\n // Create GTM event\n const gtmEvent = {\n event: 'gtmAppEvent',\n eventCategory,\n eventAction,\n eventCallback,\n ...options,\n }\n\n // pass the event to Google Tag Manager\n window.dataLayer = window.dataLayer || []\n window.dataLayer.push(gtmEvent)\n\n // log the event to the console in development\n if (process.env.NODE_ENV === 'development') {\n console.log(`Marketing Tracking: Send \"${eventCategory}: ${eventAction}\"`, options)\n }\n })\n}\n\n/**\n * Helper to simplify `trackMarketingEvent` usage in JSX.\n *\n * @example\n *
\n */\nexport const createMarketingEventHandler = (...args: Parameters) => {\n return () => trackMarketingEvent(...args)\n}\n","import { Optional } from 'packages/types'\nimport { isIFrame } from 'builder/utils/isIFrame'\nimport events from '../events.json'\n\n/**\n * Type guard preventing invalid event names usage.\n * Open `/packages/tracking/events.json` to check for all allowed names or add a new one.\n */\nexport type EventCode = keyof typeof events.public | keyof typeof events.private\n\n/** Only primitive values are supported by ClickHouse */\ntype Primitive = string | number | boolean | null\ntype Payload = { label?: string } & Record>\n\n/** Fetches the browser window and screen size */\nconst getResolutions = (): Payload => ({\n window_width: window.innerWidth,\n window_height: window.innerHeight,\n screen_width: window.screen.width,\n screen_height: window.screen.height,\n})\n\n/** Fetches the referer URL and its query params */\nconst getReferer = (): Payload => {\n const referer = document.referrer\n const priorReferer = referer || 'direct'\n\n if (priorReferer === 'direct') {\n return {\n prior_referer: priorReferer,\n }\n } else {\n const refererUrl = new URLSearchParams(referer)\n const refererParams = Object.fromEntries(refererUrl)\n\n // add ref_ prefix to all params from referer\n if (Object.keys(refererParams).length === 0) {\n return {\n prior_referer: priorReferer,\n }\n } else {\n for (const param in refererParams) {\n refererParams[`ref_${param}`] = refererParams.param\n delete refererParams.param\n }\n return {\n prior_referer: priorReferer,\n ref_url: JSON.stringify(refererParams),\n }\n }\n }\n}\n\n/** Fetches the URL query params */\nconst parseParams = (): Payload => {\n const params = new URLSearchParams(window.location.search)\n\n return Object.fromEntries(params)\n}\n\nconst shouldShareEventFromWidgetMode = (event: EventCode): boolean => {\n return [\n 'create_resume',\n 'download_resume',\n 'change_resume_template',\n 'rename_resume',\n 'open_full_screen_resume_preview',\n 'visit_resume_editor',\n 'click_download_resume_button',\n 'click_edit_resume_button',\n 'open_sharing_modal',\n 'visit_dashboard',\n ].includes(event)\n}\n\nconst isEventUsedPubliclyAndPrivately = (event: EventCode): boolean => {\n return ['track_utm'].includes(event)\n}\n\n/**\n * Sends the event to the internal event tracking system (ClickHouse).\n */\nexport const trackInternalEvent = (eventCode: EventCode, payload: Payload = {}) => {\n if (typeof eventCode !== 'string') {\n return console.error('🛑 ClickHouse Tracking: An event code must be provided')\n }\n\n // timestamp in seconds since 1970 for attach to params\n const timestamp = Math.round(Date.now() / 1000)\n const timestampMs = Date.now()\n\n // attach screen and browser sizes to improve data analysis quality\n const params: Payload = {\n ...payload,\n ...getResolutions(),\n ...getReferer(),\n ...parseParams(),\n timestamp,\n timestamp_ms: timestampMs,\n }\n\n // call the endpoint via `sendBeacon` so it won't be aborted if a user leaves a page\n if ('navigator' in window && typeof navigator.sendBeacon === 'function') {\n try {\n navigator.sendBeacon(`/api/reporting/event/${eventCode}`, JSON.stringify({ params }))\n } catch (error) {\n // TODO: move error logger to package and use it here\n console.error(error)\n }\n }\n\n // dispatch event for parent frame, used when resume rendered\n // as a widget to send events to partners frontend\n if (isIFrame() && shouldShareEventFromWidgetMode(eventCode)) {\n try {\n const eventDetails = { eventCode: eventCode, payload: payload }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.top.postMessage(eventDetails, '*')\n } catch (error) {\n console.error('🛑 Parent event: error dispatching to parent window', error)\n }\n }\n\n // Improve DX by notifying about events tracking (including invalid ones)\n if (process.env.NODE_ENV === 'development') {\n if (eventCode in events.public === false && !isEventUsedPubliclyAndPrivately(eventCode)) {\n console.error(`🛑 ClickHouse Tracking: \"${eventCode}\" must be present in events.json`)\n } else {\n console.info(`ClickHouse Tracking: Send \"${eventCode}\"`, params)\n }\n }\n}\n\n/**\n * Helper to simplify `trackInternalEvent` usage in JSX.\n *\n * @example\n *
\n */\nexport const createInternalEventHandler = (...args: Parameters) => {\n return () => trackInternalEvent(...args)\n}\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport throttle from '../utils/throttle'\nimport debounce from 'lodash/debounce'\nimport ScrollableSlideShow from './blogScrollableSlideShow'\nimport { trackInternalEvent } from '@rio/tracking'\n\nclass BlogAside {\n constructor($el) {\n this.$el = $el\n if (!this.$el.length) return\n\n new ScrollableSlideShow(this.$el.parent(), {\n contentSelector: '.blog-aside',\n itemSelector: '.blog-aside__item',\n })\n this.handleBlogAsideCtaVisibility()\n this.wideElements = $('.js-wide-element, .image--large, .wide-element').toArray()\n if (!this.wideElements.length) return\n\n this.throttledScrollHandler = throttle(this.checkIntersections.bind(this), 100)\n this.debouncedResizeHandler = debounce(this.checkScreenSize.bind(this), 100)\n\n window.addEventListener('resize', this.debouncedResizeHandler)\n\n this.checkScreenSize()\n }\n\n handleScroll(removeCtaBannerExamples) {\n const blogAsideCta = document.getElementById('blog-aside-cta')\n if (blogAsideCta && removeCtaBannerExamples === true) {\n const mainContentHeight = $('.blog-post__content-main-wrapper').height()\n let rightPanelHeight = mainContentHeight * (70 / 100)\n $('#blog-post-content-right').css({ height: rightPanelHeight })\n }\n }\n\n handleBlogAsideCtaVisibility() {\n let removeCtaBannerExamples = $('#remove-cta-banner-value_examples').text()\n if (removeCtaBannerExamples) {\n removeCtaBannerExamples = removeCtaBannerExamples === 'true'\n trackInternalEvent('cta_banner_examples', { saw_cta_banner: !removeCtaBannerExamples })\n window.addEventListener('scroll', this.handleScroll(removeCtaBannerExamples))\n }\n }\n\n checkScreenSize() {\n const isDesktop = window.innerWidth > 1023\n\n if (isDesktop && !this.isMounted) {\n window.addEventListener('scroll', this.throttledScrollHandler, { passive: true })\n this.isMounted = true\n } else if (!isDesktop && this.isMounted) {\n window.removeEventListener('scroll', this.throttledScrollHandler)\n this.isMounted = false\n }\n }\n\n checkIntersections() {\n const PADDING = 32\n const rect1 = this.$el[0].getBoundingClientRect()\n const hasOverlap = this.wideElements.some(el => {\n const rect2 = el.getBoundingClientRect()\n return !(\n rect1.right + PADDING < rect2.left ||\n rect1.left > rect2.right + PADDING ||\n rect1.bottom + PADDING < rect2.top ||\n rect1.top > rect2.bottom + PADDING\n )\n })\n\n if (hasOverlap) {\n this.$el.css({ opacity: 0 })\n } else {\n this.$el.css({ opacity: 1 })\n }\n }\n}\n\n// ---\n// Init\n// ---\nready(function () {\n $('.blog-aside').each((_, el) => {\n new BlogAside($(el))\n })\n})\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport ReactDOM from 'react-dom'\nimport { useState } from 'react'\nimport { trackInternalEvent } from '@rio/tracking'\n\n/* eslint-disable react/prop-types */ // TODO: upgrade to latest eslint tooling\nconst FormStates = {\n validationError: 'validationError',\n serverError: 'serverError',\n sent: 'sent',\n sending: 'sending',\n}\n\nexport default function BlogAsideEmailShare({ el }) {\n const articleAbstract = $('.blog-post__hero-lead').text()\n const articleTitle = $('title').text()\n const [isOpened, setIsOpened] = useState(false)\n const [email, setEmail] = useState('')\n const [state, setState] = useState('')\n const ValidateEmail = email => {\n if (/^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(\\.\\w{2,3})+$/.test(email)) {\n return true\n }\n setState(FormStates.validationError)\n return false\n }\n\n el.on('click', () => {\n setIsOpened(true)\n })\n\n $('body').on('click', function (e) {\n if (\n !$(e.target).closest('.share-email-container').length &&\n !$(e.target).closest('.blog-post-sharing__item--email').length\n ) {\n setIsOpened(false)\n }\n })\n\n const handleClick = () => {\n trackInternalEvent('send_blog_email', { 'page title': articleTitle })\n }\n\n return (\n
\n {isOpened && (\n
\n

\n {state === FormStates.validationError && `Hmm... that email doesn't look valid`}\n {state === FormStates.sent && (\n <>\n Message sent successfully.
\n Please check your email.\n \n \n )}\n {state === '' && `Send Me This!`}\n

\n {state !== FormStates.sent && (\n <>\n {\n setEmail(e.target.value)\n }}\n name=\"email\"\n css={{ marginTop: '20px', marginBottom: '12px', width: '100%' }}\n />\n {\n handleClick()\n if (ValidateEmail(email)) {\n setState(FormStates.sending)\n const res = await fetch(`/api/app/save-page-email`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email,\n blog_title: articleTitle,\n blog_description: articleAbstract,\n blog_url: window?.location?.href,\n }),\n })\n if (res.status === 200) {\n setEmail('')\n }\n setState(FormStates.sent)\n }\n }}\n >\n Submit\n \n \n )}\n
\n )}\n {\n console.log('ONCLICK')\n setIsOpened(isOpened => !isOpened)\n }}\n >\n \n \n
\n )\n}\n\nfunction EmailIcon() {\n return (\n \n \n \n \n )\n}\n\n// ---\n// Init\n// ---\n\nready(function () {\n $('.blog-post-sharing__item--email').each((i, el) => {\n console.log(el)\n ReactDOM.render(, el)\n })\n})\n","function matchMediaQueries(width = window.innerWidth) {\n return {\n isPhone: width <= 767,\n isTablet: width <= 1023,\n isLaptop: width <= 1199,\n isDesktop: width >= 1200,\n }\n}\n\nexport default matchMediaQueries\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\n\nexport class Collapse {\n constructor($root, config) {\n this.config = {\n itemClass: 'collapse__item',\n bodyClass: 'collapse__body',\n toggleClass: 'collapse__toggle',\n onOpen: () => {},\n ...(config || {}),\n }\n this.$root = $root\n this.$items = $root.find(`.${this.config.itemClass}`)\n this.isOpenClass = 'is-open'\n this.isAnimating = false\n\n this.init()\n }\n\n init = () => {\n // Remove any existing click handlers\n this.$root.find(`.${this.config.toggleClass}`).off('click')\n\n // Bind click handlers once\n this.$root.on('click', `.${this.config.toggleClass}`, e => {\n // Prevents the event from bubbling up the DOM tree, preventing any parent\n // handlers from being notified of the event.\n e.stopPropagation()\n\n const $item = $(e.currentTarget).closest(`.${this.config.itemClass}`)\n\n // Prevent double clicks during animation\n if (this.isAnimating) {\n return\n }\n\n if (!$item.hasClass(this.isOpenClass)) {\n this.open($item)\n } else {\n this.close($item)\n }\n })\n }\n\n open = $item => {\n const $body = $item.find(`.${this.config.bodyClass}`)\n this.changeToggleText($item)\n this.isAnimating = true\n\n if (this.config.isAccordion) {\n this.$items.filter(`.${this.isOpenClass}`).each((_, el) => this.close($(el)))\n }\n\n $item.addClass(this.isOpenClass)\n $body.css({ height: 0, opacity: 0, overflow: 'hidden' })\n $body.animate(\n {\n height: $body.get(0).scrollHeight,\n opacity: 1,\n },\n {\n queue: false,\n duration: 300,\n complete: () => {\n $body.css({ overflow: '', height: 'auto' })\n this.isAnimating = false\n this.config.onOpen()\n },\n },\n )\n }\n\n close = $item => {\n const $body = $item.find(`.${this.config.bodyClass}`)\n this.changeToggleText($item)\n this.isAnimating = true\n\n $item.removeClass(this.isOpenClass)\n $body.css({ height: $body.get(0).scrollHeight, opacity: 1, overflow: 'hidden' })\n $body.animate(\n {\n height: 0,\n opacity: 0,\n },\n {\n queue: false,\n duration: 300,\n complete: () => {\n this.isAnimating = false\n },\n },\n )\n }\n\n changeToggleText = $item => {\n const $toggle = $item.find(`.${this.config.toggleClass}`)\n const altText = $toggle.data('alt-text')\n\n if (altText) {\n const $toggleText = $toggle.find('span')\n const currentText = $toggleText.text()\n\n $toggle.data('alt-text', currentText)\n $toggleText.text(altText)\n }\n }\n\n destroy = () => {\n this.$root.find(`.${this.config.toggleClass}`).off('click')\n this.$root.off('click', `.${this.config.toggleClass}`)\n }\n}\n\nready(function () {\n $('.collapse').each((_, el) => new Collapse($(el)))\n})\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport matchMediaQueries from '../support/mediaQueries'\nimport { Collapse } from './collapse'\n\nclass BlogAsideToc {\n constructor($root) {\n this.$root = $root\n if (!this.$root.length) return\n\n this.initialized = false\n this.isModeMobile = false\n this.$title = $root.find('.blog-aside-toc__title')\n this.$body = $root.find('.blog-aside-toc__body')\n\n this.$title.on('click', this.handleToggleBody)\n window.addEventListener('resize', this.handleResize)\n this.handleResize()\n\n new Collapse(this.$body, {\n itemClass: 'blog-aside-toc__section',\n toggleClass: 'blog-aside-toc__section-title',\n bodyClass: 'blog-aside-toc__list',\n })\n }\n\n handleToggleBody = () => {\n const isOpen = this.$root.hasClass('blog-aside-toc--open')\n this.$body[isOpen ? 'slideUp' : 'slideDown']({ duration: 200 })\n this.$root.toggleClass('blog-aside-toc--open')\n }\n\n handleResize = () => {\n const { isTablet } = matchMediaQueries()\n\n if (isTablet && (!this.isModeMobile || !this.initialized)) {\n this.isModeMobile = true\n this.initialized = true\n } else if (!isTablet && (this.isModeMobile || !this.initialized)) {\n // stop `slideDown/slideUp` animation and remove `style=\"display: none\"`\n this.resetBody()\n\n this.isModeMobile = false\n this.initialized = true\n }\n }\n\n resetBody = () => {\n this.$body.stop().removeAttr('style')\n this.$root.removeClass('blog-aside-toc--open')\n }\n}\n\n// ---\n// Init\n// ---\nready(function () {\n return new BlogAsideToc($('.blog-aside-toc'))\n})\n","import $ from 'jquery'\nimport Clipboard from 'clipboard'\n\nexport default class EmbedComponent {\n constructor($el) {\n if (!Clipboard.isSupported()) return\n\n const $button = $el.find('.embed-code__button')\n const $buttonText = $el.find('.embed-code__button-text')\n\n const clipboard = new Clipboard($button.get(0), {\n target: trigger => {\n return $(trigger).closest('.embed-code').find('.embed-code__content').get(0)\n },\n })\n\n clipboard.on('success', () => {\n $buttonText.text($buttonText.data('copied-text'))\n setTimeout(() => $buttonText.text($buttonText.data('default-text')), 1000)\n })\n }\n}\n","import $ from 'jquery'\nimport Clipboard from 'clipboard'\n\nexport default class CopyableComponent {\n constructor(copyableNode) {\n if (!Clipboard.isSupported()) return\n\n const $el = $(copyableNode)\n\n const $copyableButton = $el.find('.copyable__button')\n const $copyableTooltip = $el.find('.copyable__tooltip')\n\n const clipboard = new Clipboard($copyableButton.get(0))\n\n clipboard.on('success', () => {\n $copyableTooltip.css({ opacity: 1 })\n setTimeout(() => $copyableTooltip.css({ opacity: 0 }), 1000)\n })\n }\n}\n","import $ from 'jquery'\n\nexport default class ResourcesComponent {\n foldableHeight = 187\n classes = {\n folded: 'resources--folded',\n dynamic: 'resources--dynamic',\n toggle: 'resources__toggle',\n content: 'resources__content',\n toggleVisible: 'resources__toggle--visible',\n }\n\n constructor(resourcesNode) {\n this.resourcesNode = resourcesNode\n\n window.addEventListener('load', this.initialize)\n }\n\n initialize = () => {\n const { resourcesNode } = this\n const contentNode = resourcesNode.querySelector(`.${this.classes.content}`)\n const height = contentNode.clientHeight\n\n if (height < this.foldableHeight) return\n\n $(contentNode).css({ height })\n\n $(resourcesNode)\n .addClass(this.classes.dynamic)\n .addClass(this.classes.folded)\n .find(`.${this.classes.toggle}`)\n .addClass(this.classes.toggleVisible)\n .on('click', () => {\n $(resourcesNode).toggleClass(this.classes.folded)\n })\n }\n}\n","import jQuery from 'jquery'\n\nexport default class VisibilityObserver {\n isSupported = 'IntersectionObserver' in window && 'IntersectionObserverEntry' in window\n\n constructor(el, options = {}) {\n const { callback, ...settings } = options\n\n // allow to pass jQuery objects\n this.el = el instanceof jQuery ? el.get(0) : el\n\n // display warning if callback is not providen\n if (callback) {\n this.callback = callback\n } else {\n return console.warn('VisibilityObserver: `callback` option must be providen')\n }\n\n if (this.isSupported) {\n // use `IntersectionObserver` if supported\n this.observer = new IntersectionObserver(this.handleIntersection, settings)\n this.observer.observe(this.el)\n } else {\n // handle callback immediately if it's not\n this.callback()\n }\n }\n\n isVisible = (entry = {}) => {\n return entry.isIntersecting || entry.intersectionRatio > 0\n }\n\n handleIntersection = entries => {\n if (!this.isVisible(entries[0])) return\n this.callback()\n this.observer.disconnect()\n }\n}\n","import $ from 'jquery'\nimport mediaQueries from '../../support/mediaQueries'\nimport VisibilityObserver from '../../support/VisibilityObserver'\nimport 'slick-carousel'\nimport 'slick-carousel/slick/slick.css'\n\nexport default class TemplateSliderComponent {\n constructor($el) {\n this.currentMediaQueries = mediaQueries()\n\n this.$el = $el\n this.$slider = this.$el.find('.template-slider__gallery-items')\n this.$sliderItems = this.$el.find('.template-slider__gallery-item')\n this.$colors = this.$el.find('.template-slider__colors')\n this.$nextButton = this.$el.find('.template-slider__button-next')\n this.$prevButton = this.$el.find('.template-slider__button-previous')\n\n this.initSlider()\n this.initListeners()\n\n new VisibilityObserver(this.$el, {\n threshold: 0.5,\n callback: this.triggerSlider,\n })\n }\n\n getCurrentSlickOptions = () => {\n return {\n draggable: this.currentMediaQueries.isTablet,\n dots: null,\n infinite: true,\n speed: 600,\n slidesToShow: 1,\n slidesToScroll: 1,\n centerMode: true,\n centerPadding: 0,\n initialSlide: 0,\n variableWidth: true,\n adaptiveHeight: false,\n focusOnSelect: true,\n nextArrow: null,\n prevArrow: null,\n }\n }\n\n showColorsForSlide = index => {\n const $currentColors = $(`[data-template=\"template-${index}\"]`)\n this.$colors.removeClass('template-slider__colors--visible')\n $currentColors.addClass('template-slider__colors--visible')\n }\n\n initSlider = () => {\n this.showColorsForSlide(0)\n this.$slider.slick(this.getCurrentSlickOptions())\n }\n\n initListeners = () => {\n this.$prevButton.on('click', () => this.$slider.slick('slickPrev'))\n this.$nextButton.on('click', () => this.$slider.slick('slickNext'))\n this.$slider.on('afterChange', (e, slick, index) => this.showColorsForSlide(index))\n }\n\n triggerSlider = () => {\n this.$el.addClass('template-slider--triggered')\n this.$slider.slick('slickNext')\n }\n}\n","import VisibilityObserver from '../../support/VisibilityObserver'\nimport matchMediaQueries from '../../support/mediaQueries'\n\nexport default class CompareResumesComponent {\n constructor($container) {\n this.introAnimationDuration = 900 // in ms\n this.classes = {\n goodResume: '.compare-resumes__resume--good',\n view: '.compare-resumes__view',\n intro: 'compare-resumes__view--intro',\n ready: 'compare-resumes__view--ready',\n hover: 'compare-resumes__view--hover',\n }\n\n this.$goodResume = $container.find(this.classes.goodResume)\n this.$view = $container.find(this.classes.view)\n\n this.$goodResume.on('mouseover', this.handleResumeHover)\n this.$goodResume.on('mouseleave', () => {\n this.$view.removeClass(this.classes.hover)\n })\n\n new VisibilityObserver($container, {\n rootMargin: '-50% 0% -50% 0%',\n callback: this.animate,\n })\n }\n\n handleResumeHover = () => {\n if (this.$view.hasClass(this.classes.ready)) {\n this.$view.addClass(this.classes.hover)\n }\n }\n\n animate = () => {\n this.$view.addClass(this.classes.intro)\n\n setTimeout(() => {\n this.$view.addClass(this.classes.ready)\n\n if (matchMediaQueries().isPhone) {\n setTimeout(this.handleResumeHover, 500)\n }\n }, this.introAnimationDuration)\n }\n}\n","import $ from 'jquery'\n\nexport default class SalariesComponent {\n constructor($container) {\n this.classes = {\n salaryItem: '.salary__item',\n salaryItemAmount: '.salary__item_amnt',\n salaryItemBar: '.salary__item_bar',\n }\n\n const salaryItems = $container.find(this.classes.salaryItem)\n let total = this.getTotal(salaryItems)\n\n salaryItems.each((i, v) => {\n const value = parseFloat(\n $(v).find(this.classes.salaryItemAmount).text().replace('$', '').replace(' / yr'),\n )\n const width = this.getWidth(value, total, salaryItems.length)\n $(v)\n .find(this.classes.salaryItemBar)\n .width(width.toString() + '%')\n })\n }\n\n getTotal(salaryItems) {\n let total = 0\n salaryItems.each((i, v) => {\n total += parseFloat($(v).find('.salary__item_amnt').text().replace('$', '').replace(' / yr'))\n })\n return total\n }\n\n getWidth(value, total, count) {\n if (count === 1) {\n return 100\n }\n return Math.round((value / total) * 100) + count * 15\n }\n}\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport EmbedComponent from './richContentBlocks/embed'\nimport CopyableComponent from './richContentBlocks/copyable'\nimport ResourcesComponent from './richContentBlocks/resources'\nimport TemplateSliderComponent from './richContentBlocks/templateSlider'\nimport CompareResumesComponent from './richContentBlocks/compareResumes'\nimport { trackMarketingEvent } from '@rio/tracking'\nimport SalariesComponent from './richContentBlocks/salaries'\n\nclass BlogPostView {\n constructor($blogPost) {\n if (!$blogPost.length) return\n\n $blogPost.find('.resources').each(function () {\n new ResourcesComponent(this)\n })\n\n $blogPost.find('.copyable').each(function () {\n new CopyableComponent($(this))\n })\n\n $blogPost.find('.template-slider').each(function () {\n new TemplateSliderComponent($(this))\n })\n\n $blogPost.find('.embed-code').each(function () {\n new EmbedComponent($(this))\n })\n\n $blogPost.find('.compare-resumes').each(function () {\n new CompareResumesComponent($(this))\n })\n\n $blogPost.find('.salaries').each(function () {\n new SalariesComponent($(this))\n })\n\n $blogPost.find('.post-cta').click(() => trackMarketingEvent('Blog Post', 'CTA click'))\n $blogPost\n .find('.blog-post__content-main-wrapper')\n .find('a[href$=\"https://resume.io/create-resume\"]')\n .click(() => trackMarketingEvent('Blog Post', 'Content CTA click'))\n\n this.$shareButtons = $blogPost.find('.blog-post__sharing-item')\n this.$shareButtons.on('click', this.handleShareClick)\n\n this.isRated = false\n this.$ratingStars = $blogPost.find('.blog-post-footer__rating-star')\n this.$ratingAmount = $blogPost.find('.blog-post-footer__rating-amount')\n this.inactiveStarsCount = $blogPost.find('.blog-post-footer__rating-star--inactive').length\n\n this.$ratingStars.on('mouseover', this.handleStarsHover)\n this.$ratingStars.on('mouseleave', this.handleStarsBlur)\n this.$ratingStars.on('click', this.handleStarClick)\n }\n\n handleShareClick() {\n const width = 600\n const height = 400\n const left = window.screen.width / 2 - width / 2\n const top = window.screen.height / 2 - height / 2\n\n window.open(\n this.href,\n '',\n `menubar=no,\n toolbar=no,\n resizable=yes,\n scrollbars=yes,\n height=${height},\n width=${width},\n left=${left},\n top=${top}`,\n )\n return false\n }\n\n handleStarsHover = () => {\n if (this.isRated) return\n\n this.$ratingStars.addClass('blog-post-footer__rating-star--inactive')\n }\n\n handleStarsBlur = () => {\n if (this.isRated) return\n\n this.$ratingStars.each((i, el) => {\n if (i === 0 && this.inactiveStarsCount) return\n $(el).removeClass('blog-post-footer__rating-star--inactive')\n })\n }\n\n handleStarClick = event => {\n if (this.isRated) return\n\n this.isRated = true\n const reversedStars = this.$ratingStars.get().reverse()\n const starIndex = reversedStars.indexOf(event.currentTarget)\n\n reversedStars.forEach((el, i) => {\n if (i > starIndex) return\n $(el).removeClass('blog-post-footer__rating-star--inactive')\n })\n\n this.$ratingStars.removeClass('blog-post-footer__rating-star--with-hover')\n\n const amount = parseInt(this.$ratingAmount.data('amount')) + 1\n const text = this.$ratingAmount.data('template').replace('#AMOUNT#', amount)\n this.$ratingAmount.text(text)\n }\n}\n\n// ---\n// Init\n// ---\nready(function () {\n return new BlogPostView($('.blog-post'))\n})\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\n\nclass BlogPostFooterComponent {\n constructor($el) {\n if (!$el.length) return\n this.$el = $el\n this.$shareButtons = $el\n .find('.blog-post-footer__share-button')\n .not('.blog-post-sharing__item--email')\n\n this.$shareButtons.on('click', this.handleShareClick)\n }\n\n handleShareClick() {\n const width = 600\n const height = 400\n const left = window.screen.width / 2 - width / 2\n const top = window.screen.height / 2 - height / 2\n\n window.open(\n this.href,\n '',\n `menubar=no,\n toolbar=no,\n resizable=yes,\n scrollbars=yes,\n height=${height},\n width=${width},\n left=${left},\n top=${top}`,\n )\n return false\n }\n}\n\n// ---\n// Init\n// ---\nready(function () {\n return new BlogPostFooterComponent($('.blog-post-footer'))\n})\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\n\n/**\n * Implements loading new pages by scroll to bottom\n */\nexport class PageLoader {\n page = 1\n\n constructor($el, params) {\n // Init form elements\n this.$loader = $el\n\n if (!params || !this.$loader.length) return\n this.url = this.$loader.data('api-endpoint')\n this.$targetPosts = $(params.targetPostsSelector)\n this.queryParams = params.queryParams\n\n this.observer = new IntersectionObserver(this.handleIntersection, { threshold: [0.7] })\n }\n\n startObserveLoader = () => this.observer.observe(this.$loader[0])\n stopObserveLoader = () => this.observer.disconnect()\n\n show = () => this.$loader.css({ display: 'flex' })\n hide = () => this.$loader.hide()\n\n handleIntersection = entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n this.stopObserveLoader()\n this.loadPage()\n }\n })\n }\n\n loadPage = () => {\n const urlParams = new URLSearchParams(window.location.search)\n const query = {\n page: ++this.page,\n per_page: urlParams.get('per_page'),\n ...this.queryParams,\n }\n\n const params = new URLSearchParams()\n for (const key in query) if (query[key]) params.append(key, query[key])\n const queryString = params.toString()\n\n $.get(`${this.url}?${queryString}`)\n .done(response => {\n const isPageLimit = response.size * response.page >= response.totalElements\n if (\n response.numberOfElements === 0 ||\n response.numberOfElements < response.size ||\n isPageLimit\n ) {\n this.hide()\n }\n\n this.$targetPosts.append(response.content)\n\n this.startObserveLoader()\n })\n .fail()\n .always()\n }\n\n setQueryParams = query => {\n this.queryParams = {\n ...this.queryParams,\n ...query,\n }\n }\n\n reset = () => {\n this.page = 1\n this.startObserveLoader()\n this.show()\n }\n}\n\n// ---\n// Init\n// ---\nready(function () {\n $('.blog-main__page-loader').each(function () {\n const loader = new PageLoader($(this), {\n targetPostsSelector: '.blog-main__posts-feed-inner',\n queryParams: { category: $(this).data('category') },\n })\n loader.startObserveLoader()\n })\n})\n","/**\n * Lighter version of lodash/debounce\n * https://you-dont-need.github.io/You-Dont-Need-Lodash-Underscore/#/?id=_debounce\n */\nexport default function debounce(fn, wait) {\n let timeout\n\n return () => {\n let args = arguments\n\n clearTimeout(timeout)\n\n timeout = setTimeout(() => {\n timeout = null\n fn.apply(this, args)\n }, wait)\n }\n}\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport { PageLoader } from './pageLoader'\nimport debounce from '../utils/debounce'\n\nconst FEED_MODES = {\n feed: 'FEED',\n searchResults: 'SEARCH',\n}\n\nconst searchPanels = []\n\n/**\n * Implements search in resume.io/blog\n */\nclass BlogSearch {\n $allSearchPanels = $([])\n lastSearchQuery = ''\n initialPostsFeedMode = FEED_MODES.feed\n classes = {\n navigation: {\n container: 'blog-main__top-box-nav',\n openSearch: 'blog-main__top-box-nav--show-search',\n },\n spinner: {\n container: 'blog-main__search-spinner',\n visible: 'blog-main__search-spinner--visible',\n },\n searchResultContainer: 'blog-main__search-result-posts',\n blogMainContainer: {\n container: 'blog-main__container',\n showSearchResults: 'blog-main__container--show-search-results',\n },\n blogPostsContainer: 'blog-main__posts-feed',\n blogMainPostContainer: 'blog-main__main-post',\n counter: 'blog-main__search-result-counter',\n open: 'blog-search--open',\n responsive: 'blog-search--responsive',\n clearButton: 'blog-search__clear',\n openResponsiveSearchButton: 'blog-search__open-button',\n }\n\n constructor($el, pageLoader) {\n // Init form elements\n this.$form = $el\n this.$input = $el.find('input')\n this.$clear = $el.find(`.${this.classes.clearButton}`)\n this.$navigation = $(`.${this.classes.navigation.container}`)\n this.$searchResultContainer = $(`.${this.classes.searchResultContainer}`)\n this.$blogMainPostContainer = $(`.${this.classes.blogMainPostContainer}`)\n this.$blogPostsContainer = $(`.${this.classes.blogPostsContainer}`)\n this.$counter = $(`.${this.classes.counter}`)\n this.$spinner = $(`.${this.classes.spinner.container}`)\n this.$blogMainContainer = $(`.${this.classes.blogMainContainer.container}`)\n this.$openResponsiveSearchButton = $(`.${this.classes.openResponsiveSearchButton}`)\n\n this.pageLoader = pageLoader\n\n this.pageLoader && this.pageLoader.setQueryParams({ search: this.$input.val() })\n\n // Check if page wes rendered with search query parameter\n // Used in setDefaultState method to load all posts after search clear\n this.initialPostsFeedMode = this.isEmptyQuery() ? FEED_MODES.feed : FEED_MODES.searchResults\n\n if (!this.isEmptyQuery()) {\n this.pageLoader && this.pageLoader.startObserveLoader()\n this.pageLoader && this.pageLoader.show()\n }\n\n this.setEventListeners()\n\n searchPanels.push(this)\n }\n\n setEventListeners = () => {\n this.$form.on('click', this.open)\n this.$input.on('change keyup', this.onInputChange)\n this.$input.on('focus', this.open)\n this.$clear.on('click', this.onClear)\n if (this.$form.hasClass(this.classes.responsive)) {\n this.$openResponsiveSearchButton.on('click', this.open)\n }\n\n // Prevent native form submit\n this.$form.on('submit', e => e.preventDefault())\n }\n\n // Fetch HTML with rendered posts filtered by form data\n search = () => {\n const action = this.$form.attr('action')\n const data = this.$form.serializeArray()\n\n this.showSpinner()\n this.pageLoader && this.pageLoader.hide()\n\n $.post(action, data).done(this.showResults).fail(this.setDefaultState)\n }\n\n // Shows rendered blog posts and posts counter\n showResults = response => {\n if (response.searchQuery === this.$input.val()) {\n this.hideSpinner()\n\n if (!this.isEmptyQuery()) {\n $(window).scrollTop(0)\n this.setSearchContent(response.html)\n this.getAllSearchPanels().val(response.searchQuery)\n this.getAllSearchPanels().filter(':visible').focus()\n this.showResultsCounter(response.localizedPostsCount)\n if (response.postsCount) {\n this.pageLoader && this.pageLoader.reset()\n }\n } else {\n this.showEnvironmentBlocks()\n this.setBlogContent(response.mainPostHtml, response.html)\n this.initialPostsFeedMode = FEED_MODES.feed\n }\n }\n }\n\n // Start search by input value with 500ms debounce\n onInputChange = debounce(() => {\n if (this.isEmptyQuery()) {\n this.setDefaultState()\n } else if (this.lastSearchQuery !== this.$input.val()) {\n searchPanels.forEach(searchPanel => (searchPanel.lastSearchQuery = this.$input.val()))\n this.pageLoader && this.pageLoader.setQueryParams({ search: this.lastSearchQuery })\n this.$searchResultContainer.html('')\n this.search()\n }\n }, 500)\n\n // Returns blog state to the one before search\n setDefaultState = () => {\n searchPanels.forEach(searchPanel => (searchPanel.lastSearchQuery = ''))\n this.getAllSearchPanels().val(null)\n this.$searchResultContainer.html('')\n this.pageLoader && this.pageLoader.setQueryParams({ search: this.lastSearchQuery })\n\n if (this.initialPostsFeedMode === FEED_MODES.feed) {\n this.showEnvironmentBlocks()\n } else {\n this.search()\n }\n\n this.hideResultsCounter()\n }\n\n // Injects HTML into posts container and starts images lazy-loading\n setSearchContent = html => {\n this.$searchResultContainer.html(html)\n }\n\n setBlogContent = (mainPostHtml, postsHtml) => {\n this.$searchResultContainer.html('')\n this.$blogMainPostContainer.html(mainPostHtml)\n this.$blogPostsContainer.html(postsHtml)\n }\n\n // Clear button click event handler\n // Clears input and closes form\n onClear = event => {\n event.stopPropagation()\n this.setDefaultState()\n this.close()\n }\n\n // Open form, make search input visible\n open = () => {\n if (!this.isOpen()) {\n searchPanels.forEach(searchBox => searchBox.$form.addClass(searchBox.classes.open))\n this.$navigation.addClass(this.classes.navigation.openSearch)\n this.$input.focus()\n }\n }\n\n // Close form, make search input hidden\n close = () => {\n searchPanels.forEach(searchBox => searchBox.$form.removeClass(searchBox.classes.open))\n this.$navigation.removeClass(this.classes.navigation.openSearch)\n }\n\n // Switch related navigation DOM node's class to show search results\n showResultsCounter = counterText => {\n this.$counter.text(counterText)\n }\n\n // Switch navigation back to normal\n hideResultsCounter = () => {\n this.$counter.text('')\n }\n\n hideEnvironmentBlocks = () => {\n this.$blogMainContainer.addClass(this.classes.blogMainContainer.showSearchResults)\n }\n\n showEnvironmentBlocks = () => {\n this.$blogMainContainer.removeClass(this.classes.blogMainContainer.showSearchResults)\n }\n\n // Shows loading spinners while posts fetching\n showSpinner = () => {\n this.$spinner.addClass(this.classes.spinner.visible)\n this.hideEnvironmentBlocks()\n }\n\n // Hides spinner when posts are fetched\n hideSpinner = () => this.$spinner.removeClass(this.classes.spinner.visible)\n\n // Check if search input has non-empty string\n isEmptyQuery = () => !this.$input.val().trim()\n\n // Check if search form is open\n isOpen = () => this.$form.hasClass(this.classes.open)\n\n getAllSearchPanels = () => {\n const inputs = searchPanels.map(searchPanel => searchPanel.$input[0])\n return $(inputs)\n }\n}\n\n// ---\n// Init\n// ---\nready(function () {\n const $loader = $('.blog-main__search-result-loader')\n let pageLoader\n\n // Usually 1 pageLoader on a page if exists\n if ($loader.length) {\n pageLoader = new PageLoader($loader, {\n targetPostsSelector: '.blog-main__search-result-posts',\n })\n\n pageLoader.hide()\n }\n\n // Usually 3 blog-search panels on a page if exists\n $('.blog-search').each(function () {\n new BlogSearch($(this), pageLoader)\n })\n})\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport debounce from '../utils/debounce'\n\nconst $window = $(window)\n\n/**\n * Implements resizing categories navigation in resume.io/blog\n */\nclass BlogTopScrollPanel {\n classes = {\n scrollWrapper: 'blog-main__scroll-panel',\n scrollInner: 'blog-main__scroll-panel-inner',\n }\n\n constructor($el) {\n // Init elements\n this.$scrollParent = $el\n this.$scrollPanel = this.$scrollParent.find(`.${this.classes.scrollWrapper}`)\n this.$scrollInner = this.$scrollParent.find(`.${this.classes.scrollInner}`)\n\n this.debouncedHandleResize = debounce(this.handleResize, 100)\n this.debouncedHandleResize()\n $window.on('resize', this.debouncedHandleResize)\n }\n\n handleResize = () => {\n const leftPos = this.$scrollParent.offset().left\n const viewPortWidth = $window.width()\n\n if (viewPortWidth < 1024) {\n this.$scrollPanel.css({ left: -leftPos, width: viewPortWidth })\n this.$scrollInner.css({ paddingLeft: leftPos, paddingRight: leftPos })\n } else {\n this.$scrollPanel.css({ width: '', left: '' })\n this.$scrollInner.css({ paddingLeft: '', paddingRight: '' })\n }\n }\n}\n\n// ---\n// Init\n// ---\nready(function () {\n $('.blog-main__top-box-nav').each(function () {\n new BlogTopScrollPanel($(this))\n })\n})\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport VisibilityObserver from '../support/VisibilityObserver'\nimport { Swiper, Lazy, Navigation, Scrollbar } from 'swiper'\n\nSwiper.use([Lazy, Navigation, Scrollbar])\n\nclass BlogFeaturedPostComponent {\n constructor(node) {\n this.$el = $(node)\n\n new VisibilityObserver(this.$el, {\n rootMargin: '50% 0% 50% 0%',\n callback: this.initializeSlider,\n })\n }\n\n initializeSlider = () => {\n new Swiper(this.$el.get(0), {\n loop: this.$el.find('.blog-featured-posts__slider-item').length > 3,\n slidesPerView: 'auto',\n threshold: 15,\n navigation: {\n prevEl: '.blog-featured-posts__nav--prev',\n nextEl: '.blog-featured-posts__nav--next',\n },\n slideClass: 'blog-featured-posts__slider-item',\n wrapperClass: 'blog-featured-posts__slider-inner',\n breakpoints: {\n 1200: {\n slidesPerView: 4,\n spaceBetween: 20,\n },\n },\n })\n }\n}\n\nready(function () {\n $('.blog-featured-posts__slider-container').each((_, node) => {\n new BlogFeaturedPostComponent(node)\n })\n})\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport VisibilityObserver from '../support/VisibilityObserver'\nimport { Swiper, Lazy, Navigation, Scrollbar } from 'swiper'\n\nSwiper.use([Lazy, Navigation, Scrollbar])\n\nclass BlogFeaturedPostComponent {\n constructor(node) {\n this.$el = $(node)\n\n new VisibilityObserver(this.$el, {\n rootMargin: '50% 0% 50% 0%',\n callback: this.initializeSlider,\n })\n }\n\n initializeSlider = () => {\n new Swiper(this.$el.get(0), {\n loop: this.$el.find('.blog-new-featured-posts__slider-item').length > 3,\n slidesPerView: 1,\n threshold: 15,\n centeredSlides: true,\n spaceBetween: 8,\n navigation: {\n prevEl: '.blog-featured-posts__nav--prev',\n nextEl: '.blog-featured-posts__nav--next',\n },\n slideClass: 'blog-new-featured-posts__slider-item',\n wrapperClass: 'blog-new-featured-posts__slider-inner',\n breakpoints: {\n 1024: {\n spaceBetween: 0,\n },\n },\n })\n }\n}\n\nready(function () {\n $('.blog-new-featured-posts__slider-container').each((_, node) => {\n new BlogFeaturedPostComponent(node)\n })\n})\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport matchMediaQueries from '../support/mediaQueries'\nimport debounce from 'lodash/debounce'\nimport throttle from 'lodash/throttle'\n\nconst $window = $(window)\n\nclass BlogArticlesHeadersNav {\n constructor($root) {\n this.$root = $root\n this.$articleBody = $('.blog-post__content-main-wrapper')\n this.$headers = this.$articleBody.find('h2')\n this.$articleProgressInner = this.$root.find('.blog-aside-toc__progress-inner')\n this.$tableOfContentItems = this.$root.find('.blog-aside-toc__item')\n\n const debouncedUpdateState = debounce(this.updateState, 300)\n const throttledUpdateState = throttle(this.updateState, 1000)\n\n $window.on('scroll', this.checkScrollPosition)\n /* Recalculation of sizes after loading lazy components with throttling */\n $window.on('scroll', throttledUpdateState)\n $window.on('resize', debouncedUpdateState)\n this.$tableOfContentItems.on('click', this.headerHandleClick)\n this.updateState()\n }\n\n setSizes = () => {\n this.mediaQueries = matchMediaQueries()\n this.viewPortHeight = $window.height()\n this.offsetY = this.viewPortHeight / 2\n this.articlePartsPos = []\n this.articlePos = {\n height: this.$articleBody.height(),\n top: this.$articleBody.offset().top,\n }\n this.articlePos.bottom = this.articlePos.top + this.articlePos.height\n\n this.$headers.each((i, el) => {\n const nextIndex = i + 1\n const bottomPos =\n nextIndex !== this.$headers.length\n ? this.$headers.eq(nextIndex).offset().top\n : this.articlePos.bottom\n\n this.articlePartsPos.push({ top: $(el).offset().top, bottom: bottomPos })\n })\n }\n\n headerHandleClick = e => {\n e.preventDefault()\n const $target = $(e.target.hash)\n if ($target.length) $('html, body').animate({ scrollTop: $target.offset().top - 80 }, 800)\n }\n\n checkScrollPosition = () => {\n if (this.mediaQueries.isTablet) return\n\n const scrollTop = $window.scrollTop() + this.offsetY\n const scrollBottom = $window.scrollTop() + this.viewPortHeight\n\n this.articlePartsPos.forEach((articlePart, i) => {\n if (scrollTop >= articlePart.top && scrollTop < articlePart.bottom) {\n this.$tableOfContentItems.eq(i).addClass('active')\n } else {\n this.$tableOfContentItems.eq(i).removeClass('active')\n }\n })\n\n if (scrollBottom >= this.articlePos.top && scrollBottom < this.articlePos.bottom) {\n const readingProgress = (scrollBottom - this.articlePos.top) / this.articlePos.height\n this.$articleProgressInner.css({ transform: `scaleX(${readingProgress})` })\n }\n }\n\n updateState = () => {\n this.setSizes()\n this.checkScrollPosition()\n }\n}\n\nready(function () {\n $('.blog-aside-toc--flat').each((_, el) => new BlogArticlesHeadersNav($(el)))\n})\n\nexport default BlogArticlesHeadersNav\n","/*\n * Loads the Google ReCAPTCHA scripts.\n * Abstracts the dirty dynamic script logic into a Promise-based interface.\n */\nclass Recaptcha {\n constructor(siteKey) {\n this.api = null\n this.siteKey = siteKey\n }\n\n getApi() {\n // Do not load the script twice\n if (this.api) return Promise.resolve(this.api)\n\n return new Promise(resolve => {\n const cbName = 'grecaptchaLoaded'\n\n window[cbName] = () => {\n this.api = window.grecaptcha\n this.api.ready(() => resolve(this.api))\n }\n\n const script = document.createElement('script')\n script.src = `https://www.google.com/recaptcha/api.js?render=${this.siteKey}&onload=${cbName}`\n document.head.appendChild(script)\n })\n }\n\n execute(options) {\n return this.getApi().then(api => {\n return api.execute(this.siteKey, options)\n })\n }\n}\n\nexport default new Recaptcha(process.env.GRECAPTCHA_SITE_KEY)\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport recaptcha from '../support/recaptcha'\n\nclass CancellationFormView {\n constructor($el) {\n if (!$el.length) return\n this.$el = $el\n this.$email = this.$el.find('.field__input')\n this.$button = this.$el.find('.button')\n\n this.$email.on('keyup change', this.updateFormState.bind(this))\n this.$el.on('submit', this.handleSubmit.bind(this))\n\n this.captchaReady = false\n\n // get the recaptcha score token. this token will be appended to the form\n // payload and sent to the server for verification (score from 0 to 1)\n this.fetchCaptchaScoreToken()\n }\n\n // Enable submit button when captcha and an email are valid\n updateFormState() {\n const isEmailNotEmpty = this.$email.val().length > 1\n const isFormValid = isEmailNotEmpty && this.captchaReady\n this.$button.prop('disabled', !isFormValid)\n }\n\n fetchCaptchaScoreToken() {\n recaptcha.execute({ action: 'cancellation' }).then(token => {\n // append the captcha token to the form\n this.$el.find('[name=\"captcha_token_v3\"]').val(token)\n\n // mark that captcha is ready\n this.captchaReady = true\n this.updateFormState()\n })\n }\n\n // Disable the button after a click to prevent double submiting\n handleSubmit(event) {\n this.$button.prop('disabled', true)\n }\n}\n\nready(function () {\n new CancellationFormView($('.cancellation__form'))\n})\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport recaptcha from '../support/recaptcha'\n\nclass ContactUsView {\n constructor($el) {\n if (!$el.length) return\n this.$el = $el\n\n this.initForm()\n this.initTopics()\n }\n\n initForm() {\n this.$form = this.$el.find('.contact__form')\n this.$button = this.$el.find('.button')\n this.isSubmitting = false\n this.fetchCaptchaScoreToken()\n\n this.$form.on('submit', this.handleFormSubmit.bind(this))\n }\n\n fetchCaptchaScoreToken() {\n recaptcha.execute({ action: 'contact_form' }).then(token => {\n this.$el.find('[name=\"captcha_token_v3\"]').val(token)\n this.$button.prop('disabled', false)\n })\n }\n\n toggleSubmitting(state) {\n this.isSubmitting = state\n this.$button.prop('disabled', state)\n }\n\n handleFormSubmit(event) {\n event.preventDefault()\n\n if (this.isSubmitting) return\n this.toggleSubmitting(true)\n\n const formValues = this.$form.serializeArray()\n this.submitTicket(formValues)\n }\n\n submitTicket(formValues) {\n const subjectKey = formValues.find(el => el.name === 'topic')\n if (subjectKey) formValues.push({ name: 'subject', value: subjectKey.value })\n\n $.post('/support/ticket', formValues).done(response => {\n this.toggleSubmitting(false)\n if (!response.success) return this.handleError(response)\n this.handleSuccess(response)\n })\n }\n\n handleSuccess() {\n this.$el.find('.contact__form-success').addClass('is-visible')\n this.$el.find('.contact__form-container').addClass('is-hidden')\n }\n\n handleError(response) {\n this.showErrorMessage(response.error)\n if (response.error_code === 'captcha_required') this.showCaptcha()\n }\n\n showErrorMessage(message) {\n const $error = this.$el.find('.contact__form-error')\n $error.text(message).show()\n }\n\n initTopics() {\n this.$topics = this.$form.find('input[name=\"topic\"]')\n this.topic = null\n\n this.$topics.on('change', this.handleTopicChange.bind(this))\n this.handleTopicChange()\n }\n\n handleTopicChange() {\n const topic = this.$topics.filter(':checked').val()\n if (this.topic) this.$form.removeClass(`contact__form--${this.topic}`)\n this.$form.addClass(`contact__form--${topic}`)\n this.topic = topic\n }\n}\n\nready(function () {\n new ContactUsView($('.contact'))\n})\n","import $ from 'jquery'\n\n// ---\n// Base class for all modal windows\n// ---\nclass BaseModal {\n // Constructor\n constructor($root, options = {}) {\n if (!$root || !$root.length) return\n\n this.$root = $root\n this.options = options\n this.preventFromClosing = false\n\n $root.on('click', '.modal__overlay', this.handleClickOverlay.bind(this))\n $root.on('click', '.modal__close', this.close.bind(this))\n }\n\n close(forceClose = false) {\n if (forceClose || !this.preventFromClosing) {\n this.$root.removeClass('is-visible is-animated')\n $('body').removeClass('is-modal-open')\n }\n }\n\n open() {\n this.$root.addClass('is-visible')\n requestAnimationFrame(() => {\n this.$root.addClass('is-animated')\n })\n $('body').addClass('is-modal-open')\n }\n\n togglePreventClosing(state = true) {\n this.preventFromClosing = state\n }\n\n // Close the modal dialog when the user\n // clicked on an overlay\n // Works only if options.isBlocking isn't set\n handleClickOverlay(event) {\n const isOverlay =\n $(event.target).hasClass('modal-overlay') || $(event.target).hasClass('modal__overlay')\n\n if (isOverlay && !this.options.isBlocking) {\n this.close()\n }\n }\n}\n\nexport default BaseModal\n","import BaseModal from './baseModal'\n\nclass ChangeCountryModal extends BaseModal {}\nexport default ChangeCountryModal\n","import BaseModal from './baseModal'\n\nconst LS_KEY_ACTIVATED = 'INTERVIEW_MODAL_ACTIVATED'\n\nclass InterviewModal extends BaseModal {\n constructor($root) {\n super($root)\n if (!$root || !$root.length) return\n\n // don't activate the modal more than once\n if (!this.shouldActivateModal()) return\n\n window.addEventListener('scroll', this.handleScroll.bind(this), { passive: true })\n\n $root.on('click', '.interview-modal__skip', this.close.bind(this))\n $root.on('click', '.interview-modal__book', this.close.bind(this))\n\n // set up a deadline timer\n this.deadlineTimer = setTimeout(this.triggerModal.bind(this), 15000)\n }\n\n shouldActivateModal() {\n try {\n return !localStorage.getItem(LS_KEY_ACTIVATED)\n } catch (_error) {\n return false\n }\n }\n\n handleScroll() {\n if (this.scrollTriggered) return\n\n const max = document.body.scrollHeight - window.innerHeight\n const current = window.pageYOffset\n const scrollPercentage = current / max\n\n if (scrollPercentage > 0.1) {\n this.scrollTriggered = true\n this.secondTimer = setTimeout(this.triggerModal.bind(this), 2000)\n }\n }\n\n triggerModal() {\n clearTimeout(this.deadlineTimer)\n clearTimeout(this.secondTimer)\n\n if (this.triggered) return\n this.triggered = true\n\n try {\n localStorage.setItem(LS_KEY_ACTIVATED, 'true')\n } catch (_error) {}\n\n this.open()\n }\n}\nexport default InterviewModal\n","import BaseModal from '../baseModal'\n\nclass CookieSettingsModal extends BaseModal {}\nexport default CookieSettingsModal\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\n\nimport ChangeCountryModal from '../components/changeCountryModal'\nimport InterviewModal from '../components/interviewModal'\nimport CookieSettingsModal from '../components/cookie/cookieSettingsModal'\n\nlet modals = {}\n\nready(() => {\n modals.changeCountryModal = new ChangeCountryModal($('.modal--country-modal'))\n modals.interviewModal = new InterviewModal($('.modal--interview-modal'))\n modals.cookieSettingsModal = new CookieSettingsModal($('.modal--cookie-settings-modal'))\n})\n\nexport default modals\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport CookiePanel from './cookiePanel'\nimport CookieSettingsForm from './cookieSettingsForm'\nimport Cookies from 'js-cookie'\nimport Cookiebar from './cookiebar'\nimport { trackMarketingEvent } from '@rio/tracking'\n\nclass CookieController {\n constructor() {\n this.allAdditionalTypes = ['AnalyticalCookies', 'MarketingCookies']\n\n this.$cookiePanel = $('.cookie-panel')\n this.strictMode = document.body.hasAttribute('data-strict-cookie-policy')\n this.strictMode && this.initializeStrictCookieControls()\n\n const cookiePanel = new CookiePanel(this.$cookiePanel, this)\n new CookieSettingsForm($('.cookie-settings-modal__form'), this, cookiePanel)\n\n // PAULO: workaround for the cookiebar until translations come next monday\n this.hasSimpleCookie = document.body.hasAttribute('data-simple-cookie')\n this.hasSimpleCookie && this.initializeSimpleCookieControls()\n }\n\n initializeSimpleCookieControls() {\n const $cookiebar = $('.cookiebar')\n\n if (!$cookiebar || !$cookiebar.length) {\n return this.acceptAllCookies()\n }\n\n new Cookiebar($cookiebar, this)\n }\n\n initializeStrictCookieControls = () => {\n if (!this.$cookiePanel || !this.$cookiePanel.length) return this.setEarlierAcceptedCookies()\n }\n\n acceptCookies = types => {\n const acceptedTypes = ['EssentialCookies', ...types]\n\n if (!Cookies.get('cookie_consent')) {\n Cookies.set('cookie_consent', acceptedTypes, { expires: 365 })\n }\n\n if (types && types.length) {\n if (this.strictMode) {\n types.forEach(type => {\n if (this.allAdditionalTypes.indexOf(type) >= 0) {\n this.pushEventToDataLayer({ event: type + 'Accepted' })\n }\n })\n } else {\n this.pushEventToDataLayer({ event: 'AcceptCookies' })\n }\n }\n\n this.addConsentStateUpdateToDatalayer(acceptedTypes)\n this.updateUETConsent(acceptedTypes)\n }\n\n acceptAllCookies = () => {\n this.acceptCookies(this.allAdditionalTypes)\n trackMarketingEvent('Cookie Consent', 'Accept All Cookies')\n }\n\n rejectAllCookies = () => {\n this.acceptCookies([])\n trackMarketingEvent('Cookie Consent', 'Reject Cookies')\n }\n\n setEarlierAcceptedCookies = () => {\n const events = Cookies.getJSON('cookie_consent')\n\n // Process the legacy cookie value (\"true\")\n if (events === true) {\n return this.acceptCookies(this.allAdditionalTypes)\n }\n\n this.acceptCookies(events)\n }\n\n addConsentStateUpdateToDatalayer = acceptedTypes => {\n if (this.strictMode) {\n this.pushConsentToDataLayer([\n 'consent',\n 'update',\n this.consentModeConfig(acceptedTypes, {\n ad_storage: 'EssentialCookies',\n ad_user_data: 'EssentialCookies',\n ad_personalization: 'MarketingCookies',\n analytics_storage: 'AnalyticalCookies',\n }),\n ])\n } else {\n this.pushConsentToDataLayer([\n 'consent',\n 'update',\n this.consentModeConfig(acceptedTypes, {\n ad_storage: 'EssentialCookies',\n ad_user_data: 'EssentialCookies',\n ad_personalization: 'EssentialCookies',\n analytics_storage: 'EssentialCookies',\n }),\n ])\n }\n }\n\n updateUETConsent = acceptedTypes => {\n const uetConsentMapping = {\n ad_storage: 'MarketingCookies',\n analytics_storage: 'AnalyticalCookies',\n personalization_storage: 'MarketingCookies',\n functional_storage: 'EssentialCookies',\n security_storage: 'EssentialCookies',\n }\n\n const uetConsentConfig = {}\n for (const [uetKey, cookieType] of Object.entries(uetConsentMapping)) {\n uetConsentConfig[uetKey] = acceptedTypes.includes(cookieType) ? 'granted' : 'denied'\n }\n\n window.uetq = window.uetq || []\n window.uetq.push('consent', 'update', uetConsentConfig)\n }\n\n pushEventToDataLayer(data) {\n window.dataLayer = window.dataLayer || []\n window.dataLayer.push(data)\n }\n\n pushConsentToDataLayer(data) {\n function gtag() {\n window.dataLayer = window.dataLayer || []\n window.dataLayer.push(arguments)\n }\n gtag(...data)\n }\n\n consentModeConfig = (acceptedTypes, consentTypeToCookieMapping) => {\n function gtmConsentStateFor(cookieType) {\n const COOKIE_CONSENT_GRANTED = 'granted'\n const COOKIE_CONSENT_DENIED = 'denied'\n\n return acceptedTypes.indexOf(cookieType) >= 0 ? COOKIE_CONSENT_GRANTED : COOKIE_CONSENT_DENIED\n }\n\n const updatedConsent = { ...consentTypeToCookieMapping }\n\n for (const cookieType in consentTypeToCookieMapping) {\n updatedConsent[cookieType] = gtmConsentStateFor(consentTypeToCookieMapping[cookieType])\n }\n\n return updatedConsent\n }\n}\n\nready(function () {\n new CookieController()\n})\n","import $ from 'jquery'\nimport modals from '../../support/modals'\nimport { trackInternalEvent } from '@rio/tracking'\n\nclass CookiePanel {\n constructor($panel, cookieController) {\n this.$panel = $panel\n this.cookieController = cookieController\n this.$acceptButton = this.$panel.find('.cookie-panel__accept')\n this.$rejectButton = this.$panel.find('.cookie-panel__reject')\n this.$settingsButton = this.$panel.find('.cookie-panel__settings')\n this.$footerPrivacyChoices = $('#privacy-options-toggle')\n\n const openOnStartup = this.$panel.data('open-on_startup')\n openOnStartup && this.open()\n\n this.$acceptButton.click(this.handleAcceptAllCookies)\n this.$rejectButton.click(this.handleRejectAllCookies)\n this.$settingsButton.click(this.handleSettingsClick)\n\n this.$footerPrivacyChoices.on('click', this.handleFooterPrivacyChoices)\n }\n\n handleAcceptAllCookies = () => {\n if (this.cookieController) {\n this.cookieController.acceptAllCookies()\n }\n\n trackInternalEvent('click_cookie_banner', {\n cta_text: 'Accept all',\n cookie_settings: 'Accept all',\n })\n\n this.close()\n }\n\n handleRejectAllCookies = () => {\n if (this.cookieController) {\n this.cookieController.rejectAllCookies()\n }\n\n trackInternalEvent('click_cookie_banner', {\n cta_text: 'Reject all',\n cookie_settings: 'Reject',\n })\n\n this.close()\n }\n\n handleSettingsClick = () => {\n trackInternalEvent('open_cookie_banner_settings')\n\n modals.cookieSettingsModal.open()\n }\n\n handleFooterPrivacyChoices = () => {\n trackInternalEvent('open_footer_privacy_choices')\n\n // Check if the panel is already open. if not open do nothing\n const panelOpenAlready = this.$panel.hasClass('is-open')\n if (!panelOpenAlready) modals.cookieSettingsModal.open()\n }\n\n open = () => {\n this.$panel.addClass('is-open')\n }\n\n close = () => {\n this.$panel.removeClass('is-open')\n }\n}\n\nexport default CookiePanel\n","import modals from '../../support/modals'\nimport { trackInternalEvent } from '@rio/tracking'\n\nclass CookieSettingsForm {\n constructor($form, cookieController, cookiePanel) {\n this.$form = $form\n this.cookieController = cookieController\n this.cookiePanel = cookiePanel\n this.$acceptAllCookiesButton = this.$form.find('.cookie-settings-modal__accept')\n this.$rejectAllCookiesButton = this.$form.find('.cookie-settings-modal__reject')\n this.$analyticalCheckbox = this.$form.find('#AnalyticalCookies')\n this.$marketingCheckbox = this.$form.find('#MarketingCookies')\n\n this.$form.on('submit', this.handleSubmit)\n\n this.$acceptAllCookiesButton.on('click', this.handleClickAcceptAllButton)\n this.$rejectAllCookiesButton.on('click', this.handleClickRejectButton)\n }\n\n handleSubmit = e => {\n e.preventDefault()\n const events = this.$form.serializeArray().map(item => item.value)\n\n if (this.cookieController) {\n this.cookieController.acceptCookies(events)\n }\n\n this.trackCookiePreferences()\n this.closeCookieControls()\n }\n\n handleClickAcceptAllButton = () => {\n if (this.cookieController) {\n this.cookieController.acceptAllCookies()\n }\n\n trackInternalEvent('click_cookie_banner', {\n cta_text: 'Accept all',\n cookie_settings: 'Accept all',\n })\n\n this.closeCookieControls()\n }\n\n handleClickRejectButton = () => {\n if (this.cookieController) {\n this.cookieController.rejectAllCookies()\n }\n\n trackInternalEvent('click_cookie_banner', {\n cta_text: 'Reject all',\n cookie_settings: 'Reject',\n })\n\n this.closeCookieControls()\n }\n\n trackCookiePreferences = () => {\n if (this.$analyticalCheckbox.is(':checked')) {\n trackInternalEvent('click_cookie_banner', {\n cta_text: 'Save',\n cookie_settings: 'Analytical cookies',\n })\n } else if (this.$marketingCheckbox.is(':checked')) {\n trackInternalEvent('click_cookie_banner', {\n cta_text: 'Save',\n cookie_settings: 'Marketing cookies',\n })\n } else {\n trackInternalEvent('click_cookie_banner', {\n cta_text: 'Save',\n cookie_settings: 'Essential only',\n })\n }\n }\n\n closeCookieControls = () => {\n if (modals.cookieSettingsModal) {\n modals.cookieSettingsModal.close()\n }\n\n if (this.cookiePanel) {\n this.cookiePanel.close()\n }\n }\n}\n\nexport default CookieSettingsForm\n","// to be removed. seems no longer used\n\nclass Cookiebar {\n constructor($el, cookieController) {\n this.$el = $el\n this.cookieController = cookieController\n this.$acceptButton = this.$el.find('.cookiebar__button')\n\n this.$el.addClass('is-open')\n\n const links = document.links\n\n Array.from(links).forEach(link => link.addEventListener('click', this.handleAcceptAllCookies))\n this.$acceptButton.click(this.handleAcceptAllCookies)\n\n window.addEventListener('scroll', this.handleScroll)\n }\n\n handleScroll = () => {\n this.handleAcceptAllCookies()\n window.removeEventListener('scroll', this.handleScroll)\n }\n\n handleAcceptAllCookies = () => {\n if (this.cookieController) {\n this.cookieController.acceptAllCookies()\n }\n\n this.$el.removeClass('is-open')\n }\n}\n\nexport default Cookiebar\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\n\nclass DocumentsComponent {\n constructor($el) {\n if ($el.length === 0) return\n this.$el = $el\n\n $el.find('.documents__tab-select').on('change', this.handleChange.bind(this))\n }\n\n handleChange(event) {\n window.location = event.target.value\n }\n}\n\n// Init\nready(function () {\n new DocumentsComponent($('.documents'))\n})\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport throttle from '../utils/throttle'\nimport { trackInternalEvent } from '@rio/tracking'\nimport matchMediaQueries from '../support/mediaQueries'\nimport { Collapse } from './collapse'\n\nclass ExamplesRootComponent {\n constructor($el) {\n if ($el.length === 0) return\n\n this.toggleShowMoreCategories()\n this.exampleType = $el.data('example-type')\n\n if ($el.data('design') === 'new') {\n // Init collapse for a/b test\n new Collapse($el, {\n itemClass: 'examples-category-card__collapse',\n bodyClass: 'examples-category-card__collapse-body',\n toggleClass: 'examples-category-card__collapse-button',\n onOpen: () =>\n trackInternalEvent(`click_${this.exampleType}_examples_category`, {\n source: 'example_section_show_all',\n }),\n })\n\n return\n }\n\n this.$el = $el\n this.isActive = false\n this.$stickyArea = $el.find('.examples-root__sidebar-sticky-area')\n this.$scrollTop = $el.find('.examples-root__scroll-top')\n\n // Do not execute the callback every single time the user scrolls\n this.throttledScrollHandler = throttle(this.handleScroll.bind(this), 150)\n\n window.addEventListener('resize', this.handleResize.bind(this))\n this.handleResize()\n\n this.$scrollTop.on('click', this.scrollToCategories.bind(this))\n }\n\n // Do not handle scroll if the sidebar isn't visible\n handleResize() {\n const isSidebarVisible = matchMediaQueries().isDesktop\n\n if (isSidebarVisible && !this.isActive) {\n window.addEventListener('scroll', this.throttledScrollHandler, { passive: true })\n this.handleScroll()\n this.isActive = true\n } else if (!isSidebarVisible && this.isActive) {\n window.removeEventListener('scroll', this.throttledScrollHandler)\n this.isActive = false\n }\n }\n\n handleScroll() {\n const isButtonVisible = $(window).scrollTop() > this.$stickyArea.offset().top\n this.$scrollTop.toggleClass('examples-root__scroll-top--visible', isButtonVisible)\n }\n\n scrollToCategories() {\n const navbarHeight = $('.nav').height()\n const scrollTop = this.$el.offset().top - navbarHeight\n $('html, body').animate({ scrollTop }, 300)\n }\n\n toggleShowMoreCategories() {\n const section = document.getElementById('example-categories-section')\n\n if (!section) return\n\n const showMoreButton = section.getElementsByClassName('examples-categories-button')[0]\n\n if (!showMoreButton) return\n\n showMoreButton.addEventListener('click', event => {\n let categories = section.getElementsByClassName('example-category-entry')\n\n for (let category of categories) {\n category.classList.toggle('show-category')\n }\n\n showMoreButton.classList.toggle('is-open')\n const spanElement = showMoreButton.firstElementChild\n if (!spanElement) return\n const currentText = spanElement.textContent\n\n const newText = showMoreButton.getAttribute('data-alt-text')\n\n spanElement.textContent = newText\n // when moving this to ts we can just use currentText!\n showMoreButton.setAttribute('data-alt-text', currentText || '')\n })\n }\n}\n\nready(function () {\n new ExamplesRootComponent($('.examples-root'))\n})\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport { trackInternalEvent } from '@rio/tracking'\nimport debounce from 'lodash/debounce'\n\nconst trackingDebounced = debounce((query, exampleType) => {\n trackInternalEvent(`search_${exampleType}_example`, { query })\n}, 200)\n\nclass ExamplesSearch {\n constructor(node) {\n this.$el = $(node)\n this.$field = this.$el.find('.examples-search__input')\n this.$dropdown = this.$el.find('.examples-search__dropdown')\n this.$content = this.$el.find('.examples-search__content')\n\n this.isReady = false\n this.isFieldFocused = false\n this.maxResults = 20\n this.exampleType = $('.examples-root').data('example-type')\n\n this.$field.on('focus', this.handleSearchFocus.bind(this))\n }\n\n prepare() {\n this.searchEntries = this.serializeEntries()\n\n this.$content.on('mousedown', 'a', this.handleLinkClick.bind(this))\n this.$field.on('change keyup paste', this.renderDropdown.bind(this))\n this.$field.on('blur', this.handleSearchBlur.bind(this))\n\n this.isReady = true\n }\n\n serializeEntries() {\n const entries = $('.js-example').map((i, el) => ({\n title: $(el).data('title'),\n url: $(el).attr('href'),\n }))\n\n return entries\n .get()\n .filter((val, i, arr) => arr.findIndex(item => item.title === val.title) === i)\n }\n\n handleLinkClick(event) {\n event.stopPropagation()\n return false\n }\n\n handleSearchBlur(e) {\n this.isFieldFocused = false\n this.renderDropdown(e)\n }\n\n handleSearchFocus(e) {\n this.isFieldFocused = true\n trackInternalEvent(`open_${this.exampleType}_example_search`)\n this.renderDropdown(e)\n }\n\n renderDropdown(e) {\n if (!this.isReady) this.prepare()\n\n const query = this.$field.val().trim().toLowerCase()\n this.$content.empty()\n\n const matches = this.searchEntries\n .filter(entry => (query ? entry.title.toLowerCase().indexOf(query) !== -1 : true))\n .slice(0, this.maxResults)\n\n if (e.type === 'keyup') {\n trackingDebounced(query, this.exampleType)\n }\n\n matches.forEach(entry => {\n this.$content.append(`\n \n ${entry.title}\n \n `)\n })\n\n const isActive = this.isFieldFocused && matches.length > 0\n this.$dropdown.toggleClass('is-active', isActive)\n this.$content.scrollTop(0)\n }\n}\n\n// ---\n// Init\n// ---\nready(function () {\n document.querySelectorAll('.examples-search').forEach(node => {\n new ExamplesSearch(node)\n })\n})\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport VisibilityObserver from '../support/VisibilityObserver'\nimport { Swiper, Lazy, Navigation, Scrollbar } from 'swiper'\n\nSwiper.use([Lazy, Navigation, Scrollbar])\n\nclass ExamplesCardsSlider {\n constructor(node) {\n this.$el = $(node)\n\n new VisibilityObserver(this.$el, {\n rootMargin: '50% 0% 50% 0%',\n callback: this.initializeSlider,\n })\n }\n\n initializeSlider = () => {\n new Swiper(this.$el.get(0), {\n loop: this.$el.find('.examples-category-card__slider-item').length > 3,\n slidesPerView: 'auto',\n threshold: 15,\n navigation: {\n prevEl: '.examples-category-card__nav--prev',\n nextEl: '.examples-category-card__nav--next',\n },\n pagination: {\n el: '.examples-category-card__slider-pagination',\n clickable: true,\n },\n lazy: {\n checkInView: true,\n loadPrevNext: true,\n loadOnTransitionStart: true,\n elementClass: 'examples-category-card__link-image',\n },\n slideClass: 'examples-category-card__slider-item',\n wrapperClass: 'examples-category-card__slider-inner',\n breakpoints: {\n 1200: {\n slidesPerView: 4,\n spaceBetween: 20,\n },\n 1024: {\n slidesPerView: 4,\n spaceBetween: 8,\n },\n 768: {\n slidesPerView: 3,\n spaceBetween: 8,\n },\n },\n })\n }\n}\n\nready(function () {\n $('.examples-category-card__slider-container').each((_, node) => {\n new ExamplesCardsSlider(node)\n })\n})\n","import { ready } from 'shared/ready'\nimport $ from 'jquery'\nimport 'slick-carousel'\nimport 'slick-carousel/slick/slick.css'\n\nclass ExamplesSeniorityComponent {\n constructor($el) {\n if (!$el) return\n\n this.$el = $el\n this.$slider = this.$el.find('.example-examples-slider').first()\n\n this.initSlider()\n\n let titles = $el.find('.senioriy-examples__title')\n let activeTitle = $el.find('.senioriy-examples__title.active').first()\n\n let global = this\n titles.each(function (index, element) {\n $(element).on('click', function () {\n const dataIndex = $(element).data('slick')\n activeTitle && $(activeTitle).removeClass('active')\n\n $(element).addClass('active')\n activeTitle = element\n\n global.goToSlide(dataIndex)\n })\n })\n }\n\n goToSlide = index => {\n this.$slider.slick('slickGoTo', index)\n }\n\n getCurrentSlickOptions = () => {\n return {\n dots: false,\n infinite: false,\n speed: 600,\n slidesToScroll: 1,\n centerMode: true,\n centerPadding: 10,\n initialSlide: 0,\n prevArrow: null,\n nextArrow: null,\n variableWidth: true,\n }\n }\n\n initSlider = () => {\n this.$slider.slick(this.getCurrentSlickOptions())\n }\n}\n\nready(function () {\n new ExamplesSeniorityComponent($('.seniority-examples__container'))\n})\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport VisibilityObserver from '../support/VisibilityObserver'\nimport modals from '../support/modals'\n\nclass FooterComponent {\n constructor(node) {\n this.$el = $(node)\n\n new VisibilityObserver(this.$el, {\n callback: this.initialize,\n })\n }\n\n initialize = () => {\n this.$footerSharingLinks = this.$el.find('.footer__social-link')\n this.$footerCountryButton = this.$el.find('.footer__country-switch')\n\n this.$footerSharingLinks.each((i, item) => {\n const $item = $(item)\n if (!$item.attr('href')) $item.on('click', e => this.handleShareClick(e, $item.data('type')))\n })\n\n this.$el.find('.footer__links-title').on('click', this.handleClick)\n this.$footerCountryButton.on('click', () => modals.changeCountryModal.open())\n }\n\n handleClick = e => {\n const $block = $(e.target).parent('.footer__links-block')\n const isBlockOpen = $block.hasClass('is-open')\n\n const $openBlock = this.$el.find('.footer__links-block.is-open')\n\n $openBlock.removeClass('is-open')\n $openBlock.find('.footer__links-list').animate({ height: 0 }, 300)\n\n if (!isBlockOpen) {\n $block.addClass('is-open')\n $block\n .find('.footer__links-list')\n .animate({ height: $block.find('.footer__links-list').get(0).scrollHeight }, 300)\n }\n }\n\n handleShareClick = (event, name) => {\n event.preventDefault()\n\n const url = this.$el.data('url')\n const title = this.$el.data('title')\n const text = this.$el.data('text')\n const textTwitter = this.$el.data('twitter')\n\n switch (name) {\n case 'facebook':\n this.openSharingPopup('https://www.facebook.com/sharer.php', {\n s: 100,\n 'p[url]': url,\n })\n break\n case 'twitter':\n this.openSharingPopup('https://twitter.com/share', {\n text: textTwitter,\n url: url,\n })\n break\n case 'linkedin':\n this.openSharingPopup('https://www.linkedin.com/shareArticle', {\n mini: 'true',\n url: url,\n title: title,\n summary: text,\n })\n break\n case 'google':\n this.openSharingPopup(' https://plus.google.com/share', {\n text: textTwitter,\n url: url,\n })\n break\n }\n }\n\n openSharingPopup = (url, params = {}) => {\n const windowFeatures =\n 'height=400, width=640, toolbar=no, menubar=no, ' +\n 'scrollbars=no, resizable=no, location=no,' +\n 'directories=no, status=no'\n\n const windowName = 'sharing_popup'\n\n const query = new URLSearchParams()\n for (const name in params) query.append(name, params[name])\n\n window.open(`${url}?${query.toString()}`, windowName, windowFeatures)\n }\n}\n\n// Init\nready(function () {\n $('.footer').each((i, node) => {\n new FooterComponent(node)\n })\n})\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock'\nimport Headroom from 'headroom.js'\nimport { trackInternalEvent } from '@rio/tracking'\n\nconst addNavigationEvent = value => {\n trackInternalEvent('click_website_menu', {\n website_host: window.location.host,\n targetUrl: value.href,\n copy: value.innerText,\n menu_section: 'navigation',\n label: window.location.pathname,\n })\n}\n\nclass Nav {\n constructor($el) {\n if ($el.length === 0) return\n this.$el = $el\n\n this.initDropdownMenu()\n this.initHeadroom()\n this.initMobileMenu()\n }\n\n initMobileMenu() {\n this.isMenuVisible = false\n this.$menu = this.$el.find('.nav__menu')\n this.$hamburger = this.$el.find('.nav__bar-hamburger')\n this.$hamburger.on('click', this.toggleMobileMenu.bind(this))\n $(window).on('resize', this.handleResize.bind(this))\n }\n\n handleResize() {\n if (this.isMenuVisible && window.innerWidth > 1023) this.toggleMobileMenu()\n }\n\n toggleMobileMenu() {\n this.isMenuVisible = !this.isMenuVisible\n this.$el.toggleClass('is-menu-opened', this.isMenuVisible)\n this.$menu.toggleClass('is-visible', this.isMenuVisible)\n this.$hamburger.toggleClass('is-menu-visible', this.isMenuVisible)\n\n const updateBodyScroll = this.isMenuVisible ? disableBodyScroll : enableBodyScroll\n updateBodyScroll(this.$menu.get(0))\n }\n\n initDropdownMenu() {\n const view = this\n view.categories = {}\n view.visibleContent = null\n\n view.$triggers = this.$el.find('[data-trigger]')\n view.$dropdown = this.$el.find('.nav__dropdown')\n view.$content = this.$el.find('[data-content]')\n\n view.$triggers.each(function (index) {\n const name = $(this).attr('data-trigger')\n const $content = view.$el.find(`[data-content=${name}]`)\n\n view.categories[name] = {\n trigger: $(this),\n content: $content,\n }\n\n if (index === 0) {\n view.$dropdown.height($content.height())\n // Fix wrong default height (related to fonts loading)\n $(window).on('load.nav', () => view.$dropdown.height($content.height()))\n }\n })\n\n view.$triggers.on('mouseleave', view.handleMouseLeave.bind(this))\n view.$dropdown.on('mouseleave', view.handleMouseLeave.bind(this))\n view.$triggers.on('mouseenter', view.handleMouseEnter.bind(this))\n view.$dropdown.on('mouseenter', view.handleMouseEnter.bind(this))\n\n view.$triggers.on('mouseleave', () => clearTimeout(view.showTimer))\n view.$triggers.on('mouseenter', function () {\n view.showTimer = setTimeout(() => view.showContent($(this).attr('data-trigger')), 100)\n $(window).off('load.nav')\n })\n\n const links = this.$el.find('.nav__bar-link')\n if (links) {\n links.each((index, value) =>\n value.addEventListener('click', function (event) {\n trackInternalEvent('click_website_menu', {\n website_host: window.location.host,\n targetUrl: value.href,\n copy: value.innerText,\n menu_section: value.getAttribute('data-trigger') || value.innerText,\n label: window.location.pathname,\n })\n }),\n )\n }\n\n const logo = this.$el.find('.nav__bar-logo-rio')\n if (logo) {\n logo.each((index, value) => value.addEventListener('click', () => addNavigationEvent(value)))\n }\n\n const myAccountSignedIn = this.$el.find('#my_account_signed_in')\n if (myAccountSignedIn) {\n myAccountSignedIn.each((index, value) =>\n value.addEventListener('click', () => addNavigationEvent(value)),\n )\n }\n\n const myAccount = this.$el.find('#my_account')\n if (myAccount) {\n myAccount.each((index, value) =>\n value.addEventListener('click', () => addNavigationEvent(value)),\n )\n }\n\n const buildResume = this.$el.find('#build_resume')\n if (buildResume) {\n buildResume.each((index, value) => {\n value.addEventListener('click', () => {\n addNavigationEvent(value)\n trackInternalEvent('click_sign_up', {\n block: $(window).scrollTop() > 0 ? 'sticky' : 'static',\n label: value.getAttribute('data-label') || window.location.pathname,\n })\n })\n })\n }\n }\n\n hideContent(name) {\n this.categories[name].trigger.removeClass('is-content-active')\n this.categories[name].content.removeClass('is-visible')\n this.visibleContent = null\n }\n\n showContent(name) {\n if (this.visibleContent) this.hideContent(this.visibleContent)\n\n this.categories[name].trigger.addClass('is-content-active')\n this.categories[name].content.addClass('is-visible')\n\n trackInternalEvent('open_website_menu', {\n menu_section: name,\n website_host: window.location.host,\n copy: this.categories[name].trigger[0].innerText,\n label: window.location.pathname,\n })\n\n this.$dropdown.height(this.categories[name].content.height())\n this.toggleDropdown(true)\n\n this.visibleContent = name\n }\n\n toggleDropdown(visible) {\n this.$el.toggleClass('is-dropdown-visible', visible)\n this.$dropdown.toggleClass('is-visible', visible).toggleClass('is-hidden', !visible)\n\n visible ? this.headroom.freeze() : this.headroom.unfreeze()\n }\n\n handleMouseEnter() {\n clearTimeout(this.hideTimer)\n }\n\n handleMouseLeave() {\n this.hideTimer = setTimeout(() => this.toggleDropdown(false), 50)\n }\n\n initHeadroom() {\n const makeNavSticky = this.$el.hasClass('make--sticky')\n const offset = makeNavSticky ? null : 100\n\n this.headroom = new Headroom(this.$el.get(0), {\n offset,\n tolerance: 10,\n classes: {\n pinned: 'nav--pinned',\n unpinned: 'nav--unpinned',\n },\n })\n\n const updateState = () => {\n const shouldUseHeadroom = !makeNavSticky && window.innerWidth > 1023\n const { initialised } = this.headroom\n\n if (shouldUseHeadroom && !initialised) {\n this.headroom.init()\n } else if (!shouldUseHeadroom && initialised) {\n this.headroom.destroy()\n }\n }\n\n $(window).on('resize', updateState)\n updateState()\n }\n}\n\nready(function () {\n new Nav($('.nav'))\n})\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\n\nclass PricingFaqView {\n constructor($el) {\n if ($el.length === 0) return\n\n const view = this\n view.$el = $el\n view.$items = $el.find('.pricing__faq-item')\n view.openIndex = -1\n\n view.$items.each(function (index) {\n $(this).on('click', () => view.toggle(index))\n })\n }\n\n open(index) {\n const $item = this.$items.eq(index)\n const $answer = $item.find('.pricing__faq-answer')\n $item.addClass('is-open')\n $answer.animate({ height: $answer.get(0).scrollHeight }, 300)\n this.openIndex = index\n }\n\n close(index) {\n const $item = this.$items.eq(index)\n $item.removeClass('is-open')\n $item.find('.pricing__faq-answer').animate({ height: 0 }, 300)\n this.openIndex = -1\n }\n\n toggle(index) {\n if (this.openIndex === index) {\n this.close(index)\n } else if (this.openIndex !== -1) {\n this.close(this.openIndex)\n this.open(index)\n } else {\n this.open(index)\n }\n }\n}\n\n// Init\nready(function () {\n new PricingFaqView($('.pricing__faq'))\n})\n","import $ from 'jquery'\nimport { ready } from 'shared/ready'\nimport { Swiper, Autoplay, EffectFade } from 'swiper'\nimport VisibilityObserver from '../support/VisibilityObserver'\nimport matchMediaQueries from '../support/mediaQueries'\n\nSwiper.use([Autoplay, EffectFade])\n\nclass Showcase {\n constructor(node) {\n this.$el = $(node)\n this.$gallery = this.$el.find('.showcase__videos')\n\n // Prevent videos from being downloaded until we need them\n new VisibilityObserver(this.$gallery, {\n rootMargin: '20% 0% 20% 0%',\n callback: this.insertVideos,\n })\n }\n\n // Create video players/nodes\n insertVideos = () => {\n this.$slides = this.$gallery.find('.showcase__video')\n this.videos = []\n\n this.$slides.each((i, slideNode) => {\n const $slide = $(slideNode)\n const src = $slide.data('video-src')\n\n const $video = $(`