{"version":3,"file":"chunk/512.d74230c6deaa9ccccae8.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/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/cookie/index.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/stickyTemplatesSelection.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/components/languageSelect.js","webpack://resume-io-frontend/./frontend/landing/js/views/billing.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 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'\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 { 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 = $(`