{"version":3,"sources":["app/js/common/trustpilot.js","app/js/page.home.js","app/js/video-player.js","app/js/page.pm-submenu.js","app/js/14-days-trial-modal.js","app/js/common/pro-banner.js","app/js/common/image-tooltip.js","app/js/common/beauty-slider.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"roadmaps.min.js","sourcesContent":["var PES = PES || {};\r\nPES.TrustPilot = function () {\r\n var trustPilotKey = \"trust-pilot-data\";\r\n var cacheDurationMs = 1000 * 60 * 60 * 24 * 7;\r\n var defaultScore = { TrustScore: 4.5, Stars: 4.5, TotalReviewers: 5489 }\r\n\r\n var setTrustPilotData = function (data) {\r\n $(\".trust-score-anchor\").html(data.TrustScore);\r\n $(\".total-reviewers-anchor\").html(data.TotalReviewers);\r\n //$(\".current-star-rating > .stars\").css(\"width\", data.Stars * 20 + \"%\");\r\n };\r\n\r\n var trustPilotExists = function () {\r\n return ($(\".total-reviewers-anchor\").length && $(\".trust-score-anchor\").length) || $(\".current-star-rating > .stars\").length ;\r\n };\r\n\r\n var localStorageAvailable = function() {\r\n return typeof (Storage) !== \"undefined\";\r\n };\r\n\r\n var cacheExpired = function(timestamp) {\r\n if (timestamp) {\r\n var currentTime = (new Date()).getTime();\r\n return currentTime - timestamp > cacheDurationMs;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n var loadTrustScore = function (trustPilotUrl) {\r\n $.get(trustPilotUrl)\r\n .done(function (response) {\r\n setTrustPilotData(response);\r\n if (localStorageAvailable()) {\r\n response.Timestamp = (new Date()).getTime();\r\n localStorage.setItem(trustPilotKey, JSON.stringify(response));\r\n }\r\n })\r\n .fail(function () {\r\n setTrustPilotData(defaultScore);\r\n });\r\n };\r\n\r\n var init = function (trustPilotUrl) {\r\n if (trustPilotExists()) {\r\n if (localStorageAvailable()) {\r\n var trustScore = localStorage.getItem(trustPilotKey);\r\n if (trustScore) {\r\n var data = JSON.parse(trustScore);\r\n if (!cacheExpired(data.Timestamp)) {\r\n setTrustPilotData(data);\r\n } else {\r\n loadTrustScore(trustPilotUrl);\r\n }\r\n } else {\r\n loadTrustScore(trustPilotUrl);\r\n }\r\n } else {\r\n loadTrustScore(trustPilotUrl);\r\n }\r\n }\r\n };\r\n\r\n return {\r\n init: init\r\n };\r\n}();","(function ($) {\r\n $(\"#awardBadge\").on(\"mouseover\", function () {\r\n var awardPopup = $(\".award-badge-popup\");\r\n awardPopup.fadeIn();\r\n\r\n var badgeOffset = $(this).offset();\r\n var badgeWidth = $(this).width();\r\n\r\n var popupUpperSliceHeight = 200;\r\n var badgeUpperSliceHeight = 22;\r\n\r\n awardPopup.offset({\r\n top: badgeOffset.top - popupUpperSliceHeight + badgeUpperSliceHeight,\r\n left: badgeOffset.left + badgeWidth - 5\r\n });\r\n awardPopup.toggleClass(\"active\");\r\n }).on(\"mouseleave\", function () {\r\n var awardPopup = $(\".award-badge-popup\");\r\n awardPopup.toggleClass(\"active\");\r\n });\r\n\r\n $(\"#carousel\").carousel({ interval: 4000 });\r\n\r\n $(\"#carousel\").find(\".item.active .image\").fadeIn(500);\r\n\r\n $(\"#carousel\").on(\"slide.bs.carousel\", function () {\r\n $(this).find(\".item.active .image\").fadeOut(100);\r\n }).on(\"slid.bs.carousel\", function () {\r\n $(this).find(\".item.active .image\").fadeIn(500);\r\n });\r\n\r\n $(\".tipzone\").popover({ placement: \"right\", trigger: \"hover\" });\r\n\r\n $(\"#buttonClose\").on(\"click\", function () {\r\n $(\"#carousel-container\").hide();\r\n $(\"#otl-description\").attr(\"style\", \"max-height:100%;width:100%;\");\r\n\r\n $(\".header-bottom\").css(\"margin-bottom\", 0);\r\n });\r\n\r\n})(jQuery);","var PES = PES || {};\r\nPES.VideoPlayer = function () {\r\n var init = function () {\r\n $(document).on(\"click\", \".video-container\", function () {\r\n //uses the parent and next for selection, so it will work with multiple videos in the same page\r\n $(this).find(\".video-container__cover\").remove();\r\n var iframe = $(this).find(\"iframe\");\r\n\r\n iframe.show();\r\n iframe.attr(\"src\", $(iframe).attr(\"src\") + \"?autoplay=1\");\r\n });\r\n\r\n $(document).on(\"mouseenter\", \".video-container\", function () {\r\n $(this).find(\".video-play\").attr(\"src\", \"https://img.officetimeline.com/website/Content/images/button-icons/play-video-hover.png\");\r\n });\r\n\r\n $(document).on(\"mouseleave\", \".video-container\", function () {\r\n $(this).find(\".video-play\").attr(\"src\", \"https://img.officetimeline.com/website/Content/images/button-icons/play-video-default.png\");\r\n });\r\n };\r\n\r\n return {\r\n init: init\r\n };\r\n}","var ProjectManagement = ProjectManagement || {};\r\n\r\nProjectManagement.Submenu = function () {\r\n var init = function (activeItemIndex) {\r\n var menuItem = $(\".submenu a\")[activeItemIndex - 1];\r\n $(menuItem).addClass(\"btn--ghost-secondary\").removeClass(\"btn--ghost-gray\");\r\n };\r\n\r\n return {\r\n init: init\r\n };\r\n}();","PES = PES || {}\r\nPES.TrialModal = function () {\r\n PES.emailValidation =\r\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n PES.scrollPosHidingPopup = 100;\r\n var registerUserForTrial = function () {\r\n $(\"#submitPlanviewRequest\").on(\"click\", function (e) {\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n tryForFreePost();\r\n });\r\n $(\".trial-email\").on('keyup', function (e) {\r\n if (e.keyCode == 13) {\r\n tryForFreePost();\r\n }\r\n });\r\n function tryForFreePost() {\r\n var email = $(\".trial-email\").val();\r\n if (PES.emailValidation.test(String(email).toLowerCase())) {\r\n $(\".try-for-free-txt\").addClass(\"inactive\");\r\n $(\".try-for-free\").attr(\"disabled\", \"disabled\");\r\n $(\".loading-gif\").removeClass(\"inactive\");\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: $(\".try-for-free\").attr(\"data-url\"),\r\n data: { email: email },\r\n success: function (response) {\r\n setTimeout(function () {\r\n $(\".try-for-free\").removeAttr(\"disabled\");\r\n $(\".loading-gif\").addClass(\"inactive\");\r\n\r\n $(\".try-for-free-txt\").removeClass(\"inactive\");\r\n }, 100);\r\n\r\n if (response.trialUserExists) {\r\n showErrorMessage(\".trial-email\", $(\".trial-email\").attr(\"data-used-email\"));\r\n } else if (!response.isEmailValid) {\r\n showErrorMessage(\".trial-email\", $(\".trial-email\").attr(\"data-invalid-email\"));\r\n } else {\r\n $(\".trust-pilot-content\").addClass(\"hidden\");\r\n $(\".planview-form\").css(\"display\", \"none\");\r\n $(\".enrolment-confirmation\").removeClass(\"hidden\");\r\n }\r\n }\r\n });\r\n } else {\r\n showErrorMessage(\".trial-email\", $(\".trial-email\").attr(\"data-invalid-email\"));\r\n }\r\n }\r\n\r\n function showErrorMessage(element, errorMessage) {\r\n $(element).first().popover({\r\n content: errorMessage,\r\n placement: \"top\",\r\n trigger: \"manual\"\r\n }).popover(\"show\");\r\n\r\n $(\"body\").on('click', function (e) {\r\n if (!$(e.target).hasClass(\"popover\") && !$(e.target).hasClass(\"try-for-free\") && $(\".popover\").length > 0) {\r\n $(\".popover\").popover(\"dispose\");\r\n }\r\n $(\"body\").off('click');\r\n });\r\n\r\n $(\".trial-email\").on(\"onkeydown\",\r\n function() {\r\n if ($(\".popover\").length > 0) {\r\n $(\".popover\").popover(\"dispose\");\r\n }\r\n });\r\n }\r\n\r\n setTimeout(function() {\r\n $(\".loading-gif\").html($(\".try-for-free\").attr(\"data-loading-text\"));\r\n },500);\r\n }\r\n\r\n\r\n var handlePopUpDisplay = function () {\r\n var startWindowScroll = $(window).scrollTop();\r\n\r\n if (startWindowScroll > PES.scrollPosHidingPopup) {\r\n $(\".new-banner.scroll-y\").removeClass(\"hide-popup\");\r\n } \r\n\r\n $(window).scroll(function () {\r\n var scroll = $(window).scrollTop();\r\n\r\n if (scroll >= PES.scrollPosHidingPopup) {\r\n $(\".new-banner.scroll-y\").removeClass(\"hide-popup\");\r\n } else {\r\n $(\".new-banner.scroll-y\").addClass(\"hide-popup\");\r\n }\r\n });\r\n }\r\n\r\n var init = function () {\r\n registerUserForTrial();\r\n handlePopUpDisplay();\r\n }\r\n\r\n return {\r\n init: init\r\n }\r\n}","var PES = PES || {};\r\nPES.ProBanner = function () {\r\n var showBanner = function () {\r\n var hasRibbon = '.image-area .slide-container .slide-item.has-ribbon';\r\n var ribbonContainer = '.right-area > .row.row__banner';\r\n\r\n if ($(hasRibbon).hasClass('active')) {\r\n $(ribbonContainer).addClass('active');\r\n } else {\r\n $(ribbonContainer).removeClass('active');\r\n }\r\n };\r\n\r\n var init = function () {\r\n showBanner();\r\n };\r\n\r\n return {\r\n init: init\r\n };\r\n}();","var PES = PES || {};\r\nPES.ImageTooltip = function () {\r\n function initElement(element) {\r\n var tipTitle = $(element).attr('title');\r\n var tipText = $(element).data('content');\r\n\r\n var tipContent = \"
\" + tipTitle + \"
\" + tipText;\r\n\r\n tippy(element, {\r\n content: tipContent,\r\n trigger: 'click',\r\n distance: '-5',\r\n maxWidth: '240px'\r\n });\r\n\r\n }\r\n\r\n function init() {\r\n $('[data-toggle=\"popover\"]').each(function (index, element) {\r\n initElement(element);\r\n });\r\n }\r\n return {\r\n init: init,\r\n initElement: initElement\r\n };\r\n};","var PES = PES || {};\r\nPES.BeautySlider = function () {\r\n function init(container, hasTooltips, navContainer, navAsThumbnails) {\r\n var options = {\r\n items: 1,\r\n mouseDrag: true,\r\n touch: true,\r\n autoplayButtonOutput: false,\r\n speed: 1000,\r\n loop: true,\r\n mode: 'gallery',\r\n navPosition: 'bottom' \r\n }; \r\n if (container) {\r\n options.container = container;\r\n }\r\n if (navContainer) {\r\n options.navContainer = navContainer;\r\n }\r\n if (options.navAsThumbnails) {\r\n options.navAsThumbnails = navAsThumbnails;\r\n }\r\n\r\n var slider = tns(options);\r\n\r\n var onSliderIndexChanged = function(info, eventName) {\r\n //remove and reinsert the pulsating circle elements (this is required in Safari, in order for the animation to work properly)\r\n const activeSlideCircles = $(\"div.slider-with-circles.tns-slide-active\").children(\"span.circle-with-popup\");\r\n if (activeSlideCircles.length > 0) {\r\n activeSlideCircles.each(function() {\r\n const element = this;\r\n const clone = element.cloneNode(true);\r\n element.parentNode.replaceChild(clone, element);\r\n //reinit the tooltip for cloned elements\r\n if (hasTooltips) {\r\n PES.ImageTooltip().initElement(clone);\r\n }\r\n });\r\n } \r\n };\r\n\r\n var resetToZeroIndex = function (info, eventName) {\r\n \r\n if (info.index == 0) { \r\n $(\".made-with-pro-badge\").addClass(\"is-shown\"); \r\n } else {\r\n $(\".made-with-pro-badge\").removeClass(\"is-shown\");\r\n }\r\n\r\n if (info.index == 1) {\r\n $(\".made-with-pro-plus-badge\").addClass(\"is-shown\");\r\n } else {\r\n $(\".made-with-pro-plus-badge\").removeClass(\"is-shown\");\r\n }\r\n\r\n if (info.index == 7 && $(info.container).hasClass('online-general-slider')) {\r\n slider.goTo('next');\r\n slider.goTo('prev'); \r\n }\r\n }\r\n\r\n var isSafari = navigator.vendor &&\r\n navigator.vendor.indexOf('Apple') > -1 &&\r\n navigator.userAgent &&\r\n navigator.userAgent.indexOf('CriOS') == -1 &&\r\n navigator.userAgent.indexOf('FxiOS') == -1;\r\n if (isSafari) {\r\n slider.events.on('indexChanged', onSliderIndexChanged);\r\n }\r\n\r\n slider.events.on('indexChanged', resetToZeroIndex);\r\n }\r\n return {\r\n init: init\r\n };\r\n};"]}