{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap ba2db9685c7d0a25b08f","webpack:///../cpc/utils/focus-ring-handler.js","webpack:///../cpc/utils/language.data.js","webpack:///C:/Project/website-style-guide/styleguide-components/src/main/webapp/~/prismjs/prism.js","webpack:///../cpc/utils/polyfills/array.prototype.find.js","webpack:///../cpc/utils/polyfills/customEvent.js","webpack:///./components/global/combinations/DS-Code-Block-Advance/ds-code-block-advance.component.js","webpack:///./components/global/combinations/DS-Code-Block/ds-code-block.component.js","webpack:///./components/global/combinations/DS-Content-Block/content-block.js","webpack:///./components/global/combinations/DS-Dropdown/select.js","webpack:///./components/global/combinations/DS-Footer/footer.component.js","webpack:///./components/global/combinations/DS-Homepage/homepage-carousel-m.js","webpack:///./components/global/combinations/DS-Homepage/homepage.component.js","webpack:///./components/global/combinations/DS-Interactive-Examples/ds-interactive-examples.component.js","webpack:///./components/global/combinations/DS-Live-Code-Demo/ds-live-code-demo.component.js","webpack:///./components/global/combinations/DS-Tooltip/ds-tooltip.component.js","webpack:///./components/global/combinations/header/header.component.js","webpack:///./components/global/combinations/related-content/related-content.component.js","webpack:///./components/global/combinations/side-nav/side-nav.component.js","webpack:///./components/global/combinations/sitemap/sitemap.component.js","webpack:///../cpc/utils/auth.module.js","webpack:///../cpc/utils/cookies.js","webpack:///../cpc/utils/globals.js","webpack:///../cpc/utils/resize-handler.js","webpack:///../cpc/utils/slider-util.js","webpack:///../cpc/utils/viewport-utils.js","webpack:///./components/global/combinations/DS-Footer/footer.component.html.js","webpack:///./components/global/combinations/DS-Footer/footer.locale.en.js","webpack:///./components/global/combinations/DS-Footer/footer.locale.fr.js","webpack:///./components/global/combinations/DS-Homepage/homepage-carousel.js","webpack:///./components/global/combinations/header/header.locale.en.js","webpack:///./components/global/combinations/header/header.locale.fr.js","webpack:///./components/global/combinations/side-nav/side-nav-overlay.component.js","webpack:///./components/global/combinations/side-nav/side-nav.utils.js","webpack:///./design-sys.js","webpack:///(webpack)/buildin/global.js"],"names":["FocusRingHandler","elementTypes","Array","prototype","slice","call","document","querySelectorAll","forEach","element","addEventListener","onFocus","onClick","evt","isKeyboardActivated","isActivatedByKeyboard","target","setAttribute","removeAttribute","detail","pointerType","mozInputSource","cookieName","setLANG","lang","setCookie","getRootDomain","window","location","syncAllLangCookies","deleteLANG","REGEX_FRENCH","getPageLanguage","htmlLang","querySelector","getAttribute","test","getLANG","getCookie","find","Object","defineProperty","value","predicate","TypeError","o","len","length","thisArg","arguments","k","kValue","undefined","findIndex","CustomEvent","event","params","bubbles","cancelable","createEvent","initCustomEvent","Event","Prism","require","CodeBlockAdvanceComponent","codeBlockAdvanceContainer","codeElements","map","hasBeenActivated","language","buttonGroup","copyButton","codeEle","innerText","innerHTML","replace","rawCode","prepRawCode","highlightCode","languages","onButtonGroupClick","onCopyButtonClick","activatedLanguage","activateCodePane","ele","text","trim","highlight","activatedParentLanguage","selectedLanguage","selectedTabElement","selectText","elem","style","color","transition","execCommand","setTimeout","initiator","blocks","eleToActivate","classList","remove","add","found","block","doc","range","selection","body","createTextRange","moveToElementText","select","getSelection","createRange","selectNodeContents","removeAllRanges","addRange","CodeBlockComponent","codeBlockContainer","onCodeClick","matchingCodeBlock","contains","elementLanguage","findCodeElement","SELECTOR_CONTENT_BLOCK","SELECTOR_CONTENT_BLOCK_BODY","DsContentBlock","cbBodyElms","addLastRowClass","cbElms","i","rows","howManyRows","doAddClass","cbBodyElm","rowCols","rowItems","push","itemElms","itemCols","parseInt","exec","items","SELECTOR_NATIVE_SELECT","DSCpcSelects","cpcSelects","nativeSelectElms","cpcSelect","DSCpcSelect","extraClassNames","className","init","id","createObserver","CLASS_OPEN","selectElm","nativeSelectElm","cpcSelectElm","toggle","comboElm","comboListElm","options","opened","selected","rowsToDisplay","onFirstOpen","open","close","doToggle","disable","enable","reset","createElement","CpcSelectToggle","appendChild","optionElms","option","CpcSelectOption","prev","next","isSelected","setText","textContent","parentNode","insertBefore","display","disabled","unRegisterEventListener","registerEventListener","mutate","mutations","mutation","observer","MutationObserver","config","attributes","childList","subtree","observe","e","preventDefault","chooseOption","onKeydown","onClickToggle","onClickCombo","onClickDocumentCpcSelect","onKeyupDocumentCpcSelect","initialize","removeEventListener","key","which","keyCode","idx","parentElement","getBoundingClientRect","top","scrollTop","HEIGHT","bottom","focus","opt","unSelect","overflow","rePosition","scrollToSelected","diff","index","toggleRect","spaceBelow","innerHeight","optionHeight","openBelow","maxHeight","height","isDescendant","activeElement","parent","child","node","toggleElm","toggleTextElm","indicator","title","optSrcElm","optionSourceElm","optionElm","prevOpt","nextOpt","spanElm","val","Footer","footerContainer","langSelector","resources","templateHtml","authModule","getDomain","langElm","navToggleText","onLangSelectorClick","toggleURL","localDir","newURL","hostname","protocol","host","search","href","constants","slideAreaContainerSelector","slideContainerSelector","animationTime","sliderObj","controllerElms","carouselElm","slideTrackElm","HomeCarouselMobile","onSlideEnd","initializeSlider","setSlideTrackHeight","setResizeHandler","sliderAreas","dots","slideContainers","gap","isCurrentViewportMobile","slideWidth","offsetWidth","nextSlideStartAt","j","len2","dotItem","prevSlide","nextSlide","dotSlideTo","bind","handleSlideEvent","allDots","curDot","curDotPos","indexOf","oldSlideClone","removeChild","findLastRightSlide","isLeft","furthestLeftIndex","findLastLeftSlide","slideCloneTmp","cloneNode","initClone","slideLeftIncrements","slideLeftOffset","nextSibling","slideDomClone","left","curSlide","checked","removeProperty","resizeHandler","categoryItemsClass","categoryItemCollection","debounceTimer","Homepage","categoryItemsActiveToggle","item","toggleActive","console","log","el","matchMedia","Foundation","media_queries","large","matches","xlarge","xxlarge","children","getElementsByTagName","InteractiveExamplesComponent","myInput","getElementById","passwordValidation","selectMenu","mobileTablesContainer","initializeDSTableComponent","onOptionChange","keyboardFocus","disableElement","maxCharacterLength","selectedItem","capital","number","divHeight","offsetHeight","visibility","upperCaseLetters","lowerCaseLetters","match","numbers","type","mobileContainer","table","tableColumns","prevLink","nextLink","dsPrevLinkClick","dsNextLinkClick","locale","dsGetFRLocale","dsGetENLocale","showClass","dsGetTableShowClass","showClassIndexMatch","curShowClassIndex","nextShowClassIndex","entry","enText","frText","textarea","maxchar","maxCharacter","codeBlockId","codeDemoId","mobileWidthVal","tabletWidthVal","checkingScreen","resizeWait","resizeTimer","clearTimeout","checkScreen","LiveCodeDemoComponent","liveCodeDemoContainer","liveCodeDemoBtns","liveCodeOutputContainer","demoBtns","demoOutput","demoBtnsContainer","htmlHeadIncludes","createAssets","getComputedStyle","demoBtnClick","demoBtnPress","codeId","codeDemo","sourceHtml","htmlEle","sourceCss","cssEle","sourceJs","jsEle","html","encodeURI","iframeDoc","contentWindow","write","unescape","data","demoBlockIdx","demoBlocks","handleVerticalPageOverflow","curEle","srcElement","blur","setActive","err","isDesktop","width","marginLeft","position","pageWidth","innerWidth","documentElement","clientWidth","postMessage","containerWidth","click","assetsHTML","assetStr","cssSources","head","jsSources","src","demoBlockEle","Math","max","scrollHeight","clientHeight","pageHeight","$","jQuery","TooltipComponent","ready","initializeTooltip","abc","targets","tooltip","tipTitle","attr","tip","removeAttr","css","appendTo","initTooltip","centerPosition","valueOf","posLeft","posRight","posTop","right","animate","opacity","resize","removeTooltip","on","isVisible","setTooltip","outerWidth","offset","outerHeight","addClass","removeClass","outline","Header","closed","layoutSelector","leftPanelOpenClass","leftPanelCloseClass","hamburgerMenuSelector","logoSelector","checkBoxClass","logoElm","logo_aria_label","logo_url","hamburgerElm","onHamburgerClicked","hamburger_aria_label","rightPanel","closeLeftPanel","acc","toggleMenu","openLeftPanel","layoutElm","RelatedContent","relatedContentContainerEle","relatedContentItemEles","instance","initializeLinkHandlers","links","link","onLinkClick","curLink","SideNav","sideNavEle","closeEles","layout","elementToOverlay","backEles","sideNavOverlay","sideNavUtils","initializeCloseHandlers","addClickListener","onCloseMenuClick","self","addTransitionListener","closing","onBackClick","onL1SideNavClick","onL2ParentLinkClick","closeMenu","isLevel1Open","goBackToL1","categoryId","activeL2CategoryId","getActiveL2Category","toggleL1Open","toggleAllL1Links","toggleAllL2Links","selectedL2Category","setL2CategoryVisibility","toggleAllL2ParentLinks","resetLevelView","toggleTabIndex","sideNavKeyboard","focusToOpener","setOpener","setInitialFocus","isOpen","toggleL2ParentLink","parentLink","activeL2Category","isActive","container","tabIndex","isExpanded","SiteMap","sitemap","rootName","root","findRoot","DEFAULT_ROOT_NAME","nodes","createLevel1","level1Container","selectorLevel1Container","Error","parseLevel1","insertAdjacentHTML","desc","description","toLowerCase","level1Nodes","pathName","pathname","hasChildren","createMenu","getNodeId","join","nodeId","firstLevelLinks","splitPath","split","pathLength","firstLevelNode","secondLevel","secondLevelIndex","hasSubMenuChildren","thirdLevelLinks","thirdNode","thirdLevelObject","getLink","label","makeLableUrlSub","linkMatchedSub","childLink","pop","parentHtml","parentUrl","makeLableUrl","linkMatched","preserveQs","setPRODurl","substring","liveSiteENRelativePrefix","dotDesignENRelativePrefix","liveSiteFRRelativePrefix","dotDesignFRRelativePrefix","localhostRegEx","initModule","getSSOGroup","getIsAuthenticated","content","getSSOToken","getAccountGroup","getCSRFToken","btoa","getSSOUserName","getHostURL","getSSODomain","getEpostDomain","getESTSubdomain","hostSplit","getLogoutLink","domain","ipAddyRegEx","isProduction","expiredays","ifEscape","exdate","Date","expiredate","cookieValue","setDate","getDate","toGMTString","expires","escape","cookie","start","end","mobileUpperBound","tabletUpperBound","smallDesktopUpperBound","events","mouseEnter","mouseLeave","mouseOver","keypress","focusOut","cwc","componentClassName","false","true","a11y","ariaLabel","ariaRole","ResizeHandler","callbacks","running","callback","globals","requestAnimationFrame","runCallbacks","addCallback","Slider","sliderRow","animateTime","viewableSlidesCount","isContinuous","addActive","hiddenSlideContainers","showTime","xDown","yDown","isClicked","slideEvent","isAnimating","sliderContainers","setTabIndex","slideLink","nodeName","prevClone","nextClone","slideArea","findAncestor","prevParent","nextParent","handleClick","handleKey","nextLeft","slideClone","slideParent","handleTouchStart","passive","handleTouchMove","handleTouchEnd","clickHandler","keyUpHandler","curElement","slide","stopPropagation","touches","clientX","clientY","xUp","yUp","xDiff","yDiff","abs","refElement","parentElementRef","dispatchEvent","curIndex","findCurrentIndex","curIndexTrack","newLeft","newLefts","showHiddenSlideContainers","furthestRightIndex","h2Title","insertBeforeDomEle","firstChild","setNextSlideTabIndex","dotsItems","activeDot","triggerSlideEndEvent","clone","leftOffset","cloneClass","insertionEle","insertBeforeEle","addEvents","furthestLeft","slideIndex","furthestRight","counter","sliderElm","getFocusableElements","destroySliderElements","slider","slides","cls","localEl","selectedIndex","prevBtn","nextBtn","btnClick","keepSliding","setInterval","clearInterval","SMALL_ONLY","MEDIUM_ONLY","LARGE_UP","isVisibleAtViewportY","yFrom","yTo","rect","isCurrentViewportTablet","isCurrentViewportDesktop","cpDomain","accessibilityUrl","accessibility","legalUrl","legal","privacyUrl","privacy","copyright","canadaPost","canadaPostUrl","canada","canadaUrl","HomeCarouselDesktop","carousel","initAccessibility","controls","SlideControl","slideElm","nextElm","controlOnKeyup","SideNavOverlay","overlay","SideNavUtils","sideNav","l2CategoryNav","parentL2s","setup","setupFavicon","setupSideNav","setupHeader","setupFooter","setupRelatedContent","setupCodeBlock","setupCodeBlockAdvance","setupInteractiveExamples","setupTooltipComponent","setupLiveCodeDemo","setupFocusRingActivation","setupHomepage","checkProdURLs","sitemapJson","toNavigation","relatedContent","rel","l","setPRODUrls","candaPostLinksCPC","candaPostLinksSCP"],"mappings":"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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF,YAAY;;AAEZ;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,wBAAwB,yBAAyB;AACjD;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,uCAAuC,mBAAmB;;AAE1D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mCAAmC,mEAAmE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,2BAA2B;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,yEAAyE;AACzE,EAAE;;AAEF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF,uBAAuB,KAAK;AAC5B;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,sDAAsD;AACtD;AACA,CAAC;;AAED;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,kBAAkB,QAAQ,WAAW;AACrC;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0GAA0G,EAAE;AAC5G,CAAC;;AAED;AACA;AACA,6FAA6F,IAAI,kBAAkB;AACnH;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,CAAC;;AAED;AACA;AACA,4BAA4B,GAAG,GAAG;AAClC;AACA;AACA;AACA,iBAAiB,GAAG,GAAG;AACvB;AACA;AACA,oBAAoB,EAAE;AACtB;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AA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","file":"design-sys.bundle.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"design-sys.bundle\"] = factory();\n\telse\n\t\troot[\"api\"] = root[\"api\"] || {}, root[\"api\"][\"design-sys.bundle\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 33);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap ba2db9685c7d0a25b08f","/**\r\n * Determines if an element was focused via keyboard or mouse. \r\n * \r\n * Purpose is to prevent Chrome from adding a focus ring around an element\r\n * that is mouse clicked. There is currently a known Chromium bug around this \r\n * (https://bugs.chromium.org/p/chromium/issues/detail?id=271023) and a CSS\r\n * level 4 selector that is in the works to address it \r\n * (https://drafts.csswg.org/selectors/#the-focusring-pseudo)\r\n * \r\n * This accomplishes the same goal as the what-input plugin, https://github.com/ten1seven/what-input, \r\n * but with a smaller footprint\r\n */\r\nclass FocusRingHandler {\r\n /**\r\n * \r\n * @param {string} elementTypes - querySelectorAll friendly list of \r\n * elements types \r\n */\r\n constructor(elementTypes) {\r\n this.elementTypes = elementTypes;\r\n }\r\n\r\n /**\r\n * Wires up focus and click handlers for outline determination\r\n */\r\n initialize() {\r\n Array.prototype.slice.call(document.querySelectorAll(this.elementTypes)).forEach((element) => { \r\n element.addEventListener('focus', onFocus);\r\n });\r\n Array.prototype.slice.call(document.querySelectorAll(this.elementTypes)).forEach((element) => { \r\n element.addEventListener('click', onClick);\r\n });\r\n }\r\n}\r\n\r\nfunction onClick(evt) {\r\n const isKeyboardActivated = isActivatedByKeyboard(evt);\r\n if (evt.target) {\r\n evt.target.setAttribute('data-activated-via', isKeyboardActivated ? 'keyboard' : 'mouse');\r\n }\r\n}\r\n\r\nfunction onFocus(evt) {\r\n if (evt.target) {\r\n evt.target.removeAttribute('data-activated-via');\r\n }\r\n}\r\n\r\nfunction isActivatedByKeyboard(evt) {\r\n return (!evt.detail && (!evt.pointerType ||\r\n (evt.pointerType && !evt.pointerType))) || evt.mozInputSource === 6;\r\n}\r\n\r\n\r\nexport default FocusRingHandler;\n\n\n// WEBPACK FOOTER //\n// ../cpc/utils/focus-ring-handler.js","/**\r\n * Simple API to get/set username, abstracts away from direct access to the persistence layer\r\n *\r\n * @example\r\n * \r\n */\r\nimport { getCookie, setCookie, getRootDomain, syncAllLangCookies } from './cookies';\r\n\r\nconst cookieName = 'LANG';\r\n\r\nfunction setLANG(lang) {\r\n setCookie(cookieName, lang, 9999, false, \r\n getRootDomain(window.location));\r\n syncAllLangCookies(lang, 9999);\r\n}\r\n\r\nfunction deleteLANG(lang) {\r\n setCookie(cookieName, lang, -1, false, \r\n getRootDomain(window.location));\r\n syncAllLangCookies(lang, -1);\r\n}\r\n\r\n// Mendix app using 'language-country' locale string, for example: 'fr-ca'(all lowercase)\r\nconst REGEX_FRENCH = /(^fr$|^fr[-_])/i;\r\nfunction getPageLanguage() {\r\n const htmlLang = document.querySelector('html').getAttribute('lang');\r\n return REGEX_FRENCH.test(htmlLang) ? 'fr' : 'en';\r\n}\r\n\r\nfunction getLANG() {\r\n return getCookie(cookieName);\r\n}\r\n\r\nexport { setLANG, deleteLANG, getPageLanguage, getLANG };\n\n\n// WEBPACK FOOTER //\n// ../cpc/utils/language.data.js","\n/* **********************************************\n Begin prism-core.js\n********************************************** */\n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t? self // if in worker\n\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n * MIT license http://www.opensource.org/licenses/mit-license.php/\n * @author Lea Verou http://lea.verou.me\n */\n\nvar Prism = (function(){\n\n// Private helper vars\nvar lang = /\\blang(?:uage)?-([\\w-]+)\\b/i;\nvar uniqueId = 0;\n\nvar _ = _self.Prism = {\n\tmanual: _self.Prism && _self.Prism.manual,\n\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\tutil: {\n\t\tencode: function (tokens) {\n\t\t\tif (tokens instanceof Token) {\n\t\t\t\treturn new Token(tokens.type, _.util.encode(tokens.content), tokens.alias);\n\t\t\t} else if (_.util.type(tokens) === 'Array') {\n\t\t\t\treturn tokens.map(_.util.encode);\n\t\t\t} else {\n\t\t\t\treturn tokens.replace(/&/g, '&').replace(/ text.length) {\n\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (greedy && i != strarr.length - 1) {\n\t\t\t\t\t\tpattern.lastIndex = pos;\n\t\t\t\t\t\tvar match = pattern.exec(text);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar from = match.index + (lookbehind ? match[1].length : 0),\n\t\t\t\t\t\t to = match.index + match[0].length,\n\t\t\t\t\t\t k = i,\n\t\t\t\t\t\t p = pos;\n\n\t\t\t\t\t\tfor (var len = strarr.length; k < len && (p < to || (!strarr[k].type && !strarr[k - 1].greedy)); ++k) {\n\t\t\t\t\t\t\tp += strarr[k].length;\n\t\t\t\t\t\t\t// Move the index i to the element in strarr that is closest to from\n\t\t\t\t\t\t\tif (from >= p) {\n\t\t\t\t\t\t\t\t++i;\n\t\t\t\t\t\t\t\tpos = p;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// If strarr[i] is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\t\tif (strarr[i] instanceof Token) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Number of tokens to delete and replace with the new match\n\t\t\t\t\t\tdelNum = k - i;\n\t\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpattern.lastIndex = 0;\n\n\t\t\t\t\t\tvar match = pattern.exec(str),\n\t\t\t\t\t\t\tdelNum = 1;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!match) {\n\t\t\t\t\t\tif (oneshot) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(lookbehind) {\n\t\t\t\t\t\tlookbehindLength = match[1] ? match[1].length : 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar from = match.index + lookbehindLength,\n\t\t\t\t\t match = match[0].slice(lookbehindLength),\n\t\t\t\t\t to = from + match.length,\n\t\t\t\t\t before = str.slice(0, from),\n\t\t\t\t\t after = str.slice(to);\n\n\t\t\t\t\tvar args = [i, delNum];\n\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\t++i;\n\t\t\t\t\t\tpos += before.length;\n\t\t\t\t\t\targs.push(before);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy);\n\n\t\t\t\t\targs.push(wrapped);\n\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\targs.push(after);\n\t\t\t\t\t}\n\n\t\t\t\t\tArray.prototype.splice.apply(strarr, args);\n\n\t\t\t\t\tif (delNum != 1)\n\t\t\t\t\t\t_.matchGrammar(text, strarr, grammar, i, pos, true, token);\n\n\t\t\t\t\tif (oneshot)\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\ttokenize: function(text, grammar, language) {\n\t\tvar strarr = [text];\n\n\t\tvar rest = grammar.rest;\n\n\t\tif (rest) {\n\t\t\tfor (var token in rest) {\n\t\t\t\tgrammar[token] = rest[token];\n\t\t\t}\n\n\t\t\tdelete grammar.rest;\n\t\t}\n\n\t\t_.matchGrammar(text, strarr, grammar, 0, 0, false);\n\n\t\treturn strarr;\n\t},\n\n\thooks: {\n\t\tall: {},\n\n\t\tadd: function (name, callback) {\n\t\t\tvar hooks = _.hooks.all;\n\n\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\thooks[name].push(callback);\n\t\t},\n\n\t\trun: function (name, env) {\n\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var i=0, callback; callback = callbacks[i++];) {\n\t\t\t\tcallback(env);\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar Token = _.Token = function(type, content, alias, matchedStr, greedy) {\n\tthis.type = type;\n\tthis.content = content;\n\tthis.alias = alias;\n\t// Copy of the full string this token was created from\n\tthis.length = (matchedStr || \"\").length|0;\n\tthis.greedy = !!greedy;\n};\n\nToken.stringify = function(o, language, parent) {\n\tif (typeof o == 'string') {\n\t\treturn o;\n\t}\n\n\tif (_.util.type(o) === 'Array') {\n\t\treturn o.map(function(element) {\n\t\t\treturn Token.stringify(element, language, o);\n\t\t}).join('');\n\t}\n\n\tvar env = {\n\t\ttype: o.type,\n\t\tcontent: Token.stringify(o.content, language, parent),\n\t\ttag: 'span',\n\t\tclasses: ['token', o.type],\n\t\tattributes: {},\n\t\tlanguage: language,\n\t\tparent: parent\n\t};\n\n\tif (o.alias) {\n\t\tvar aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias];\n\t\tArray.prototype.push.apply(env.classes, aliases);\n\t}\n\n\t_.hooks.run('wrap', env);\n\n\tvar attributes = Object.keys(env.attributes).map(function(name) {\n\t\treturn name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '"') + '\"';\n\t}).join(' ');\n\n\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + (attributes ? ' ' + attributes : '') + '>' + env.content + '';\n\n};\n\nif (!_self.document) {\n\tif (!_self.addEventListener) {\n\t\t// in Node.js\n\t\treturn _self.Prism;\n\t}\n\n\tif (!_.disableWorkerMessageHandler) {\n\t\t// In worker\n\t\t_self.addEventListener('message', function (evt) {\n\t\t\tvar message = JSON.parse(evt.data),\n\t\t\t\tlang = message.language,\n\t\t\t\tcode = message.code,\n\t\t\t\timmediateClose = message.immediateClose;\n\n\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\tif (immediateClose) {\n\t\t\t\t_self.close();\n\t\t\t}\n\t\t}, false);\n\t}\n\n\treturn _self.Prism;\n}\n\n//Get current script and highlight\nvar script = document.currentScript || [].slice.call(document.getElementsByTagName(\"script\")).pop();\n\nif (script) {\n\t_.filename = script.src;\n\n\tif (!_.manual && !script.hasAttribute('data-manual')) {\n\t\tif(document.readyState !== \"loading\") {\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(_.highlightAll);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(_.highlightAll, 16);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tdocument.addEventListener('DOMContentLoaded', _.highlightAll);\n\t\t}\n\t}\n}\n\nreturn _self.Prism;\n\n})();\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n\n/* **********************************************\n Begin prism-markup.js\n********************************************** */\n\nPrism.languages.markup = {\n\t'comment': //,\n\t'prolog': /<\\?[\\s\\S]+?\\?>/,\n\t'doctype': //i,\n\t'cdata': //i,\n\t'tag': {\n\t\tpattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'tag': {\n\t\t\t\tpattern: /^<\\/?[^\\s>\\/]+/i,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^<\\/?/,\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'attr-value': {\n\t\t\t\tpattern: /=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/i,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t/^=/,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /(^|[^\\\\])[\"']/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\/?>/,\n\t\t\t'attr-name': {\n\t\t\t\tpattern: /[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t},\n\t'entity': /&#?[\\da-z]{1,8};/i\n};\n\nPrism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n\tPrism.languages.markup['entity'];\n\n// Plugin to make entity title show the real entity, idea by Roman Komarov\nPrism.hooks.add('wrap', function(env) {\n\n\tif (env.type === 'entity') {\n\t\tenv.attributes['title'] = env.content.replace(/&/, '&');\n\t}\n});\n\nPrism.languages.xml = Prism.languages.markup;\nPrism.languages.html = Prism.languages.markup;\nPrism.languages.mathml = Prism.languages.markup;\nPrism.languages.svg = Prism.languages.markup;\n\n\n/* **********************************************\n Begin prism-css.js\n********************************************** */\n\nPrism.languages.css = {\n\t'comment': /\\/\\*[\\s\\S]*?\\*\\//,\n\t'atrule': {\n\t\tpattern: /@[\\w-]+?.*?(?:;|(?=\\s*\\{))/i,\n\t\tinside: {\n\t\t\t'rule': /@[\\w-]+/\n\t\t\t// See rest below\n\t\t}\n\t},\n\t'url': /url\\((?:([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|.*?)\\)/i,\n\t'selector': /[^{}\\s][^{};]*?(?=\\s*\\{)/,\n\t'string': {\n\t\tpattern: /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'property': /[-_a-z\\xA0-\\uFFFF][-\\w\\xA0-\\uFFFF]*(?=\\s*:)/i,\n\t'important': /\\B!important\\b/i,\n\t'function': /[-a-z0-9]+(?=\\()/i,\n\t'punctuation': /[(){};:]/\n};\n\nPrism.languages.css['atrule'].inside.rest = Prism.languages.css;\n\nif (Prism.languages.markup) {\n\tPrism.languages.insertBefore('markup', 'tag', {\n\t\t'style': {\n\t\t\tpattern: /()[\\s\\S]*?(?=<\\/style>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.css,\n\t\t\talias: 'language-css',\n\t\t\tgreedy: true\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('inside', 'attr-value', {\n\t\t'style-attr': {\n\t\t\tpattern: /\\s*style=(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/i,\n\t\t\tinside: {\n\t\t\t\t'attr-name': {\n\t\t\t\t\tpattern: /^\\s*style/i,\n\t\t\t\t\tinside: Prism.languages.markup.tag.inside\n\t\t\t\t},\n\t\t\t\t'punctuation': /^\\s*=\\s*['\"]|['\"]\\s*$/,\n\t\t\t\t'attr-value': {\n\t\t\t\t\tpattern: /.+/i,\n\t\t\t\t\tinside: Prism.languages.css\n\t\t\t\t}\n\t\t\t},\n\t\t\talias: 'language-css'\n\t\t}\n\t}, Prism.languages.markup.tag);\n}\n\n/* **********************************************\n Begin prism-clike.js\n********************************************** */\n\nPrism.languages.clike = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /((?:\\b(?:class|interface|extends|implements|trait|instanceof|new)\\s+)|(?:catch\\s+\\())[\\w.\\\\]+/i,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\tpunctuation: /[.\\\\]/\n\t\t}\n\t},\n\t'keyword': /\\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,\n\t'boolean': /\\b(?:true|false)\\b/,\n\t'function': /[a-z0-9_]+(?=\\()/i,\n\t'number': /\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n\t'operator': /--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&?|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\n\n/* **********************************************\n Begin prism-javascript.js\n********************************************** */\n\nPrism.languages.javascript = Prism.languages.extend('clike', {\n\t'keyword': /\\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\\b/,\n\t'number': /\\b(?:0[xX][\\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,\n\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n\t'function': /[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*\\()/i,\n\t'operator': /-[-=]?|\\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\\|[|=]?|\\*\\*?=?|\\/=?|~|\\^=?|%=?|\\?|\\.{3}/\n});\n\nPrism.languages.insertBefore('javascript', 'keyword', {\n\t'regex': {\n\t\tpattern: /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s])\\s*)\\/(\\[[^\\]\\r\\n]+]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[gimyu]{0,5}(?=\\s*($|[\\r\\n,.;})\\]]))/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t// This must be declared before keyword because we use \"function\" inside the look-forward\n\t'function-variable': {\n\t\tpattern: /[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)|[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)\\s*=>))/i,\n\t\talias: 'function'\n\t},\n\t'constant': /\\b[A-Z][A-Z\\d_]*\\b/\n});\n\nPrism.languages.insertBefore('javascript', 'string', {\n\t'template-string': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|\\${[^}]+}|[^\\\\`])*`/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /\\${[^}]+}/,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\tpattern: /^\\${|}$/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: null // See below\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t}\n});\nPrism.languages.javascript['template-string'].inside['interpolation'].inside.rest = Prism.languages.javascript;\n\nif (Prism.languages.markup) {\n\tPrism.languages.insertBefore('markup', 'tag', {\n\t\t'script': {\n\t\t\tpattern: /()[\\s\\S]*?(?=<\\/script>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript,\n\t\t\talias: 'language-javascript',\n\t\t\tgreedy: true\n\t\t}\n\t});\n}\n\nPrism.languages.js = Prism.languages.javascript;\n\n\n/* **********************************************\n Begin prism-file-highlight.js\n********************************************** */\n\n(function () {\n\tif (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) {\n\t\treturn;\n\t}\n\n\tself.Prism.fileHighlight = function() {\n\n\t\tvar Extensions = {\n\t\t\t'js': 'javascript',\n\t\t\t'py': 'python',\n\t\t\t'rb': 'ruby',\n\t\t\t'ps1': 'powershell',\n\t\t\t'psm1': 'powershell',\n\t\t\t'sh': 'bash',\n\t\t\t'bat': 'batch',\n\t\t\t'h': 'c',\n\t\t\t'tex': 'latex'\n\t\t};\n\n\t\tArray.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {\n\t\t\tvar src = pre.getAttribute('data-src');\n\n\t\t\tvar language, parent = pre;\n\t\t\tvar lang = /\\blang(?:uage)?-([\\w-]+)\\b/i;\n\t\t\twhile (parent && !lang.test(parent.className)) {\n\t\t\t\tparent = parent.parentNode;\n\t\t\t}\n\n\t\t\tif (parent) {\n\t\t\t\tlanguage = (pre.className.match(lang) || [, ''])[1];\n\t\t\t}\n\n\t\t\tif (!language) {\n\t\t\t\tvar extension = (src.match(/\\.(\\w+)$/) || [, ''])[1];\n\t\t\t\tlanguage = Extensions[extension] || extension;\n\t\t\t}\n\n\t\t\tvar code = document.createElement('code');\n\t\t\tcode.className = 'language-' + language;\n\n\t\t\tpre.textContent = '';\n\n\t\t\tcode.textContent = 'Loading…';\n\n\t\t\tpre.appendChild(code);\n\n\t\t\tvar xhr = new XMLHttpRequest();\n\n\t\t\txhr.open('GET', src, true);\n\n\t\t\txhr.onreadystatechange = function () {\n\t\t\t\tif (xhr.readyState == 4) {\n\n\t\t\t\t\tif (xhr.status < 400 && xhr.responseText) {\n\t\t\t\t\t\tcode.textContent = xhr.responseText;\n\n\t\t\t\t\t\tPrism.highlightElement(code);\n\t\t\t\t\t}\n\t\t\t\t\telse if (xhr.status >= 400) {\n\t\t\t\t\t\tcode.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tcode.textContent = '✖ Error: File does not exist or is empty';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\txhr.send(null);\n\t\t});\n\n\t\tif (Prism.plugins.toolbar) {\n\t\t\tPrism.plugins.toolbar.registerButton('download-file', function (env) {\n\t\t\t\tvar pre = env.element.parentNode;\n\t\t\t\tif (!pre || !/pre/i.test(pre.nodeName) || !pre.hasAttribute('data-src') || !pre.hasAttribute('data-download-link')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar src = pre.getAttribute('data-src');\n\t\t\t\tvar a = document.createElement('a');\n\t\t\t\ta.textContent = pre.getAttribute('data-download-link-label') || 'Download';\n\t\t\t\ta.setAttribute('download', '');\n\t\t\t\ta.href = src;\n\t\t\t\treturn a;\n\t\t\t});\n\t\t}\n\n\t};\n\n\tdocument.addEventListener('DOMContentLoaded', self.Prism.fileHighlight);\n\n})();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Project/website-style-guide/styleguide-components/src/main/webapp/~/prismjs/prism.js\n// module id = 2\n// module chunks = 0","/* eslint-disable */// https://tc39.github.io/ecma262/#sec-array.prototype.find\r\nif (!Array.prototype.find) {\r\n Object.defineProperty(Array.prototype, 'find', {\r\n value: function(predicate) {\r\n // 1. Let O be ? ToObject(this value).\r\n if (this == null) {\r\n throw new TypeError('\"this\" is null or not defined');\r\n }\r\n\r\n var o = Object(this);\r\n\r\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\r\n var len = o.length >>> 0;\r\n\r\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\r\n if (typeof predicate !== 'function') {\r\n throw new TypeError('predicate must be a function');\r\n }\r\n\r\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n var thisArg = arguments[1];\r\n\r\n // 5. Let k be 0.\r\n var k = 0;\r\n\r\n // 6. Repeat, while k < len\r\n while (k < len) {\r\n // a. Let Pk be ! ToString(k).\r\n // b. Let kValue be ? Get(O, Pk).\r\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\r\n // d. If testResult is true, return kValue.\r\n var kValue = o[k];\r\n if (predicate.call(thisArg, kValue, k, o)) {\r\n return kValue;\r\n }\r\n // e. Increase k by 1.\r\n k++;\r\n }\r\n\r\n // 7. Return undefined.\r\n return undefined;\r\n }\r\n });\r\n}\r\n\r\nif (!Array.prototype.findIndex) {\r\n Object.defineProperty(Array.prototype, 'findIndex', {\r\n value: function(predicate) {\r\n // 1. Let O be ? ToObject(this value).\r\n if (this == null) {\r\n throw new TypeError('\"this\" is null or not defined');\r\n }\r\n\r\n var o = Object(this);\r\n\r\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\r\n var len = o.length >>> 0;\r\n\r\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\r\n if (typeof predicate !== 'function') {\r\n throw new TypeError('predicate must be a function');\r\n }\r\n\r\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n var thisArg = arguments[1];\r\n\r\n // 5. Let k be 0.\r\n var k = 0;\r\n\r\n // 6. Repeat, while k < len\r\n while (k < len) {\r\n // a. Let Pk be ! ToString(k).\r\n // b. Let kValue be ? Get(O, Pk).\r\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\r\n // d. If testResult is true, return k.\r\n var kValue = o[k];\r\n if (predicate.call(thisArg, kValue, k, o)) {\r\n return k;\r\n }\r\n // e. Increase k by 1.\r\n k++;\r\n }\r\n\r\n // 7. Return -1.\r\n return -1;\r\n }\r\n });\r\n}\n\n\n// WEBPACK FOOTER //\n// ../cpc/utils/polyfills/array.prototype.find.js","/* eslint-disable */\r\n\r\n/**\r\n * IE does not support 'new CustomEvent()'\r\n *\r\n * Copied from: https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent#Polyfill\r\n */\r\n(function () {\r\n\r\n if (typeof window.CustomEvent === \"function\") return false;\r\n\r\n function CustomEvent(event, params) {\r\n params = params || {bubbles: false, cancelable: false, detail: undefined};\r\n var evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\r\n return evt;\r\n }\r\n\r\n CustomEvent.prototype = window.Event.prototype;\r\n\r\n window.CustomEvent = CustomEvent;\r\n})();\n\n\n// WEBPACK FOOTER //\n// ../cpc/utils/polyfills/customEvent.js","const Prism = require('prismjs');\r\n\r\n/**\r\n * CodeBlockAdvanceComponent - Component is designed in a generic way to support any additional languages. \r\n * \r\n * Usage: \r\n * - Create the HTML DOM structure for the code block component\r\n * - Pass the HTML DOM structure to the CodeBlockAdvanceComponent constructor \r\n */\r\nclass CodeBlockAdvanceComponent {\r\n constructor(codeBlockAdvanceContainer) {\r\n this.codeBlockAdvanceContainer = codeBlockAdvanceContainer;\r\n this.codeElements = Array.prototype.slice.call(this.codeBlockAdvanceContainer.querySelectorAll('pre[data-language-advance]'))\r\n .map(element => ({\r\n element,\r\n hasBeenActivated: false,\r\n language: element.getAttribute('data-language-advance')\r\n }));\r\n this.buttonGroup = this.codeBlockAdvanceContainer.querySelector('.ds-code-block-advance--btn-group');\r\n this.copyButton = this.codeBlockAdvanceContainer.querySelector('button[class=\"copy copy-icon\"]');\r\n }\r\n\r\n initialize() {\r\n this.codeElements.forEach((codeEle) => {\r\n let innerText = this.codeBlockAdvanceContainer.querySelector(`script[data-language-advance=${codeEle.language}]`).innerHTML;\r\n innerText = innerText.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&').replace(' \r\n `;\r\n\r\n if (window.getComputedStyle(this.demoBtns[0].parentElement).display !== 'none') {\r\n for (let i = 0, len = this.demoBtns.length; i < len; i += 1) {\r\n this.demoBtns[i].addEventListener('click', evt => this.demoBtnClick(evt));\r\n this.demoBtns[i].addEventListener('keyup', evt => this.demoBtnPress(evt));\r\n }\r\n } \r\n const codeId = this.liveCodeDemoContainer.id.replace(codeDemoId, '');\r\n const codeDemo = document.getElementById(`${codeBlockId}${codeId}`);\r\n if (codeDemo) {\r\n const codeElements = Array.prototype.slice.call(codeDemo.querySelectorAll('script[data-language]'))\r\n .map(element => ({\r\n element,\r\n language: element.getAttribute('data-language')\r\n }));\r\n let sourceHtml = '';\r\n const htmlEle = codeElements.find(ele => ele.language === 'html');\r\n if (htmlEle) {\r\n sourceHtml = htmlEle.element.innerHTML.replace(/<\\/?pre[^>]*>/g, '');\r\n }\r\n // const parser = new DOMParser();\r\n // const sourceHtml = parser.parseFromString(dirtySourceHtml, 'text/html');\r\n let sourceCss = '';\r\n const cssEle = codeElements.find(ele => ele.language === 'css');\r\n if (cssEle) {\r\n sourceCss = cssEle.element.innerHTML.replace(/<\\/?pre[^>]*>/g, '');\r\n }\r\n\r\n let sourceJs = '';\r\n const jsEle = codeElements.find(ele => ele.language === 'js');\r\n if (jsEle) {\r\n sourceJs = jsEle.element.innerHTML.replace(/<\\/?pre[^>]*>/g, '');\r\n }\r\n\r\n const html = encodeURI(`${htmlHeadIncludes}
${sourceHtml}
`);\r\n // this.demoOutput.src = `data:text/html;charset=utf-8,${html}`;\r\n const iframeDoc = this.demoOutput.contentWindow.document;\r\n iframeDoc.open();\r\n iframeDoc.write(unescape(html).replace(//, '').replace(//, ''));\r\n iframeDoc.close();\r\n\r\n window.addEventListener('message', (event) => {\r\n if (event.data.height != null) {\r\n if (event.data.demoBlockIdx != null) {\r\n const demoBlocks = document.querySelectorAll('.demo-output');\r\n demoBlocks[event.data.demoBlockIdx].style.height = `${event.data.height}px`;\r\n demoBlocks[event.data.demoBlockIdx].parentElement.style.height = `${event.data.height}px`;\r\n handleVerticalPageOverflow(demoBlocks[event.data.demoBlockIdx]);\r\n } else { \r\n this.demoOutput.style.height = `${event.data.height}px`;\r\n this.demoOutput.parentElement.style.height = `${event.data.height}px`;\r\n handleVerticalPageOverflow(this.demoOutput);\r\n }\r\n }\r\n }); \r\n setTimeout(() => { checkScreen(); }, 1200);\r\n }\r\n }\r\n\r\n demoBtnClick(evt) {\r\n const curEle = evt.target || evt.srcElement;\r\n this.demoBtnsContainer.querySelector('.active').classList.remove('active');\r\n curEle.classList.add('active');\r\n curEle.blur();\r\n // IE\r\n if (curEle.setActive) {\r\n try {\r\n curEle.setActive();\r\n } catch (err) {\r\n console.log('IE error');\r\n } \r\n }\r\n\r\n const idx = [].indexOf.call(this.demoBtns, curEle);\r\n let isDesktop = false;\r\n if (idx === 2) {\r\n this.demoOutput.style.width = `${mobileWidthVal}px`;\r\n this.demoOutput.style.marginLeft = '-1.5rem';\r\n this.demoOutput.parentElement.style.position = 'relative';\r\n } else if (idx === 1) {\r\n this.demoOutput.style.width = `${tabletWidthVal}px`;\r\n this.demoOutput.style.marginLeft = '-3.25rem';\r\n this.demoOutput.parentElement.style.position = 'relative';\r\n } else {\r\n isDesktop = true;\r\n this.demoOutput.removeAttribute('style'); \r\n this.demoOutput.parentElement.removeAttribute('style');\r\n }\r\n\r\n const pageWidth = window.innerWidth || document.documentElement.clientWidth \r\n || document.body.clientWidth; \r\n\r\n let width = null;\r\n if (pageWidth > tabletWidthVal && !checkingScreen) {\r\n width = tabletWidthVal + 1;\r\n if (!isDesktop) {\r\n width = window.getComputedStyle(this.demoOutput).width.replace('px', '');\r\n } \r\n } \r\n this.demoOutput.contentWindow.postMessage({ type: 'do-resize', containerWidth: width, demoBlockIdx: [].indexOf.call(document.querySelectorAll('.demo-output'), this.demoOutput) }, '*');\r\n }\r\n\r\n demoBtnPress(evt) {\r\n const key = evt.which || evt.keyCode;\r\n if (key === 13) {\r\n this.demoBtnClick(evt);\r\n }\r\n }\r\n}\r\n\r\nfunction checkScreen() {\r\n checkingScreen = true;\r\n const demoBlocks = document.querySelectorAll('.ds-live-code-demo');\r\n for (let i = 0, len = demoBlocks.length; i < len; i += 1) { \r\n const demoOutput = demoBlocks[i].querySelector('.demo-output'); \r\n demoOutput.removeAttribute('style'); \r\n if (document.body.clientWidth > tabletWidthVal && \r\n window.getComputedStyle(demoBlocks[i].querySelectorAll('.ds-live-code-demo-btn')[0].parentElement).display !== 'none') {\r\n demoBlocks[i].querySelectorAll('.ds-live-code-demo-btn')[0].click();\r\n } else {\r\n demoOutput.contentWindow.postMessage({ type: 'do-resize', containerWidth: null, demoBlockIdx: [].indexOf.call(document.querySelectorAll('.demo-output'), demoOutput) }, '*');\r\n }\r\n }\r\n checkingScreen = false;\r\n} \r\n\r\nfunction createAssets() {\r\n let assetsHTML = '';\r\n const assetStr = '/assets/';\r\n const cssSources = parent.document.head.getElementsByTagName('link'); \r\n const jsSources = parent.document.head.getElementsByTagName('script');\r\n\r\n for (let i = 0, len = cssSources.length; i < len; i += 1) { \r\n if (cssSources[i].href && cssSources[i].href.indexOf(assetStr) !== -1) {\r\n assetsHTML += ``;\r\n }\r\n }\r\n\r\n for (let i = 0, len = jsSources.length; i < len; i += 1) { \r\n if (jsSources[i].src && jsSources[i].src.indexOf(assetStr) !== -1) {\r\n assetsHTML += ``;\r\n }\r\n } \r\n return assetsHTML; \r\n}\r\n\r\nfunction handleVerticalPageOverflow(demoBlockEle) {\r\n const body = document.body;\r\n const html = document.documentElement;\r\n\r\n const maxHeight = Math.max(body.scrollHeight, body.offsetHeight, \r\n html.clientHeight, html.scrollHeight, html.offsetHeight);\r\n const pageHeight = window.innerHeight || document.documentElement.clientHeight \r\n || document.body.clientHeight;\r\n \r\n if (maxHeight > pageHeight) {\r\n demoBlockEle.classList.add('hasScrollbar');\r\n } else {\r\n demoBlockEle.classList.remove('hasScrollbar');\r\n }\r\n}\r\n\r\nexport default LiveCodeDemoComponent;\n\n\n// WEBPACK FOOTER //\n// ./components/global/combinations/DS-Live-Code-Demo/ds-live-code-demo.component.js","/* eslint-disable no-mixed-operators */\r\n/**\r\n * TooltipComponent - Component is designed in a generic way to support interactive examples of html.\r\n * \r\n * Usage: \r\n * - Use on design system interactive screen\r\n */\r\nconst $ = window.jQuery;\r\nclass TooltipComponent {\r\n initialize() {\r\n $(document).ready(() => {\r\n this.initializeTooltip();\r\n });\r\n }\r\n \r\n initializeTooltip() {\r\n $(() => {\r\n this.abc = '';\r\n if (window.matchMedia('(max-width: 767px)').matches) {\r\n // The viewport is less than 768 pixels wide \r\n const targets = $('[rel~=tooltip]');\r\n let target = false;\r\n let tooltip = false;\r\n \r\n // eslint-disable-next-line consistent-return\r\n targets.bind('click', () => {\r\n target = $(targets);\r\n const tipTitle = target.attr('data-tip');\r\n const tip = `

Condimentum Amet

${tipTitle}

`;\r\n tooltip = $('
');\r\n\r\n\r\n if (!tip || tip === '') { return false; }\r\n\r\n target.removeAttr('data-tip');\r\n tooltip.css('opacity', 0)\r\n .html(tip)\r\n .appendTo('body');\r\n\r\n const initTooltip = () => {\r\n tooltip.css('max-width', 608);\r\n\r\n // eslint-disable-next-line no-mixed-operators\r\n // eslint-disable-next-line max-len\r\n const centerPosition = $(document).scrollTop().valueOf() + (($(window).height() / 2) - tooltip.height() / 2);\r\n const posLeft = 0;\r\n const posRight = 0;\r\n const posTop = centerPosition;\r\n\r\n tooltip.css({ left: posLeft, right: posRight, top: posTop })\r\n .animate({ opacity: 1 }, 50);\r\n\r\n target.blur();\r\n };\r\n\r\n initTooltip();\r\n $(window).resize(initTooltip);\r\n\r\n const removeTooltip = () => {\r\n tooltip.animate({ opacity: 0 }, 50, () => {\r\n $(tooltip).remove();\r\n });\r\n target.attr('data-tip', tipTitle);\r\n target.focus();\r\n };\r\n\r\n tooltip.bind('click', removeTooltip);\r\n\r\n $(document).on('click', (event) => {\r\n if (event.target.getAttribute('class') !== 'tooltipImage') {\r\n removeTooltip();\r\n }\r\n });\r\n });\r\n } else {\r\n // The viewport is at least 768 pixels wide \r\n const targets = $('[rel~=tooltip]');\r\n let target = false;\r\n let tooltip = false;\r\n let isVisible = false;\r\n let tip;\r\n \r\n targets.on('click', () => {\r\n const setTooltip = () => {\r\n target = $(targets);\r\n tip = target.attr('data-tip');\r\n tooltip = $('
');\r\n if (!tip || tip === '') { return false; }\r\n target.removeAttr('data-tip');\r\n tooltip.css('opacity', 0)\r\n .html(tip)\r\n .appendTo('body');\r\n initTooltip();\r\n // $(window).resize(initTooltip);\r\n isVisible = true;\r\n return true;\r\n };\r\n\r\n \r\n const initTooltip = () => {\r\n if ($(window).width() < tooltip.outerWidth() * 1.5) {\r\n tooltip.css('max-width', $(window).width() / 2);\r\n } else {\r\n tooltip.css('max-width', 336);\r\n }\r\n\r\n let posLeft = (target.offset().left) +\r\n (target.outerWidth() / 2) -\r\n (tooltip.outerWidth() / 2);\r\n let posTop = target.offset().top - tooltip.outerHeight() - 25;\r\n\r\n if (posLeft < 0) {\r\n posLeft = target.offset().left + target.outerWidth() / 2 - 20;\r\n tooltip.addClass('left');\r\n } else { tooltip.removeClass('left'); }\r\n\r\n if (posLeft + tooltip.outerWidth() > $(window).width()) {\r\n posLeft = target.offset().left - tooltip.outerWidth() + target.outerWidth() / 2 + 20;\r\n tooltip.addClass('right');\r\n } else { tooltip.removeClass('right'); }\r\n\r\n if (posTop < 0) {\r\n posTop = target.offset().top + target.outerHeight() + 6;\r\n tooltip.addClass('top');\r\n } else { tooltip.removeClass('top'); }\r\n\r\n tooltip.css({ left: posLeft, top: posTop, outline: 'none' })\r\n .animate({ top: '+=10', opacity: 1 }, 50)\r\n .focus();\r\n };\r\n\r\n const removeTooltip = (focus) => {\r\n tooltip.animate({ top: '-=10', opacity: 0 }, 50, () => {\r\n $(tooltip).remove();\r\n });\r\n target.attr('data-tip', tip);\r\n if (focus === true) { target.focus(); }\r\n isVisible = false;\r\n };\r\n\r\n $(document).on('click', (event) => {\r\n if (event.target.getAttribute('class') !== 'tooltipImage') {\r\n removeTooltip(false);\r\n }\r\n });\r\n\r\n // Resize Window\r\n $(window).on('resize', () => {\r\n const posLeft = (target.offset().left) +\r\n (target.outerWidth() / 2) -\r\n (tooltip.outerWidth() / 2);\r\n const posTop = target.offset().top - tooltip.outerHeight() - 25;\r\n tooltip.css({ left: posLeft, top: posTop, outline: 'none' });\r\n });\r\n\r\n if (isVisible === true) {\r\n removeTooltip(true);\r\n } else {\r\n setTooltip(this);\r\n } \r\n });\r\n \r\n \r\n // Clicking outside close modal\r\n window.addEventListener('keydown', (e) => {\r\n if (e.key === 'Escape') {\r\n if (tooltip) {\r\n tooltip.animate({ opacity: 0 }, 50, () => {\r\n $(tooltip).remove();\r\n });\r\n target.attr('data-tip', tip);\r\n target.focus();\r\n isVisible = false;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n}\r\n\r\n\r\nexport default TooltipComponent;\r\n\n\n\n// WEBPACK FOOTER //\n// ./components/global/combinations/DS-Tooltip/ds-tooltip.component.js","import resourcesEn from './header.locale.en';\r\nimport resourcesFr from './header.locale.fr';\r\nimport { getPageLanguage } from '../../../../../cpc/utils/language.data';\r\n\r\nclass Header {\r\n constructor() {\r\n this.closed = true;\r\n this.layoutSelector = '.ds-layout';\r\n this.leftPanelOpenClass = 'ds-sidebar--open';\r\n this.leftPanelCloseClass = 'ds-sidebar--close';\r\n this.hamburgerMenuSelector = '.ds-header--hamburger-menu';\r\n this.logoSelector = '.ds-sidebar--logo';\r\n this.checkBoxClass = '.cd-accordion__input';\r\n }\r\n\r\n init() {\r\n const language = getPageLanguage();\r\n const resources = language === 'fr' ? resourcesFr : resourcesEn;\r\n const logoElm = document.querySelectorAll(this.logoSelector);\r\n if (logoElm) {\r\n let localDir;\r\n if (location.hostname === 'design.canadapost-postescanada.ca' || location.hostname === 'conception.canadapost-postescanada.ca') {\r\n localDir = '';\r\n } else {\r\n localDir = '/cpc';\r\n }\r\n\r\n if (logoElm[0]) {\r\n logoElm[0].setAttribute('aria-label', resources.logo_aria_label);\r\n logoElm[0].setAttribute('href', `${localDir}${resources.logo_url}`); \r\n }\r\n if (logoElm[1]) {\r\n logoElm[1].setAttribute('aria-label', resources.logo_aria_label);\r\n logoElm[1].setAttribute('href', `${localDir}${resources.logo_url}`); \r\n } \r\n }\r\n const hamburgerElm = document.querySelector(this.hamburgerMenuSelector);\r\n if (hamburgerElm) {\r\n hamburgerElm.addEventListener('click', evt => this.onHamburgerClicked(evt));\r\n hamburgerElm.setAttribute('aria-label', resources.hamburger_aria_label); \r\n }\r\n\r\n const rightPanel = document.querySelector('.ds-right-panel');\r\n if (rightPanel) {\r\n rightPanel.addEventListener('click', evt => this.closeLeftPanel(evt));\r\n }\r\n\r\n const acc = document.querySelectorAll(this.checkBoxClass);\r\n if (acc) {\r\n for (let i = 0; i < acc.length; i += 1) {\r\n acc[i].addEventListener('click', () => this.toggleMenu(i));\r\n if (document.getElementById(`group-${i}`).checked === true) {\r\n document.getElementById(`group--${i}`).style.display = 'block';\r\n }\r\n }\r\n }\r\n }\r\n\r\n \r\n toggleMenu(id) {\r\n if (document.getElementById(`group-${id}`).checked) {\r\n document.getElementById(`group--${id}`).style.display = 'block';\r\n } else {\r\n document.getElementById(`group--${id}`).style.display = 'none';\r\n }\r\n const abc = this.checkBoxClass;\r\n console.log(abc);\r\n }\r\n\r\n onHamburgerClicked(evt) {\r\n if (evt) evt.preventDefault();\r\n this.openLeftPanel();\r\n }\r\n \r\n openLeftPanel() {\r\n const layoutElm = document.querySelector(this.layoutSelector);\r\n if (layoutElm) {\r\n layoutElm.classList.add(this.leftPanelOpenClass);\r\n layoutElm.classList.remove(this.leftPanelCloseClass);\r\n this.closed = false;\r\n }\r\n }\r\n\r\n closeLeftPanel() {\r\n const layoutElm = document.querySelector(this.layoutSelector);\r\n if (layoutElm) {\r\n layoutElm.classList.add(this.leftPanelCloseClass);\r\n layoutElm.classList.remove(this.leftPanelOpenClass);\r\n this.closed = true;\r\n }\r\n }\r\n}\r\n\r\nexport default Header;\r\n\n\n\n// WEBPACK FOOTER //\n// ./components/global/combinations/header/header.component.js","/**\r\n * Wireup functionality for related-content\r\n * IMPORTANT: This is only a stub for future development in case Javascript is needed (eg. analytics\r\n * code for links or anything other logic that would require Javascript). Currently, it would just\r\n * report the link being clicked in the console. Feel free to remove this js if Javascript won't\r\n * be required for future development.\r\n * \r\n * Usage: \r\n * - related content HTML should already be fully in DOM - this class doesn't generate at this time\r\n * - construct related content instance and call initialize()\r\n */\r\nclass RelatedContent {\r\n static instance;\r\n \r\n /**\r\n * Related-content and all elements are all created in the DOM at this point, and just wired up \r\n * for dynamic behaviour\r\n * \r\n * @param {*} relatedContentContainerEle - Related Content element to wire up\r\n * @param {*} relatedContentItemEles - Related Content elements/sections\r\n */\r\n constructor(relatedContentContainerEle, relatedContentItemEles) {\r\n if (RelatedContent.instance) return RelatedContent.instance;\r\n RelatedContent.instance = this;\r\n\r\n this.relatedContentContainerEle = document.querySelector(relatedContentContainerEle);\r\n this.relatedContentItemEles = \r\n Array.prototype.slice.call(document.querySelectorAll(relatedContentItemEles));\r\n }\r\n\r\n /**\r\n * Call this after constructing your side nav\r\n */\r\n initialize() {\r\n this.initializeLinkHandlers();\r\n }\r\n\r\n initializeLinkHandlers() {\r\n this.relatedContentItemEles.forEach((ele) => { \r\n const links = ele.querySelectorAll('a');\r\n links.forEach((link) => {\r\n link.addEventListener('click', evt => this.onLinkClick(evt)); \r\n });\r\n });\r\n }\r\n\r\n onLinkClick(evt) {\r\n if (evt) evt.preventDefault();\r\n const curLink = evt.target || evt.srcElement;\r\n if (this.relatedContentItemEles.length > 0) {\r\n window.location.href = curLink.getAttribute('href');\r\n } \r\n }\r\n\r\n static getInstance() {\r\n return RelatedContent.instance;\r\n }\r\n}\r\n\r\nexport default RelatedContent;\n\n\n// WEBPACK FOOTER //\n// ./components/global/combinations/related-content/related-content.component.js","import SideNavOverlay from './side-nav-overlay.component';\r\n// import SideNavKeyboard from './side-nav-keyboard.component';\r\nimport SideNavUtils from './side-nav.utils';\r\n\r\n/**\r\n * Wireup functionality for sidenav\r\n * \r\n * Usage: \r\n * - side nav HTML should already be fully in DOM - this class doesn't generate at this time\r\n * - construct side nav instance and call initialize()\r\n * \r\n * - to open menu:\r\n * SideNav.getInstance().open() (implemented as a singleton)\r\n */\r\nclass SideNav {\r\n static instance;\r\n\r\n /**\r\n * Sidenav and all elements are all created in the DOM at this point, and just wired up for\r\n * dynamic behaviour\r\n * \r\n * @param {*} sideNavEle - Side nav element to wire up\r\n * @param {*} hamburgerEles - Elements that should cause menut to open\r\n * @param {*} closeEles - Array of close elements that can close hamburger\r\n * @param {*} layout - Primary layout container of page. Open / close state is added\r\n * to this lass\r\n * @param {*} elementToOverlay - Actual overlay element to overlay\r\n */\r\n constructor(sideNavEle, closeEles, layout, elementToOverlay, backEles) {\r\n if (SideNav.instance) return SideNav.instance;\r\n SideNav.instance = this;\r\n\r\n this.sideNavEle = document.querySelector(sideNavEle);\r\n this.closeEles = Array.prototype.slice.call(document.querySelectorAll(closeEles));\r\n this.backEles = Array.prototype.slice.call(document.querySelectorAll(backEles));\r\n this.layout = document.querySelector(layout);\r\n this.elementToOverlay = document.querySelector(elementToOverlay);\r\n this.sideNavOverlay = new SideNavOverlay(elementToOverlay, null);\r\n // this.sideNavKeyboard = new SideNavKeyboard(this);\r\n // this.sideNavKeyboard.initialize();\r\n this.sideNavUtils = new SideNavUtils(this);\r\n }\r\n\r\n\r\n /**\r\n * Call this after constructing your side nav\r\n */\r\n initialize() {\r\n this.initializeCloseHandlers();\r\n\r\n // this.initializeCloseTransitionHandlers();\r\n // this.initializeBackHandlers();\r\n // this.initializeLvl1Handlers();\r\n // this.initializeLvl2ParentHandlers();\r\n }\r\n\r\n initializeCloseHandlers() {\r\n this.sideNavOverlay.addClickListener(() => this.onCloseMenuClick());\r\n\r\n if (this.closeEles) {\r\n this.closeEles.forEach((ele) => {\r\n ele.addEventListener('click', evt => this.onCloseMenuClick(evt));\r\n });\r\n }\r\n }\r\n\r\n initializeCloseTransitionHandlers() {\r\n const self = this;\r\n this.sideNavOverlay.addTransitionListener(() => {\r\n const closing = document.querySelector('.ds-sidebar--open.ds-sidebar--closed');\r\n if (closing !== undefined && closing != null) {\r\n // we only remove when actually closing the menu\r\n self.layout.classList.remove('ds-sidebar--open');\r\n self.layout.classList.remove('ds-sidebar--closed');\r\n }\r\n });\r\n }\r\n\r\n initializeBackHandlers() {\r\n this.backEles.forEach((ele) => {\r\n ele.addEventListener('click', evt => this.onBackClick(evt));\r\n });\r\n }\r\n\r\n initializeLvl1Handlers() {\r\n Array.prototype.slice.call(this.sideNavEle.querySelectorAll('.ds-sidebar--lvl1-links li a')).forEach((ele) => {\r\n if (!ele.classList.contains('ds-sidebar--lvl1-nochildren')) {\r\n ele.addEventListener('click', evt => this.onL1SideNavClick(evt));\r\n }\r\n });\r\n }\r\n\r\n initializeLvl2ParentHandlers() {\r\n this.sideNavEle.querySelector('.ds-sidebar--rhs').addEventListener('click', (evt) => {\r\n if (evt.target && evt.target.classList.contains('ds-sidebar--parent-link')) {\r\n evt.preventDefault();\r\n onL2ParentLinkClick(evt);\r\n }\r\n });\r\n }\r\n\r\n onCloseMenuClick(evt) {\r\n if (evt) evt.preventDefault();\r\n this.closeMenu(evt);\r\n }\r\n\r\n onBackClick(evt) {\r\n if (evt) evt.preventDefault();\r\n if (!this.sideNavUtils.isLevel1Open()) return;\r\n\r\n this.goBackToL1();\r\n }\r\n\r\n onL1SideNavClick(evt) {\r\n evt.preventDefault();\r\n\r\n const categoryId = evt.target.getAttribute('data-category-id');\r\n const activeL2CategoryId = this.getActiveL2Category();\r\n\r\n if (categoryId === activeL2CategoryId && categoryId > 0) return;\r\n\r\n this.toggleL1Open(true);\r\n this.toggleAllL1Links(false);\r\n this.toggleAllL2Links(false);\r\n\r\n const selectedL2Category = this.sideNavEle.querySelector(`.ds-sidebar--rhs .lvl2[data-category-id=\"${categoryId}\"]`);\r\n if (selectedL2Category) {\r\n setL2CategoryVisibility(selectedL2Category, true);\r\n }\r\n\r\n evt.target.classList.add('active');\r\n }\r\n\r\n goBackToL1() {\r\n this.sideNavEle.classList.remove('lvl1-open');\r\n this.toggleAllL2Links(false);\r\n this.toggleAllL2ParentLinks(false);\r\n this.toggleAllL1Links(false);\r\n }\r\n\r\n closeMenu(evt) {\r\n this.layout.classList.add('ds-sidebar--closed');\r\n this.sideNavEle.setAttribute('aria-expanded', false);\r\n\r\n this.toggleAllL1Links(false);\r\n this.toggleAllL2Links(false);\r\n this.toggleAllL2ParentLinks(false);\r\n this.resetLevelView(false);\r\n toggleTabIndex(this.sideNavEle, '-1');\r\n this.sideNavKeyboard.focusToOpener(evt);\r\n }\r\n\r\n open(evt) {\r\n this.sideNavKeyboard.setOpener(evt.target);\r\n this.sideNavKeyboard.setInitialFocus(evt);\r\n this.sideNavEle.setAttribute('aria-expanded', true);\r\n toggleTabIndex(this.sideNavEle, '0');\r\n }\r\n\r\n resetLevelView(isLevel1Open) {\r\n this.sideNavEle.classList[isLevel1Open ? 'add' : 'remove']('lvl1-open');\r\n }\r\n\r\n toggleL1Open(isOpen) {\r\n this.sideNavEle.classList[isOpen ? 'add' : 'remove']('lvl1-open');\r\n }\r\n\r\n toggleAllL2ParentLinks(isOpen) {\r\n Array.prototype.slice.call(this.sideNavEle.querySelectorAll('.ds-sidebar--parent-link'))\r\n .forEach(parentLink => toggleL2ParentLink(parentLink, isOpen));\r\n }\r\n\r\n getActiveL2Category() {\r\n const activeL2Category = this.sideNavUtils.getActiveL2Category();\r\n return activeL2Category ? activeL2Category.getAttribute('data-category-id') : '';\r\n }\r\n\r\n toggleAllL2Links(isVisible) {\r\n Array.prototype.slice.call(this.sideNavEle.querySelectorAll('.ds-sidebar--rhs .lvl2'))\r\n .forEach((ele) => {\r\n setL2CategoryVisibility(ele, isVisible);\r\n });\r\n }\r\n\r\n toggleAllL1Links(isActive) {\r\n Array.prototype.slice.call(this.sideNavEle.querySelectorAll('.ds-sidebar--lvl1-links a'))\r\n .forEach(ele => ele.classList[isActive ? 'add' : 'remove']('active'));\r\n }\r\n\r\n static getInstance() {\r\n return SideNav.instance;\r\n }\r\n}\r\n\r\nfunction toggleTabIndex(container, tabIndex) {\r\n Array.prototype.slice.call(container.querySelectorAll('a')).forEach(\r\n ele => ele.setAttribute('tabindex', tabIndex));\r\n}\r\n\r\nfunction setL2CategoryVisibility(ele, isVisible) {\r\n ele.classList[isVisible ? 'add' : 'remove']('active');\r\n ele.setAttribute('aria-expanded', isVisible);\r\n\r\n Array.prototype.slice.call(ele.querySelectorAll('.ds-sidebar--parent-link'))\r\n .forEach(parentLink => toggleL2ParentLink(parentLink, false));\r\n}\r\n\r\nfunction toggleL2ParentLink(ele, isOpen) {\r\n ele.classList[isOpen ? 'add' : 'remove']('expanded');\r\n ele.setAttribute('aria-expanded', isOpen);\r\n [].forEach.call(document.querySelectorAll('.ds-sidebar--parent-link'), (el) => {\r\n if (el !== ele) { el.classList.remove('expanded'); }\r\n });\r\n}\r\n\r\nfunction onL2ParentLinkClick(evt) {\r\n const isExpanded = evt.target.classList.contains('expanded');\r\n toggleL2ParentLink(evt.target, !isExpanded);\r\n}\r\n\r\n\r\nexport default SideNav;\n\n\n// WEBPACK FOOTER //\n// ./components/global/combinations/side-nav/side-nav.component.js","/**\r\n * Consume the SiteMap and transfer it to the navigation bar\r\n */\r\nclass SiteMap {\r\n static DEFAULT_ROOT_NAME = 'mercury';\r\n\r\n constructor(sitemap, rootName) {\r\n this.root = SiteMap.findRoot(sitemap, rootName || SiteMap.DEFAULT_ROOT_NAME);\r\n this.nodes = this.root.nodes;\r\n }\r\n\r\n static findRoot(sitemap, rootName) {\r\n if (sitemap === undefined) throw new Error('ERROR_SITEMAP_UNDEFINED');\r\n\r\n if (sitemap.nodes === undefined) throw new Error('ERROR_SITEMAP_NODES_UNDEFINED');\r\n\r\n if (sitemap.nodes.length === undefined\r\n || sitemap.nodes.length === 0) throw new Error('ERROR_SITEMAP_NODES_EMPTY');\r\n\r\n const root = sitemap.nodes.find((node) => {\r\n let desc = node.description;\r\n if (desc === undefined || desc === null) return false;\r\n\r\n desc = desc.trim();\r\n if (desc.length === 0) return false;\r\n\r\n return rootName.toLowerCase() === desc.toLowerCase();\r\n });\r\n\r\n if (root === undefined) {\r\n throw new Error('ERROR_SITEMAP_NO_ROOT');\r\n // root = { label: 'Mercury', description: 'Mercury', linkCMSPage: '', preserveQs: '', nodes: [{ label: 'Test', description: 'Empty node', link: '', linkCMSPage: '', preserveQs: '' }] };\r\n }\r\n\r\n return root;\r\n }\r\n\r\n /**\r\n * Creating the navigation elements\r\n */\r\n toNavigation() {\r\n this.createLevel1();\r\n }\r\n\r\n static selectorLevel1Container = 'ul.ds-sidebar--lvl1-links';\r\n\r\n createLevel1() {\r\n const level1Container = document.querySelector(SiteMap.selectorLevel1Container);\r\n if (level1Container === null) throw new Error('ERROR_SIDEBAR_LEVEL_ONE_CONTAINER_UNDEFINED');\r\n\r\n const html = SiteMap.parseLevel1(this.nodes);\r\n level1Container.insertAdjacentHTML('afterbegin', html);\r\n }\r\n\r\n static parseLevel1(level1Nodes) {\r\n const pathName = location.pathname;\r\n return level1Nodes\r\n .map((node, index) => {\r\n const hasChildren = node.nodes !== undefined && node.nodes.length > 0;\r\n return SiteMap.createMenu(SiteMap.getNodeId(node), node, index, hasChildren, pathName);\r\n })\r\n .join('')\r\n ;\r\n }\r\n\r\n static createMenu(nodeId, node, index, hasChildren, pathName) {\r\n let firstLevelLinks;\r\n const splitPath = pathName.split('/');\r\n const pathLength = splitPath.length;\r\n if (hasChildren === true) { // Sub Menu\r\n firstLevelLinks = `
    `;\r\n const firstLevelNode = node.nodes;\r\n firstLevelNode.forEach((secondLevel, secondLevelIndex) => {\r\n const hasSubMenuChildren = secondLevel.nodes !== undefined && secondLevel.nodes.length > 0;\r\n\r\n if (hasSubMenuChildren) {\r\n let thirdLevelLinks = '
      ';\r\n if (hasSubMenuChildren > 0) {\r\n const thirdNode = secondLevel.nodes;\r\n thirdNode.forEach((thirdLevelObject) => {\r\n thirdLevelLinks += `
    • \r\n ${thirdLevelObject.label}\r\n\r\n
    • `;\r\n });\r\n }\r\n thirdLevelLinks += '
    ';\r\n\r\n if (secondLevel.description) {\r\n const makeLableUrlSub = secondLevel.description.replace(/\\s+/g, '-').toLowerCase();\r\n const linkMatchedSub = !!(makeLableUrlSub.indexOf(splitPath[pathLength - 2]) !== -1);\r\n firstLevelLinks += `
  • \r\n \r\n \r\n ${thirdLevelLinks}\r\n
  • `; \r\n }\r\n } else {\r\n const childLink = SiteMap.getLink(secondLevel);\r\n // console.log(childLink.split('/').pop(), '===', pathName.split('/').pop()); \r\n firstLevelLinks += `
  • \r\n ${secondLevel.label} \r\n
  • `;\r\n }\r\n });\r\n firstLevelLinks += '
';\r\n }\r\n\r\n let parentHtml;\r\n const parentUrl = SiteMap.getLink(node);\r\n if (hasChildren) {\r\n const makeLableUrl = node.description.replace(/\\s+/g, '-').toLowerCase();\r\n const linkMatched = !!((makeLableUrl.indexOf(splitPath[pathLength - 2]) !== -1 ||\r\n (splitPath[pathLength - 3] !== '' && makeLableUrl.indexOf(splitPath[pathLength - 3]) !== -1)));\r\n parentHtml = `
  • \r\n \r\n \r\n ${hasChildren ? firstLevelLinks : ''}\r\n
  • `;\r\n } else {\r\n parentHtml = `
  • \r\n \r\n
  • `;\r\n }\r\n return parentHtml;\r\n }\r\n\r\n static getNodeId(node) {\r\n let desc = node.description;\r\n if (desc === undefined) return '';\r\n\r\n desc = desc.trim();\r\n return (desc.length === 0) ? '' : desc.toLowerCase();\r\n }\r\n\r\n\r\n static getLink(node) {\r\n if (node === undefined\r\n || node.link === undefined\r\n || node.link.trim().length === 0\r\n ) return '#';\r\n\r\n if (node.preserveQs === undefined || node.preserveQs.trim().length === 0) {\r\n // remove the last '?'\r\n if (location.hostname === 'design.canadapost-postescanada.ca' || location.hostname === 'conception.canadapost-postescanada.ca' || location.hostname === 'localhost') {\r\n node.link = this.setPRODurl(node.link);\r\n }\r\n const idx = node.link.indexOf('?');\r\n return (idx !== -1)\r\n ? node.link.substring(0, idx)\r\n : node.link;\r\n }\r\n return `${node.link}${node.preserveQs}`;\r\n }\r\n\r\n // Updated by Nauman\r\n static setPRODurl(link) {\r\n // If PROD url, design.canadapost-postescanada.ca, replace '/cpc/en/designsystem/' with '/en/'\r\n // '/cpc/fr/designsystem/' with '/fr/'\r\n\r\n let item = link;\r\n const liveSiteENRelativePrefix = '/cpc/en/';\r\n const dotDesignENRelativePrefix = '/en/';\r\n const liveSiteFRRelativePrefix = '/scp/fr/';\r\n const dotDesignFRRelativePrefix = '/fr/';\r\n \r\n if ((item.indexOf(liveSiteENRelativePrefix) > -1) ||\r\n (item.indexOf(liveSiteFRRelativePrefix) > -1)) {\r\n item = item.replace(liveSiteENRelativePrefix, dotDesignENRelativePrefix);\r\n item = item.replace(liveSiteFRRelativePrefix, dotDesignFRRelativePrefix);\r\n }\r\n return item;\r\n }\r\n}\r\n\r\n\r\n/* function showMenu(id) {\r\n const acc = document.getElementsByClassName('cd-accordion__input');\r\n for (let i = 0; i < acc.length; i += 1) {\r\n acc[i].checked = false;\r\n }\r\n document.getElementById(id).checked = true;\r\n} */\r\n\r\nexport default SiteMap;\n\n\n// WEBPACK FOOTER //\n// ./components/global/combinations/sitemap/sitemap.component.js","/* eslint no-console: 0 */\r\n/* eslint no-undef: 0 */\r\n/**\r\n * auth.module contains wrappers to get SSO authentication headers, as well as SSO login and logout \r\n * related support. In addition, SSO sub-domains are determined based on the domain that the given \r\n * page is running on. \r\n */\r\n\r\nconst localhostRegEx = /localhost/i;\r\n\r\nconst initModule = {\r\n\r\n getSSOGroup() {\r\n if (this.getIsAuthenticated()) {\r\n return document.head.querySelector('[name=sso-groups]').content;\r\n }\r\n return 'Unauthenticated';\r\n },\r\n\r\n getSSOToken() {\r\n return document.head.querySelector('[name=sso-token]').content;\r\n },\r\n\r\n getAccountGroup() {\r\n if (this.getIsAuthenticated()) {\r\n return (document.head.querySelector('[name=account-group]')) ? document.head.querySelector('[name=account-group]').content : '';\r\n // return document.head.querySelector('[name=account-group]').content;\r\n }\r\n return '';\r\n },\r\n\r\n getCSRFToken() {\r\n if (this.getIsAuthenticated()) {\r\n return (this.getSSOToken()) ? window.btoa(this.getSSOToken()) : '';\r\n }\r\n return '';\r\n },\r\n\r\n getSSOUserName() {\r\n return document.head.querySelector('[name=sso-username]').content;\r\n },\r\n\r\n getIsAuthenticated() {\r\n return ((!!document.head.querySelector('[name=sso-token]') && !!document.head.querySelector('[name=sso-token]').content)) && (this.getSSOUserName() !== 'Unauthenticated');\r\n },\r\n\r\n getHostURL() {\r\n const host = window.location.host;\r\n switch (true) {\r\n case localhostRegEx.test(host):\r\n return 'https://dev10.canadapost.ca';\r\n default:\r\n return window.location.href;\r\n } \r\n },\r\n\r\n getDomain() {\r\n const host = window.location.host;\r\n switch (true) {\r\n case localhostRegEx.test(host):\r\n return 'https://dev10.canadapost.ca';\r\n default:\r\n return `${window.location.protocol}//${host}`;\r\n }\r\n },\r\n\r\n getSSODomain() {\r\n const host = window.location.host;\r\n switch (true) {\r\n case localhostRegEx.test(host):\r\n return 'https://dev001-sso.epost.ca';\r\n case /dev10/.test(host):\r\n return 'https://dev001-sso.epost.ca';\r\n case /dev11/.test(host):\r\n return 'https://dev001-sso.epost.ca';\r\n case /dev12/.test(host):\r\n return 'https://dev002-sso.epost.ca';\r\n case /dev13/.test(host):\r\n return 'https://dev003-sso.epost.ca';\r\n case /stg10/.test(host):\r\n return 'https://stg001-sso.epost.ca';\r\n case /stg11/.test(host):\r\n return 'https://stg001-sso.epost.ca';\r\n case /stg12/.test(host):\r\n return 'https://stg002-sso.epost.ca';\r\n case /stg13/.test(host):\r\n return 'https://stg003-sso.epost.ca';\r\n case /stg14/.test(host):\r\n return 'https://stg004-sso.epost.ca';\r\n default:\r\n return 'https://sso.epost.ca';\r\n }\r\n },\r\n\r\n getEpostDomain() {\r\n const host = window.location.host;\r\n switch (true) {\r\n case localhostRegEx.test(host):\r\n return 'dev001-www.';\r\n case /dev10/.test(host):\r\n return 'dev001-www.';\r\n case /dev11/.test(host):\r\n return 'dev001-www.';\r\n case /dev12/.test(host):\r\n return 'dev002-www.';\r\n case /dev13/.test(host):\r\n return 'dev003-www.';\r\n case /stg10/.test(host):\r\n return 'stg001-www.';\r\n case /stg11/.test(host):\r\n return 'stg001-www.';\r\n case /stg12/.test(host):\r\n return 'stg002-www.';\r\n case /stg13/.test(host):\r\n return 'stg003-www.';\r\n case /stg14/.test(host):\r\n return 'stg004-www.';\r\n default:\r\n return 'www.';\r\n }\r\n },\r\n\r\n getESTSubdomain() {\r\n const host = window.location.hostname;\r\n if (localhostRegEx.test(host)) {\r\n return 'stg12.';\r\n } \r\n const hostSplit = host.split('.');\r\n if (hostSplit[0] === 'www') {\r\n return '';\r\n }\r\n return `${hostSplit[0]}.`;\r\n },\r\n\r\n getLogoutLink() {\r\n return `${this.getDomain()}/pkmslogout?token=${this.getSSOToken()}`;\r\n }\r\n};\r\n\r\nexport default initModule;\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ../cpc/utils/auth.module.js","/**\r\n * Gets the root of the current domain without the www, stgxx, or devxx prefix. \r\n * \r\n * Used for setting a domain specific cookie without the www, stg, dev, or prod prefixes\r\n * \r\n * I.e. www.canadapost.ca : returns .canadapost.ca\r\n * \r\n * @param {object} domain - Location object (window.location)\r\n */\r\nfunction getRootDomain(domain) {\r\n const ipAddyRegEx = /\\d*\\.\\d*\\.\\d*\\.\\d*/i; \r\n\r\n if (ipAddyRegEx.test(domain.hostname)) {\r\n return domain.hostname;\r\n }\r\n\r\n return domain.hostname ? \r\n domain.hostname.substring(domain.hostname.indexOf('.')) :\r\n '';\r\n}\r\n\r\n// Used to determine if we're in production in order to sync up all of the redundant\r\n// LANG cookies\r\nfunction isProduction() {\r\n return /^www.canadapost/i.test(window.location.hostname);\r\n}\r\n\r\n/**\r\n * Syncs up all redundant LANG cookies for the prod canadapost.ca \r\n * domain. \r\n * \r\n * There are several domain cookie LANG variants \r\n * floating around, but it is\r\n * necessary to do this to reduce application stability risks. \r\n * \r\n * LANG domain www.canadapost.ca\r\n * LANG domain .www.canadapost.ca\r\n * \r\n * @param {string} lang - Either 'e', or 'f' as required by the language module\r\n */\r\nfunction syncAllLangCookies(lang, expiredays) { \r\n if (isProduction()) {\r\n const domain = window.location.hostname.toLowerCase();\r\n setCookie('LANG', lang, expiredays, false, \r\n domain);\r\n setCookie('LANG', lang, expiredays, false, \r\n `.${domain}`);\r\n }\r\n}\r\n\r\nfunction setCookie(cookieName, value, expiredays, ifEscape, domain) {\r\n const exdate = new Date();\r\n let expiredate;\r\n let root = '';\r\n let cookieValue = null;\r\n\r\n if (domain) {\r\n root = `;domain=${domain}`;\r\n } else { \r\n root = '';\r\n }\r\n exdate.setDate(exdate.getDate() + expiredays);\r\n if (expiredays !== 0) {\r\n expiredate = exdate.toGMTString();\r\n } else {\r\n expiredate = 0;\r\n }\r\n const expires = ((expiredays == null) ? '' : `;expires=${expiredate}${root};path=/`);\r\n\r\n if (!ifEscape) { \r\n cookieValue = escape(value);\r\n }\r\n document.cookie = `${cookieName}=${cookieValue}${expires}`;\r\n}\r\n\r\nfunction getCookie(cookieName) {\r\n if (document.cookie.length > 0) {\r\n let start = document.cookie.indexOf(`${cookieName}=`);\r\n if (start !== -1) {\r\n start = start + cookieName.length + 1;\r\n let end = document.cookie.indexOf(';', start);\r\n if (end === -1) {\r\n end = document.cookie.length;\r\n }\r\n return unescape(document.cookie.substring(start, end));\r\n }\r\n }\r\n return '';\r\n}\r\n\r\nexport { setCookie, getCookie, getRootDomain, syncAllLangCookies };\n\n\n// WEBPACK FOOTER //\n// ../cpc/utils/cookies.js","/**\r\n * Global variables...\r\n */\r\nexport default { \r\n mobileUpperBound: 640,\r\n tabletUpperBound: 1024,\r\n smallDesktopUpperBound: 1440,\r\n\r\n events: { \r\n addEventListener: 'addEventListener',\r\n removeEventListener: 'removeEventListener',\r\n mouseEnter: 'mouseenter',\r\n mouseLeave: 'mouseleave',\r\n mouseOver: 'mouseover',\r\n click: 'click',\r\n focus: 'focus',\r\n blur: 'blur',\r\n resize: 'resize',\r\n keypress: 'keypress',\r\n focusOut: 'focusout'\r\n },\r\n\r\n cwc: { \r\n componentClassName: 'cpc-component'\r\n },\r\n\r\n false: 'false',\r\n true: 'true',\r\n\r\n a11y: { \r\n ariaLabel: 'aria-label',\r\n ariaRole: 'aria-role'\r\n }\r\n};\n\n\n// WEBPACK FOOTER //\n// ../cpc/utils/globals.js","import globals from './globals';\r\n\r\n/**\r\n * Some stuff to register resize handlers following practices from \r\n * MDN https://developer.mozilla.org/en-US/docs/Web/Events/resize#Examples\r\n */\r\n\r\nexport default class ResizeHandler {\r\n constructor() {\r\n this.callbacks = [];\r\n this.running = false;\r\n }\r\n\r\n /**\r\n * Adds a resize callback to invoke on Window resize event\r\n * \r\n * @param {function} callback \r\n */\r\n add(callback) {\r\n if (!this.callbacks.length) {\r\n window.addEventListener(globals.events.resize, (evt) => { \r\n if (!this.running) {\r\n this.running = true;\r\n\r\n if (window.requestAnimationFrame) {\r\n window.requestAnimationFrame(runCallbacks.bind(this, evt));\r\n } else {\r\n setTimeout(runCallbacks.bind(this, evt), 66);\r\n }\r\n }\r\n });\r\n }\r\n addCallback.call(this, callback);\r\n }\r\n}\r\n\r\n// run the actual callbacks\r\nfunction runCallbacks(evt) {\r\n this.callbacks.forEach((callback) => {\r\n callback(evt);\r\n });\r\n\r\n this.running = false;\r\n}\r\n\r\n// adds callback to loop\r\nfunction addCallback(callback) {\r\n if (callback) {\r\n this.callbacks.push(callback);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ../cpc/utils/resize-handler.js","class Slider {\r\n /**\r\n * Initialize a slider/carousel with event handling (touch, click, etc.)\r\n * \r\n * @param {string} sliderRow - CSS class for parent container of the items that you wish to\r\n * make part of the slider/carousel\r\n * @param {int} slideLeftOffset - Value (pixels) that would set the left margin of the slide item\r\n * @param {int} slideLeftIncrements - Value (pixels) of the next slide item position\r\n * @param {int} animateTime - Time (ms) required for the slide animation\r\n * @param {int} viewableSlidesCount - Number of slide items that can be viewed at the same time\r\n * @param {Object} dots - Element containing dots (slide position indicator)\r\n * @param {boolean} isContinuous - Whether slide is continuous (loops) \r\n * @param {boolean} addActive - Whether to add active CSS class to slide container\r\n */ \r\n constructor(sliderRow, slideLeftOffset, slideLeftIncrements, animateTime, \r\n viewableSlidesCount, dots, isContinuous, addActive) {\r\n this.sliderRow = sliderRow; \r\n this.slideLeftOffset = slideLeftOffset;\r\n this.slideLeftIncrements = slideLeftIncrements; \r\n this.viewableSlidesCount = viewableSlidesCount;\r\n this.animateTime = animateTime; \r\n this.dots = dots;\r\n this.hiddenSlideContainers = []; \r\n this.showTime = 100; \r\n this.xDown = null; \r\n this.yDown = null;\r\n this.isClicked = false;\r\n this.isContinuous = isContinuous;\r\n this.addActive = addActive;\r\n this.slideEvent = new CustomEvent('slideEvent');\r\n this.isLeft = false;\r\n this.isAnimating = false;\r\n }\r\n\r\n initialize() { \r\n let prev = this.sliderRow.querySelector('.prev-slide');\r\n let next = this.sliderRow.querySelector('.next-slide');\r\n let sliderContainers = this.sliderRow.querySelectorAll('.slide-container'); \r\n\r\n setTabIndex(this.sliderRow, -1);\r\n\r\n setTabIndex(sliderContainers[0], 0);\r\n const slideLink = (sliderContainers[0].nodeName === 'A' ? sliderContainers[0] : sliderContainers[0].querySelector('a'));\r\n if (slideLink) {\r\n if (this.viewableSlidesCount > 1) {\r\n for (let i = 1, len = this.viewableSlidesCount; i < len; i += 1) {\r\n setTabIndex(sliderContainers[i], 0);\r\n }\r\n } \r\n }\r\n\r\n prev.classList.remove('hide');\r\n next.classList.remove('hide');\r\n\r\n // clear anonymous function in click event handler \r\n const prevClone = prev.cloneNode(true);\r\n const nextClone = next.cloneNode(true);\r\n const slideArea = findAncestor(prev, 'slide-area-container');\r\n const prevParent = slideArea.querySelector('.prev-slide').parentElement;\r\n const nextParent = slideArea.querySelector('.next-slide').parentElement;\r\n prevParent.insertBefore(prevClone, prev);\r\n nextParent.insertBefore(nextClone, next);\r\n prevParent.removeChild(prev);\r\n nextParent.removeChild(next);\r\n prev = prevClone;\r\n next = nextClone;\r\n\r\n prev.addEventListener('click', event => this.handleClick(event));\r\n next.addEventListener('click', event => this.handleClick(event)); \r\n prev.addEventListener('keyup', handleKey);\r\n next.addEventListener('keyup', handleKey); \r\n\r\n let nextLeft = this.slideLeftOffset;\r\n for (let i = 0, len = sliderContainers.length; i < len; i += 1) {\r\n sliderContainers[i].style.left = `${nextLeft}px`;\r\n sliderContainers[i].classList.remove('no-slider');\r\n if (this.addActive) {\r\n sliderContainers[i].classList.remove('active');\r\n } \r\n nextLeft += this.slideLeftIncrements;\r\n // clear anonymous function in click event handler \r\n const slideClone = sliderContainers[i].cloneNode(true);\r\n const slideParent = sliderContainers[i].parentElement;\r\n slideClone.addEventListener('touchstart', event => this.handleTouchStart(event), false, { passive: true }); \r\n slideClone.addEventListener('touchmove', event => this.handleTouchMove(event), false, { passive: true });\r\n slideClone.addEventListener('touchend', () => this.handleTouchEnd(), false, { passive: true });\r\n slideParent.insertBefore(slideClone, sliderContainers[i]);\r\n slideParent.removeChild(sliderContainers[i]);\r\n\r\n // restore click for tiles\r\n if (sliderContainers[i].clickHandler && sliderContainers[i].keyUpHandler) {\r\n slideClone.addEventListener('click', sliderContainers[i].clickHandler);\r\n slideClone.addEventListener('keyup', sliderContainers[i].keyUpHandler);\r\n }\r\n }\r\n sliderContainers = this.sliderRow.querySelectorAll('.slide-container'); \r\n }\r\n\r\n handleClick(evt) {\r\n if (!this.isClicked && !this.isAnimating) {\r\n this.isClicked = true;\r\n const curElement = evt.target || evt.srcElement;\r\n curElement.blur();\r\n if (curElement.setActive) {\r\n try {\r\n curElement.setActive();\r\n } catch (e) {\r\n console.log('IE error');\r\n } \r\n }\r\n\r\n\r\n const parentElement = findAncestor(curElement, 'slide-area-container');\r\n const slideContainers = parentElement.querySelectorAll('.slide-container');\r\n\r\n let isLeft = true;\r\n if (curElement.classList.contains('prev-slide')) {\r\n isLeft = false;\r\n }\r\n \r\n this.slide(slideContainers[0], parentElement, isLeft);\r\n setTimeout(() => {\r\n this.isClicked = false;\r\n this.isAnimating = false;\r\n }, this.animateTime + this.showTime + 100);\r\n } else {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n }\r\n }\r\n\r\n handleTouchStart(evt) {\r\n if (!this.isAnimating) {\r\n this.isAnimating = true;\r\n this.xDown = evt.touches[0].clientX;\r\n this.yDown = evt.touches[0].clientY;\r\n }\r\n } \r\n\r\n handleTouchEnd() {\r\n // fixes a bug where holding the tile during scrolling and after animation would lock futher scrolling\r\n this.isClicked = false;\r\n }\r\n\r\n handleTouchMove(evt) {\r\n if (!this.isClicked) {\r\n this.isClicked = true;\r\n const curElement = evt.target || evt.srcElement;\r\n\r\n if (!this.xDown || !this.yDown) {\r\n return;\r\n }\r\n\r\n const xUp = evt.touches[0].clientX;\r\n const yUp = evt.touches[0].clientY;\r\n\r\n const xDiff = this.xDown - xUp;\r\n const yDiff = this.yDown - yUp;\r\n\r\n if (Math.abs(xDiff) > Math.abs(yDiff)) {\r\n if (xDiff > 0) {\r\n this.slide(curElement, null, true);\r\n } else {\r\n this.slide(curElement, null, false);\r\n }\r\n }\r\n\r\n this.xDown = null;\r\n this.yDown = null;\r\n setTimeout(() => {\r\n this.isClicked = false;\r\n this.isAnimating = false;\r\n }, this.animateTime + this.showTime + 100);\r\n }\r\n }\r\n\r\n slide(refElement, parentElementRef, isLeft) { \r\n this.isLeft = isLeft;\r\n document.dispatchEvent(this.slideEvent); \r\n let parentElement = parentElementRef;\r\n if (parentElement === null) {\r\n parentElement = findAncestor(refElement, 'slide-area-container');\r\n }\r\n const slideContainers = parentElement.querySelectorAll('.slide-container'); \r\n let curIndex = this.findCurrentIndex(slideContainers); \r\n let slideLink = null;\r\n \r\n for (let i = 0, len = slideContainers.length; i < len; i += 1) { \r\n setTabIndex(slideContainers[i], -1); \r\n }\r\n\r\n const curIndexTrack = curIndex; \r\n\r\n if ((isLeft && this.findLastRightSlide(slideContainers) !== -1) || \r\n (!isLeft && this.findLastLeftSlide(slideContainers) !== -1)) {\r\n // slide either left or right when no looping is involved (eg. going from last slide to first) \r\n for (let i = 0, len = slideContainers.length; i < len; i += 1) {\r\n let newLeft = this.slideLeftOffset;\r\n if (isLeft) {\r\n newLeft = window.getComputedStyle(slideContainers[i]).left.replace('px', '') - this.slideLeftIncrements; \r\n } else {\r\n newLeft = parseInt(window.getComputedStyle(slideContainers[i]).left.replace('px', ''), 0) + this.slideLeftIncrements; \r\n }\r\n slideContainers[i].style.left = `${newLeft}px`;\r\n } \r\n\r\n if (isLeft) {\r\n curIndex += 1; \r\n } else {\r\n curIndex -= 1;\r\n if (curIndex < 0) {\r\n curIndex = slideContainers.length - 1;\r\n } \r\n }\r\n\r\n if (this.addActive && slideContainers[curIndex]) {\r\n slideContainers[curIndex].classList.add('active');\r\n } else if (this.addActive) {\r\n slideContainers[0].classList.add('active');\r\n curIndex = 0;\r\n }\r\n } else if (isLeft && this.isContinuous) {\r\n // move items to the left when at the last slide\r\n const furthestLeftIndex = this.findLastLeftSlide(slideContainers);\r\n const slideCloneTmp = slideContainers[furthestLeftIndex].cloneNode(true);\r\n this.initClone(slideCloneTmp, (this.slideLeftIncrements + this.slideLeftOffset) * this.viewableSlidesCount, 'slideClone', slideContainers[0].parentElement, slideContainers[slideContainers.length - 1].nextSibling, true);\r\n const slideDomClone = parentElement.querySelector('.slideClone');\r\n const newLefts = [];\r\n for (let i = 0, len = slideContainers.length; i < len; i += 1) {\r\n newLefts[i] = `${parseInt(window.getComputedStyle(slideContainers[i]).left.replace('px', ''), 0) - (this.slideLeftIncrements + this.slideLeftOffset)}px`; \r\n } \r\n for (let i = 0, len = slideContainers.length; i < len; i += 1) {\r\n slideContainers[i].style.left = newLefts[i];\r\n }\r\n slideDomClone.style.left = `${(this.slideLeftIncrements + this.slideLeftOffset) * (this.viewableSlidesCount - 1)}px`; \r\n slideContainers[furthestLeftIndex].style.display = 'none';\r\n this.hiddenSlideContainers[0] = slideContainers[furthestLeftIndex]; \r\n slideContainers[furthestLeftIndex].style.left = `${(this.slideLeftIncrements + this.slideLeftOffset) * (this.viewableSlidesCount - 1)}px`; \r\n if (this.viewableSlidesCount > 1) {\r\n slideContainers[furthestLeftIndex].parentElement.appendChild(\r\n slideContainers[furthestLeftIndex]); \r\n } \r\n setTimeout(() => {\r\n this.showHiddenSlideContainers();\r\n const slideClone = parentElement.querySelector('.slideClone');\r\n slideClone.parentElement.removeChild(slideClone);\r\n }, this.animateTime + this.showTime);\r\n\r\n curIndex += 1;\r\n if (curIndex > slideContainers.length - 1) {\r\n curIndex = 0;\r\n } \r\n } else if (!isLeft && this.isContinuous) {\r\n // move items to the right when at the first slide\r\n const furthestRightIndex = this.findLastRightSlide(slideContainers);\r\n const slideCloneTmp = slideContainers[furthestRightIndex].cloneNode(true);\r\n // const slideCloneTmp = slideContainers[slideContainers.length - 1 - curIndex].cloneNode(true);\r\n this.initClone(slideCloneTmp, -(this.slideLeftIncrements + this.slideLeftOffset), 'slideClone', slideContainers[0].parentElement, slideContainers[0], true); \r\n const slideDomClone = parentElement.querySelector('.slideClone');\r\n const newLefts = [];\r\n for (let i = slideContainers.length - 1, len = 0; i > len - 1; i -= 1) {\r\n newLefts[i] = `${parseInt(window.getComputedStyle(slideContainers[i]).left.replace('px', ''), 0) + (this.slideLeftIncrements + this.slideLeftOffset)}px`; \r\n } \r\n for (let i = slideContainers.length - 1, len = 0; i > len - 1; i -= 1) {\r\n slideContainers[i].style.left = newLefts[i];\r\n }\r\n slideDomClone.style.left = `${this.slideLeftOffset}px`; \r\n slideContainers[furthestRightIndex].style.display = 'none';\r\n this.hiddenSlideContainers[0] = slideContainers[furthestRightIndex];\r\n slideContainers[furthestRightIndex].style.left = `${this.slideLeftOffset}px`;\r\n if (this.viewableSlidesCount > 1) {\r\n const h2Title = slideContainers[0].parentElement.querySelector('h2');\r\n let insertBeforeDomEle = slideContainers[0].parentElement.firstChild;\r\n if (h2Title) {\r\n insertBeforeDomEle = h2Title.nextSibling;\r\n }\r\n slideContainers[0].parentElement.insertBefore(\r\n slideContainers[furthestRightIndex], insertBeforeDomEle);\r\n }\r\n setTimeout(() => {\r\n this.showHiddenSlideContainers();\r\n const slideClone = parentElement.querySelector('.slideClone');\r\n slideClone.parentElement.removeChild(slideClone);\r\n }, this.animateTime + this.showTime);\r\n\r\n curIndex -= 1;\r\n if (curIndex < 0) {\r\n curIndex = slideContainers.length - 1; \r\n } \r\n }\r\n\r\n if (curIndexTrack !== curIndex && this.addActive) {\r\n slideContainers[curIndexTrack].classList.remove('active');\r\n }\r\n\r\n if (slideContainers[curIndex]) {\r\n slideLink = (slideContainers[curIndex].nodeName === 'A' ? slideContainers[curIndex] : slideContainers[curIndex].querySelector('a'));\r\n setTabIndex(slideContainers[curIndex], 0); \r\n } \r\n \r\n if (slideLink) {\r\n setTimeout(() => {\r\n if (this.viewableSlidesCount > 1) {\r\n for (let i = 1, len = this.viewableSlidesCount; i < len; i += 1) {\r\n this.setNextSlideTabIndex(slideContainers, i);\r\n }\r\n }\r\n }, this.animateTime + this.showTime + 100);\r\n }\r\n\r\n if (this.dots && slideContainers[curIndex]) {\r\n const dotsItems = this.dots.querySelectorAll('li');\r\n const activeDot = this.dots.querySelector('.active');\r\n if (activeDot) {\r\n activeDot.classList.remove('active');\r\n dotsItems[curIndex].classList.add('active');\r\n } \r\n }\r\n\r\n // Dispatch an Event indicating slide ends\r\n triggerSlideEndEvent(this.sliderRow, curIndex);\r\n }\r\n\r\n showHiddenSlideContainers() {\r\n for (let i = 0, len = this.hiddenSlideContainers.length; i < len; i += 1) { \r\n if (this.hiddenSlideContainers[i]) {\r\n this.hiddenSlideContainers[i].style.display = 'inherit';\r\n } \r\n } \r\n this.hiddenSlideContainers = [];\r\n }\r\n\r\n initClone(clone, leftOffset, cloneClass, insertionEle, insertBeforeEle, addEvents) {\r\n clone.style.left = `${leftOffset}px`;\r\n clone.classList.remove('slide-container');\r\n clone.classList.add('slide-clone');\r\n clone.classList.add(cloneClass);\r\n if (addEvents) {\r\n clone.addEventListener('touchstart', event => this.handleTouchStart(event), false, { passive: true }); \r\n clone.addEventListener('touchmove', event => this.handleTouchMove(event), false, { passive: true });\r\n }\r\n insertionEle.insertBefore(clone, insertBeforeEle);\r\n setTabIndex(clone, -1); \r\n }\r\n\r\n findLastLeftSlide(slideContainers) {\r\n let furthestLeft = this.slideLeftOffset;\r\n let slideIndex = -1;\r\n for (let i = 0, len = slideContainers.length; i < len; i += 1) {\r\n const left = parseInt(window.getComputedStyle(slideContainers[i]).left.replace('px', ''), 0);\r\n if (left < furthestLeft) {\r\n furthestLeft = left;\r\n slideIndex = i;\r\n }\r\n }\r\n\r\n return slideIndex;\r\n }\r\n\r\n findLastRightSlide(slideContainers) {\r\n let furthestRight = (this.slideLeftIncrements * this.viewableSlidesCount) - 1;\r\n let slideIndex = -1;\r\n for (let i = 0, len = slideContainers.length; i < len; i += 1) {\r\n const right = parseInt(window.getComputedStyle(slideContainers[i]).left.replace('px', ''), 0);\r\n if (right > furthestRight) {\r\n furthestRight = right;\r\n slideIndex = i;\r\n }\r\n }\r\n\r\n return slideIndex;\r\n } \r\n\r\n /* findNextEmptySlot(slideContainers, nextEmptySlot) {\r\n let slotTaken = false;\r\n do {\r\n slotTaken = false;\r\n for (let i = 0, len = slideContainers.length; i < len; i += 1) { \r\n if (window.getComputedStyle(slideContainers[i]).left.replace('px', '') === `${(this.slideLeftIncrements + this.slideLeftOffset) * nextEmptySlot}`) {\r\n slotTaken = true;\r\n i = slideContainers.length;\r\n } \r\n }\r\n if (slotTaken) {\r\n nextEmptySlot += 1;\r\n }\r\n } while(slotTaken);\r\n\r\n return nextEmptySlot;\r\n } */\r\n\r\n setNextSlideTabIndex(slideContainers, counter) {\r\n let nextSlide = null;\r\n for (let i = 0, len = slideContainers.length; i < len; i += 1) { \r\n if (window.getComputedStyle(slideContainers[i]).left.replace('px', '') === `${(this.slideLeftIncrements + this.slideLeftOffset) * counter}`) {\r\n nextSlide = slideContainers[i];\r\n i = slideContainers.length;\r\n } \r\n } \r\n \r\n if (nextSlide) {\r\n setTabIndex(nextSlide, 0); \r\n }\r\n }\r\n\r\n findCurrentIndex(slideContainers) {\r\n let curIndex = 0;\r\n for (let i = 0, len = slideContainers.length; i < len; i += 1) { \r\n if (window.getComputedStyle(slideContainers[i]).left.replace('px', '') === `${this.slideLeftOffset}`) {\r\n curIndex = i;\r\n i = slideContainers.length;\r\n } \r\n } \r\n \r\n return curIndex; \r\n }\r\n}\r\n\r\nfunction triggerSlideEndEvent(sliderElm, curIndex) {\r\n sliderElm.dispatchEvent(new CustomEvent('evt_slide_end',\r\n {\r\n detail: {\r\n curSlide: curIndex\r\n }\r\n })\r\n );\r\n}\r\n\r\n/**\r\n * Sets the tab index of focusable elements within element\r\n * @param {*} element - DOM element\r\n * @param {*} tabIndex - tab index value\r\n */\r\nfunction setTabIndex(element, tabIndex) {\r\n if (!element) return;\r\n if (element.nodeName === 'A') {\r\n element.tabIndex = tabIndex;\r\n }\r\n getFocusableElements(element).forEach((ele) => { \r\n ele.tabIndex = tabIndex;\r\n });\r\n}\r\n\r\n/**\r\n * Gets all focusable elements within given element\r\n * @param {*} element - element whose focusable children are found\r\n * @returns {Array} - All matching elements\r\n */\r\nfunction getFocusableElements(element) {\r\n return Array.prototype.slice.call(element.querySelectorAll('a'));\r\n}\r\n\r\nfunction handleKey(evt) {\r\n const curElement = evt.target || evt.srcElement;\r\n const key = evt.which || evt.keyCode;\r\n\r\n if (key === 13) {\r\n curElement.click();\r\n curElement.focus();\r\n }\r\n}\r\n\r\nfunction destroySliderElements(slider) {\r\n const prevSlide = slider.querySelector('.prev-slide');\r\n const nextSlide = slider.querySelector('.next-slide');\r\n const slides = slider.querySelectorAll('.slide-container');\r\n\r\n if (prevSlide) {\r\n prevSlide.classList.add('hide');\r\n }\r\n\r\n if (nextSlide) {\r\n nextSlide.classList.add('hide');\r\n }\r\n\r\n for (let i = 0, len = slides.length; i < len; i += 1) {\r\n slides[i].style.left = '';\r\n slides[i].classList.add('no-slider');\r\n } \r\n}\r\n\r\nfunction findAncestor(el, cls) {\r\n let localEl = el;\r\n while (localEl.parentElement && !localEl.classList.contains(cls)) {\r\n localEl = localEl.parentElement;\r\n }\r\n return localEl;\r\n}\r\n\r\nfunction dotSlideTo(selectedIndex, dots, prevBtn, nextBtn, animateTime) {\r\n const allDots = dots.querySelectorAll('li');\r\n const curDot = dots.querySelector('.active');\r\n let curDotPos = [].indexOf.call(allDots, curDot);\r\n let btnClick = prevBtn;\r\n if (selectedIndex > curDotPos) { \r\n btnClick = nextBtn; \r\n } \r\n\r\n const keepSliding = setInterval(() => {\r\n if (selectedIndex !== curDotPos) {\r\n btnClick.click();\r\n curDotPos = [].indexOf.call(allDots, dots.querySelector('.active'));\r\n } else {\r\n clearInterval(keepSliding);\r\n } \r\n }, animateTime); \r\n}\r\n\r\nexport { Slider, destroySliderElements, dotSlideTo, findAncestor };\n\n\n// WEBPACK FOOTER //\n// ../cpc/utils/slider-util.js","/**\r\n * A few viewport utilities\r\n */\r\n// import globals from './globals';\r\n\r\n// const mobileUpperBound = globals.mobileUpperBound;\r\n// const tabletUpperBound = globals.tabletUpperBound;\r\n\r\nconst SMALL_ONLY = 'only screen and (max-width: 40rem)';\r\nconst MEDIUM_ONLY = 'only screen and (min-width: 40.063rem) and (max-width: 64rem)';\r\nconst LARGE_UP = 'only screen and (min-width: 64.063em)';\r\n\r\n/**\r\n * Tests if an element is visible in the current viewport at given location y\r\n * @param {*} element - the element to test if visible in current viewport at given location y \r\n */\r\nfunction isVisibleAtViewportY(element, yFrom, yTo) {\r\n const rect = element.getBoundingClientRect();\r\n return (\r\n rect.top <= yFrom &&\r\n rect.bottom >= yTo\r\n );\r\n}\r\n\r\nfunction isCurrentViewportMobile() {\r\n // return document.body.clientWidth <= mobileUpperBound;\r\n return matchMedia(SMALL_ONLY).matches;\r\n}\r\n\r\nfunction isCurrentViewportTablet() {\r\n // return document.body.clientWidth > mobileUpperBound ||\r\n // document.body.clientWidth <= tabletUpperBound;\r\n return matchMedia(MEDIUM_ONLY).matches;\r\n}\r\n\r\nfunction isCurrentViewportDesktop() {\r\n // return document.body.clientWidth > tabletUpperBound;\r\n return matchMedia(LARGE_UP).matches;\r\n}\r\n\r\nwindow.isCurrentViewportMobile = isCurrentViewportMobile;\r\n\r\nexport { isVisibleAtViewportY, \r\n isCurrentViewportMobile, isCurrentViewportTablet, isCurrentViewportDesktop };\r\n\n\n\n// WEBPACK FOOTER //\n// ../cpc/utils/viewport-utils.js","export default (cpDomain, locale) => `\r\n \r\n\r\n`;\n\n\n// WEBPACK FOOTER //\n// ./components/global/combinations/DS-Footer/footer.component.html.js","export default {\r\n canadaPost: 'Canada Post',\r\n canadaPostUrl: '/web/en/',\r\n copyright: '© Canada Post Corporation',\r\n canada: 'Canada',\r\n canadaUrl: 'https://www.canada.ca',\r\n accessibilityUrl: '/web/en/kb/details.page?article=accessibility&cattype=kb&cat=generalinquiries&subcat=generalinformation',\r\n accessibility: 'Accessibility',\r\n legalUrl: '/web/en/kb/details.page?article=legal_terms_of_use&cattype=kb&cat=generalinquiries&subcat=generalinformation',\r\n legal: 'Legal',\r\n privacyUrl: '/cpc/en/our-company/about-us/privacy-policy/privacy-policy-introduction.page',\r\n privacy: 'Privacy'\r\n};\n\n\n// WEBPACK FOOTER //\n// ./components/global/combinations/DS-Footer/footer.locale.en.js","export default {\r\n canadaPost: 'Postes Canada',\r\n canadaPostUrl: '/web/fr/',\r\n copyright: '© Société canadienne des postes',\r\n canada: 'Canada',\r\n canadaUrl: 'https://www.canada.ca',\r\n accessibilityUrl: '/web/fr/kb/details.page?article=accessibility&cattype=kb&cat=generalinquiries&subcat=generalinformation',\r\n accessibility: 'Accessibilité',\r\n legalUrl: '/web/fr/kb/details.page?article=legal_terms_of_use&cattype=kb&cat=generalinquiries&subcat=generalinformation',\r\n legal: 'Avis juridiques',\r\n privacyUrl: '/cpc/fr/our-company/about-us/privacy-policy/privacy-policy-introduction.page',\r\n privacy: 'Confidentialité'\r\n};\n\n\n// WEBPACK FOOTER //\n// ./components/global/combinations/DS-Footer/footer.locale.fr.js","/**\r\n * DS homepage carousel desktop\r\n *\r\n * @constructor\r\n */\r\nfunction HomeCarouselDesktop() {\r\n const carousel = document.querySelector('.ds-homepage-carousel');\r\n if (!carousel) return;\r\n\r\n initAccessibility();\r\n\r\n function initAccessibility() {\r\n // let controls = document.querySelectorAll('label[class*=ds-home-carousel--control-]:not(.ds-home-carousel--control-first):not(.ds-home-carousel--control-last)');\r\n let controls = document.querySelectorAll('label.ds-home-carousel--control-next');\r\n for (let i = 0; i < controls.length; i += 1) {\r\n const next = (i !== controls.length) ? controls[i + 1] : null;\r\n SlideControl(controls[i], next);\r\n }\r\n\r\n controls = document.querySelectorAll('label.ds-home-carousel--control-prev');\r\n for (let i = 0; i < controls.length; i += 1) {\r\n const prev = (i === 0) ? null : controls[i - 1];\r\n SlideControl(controls[i], prev);\r\n }\r\n }\r\n\r\n function SlideControl(self, next) {\r\n // The control itself\r\n const slideElm = self;\r\n\r\n /**\r\n * The next element to tbe focus when hit enter key. When hit 'next' control, the next focus should\r\n * be the 'next' control on next slide. When hit 'prev' control, the next focus should be the 'prev'\r\n * control no the previous slide.\r\n */\r\n const nextElm = next;\r\n\r\n // now setup the event listener.\r\n slideElm.addEventListener('keyup', controlOnKeyup);\r\n\r\n function controlOnKeyup(e) {\r\n const key = e.which || e.keyCode;\r\n if (key !== 13) return;\r\n\r\n e.target.click();\r\n if (nextElm) nextElm.focus();\r\n }\r\n }\r\n}\r\n\r\ndocument.addEventListener('DOMContentLoaded', HomeCarouselDesktop);\r\n\n\n\n// WEBPACK FOOTER //\n// ./components/global/combinations/DS-Homepage/homepage-carousel.js","export default {\r\n logo_aria_label: 'Go to Mercury homepage',\r\n logo_url: '/en/mercury/home.page',\r\n hamburger_aria_label: 'Open menu'\r\n};\n\n\n// WEBPACK FOOTER //\n// ./components/global/combinations/header/header.locale.en.js","export default {\r\n logo_aria_label: 'Go to Mercury homepage',\r\n logo_url: '/fr/mercure/accueil.page',\r\n hamburger_aria_label: 'Open menu'\r\n};\n\n\n// WEBPACK FOOTER //\n// ./components/global/combinations/header/header.locale.fr.js","/**\r\n * Sidenav overlay\r\n */\r\nclass SideNavOverlay {\r\n /**\r\n * Just the overlay for the sidenav with click to close support\r\n * \r\n * @param {*} rightPanel - Panel that the overlay should be displayed overtop\r\n * @param {*} overlay - optional overlay element. Created if not\r\n * specified as div.ds-right--overlay\r\n */\r\n constructor(rightPanel, overlay) {\r\n if (overlay) { \r\n this.overlay = document.querySelector(overlay);\r\n } else { \r\n this.overlay = document.createElement('div');\r\n this.overlay.className = 'ds-right--overlay';\r\n\r\n this.rightPanel = document.querySelector(rightPanel);\r\n this.rightPanel.appendChild(this.overlay);\r\n }\r\n }\r\n addClickListener(callback) {\r\n this.overlay.addEventListener('click', callback, false);\r\n } \r\n addTransitionListener(callback) {\r\n this.overlay.addEventListener('transitionend', (evt) => { \r\n if (evt.type && evt.type === 'transitionend') {\r\n callback();\r\n }\r\n }, false);\r\n }\r\n}\r\n\r\nexport default SideNavOverlay;\n\n\n// WEBPACK FOOTER //\n// ./components/global/combinations/side-nav/side-nav-overlay.component.js","/**\r\n * Common side nav utility functions \r\n */\r\nclass SideNavUtils {\r\n constructor(sideNav) {\r\n this.sideNav = sideNav;\r\n }\r\n \r\n isLevel1Open() { \r\n return this.sideNav.sideNavEle.classList.contains('lvl1-open');\r\n }\r\n\r\n getActiveL2Category() {\r\n return this.sideNav.sideNavEle.querySelector('.ds-sidebar--rhs .lvl2.active');\r\n }\r\n\r\n static getLastOpenParent(l2CategoryNav) {\r\n const parentL2s = l2CategoryNav.querySelectorAll('.ds-sidebar--parent-link.expanded');\r\n return parentL2s.length > 0 ? parentL2s[parentL2s.length - 1] : null;\r\n }\r\n}\r\n\r\nexport default SideNavUtils;\n\n\n// WEBPACK FOOTER //\n// ./components/global/combinations/side-nav/side-nav.utils.js","/* global sitemapJson */\r\nimport '../cpc/utils/polyfills/array.prototype.find';\r\n\r\n/**\r\n * Main entry point for building the design system CSS\r\n */\r\nimport '../cpc/utils/polyfills/customEvent';\r\nimport SideNav from './components/global/combinations/side-nav/side-nav.component';\r\nimport RelatedContent from './components/global/combinations/related-content/related-content.component';\r\nimport Header from './components/global/combinations/header/header.component';\r\nimport Footer from './components/global/combinations/DS-Footer/footer.component';\r\nimport SiteMap from './components/global/combinations/sitemap/sitemap.component';\r\nimport CodeBlockComponent from './components/global/combinations/DS-Code-Block/ds-code-block.component';\r\nimport CodeBlockAdvanceComponent from './components/global/combinations/DS-Code-Block-Advance/ds-code-block-advance.component';\r\nimport InteractiveExamplesComponent from './components/global/combinations/DS-Interactive-Examples/ds-interactive-examples.component';\r\n/* import DropDownComponent from './components/global/combinations/DS-Dropdown/ds-dropdown.component';\r\nimport DropDownErrorComponent from './components/global/combinations/DS-Dropdown/ds-dropdown-error.component'; */\r\nimport DSCpcSelects from './components/global/combinations/DS-Dropdown/select';\r\nimport TooltipComponent from './components/global/combinations/DS-Tooltip/ds-tooltip.component';\r\n/* import AccordionComponent from './components/global/combinations/DS-Accordion/ds-accordion.component'; */\r\nimport LiveCodeDemoComponent from './components/global/combinations/DS-Live-Code-Demo/ds-live-code-demo.component';\r\nimport FocusRingHandler from '../cpc/utils/focus-ring-handler';\r\nimport Homepage from './components/global/combinations/DS-Homepage/homepage.component';\r\nimport './components/global/combinations/DS-Homepage/homepage-carousel-m';\r\nimport './components/global/combinations/DS-Content-Block/content-block';\r\n\r\ndocument.addEventListener('DOMContentLoaded', setup);\r\n\r\nfunction setup() {\r\n setupFavicon();\r\n setupSideNav();\r\n setupHeader();\r\n setupFooter();\r\n setupRelatedContent();\r\n setupCodeBlock();\r\n setupCodeBlockAdvance();\r\n setupInteractiveExamples();\r\n /* setupDropDownComponent();\r\n setupDropDownErrorComponent(); */\r\n DSCpcSelects.init();\r\n setupTooltipComponent();\r\n /* setupAccordionComponent(); */\r\n setupLiveCodeDemo();\r\n setupFocusRingActivation();\r\n setupHomepage();\r\n checkProdURLs();\r\n}\r\n\r\nfunction setupSideNav() {\r\n if (typeof (sitemapJson) !== 'undefined') {\r\n new SiteMap(sitemapJson).toNavigation();\r\n\r\n const sideNav = new SideNav('.ds-sidebar--nav', '.ds-sidebar--nav-close', '.ds-layout',\r\n '.ds-right-panel', '.ds-sidebar--nav-back');\r\n sideNav.initialize();\r\n }\r\n}\r\n\r\nfunction setupHeader() {\r\n new Header().init();\r\n}\r\n\r\nfunction setupHomepage() {\r\n new Homepage().init();\r\n}\r\n\r\nfunction setupFooter() {\r\n new Footer('.ds-footer').initialize();\r\n}\r\n\r\nfunction setupCodeBlock() {\r\n Array.prototype.slice.call(document.querySelectorAll('.ds-code-block')).forEach((ele) => {\r\n new CodeBlockComponent(ele).initialize();\r\n });\r\n}\r\n\r\nfunction setupCodeBlockAdvance() {\r\n Array.prototype.slice.call(document.querySelectorAll('.ds-code-block-advance')).forEach((ele) => {\r\n new CodeBlockAdvanceComponent(ele).initialize();\r\n });\r\n}\r\n\r\nfunction setupInteractiveExamples() {\r\n Array.prototype.slice.call(document.querySelectorAll('.ds-interactive-examples')).forEach((ele) => {\r\n new InteractiveExamplesComponent(ele).initialize();\r\n });\r\n}\r\n\r\n\r\n/* function setupDropDownComponent() {\r\n new DropDownComponent().initialize();\r\n}\r\n\r\nfunction setupDropDownErrorComponent() {\r\n new DropDownErrorComponent().initialize();\r\n} */\r\n\r\nfunction setupTooltipComponent() {\r\n new TooltipComponent().initialize();\r\n}\r\n\r\n\r\n/* function setupAccordionComponent() {\r\n new AccordionComponent().initialize();\r\n} */\r\n\r\nfunction setupLiveCodeDemo() {\r\n Array.prototype.slice.call(document.querySelectorAll('.ds-live-code-demo')).forEach((ele) => {\r\n new LiveCodeDemoComponent(ele, '.ds-live-code-demo-btn', '.ds-live-code-demo-output-container').initialize();\r\n });\r\n}\r\n\r\nfunction setupFocusRingActivation() {\r\n new FocusRingHandler('a, button').initialize();\r\n}\r\n\r\nfunction setupRelatedContent() {\r\n const relatedContent = new RelatedContent('.ds-related-content-wrapper', '.ds-related-content-container');\r\n relatedContent.initialize();\r\n}\r\n\r\nfunction setupFavicon() {\r\n const link = document.querySelector(\"link[rel*='icon']\") || document.createElement('link');\r\n link.type = 'image/x-icon';\r\n link.rel = 'shortcut icon';\r\n if (location.hostname === 'conception.canadapost-postescanada.ca') {\r\n link.href = '/scp/assets/designsystem/img/favicon.png'; \r\n } else {\r\n link.href = '/cpc/assets/designsystem/img/favicon.png';\r\n }\r\n \r\n document.getElementsByTagName('head')[0].appendChild(link);\r\n}\r\n\r\nfunction checkProdURLs() {\r\n if (location.hostname === 'design.canadapost-postescanada.ca' || location.hostname === 'conception.canadapost-postescanada.ca' || location.hostname === 'localhost') {\r\n for (let i = 0, l = document.links.length; i < l; i += 1) {\r\n document.links[i].href = setPRODUrls(document.links[i].href);\r\n }\r\n }\r\n}\r\n\r\n// Updated by Nauman\r\nfunction setPRODUrls(link) {\r\n // If PROD url, design.canadapost-postescanada.ca, replace '/cpc/en/designsystem/' with '/en/'\r\n // '/cpc/fr/designsystem/' with '/fr/'\r\n\r\n // https://www.canadapost.ca/cpc/en/personal/receiving/alternative-delivery/parcel-lockers.page\r\n // https://www.canadapost.ca/cpc/en/personal/receiving/manage-mail/community-mailbox.page\r\n // https://www.canadapost.ca/cpc/en/personal/receiving/manage-mail/community-mailbox.page\r\n \r\n let item = link;\r\n const liveSiteENRelativePrefix = '/cpc/en/';\r\n const dotDesignENRelativePrefix = '/en/';\r\n const liveSiteFRRelativePrefix = '/scp/fr/';\r\n const dotDesignFRRelativePrefix = '/fr/';\r\n const candaPostLinksCPC = 'canadapost.ca/cpc/';\r\n const candaPostLinksSCP = 'canadapost.ca/scp/';\r\n\r\n // As some pages has Inner links that points to CanadaPost and code was removing CPC and SCP from there so avoid that in body links\r\n \r\n if (((item.indexOf(liveSiteENRelativePrefix) > -1) ||\r\n (item.indexOf(liveSiteFRRelativePrefix) > -1)) &&\r\n (item.indexOf(candaPostLinksCPC) === -1) &&\r\n (item.indexOf(candaPostLinksSCP) === -1)) {\r\n item = item.replace(liveSiteENRelativePrefix, dotDesignENRelativePrefix);\r\n item = item.replace(liveSiteFRRelativePrefix, dotDesignFRRelativePrefix);\r\n }\r\n return item;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./design-sys.js","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 34\n// module chunks = 0"],"sourceRoot":""}