/******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = "/"; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 2); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports) { /* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */ module.exports = __webpack_amd_options__; /* WEBPACK VAR INJECTION */}.call(exports, {})) /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; //download.js v4.2, by dandavis; 2008-2016. [CCBY2] see http://danml.com/download.html for tests/usage // v1 landed a FF+Chrome compat way of downloading strings to local un-named files, upgraded to use a hidden frame and optional mime // v2 added named files via a[download], msSaveBlob, IE (10+) support, and window.URL support for larger+faster saves than dataURLs // v3 added dataURL and Blob Input, bind-toggle arity, and legacy dataURL fallback was improved with force-download mime and base64 support. 3.1 improved safari handling. // v4 adds AMD/UMD, commonJS, and plain browser support // v4.1 adds url download capability via solo URL argument (same domain/CORS only) // v4.2 adds semantic variable names, long (over 2MB) dataURL support, and hidden by default temp anchors // https://github.com/rndme/download (function (root, factory) { if (true) { // AMD. Register as an anonymous module. !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else if ((typeof exports === 'undefined' ? 'undefined' : _typeof(exports)) === 'object') { // Node. Does not work with strict CommonJS, but // only CommonJS-like environments that support module.exports, // like Node. module.exports = factory(); } else { // Browser globals (root is window) root.download = factory(); } })(undefined, function () { return function download(data, strFileName, strMimeType) { var self = window, // this script is only for browsers anyway... defaultMime = "application/octet-stream", // this default mime also triggers iframe downloads mimeType = strMimeType || defaultMime, payload = data, url = !strFileName && !strMimeType && payload, anchor = document.createElement("a"), toString = function toString(a) { return String(a); }, myBlob = self.Blob || self.MozBlob || self.WebKitBlob || toString, fileName = strFileName || "download", blob, reader; myBlob = myBlob.call ? myBlob.bind(self) : Blob; if (String(this) === "true") { //reverse arguments, allowing download.bind(true, "text/xml", "export.xml") to act as a callback payload = [payload, mimeType]; mimeType = payload[0]; payload = payload[1]; } if (url && url.length < 2048) { // if no filename and no mime, assume a url was passed as the only argument fileName = url.split("/").pop().split("?")[0]; anchor.href = url; // assign href prop to temp anchor if (anchor.href.indexOf(url) !== -1) { // if the browser determines that it's a potentially valid url path: var ajax = new XMLHttpRequest(); ajax.open("GET", url, true); ajax.responseType = 'blob'; ajax.onload = function (e) { download(e.target.response, fileName, defaultMime); }; setTimeout(function () { ajax.send(); }, 0); // allows setting custom ajax headers using the return: return ajax; } // end if valid url? } // end if url? //go ahead and download dataURLs right away if (/^data\:[\w+\-]+\/[\w+\-]+[,;]/.test(payload)) { if (payload.length > 1024 * 1024 * 1.999 && myBlob !== toString) { payload = dataUrlToBlob(payload); mimeType = payload.type || defaultMime; } else { return navigator.msSaveBlob ? // IE10 can't do a[download], only Blobs: navigator.msSaveBlob(dataUrlToBlob(payload), fileName) : saver(payload); // everyone else can save dataURLs un-processed } } //end if dataURL passed? blob = payload instanceof myBlob ? payload : new myBlob([payload], { type: mimeType }); function dataUrlToBlob(strUrl) { var parts = strUrl.split(/[:;,]/), type = parts[1], decoder = parts[2] == "base64" ? atob : decodeURIComponent, binData = decoder(parts.pop()), mx = binData.length, i = 0, uiArr = new Uint8Array(mx); for (i; i < mx; ++i) { uiArr[i] = binData.charCodeAt(i); }return new myBlob([uiArr], { type: type }); } function saver(url, winMode) { if ('download' in anchor) { //html5 A[download] anchor.href = url; anchor.setAttribute("download", fileName); anchor.className = "download-js-link"; anchor.innerHTML = "downloading..."; anchor.style.display = "none"; document.body.appendChild(anchor); setTimeout(function () { anchor.click(); document.body.removeChild(anchor); if (winMode === true) { setTimeout(function () { self.URL.revokeObjectURL(anchor.href); }, 250); } }, 66); return true; } // handle non-a[download] safari as best we can: if (/(Version)\/(\d+)\.(\d+)(?:\.(\d+))?.*Safari\//.test(navigator.userAgent)) { url = url.replace(/^data:([\w\/\-\+]+)/, defaultMime); if (!window.open(url)) { // popup blocked, offer direct download: if (confirm("Displaying New Document\n\nUse Save As... to download, then click back to return to this page.")) { location.href = url; } } return true; } //do iframe dataURL download (old ch+FF): var f = document.createElement("iframe"); document.body.appendChild(f); if (!winMode) { // force a mime that will download: url = "data:" + url.replace(/^data:([\w\/\-\+]+)/, defaultMime); } f.src = url; setTimeout(function () { document.body.removeChild(f); }, 333); } //end saver if (navigator.msSaveBlob) { // IE10+ : (has Blob, but not a[download] or URL) return navigator.msSaveBlob(blob, fileName); } if (self.URL) { // simple fast and modern way using Blob and URL: saver(self.URL.createObjectURL(blob), true); } else { // handle non-Blob()+non-URL browsers: if (typeof blob === "string" || blob.constructor === toString) { try { return saver("data:" + mimeType + ";base64," + self.btoa(blob)); } catch (y) { return saver("data:" + mimeType + "," + encodeURIComponent(blob)); } } // Blob but not URL support: reader = new FileReader(); reader.onload = function (e) { saver(this.result); }; reader.readAsDataURL(blob); } return true; }; /* end download() */ }); /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(3); /***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _smoothscrollPolyfill = __webpack_require__(4); var _smoothscrollPolyfill2 = _interopRequireDefault(_smoothscrollPolyfill); var _modalLauncher = __webpack_require__(5); var _modalLauncher2 = _interopRequireDefault(_modalLauncher); var _assetLauncher = __webpack_require__(6); var _assetLauncher2 = _interopRequireDefault(_assetLauncher); var _parallax = __webpack_require__(7); var _parallax2 = _interopRequireDefault(_parallax); var _animations = __webpack_require__(8); var _animations2 = _interopRequireDefault(_animations); var _scrollreveal = __webpack_require__(9); var _scrollreveal2 = _interopRequireDefault(_scrollreveal); var _fixedNav = __webpack_require__(10); var _fixedNav2 = _interopRequireDefault(_fixedNav); var _downloadLauncher = __webpack_require__(11); var _downloadLauncher2 = _interopRequireDefault(_downloadLauncher); var _downloadModalLauncher = __webpack_require__(12); var _downloadModalLauncher2 = _interopRequireDefault(_downloadModalLauncher); var _productLauncher = __webpack_require__(14); var _productLauncher2 = _interopRequireDefault(_productLauncher); var _themeGraphTabs = __webpack_require__(15); var _themeGraphTabs2 = _interopRequireDefault(_themeGraphTabs); var _matrices = __webpack_require__(16); var _matrices2 = _interopRequireDefault(_matrices); var _track = __webpack_require__(17); var _track2 = _interopRequireDefault(_track); var _accessibility = __webpack_require__(18); var _accessibility2 = _interopRequireDefault(_accessibility); var _accessibility_screen = __webpack_require__(19); var _accessibility_screen2 = _interopRequireDefault(_accessibility_screen); var _loadMoreProducts = __webpack_require__(20); var _loadMoreProducts2 = _interopRequireDefault(_loadMoreProducts); var _loadMoreThemes = __webpack_require__(21); var _loadMoreThemes2 = _interopRequireDefault(_loadMoreThemes); var _loadMoreAssetClasses = __webpack_require__(22); var _loadMoreAssetClasses2 = _interopRequireDefault(_loadMoreAssetClasses); var _allVideoModal = __webpack_require__(23); var _allVideoModal2 = _interopRequireDefault(_allVideoModal); var _oneYearOutlook = __webpack_require__(26); var _oneYearOutlook2 = _interopRequireDefault(_oneYearOutlook); var _oneYearLoadMoreAssetClasses = __webpack_require__(27); var _oneYearLoadMoreAssetClasses2 = _interopRequireDefault(_oneYearLoadMoreAssetClasses); var _oneYearLoadChart = __webpack_require__(28); var _oneYearLoadChart2 = _interopRequireDefault(_oneYearLoadChart); var _productStickyNav = __webpack_require__(29); var _productStickyNav2 = _interopRequireDefault(_productStickyNav); var _products = __webpack_require__(30); var _products2 = _interopRequireDefault(_products); var _hoverTooltip = __webpack_require__(31); var _hoverTooltip2 = _interopRequireDefault(_hoverTooltip); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } _smoothscrollPolyfill2.default.polyfill(); // Import all needed classes // Polyfill for smoothscroll on IE // import FormValidation from './formValidation'; /** NOT USED AT THE MOMENT. WAS CREATED TO SET VIDEO USING JS SO THAT WE COULD CONTROL THE PREVIEW GATING. - **/ //import HomepageVideo from './homepageVideo'; //Product 2018 Page var accessibility, screen_acc; // Instantiate classes on DOM ready document.addEventListener('DOMContentLoaded', function () { window.Velocity = __webpack_require__(32); window.sr = new _scrollreveal2.default({ // Set new defaults origin: 'bottom', distance: '50px', duration: 500, scale: 1, reset: false, easing: 'ease-out' }); var modalLauncher = new _modalLauncher2.default(); var assetLauncher = new _assetLauncher2.default(); var parallax = new _parallax2.default(); var fixedNav = new _fixedNav2.default(); var downloadLauncher = new _downloadLauncher2.default(); var downloadModalLauncher = new _downloadModalLauncher2.default(); var productLauncher = new _productLauncher2.default(); // const formValidation = new FormValidation(); var themeGraphTabs = new _themeGraphTabs2.default(); var matrices = new _matrices2.default(); var animations = new _animations2.default(); var loadMoreThemes = new _loadMoreThemes2.default(); var loadMoreProducts = new _loadMoreProducts2.default(); var loadMoreAssetClasses = new _loadMoreAssetClasses2.default(); var oneYearOutlook = new _oneYearOutlook2.default(); var oneYearLoadMoreAssetClasses = new _oneYearLoadMoreAssetClasses2.default(); var oneYearLoadChart = new _oneYearLoadChart2.default(); //const homepageVideo = new HomepageVideo(); window.productsPage = new _products2.default(); window.track = new _track2.default(); window.accessibility = new _accessibility2.default(); window.screen_acc = new _accessibility_screen2.default(); var productStickyNav = new _productStickyNav2.default(); /* sticky nav depends on track and productsPage */ var allVideoModal = new _allVideoModal2.default(); var hoverTooltip = new _hoverTooltip2.default(); // Preload full download button hover icon var paperIcon = new Image(); paperIcon.src = '/images/icons/paper-white.png'; }); if (document.getElementById('chart-alternatives')) { // Animation waypoints for graphs try { // Comment out because this Chart is no longer an amChart, is now static SVG // new Waypoint({ // element: document.getElementById('chart-real-assets'), // handler: function(direction) { // document.getElementById('chart-real-assets').classList.add('animating'); // }, // offset: '75%' // }); new Waypoint({ element: document.getElementById('chart-alternatives'), handler: function handler(direction) { document.getElementById('chart-alternatives').classList.add('animating'); }, offset: '75%' }); } catch (e) { console.log('error is ' + e); } } /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { /* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */ (function () { 'use strict'; // polyfill function polyfill() { // aliases var w = window; var d = document; // return if scroll behavior is supported and polyfill is not forced if ( 'scrollBehavior' in d.documentElement.style && w.__forceSmoothScrollPolyfill__ !== true ) { return; } // globals var Element = w.HTMLElement || w.Element; var SCROLL_TIME = 468; // object gathering original scroll methods var original = { scroll: w.scroll || w.scrollTo, scrollBy: w.scrollBy, elementScroll: Element.prototype.scroll || scrollElement, scrollIntoView: Element.prototype.scrollIntoView }; // define timing method var now = w.performance && w.performance.now ? w.performance.now.bind(w.performance) : Date.now; /** * indicates if a the current browser is made by Microsoft * @method isMicrosoftBrowser * @param {String} userAgent * @returns {Boolean} */ function isMicrosoftBrowser(userAgent) { var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/']; return new RegExp(userAgentPatterns.join('|')).test(userAgent); } /* * IE has rounding bug rounding down clientHeight and clientWidth and * rounding up scrollHeight and scrollWidth causing false positives * on hasScrollableSpace */ var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0; /** * changes scroll position inside an element * @method scrollElement * @param {Number} x * @param {Number} y * @returns {undefined} */ function scrollElement(x, y) { this.scrollLeft = x; this.scrollTop = y; } /** * returns result of applying ease math function to a number * @method ease * @param {Number} k * @returns {Number} */ function ease(k) { return 0.5 * (1 - Math.cos(Math.PI * k)); } /** * indicates if a smooth behavior should be applied * @method shouldBailOut * @param {Number|Object} firstArg * @returns {Boolean} */ function shouldBailOut(firstArg) { if ( firstArg === null || typeof firstArg !== 'object' || firstArg.behavior === undefined || firstArg.behavior === 'auto' || firstArg.behavior === 'instant' ) { // first argument is not an object/null // or behavior is auto, instant or undefined return true; } if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') { // first argument is an object and behavior is smooth return false; } // throw error when behavior is not supported throw new TypeError( 'behavior member of ScrollOptions ' + firstArg.behavior + ' is not a valid value for enumeration ScrollBehavior.' ); } /** * indicates if an element has scrollable space in the provided axis * @method hasScrollableSpace * @param {Node} el * @param {String} axis * @returns {Boolean} */ function hasScrollableSpace(el, axis) { if (axis === 'Y') { return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight; } if (axis === 'X') { return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth; } } /** * indicates if an element has a scrollable overflow property in the axis * @method canOverflow * @param {Node} el * @param {String} axis * @returns {Boolean} */ function canOverflow(el, axis) { var overflowValue = w.getComputedStyle(el, null)['overflow' + axis]; return overflowValue === 'auto' || overflowValue === 'scroll'; } /** * indicates if an element can be scrolled in either axis * @method isScrollable * @param {Node} el * @param {String} axis * @returns {Boolean} */ function isScrollable(el) { var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y'); var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X'); return isScrollableY || isScrollableX; } /** * finds scrollable parent of an element * @method findScrollableParent * @param {Node} el * @returns {Node} el */ function findScrollableParent(el) { while (el !== d.body && isScrollable(el) === false) { el = el.parentNode || el.host; } return el; } /** * self invoked function that, given a context, steps through scrolling * @method step * @param {Object} context * @returns {undefined} */ function step(context) { var time = now(); var value; var currentX; var currentY; var elapsed = (time - context.startTime) / SCROLL_TIME; // avoid elapsed times higher than one elapsed = elapsed > 1 ? 1 : elapsed; // apply easing to elapsed time value = ease(elapsed); currentX = context.startX + (context.x - context.startX) * value; currentY = context.startY + (context.y - context.startY) * value; context.method.call(context.scrollable, currentX, currentY); // scroll more if we have not reached our destination if (currentX !== context.x || currentY !== context.y) { w.requestAnimationFrame(step.bind(w, context)); } } /** * scrolls window or element with a smooth behavior * @method smoothScroll * @param {Object|Node} el * @param {Number} x * @param {Number} y * @returns {undefined} */ function smoothScroll(el, x, y) { var scrollable; var startX; var startY; var method; var startTime = now(); // define scroll context if (el === d.body) { scrollable = w; startX = w.scrollX || w.pageXOffset; startY = w.scrollY || w.pageYOffset; method = original.scroll; } else { scrollable = el; startX = el.scrollLeft; startY = el.scrollTop; method = scrollElement; } // scroll looping over a frame step({ scrollable: scrollable, method: method, startTime: startTime, startX: startX, startY: startY, x: x, y: y }); } // ORIGINAL METHODS OVERRIDES // w.scroll and w.scrollTo w.scroll = w.scrollTo = function() { // avoid action when no arguments are passed if (arguments[0] === undefined) { return; } // avoid smooth behavior if not required if (shouldBailOut(arguments[0]) === true) { original.scroll.call( w, arguments[0].left !== undefined ? arguments[0].left : typeof arguments[0] !== 'object' ? arguments[0] : w.scrollX || w.pageXOffset, // use top prop, second argument if present or fallback to scrollY arguments[0].top !== undefined ? arguments[0].top : arguments[1] !== undefined ? arguments[1] : w.scrollY || w.pageYOffset ); return; } // LET THE SMOOTHNESS BEGIN! smoothScroll.call( w, d.body, arguments[0].left !== undefined ? ~~arguments[0].left : w.scrollX || w.pageXOffset, arguments[0].top !== undefined ? ~~arguments[0].top : w.scrollY || w.pageYOffset ); }; // w.scrollBy w.scrollBy = function() { // avoid action when no arguments are passed if (arguments[0] === undefined) { return; } // avoid smooth behavior if not required if (shouldBailOut(arguments[0])) { original.scrollBy.call( w, arguments[0].left !== undefined ? arguments[0].left : typeof arguments[0] !== 'object' ? arguments[0] : 0, arguments[0].top !== undefined ? arguments[0].top : arguments[1] !== undefined ? arguments[1] : 0 ); return; } // LET THE SMOOTHNESS BEGIN! smoothScroll.call( w, d.body, ~~arguments[0].left + (w.scrollX || w.pageXOffset), ~~arguments[0].top + (w.scrollY || w.pageYOffset) ); }; // Element.prototype.scroll and Element.prototype.scrollTo Element.prototype.scroll = Element.prototype.scrollTo = function() { // avoid action when no arguments are passed if (arguments[0] === undefined) { return; } // avoid smooth behavior if not required if (shouldBailOut(arguments[0]) === true) { // if one number is passed, throw error to match Firefox implementation if (typeof arguments[0] === 'number' && arguments[1] === undefined) { throw new SyntaxError('Value could not be converted'); } original.elementScroll.call( this, // use left prop, first number argument or fallback to scrollLeft arguments[0].left !== undefined ? ~~arguments[0].left : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft, // use top prop, second argument or fallback to scrollTop arguments[0].top !== undefined ? ~~arguments[0].top : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop ); return; } var left = arguments[0].left; var top = arguments[0].top; // LET THE SMOOTHNESS BEGIN! smoothScroll.call( this, this, typeof left === 'undefined' ? this.scrollLeft : ~~left, typeof top === 'undefined' ? this.scrollTop : ~~top ); }; // Element.prototype.scrollBy Element.prototype.scrollBy = function() { // avoid action when no arguments are passed if (arguments[0] === undefined) { return; } // avoid smooth behavior if not required if (shouldBailOut(arguments[0]) === true) { original.elementScroll.call( this, arguments[0].left !== undefined ? ~~arguments[0].left + this.scrollLeft : ~~arguments[0] + this.scrollLeft, arguments[0].top !== undefined ? ~~arguments[0].top + this.scrollTop : ~~arguments[1] + this.scrollTop ); return; } this.scroll({ left: ~~arguments[0].left + this.scrollLeft, top: ~~arguments[0].top + this.scrollTop, behavior: arguments[0].behavior }); }; // Element.prototype.scrollIntoView Element.prototype.scrollIntoView = function() { // avoid smooth behavior if not required if (shouldBailOut(arguments[0]) === true) { original.scrollIntoView.call( this, arguments[0] === undefined ? true : arguments[0] ); return; } // LET THE SMOOTHNESS BEGIN! var scrollableParent = findScrollableParent(this); var parentRects = scrollableParent.getBoundingClientRect(); var clientRects = this.getBoundingClientRect(); if (scrollableParent !== d.body) { // reveal element inside parent smoothScroll.call( this, scrollableParent, scrollableParent.scrollLeft + clientRects.left - parentRects.left, scrollableParent.scrollTop + clientRects.top - parentRects.top ); // reveal parent in viewport unless is fixed if (w.getComputedStyle(scrollableParent).position !== 'fixed') { w.scrollBy({ left: parentRects.left, top: parentRects.top, behavior: 'smooth' }); } } else { // reveal element in viewport w.scrollBy({ left: clientRects.left, top: clientRects.top, behavior: 'smooth' }); } }; } if (true) { // commonjs module.exports = { polyfill: polyfill }; } else { // global polyfill(); } }()); /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var ModalLauncher = function () { function ModalLauncher() { var _this = this; _classCallCheck(this, ModalLauncher); this.modalData = { "modal_parent": ".themes__modal", "modal_children": ["a.themes__modal__close-button", "a.themes__modal__previous-button", "a.themes__modal__next-button", "div.themes__modal__inner", "div#themes__modal_item__chart_1", "a#findasolution_1"] }; this.modalId = 1; this.modalLinks = document.querySelectorAll('.overlay-link'); this.modalLinks2 = document.querySelectorAll('.overlay-link2'); this.productsLinks = document.querySelectorAll('.productModalLinks'); if (this.modalLinks && !this.modalLinks.length) return; /* no overlays on page */ this.modal = document.querySelector('.themes__modal'); if (!this.modal) { return; } this.closeButton = document.querySelector('.themes__modal__close-button'); this.closeButtonImg = document.querySelector('.themes__modal__close-button'); this.previousButton = document.querySelector('.themes__modal__previous-button'); this.nextButton = document.querySelector('.themes__modal__next-button'); this.killModal = this.killModal.bind(this); this.onClick = this.onClick.bind(this); this.previous = this.previous.bind(this); this.next = this.next.bind(this); this.oneYearThemeLaunchButton = document.querySelector('.button--oneyear-launch-themes-modal'); if (this.oneYearThemeLaunchButton) { this.oneYearThemeLaunchButton.addEventListener('click', function (e) { return _this.display(1, true); }); } if (window.location.hash) { window.addEventListener('DOMContentLoaded', function (e) { return _this.openModalOnHash(window.location.hash); }); } if (this.modalLinks && this.modalLinks.length) { Array.prototype.forEach.call(this.modalLinks, function (link) { var t = _this; link.addEventListener('click', function (e) { return _this.openModalOnHash(e); }); }); document.addEventListener('keydown', this.onKeyDown.bind(this)); this.closeButton.addEventListener('click', this.killModal); this.closeButtonImg.addEventListener('click', this.killModal); if (this.previousButton) { this.previousButton.addEventListener('click', this.previous); } if (this.nextButton) { this.nextButton.addEventListener('click', this.next); } } if (this.modalLinks2 && this.modalLinks2.length) { Array.prototype.forEach.call(this.modalLinks2, function (link) { var t = _this; link.addEventListener('click', function (e) { return t.onClick(e, link); }); }); document.addEventListener('keydown', this.onKeyDown.bind(this)); this.closeButton.addEventListener('click', this.killModal); this.closeButtonImg.addEventListener('click', this.killModal); if (this.previousButton) { this.previousButton.addEventListener('click', this.previous); } if (this.nextButton) { this.nextButton.addEventListener('click', this.next); } } if (this.productsLinks) { Array.prototype.forEach.call(this.productsLinks, function (link) { var t = _this; link.addEventListener('click', function (e) { return t.onClick(e, link); }); }); document.addEventListener('keydown', this.onKeyDown.bind(this)); this.closeButton.addEventListener('click', this.killModal); this.closeButtonImg.addEventListener('click', this.killModal); } } _createClass(ModalLauncher, [{ key: "display", value: function display(modalId, firstLaunch) { var _this2 = this; // console.log("modalId",modalId); if ("qe-factors-quality" == modalId || "qe-factors-value" == modalId || "qe-factors-volatility" == modalId || "qe-factors-yield" == modalId || "qe-factors-momentum" == modalId || "qe-factors-size" == modalId) { this.modalData = { "modal_parent": ".themes__modal", "modal_children": ["a.themes__modal__close-button img"] }; } else if ("equity-us-is1" == modalId || "equity-us-is2" == modalId || "equity-us-is3" == modalId || "equity-ca-is1" == modalId || "equity-ca-is2" == modalId || "equity-ca-is3" == modalId || "equity-us-mf1" == modalId || "equity-us-mf2" == modalId || "equity-us-mf3" == modalId || "equity-ca-mf1" == modalId || "equity-ca-mf2" == modalId || "equity-ca-mf3" == modalId || "equity-me-is1" == modalId || "equity-me-is2" == modalId || "equity-me-is3" == modalId || "equity-eu-is1" == modalId || "equity-eu-is2" == modalId || "equity-eu-is3" == modalId || "equity-asia-is1" == modalId || "equity-asia-is2" == modalId || "equity-asia-is3" == modalId || "equity-au-is1" == modalId || "equity-au-is2" == modalId || "equity-au-is3" == modalId || "ma-us-is1" == modalId || "ma-us-is2" == modalId || "ma-us-is3" == modalId || "ma-us-mf1" == modalId || "ma-ca-is1" == modalId || "ma-ca-is2" == modalId || "ma-ca-is3" == modalId || "ma-ca-mf1" == modalId || "fixedincome-us-is1" == modalId || "fixedincome-us-etf1" == modalId || "fixedincome-ca-is1" == modalId || "fixedincome-ca-etf1" == modalId || "fixedincome-eu-is1" == modalId || "fixedincome-me-is1" == modalId || "fixedincome-asia-is1" == modalId || "fixedincome-au-is1" == modalId || "liquidity-us-is1" == modalId || "liquidity-ca-is1" == modalId || "liquidity-eu-is1" == modalId || "liquidity-eu-is1" == modalId || "liquidity-me-is1" == modalId || "liquidity-au-is1" == modalId || "liquidity-asia-is1" == modalId || "qe-factors-quality" == modalId || "qe-factors-value" == modalId || "qe-factors-volatility" == modalId || "qe-factors-yield" == modalId || "qe-factors-momentum" == modalId || "qe-factors-size" == modalId) { // console.log("div.factor-cta."+modalId+" > div > a"); this.modalData = { "modal_parent": ".themes__modal", "modal_children": ["a.themes__modal__close-button img", "div.factor-cta." + modalId + " > div > a"] }; } else if (modalId > 0 && modalId <= 6) { this.modalData = { "modal_parent": ".themes__modal", "modal_children": ["a.themes__modal__close-button", "a.themes__modal__previous-button", "a.themes__modal__next-button", "div#themes__modal__item__" + modalId, "div#themes__modal_item__chart_" + modalId, "a#findasolution_" + modalId] }; } else { this.modalData = { "modal_parent": ".themes__modal", "modal_children": ["a.themes__modal__close-button", "a.themes__modal__previous-button", "a.themes__modal__next-button", "div#themes__modal__item__" + modalId, "div#themes__modal_item__chart_" + modalId, "a#findasolution_" + modalId] }; } accessibility.modalShown(this.modalData); var modalThemes = document.querySelectorAll("[data-theme-modal]"); var modalTheme = document.querySelector("[data-theme-modal='" + modalId + "']"); // Reset all modal themes to invisible Array.prototype.forEach.call(modalThemes, function (theme) { theme.style.display = 'none'; }); modalTheme.style.display = 'block'; if (firstLaunch) { this.modal.style.display = 'block'; // Set to execute on next call stack, // otherwise transition doesn't happen setTimeout(function () { _this2.modal.style.opacity = '1'; }, 0); var that = this; setTimeout(function () { document.body.classList.add('modal-is-open'); accessibility.modalShown(that.modalData); }, 250); // adds overlow hidden to the body to prevent scrolling } // Keep track of current theme for previous/next this.modalId = modalId; } }, { key: "onClick", value: function onClick(e, link) { console.log("e", e); console.log("link", link); e.preventDefault(); var modalId = link.dataset.modalId; console.log(modalId); return this.display(modalId, true); } }, { key: "openModalOnHash", value: function openModalOnHash(hash) { if (hash === "#fullResearchPaper") { var button = document.getElementById("officialButton"); button.click(); } var urlItem = void 0; if (!hash.target) { urlItem = hash; } else { urlItem = hash.target.id; } if (urlItem.indexOf("#growth-restraints") > -1) { return this.display(1, true); } else if (urlItem.indexOf("#inflation-adaptation") > -1) { return this.display(2, true); } else if (urlItem.indexOf("#central-bank-concessions") > -1) { return this.display(3, true); } else if (urlItem.indexOf("#geopolitical-fault-lines") > -1) { return this.display(4, true); } else if (urlItem.indexOf("#a-sustainable-green-transition") > -1) { return this.display(5, true); } else if (urlItem.indexOf("#private-matters") > -1) { return this.display(6, true); } } }, { key: "killModal", value: function killModal(e) { if (e) { e.preventDefault(); } document.body.classList.remove('modal-is-open'); var t = this; setTimeout(function () { t.modal.style.opacity = '0'; t.modal.style.display = 'none'; accessibility.modalHidden(t.modalData, document.getElementById("Key6ThemesOrder" + t.modalId)); }, 250); // remove class before hiding overlay to hide bounch of scrollbar window.history.pushState('', '', ''); } }, { key: "onKeyDown", value: function onKeyDown(e) { // Hide modal if user presses escape key while it is visible. if (e.keyCode === 27 && this.modal.style.opacity === '1') { this.killModal(); } // Trigger previous/next if user presses arrow keys if (e.keyCode === 37 && this.modal.style.opacity === '1') { this.previous(); } if (e.keyCode === 39 && this.modal.style.opacity === '1') { this.next(); } } }, { key: "previous", value: function previous(e) { if (e) { e.preventDefault(); } var modalId = this.modalId - 1 <= 0 ? this.modalLinks.length : this.modalId - 1; this.lastelement = "findasolution_" + modalId; return this.display(modalId); } }, { key: "next", value: function next(e) { if (e) { e.preventDefault(); } var modalId = this.modalId + 1 > this.modalLinks.length ? 1 : this.modalId + 1; return this.display(modalId); } }]); return ModalLauncher; }(); exports.default = ModalLauncher; /***/ }), /* 6 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var AssetLauncher = function () { function AssetLauncher() { var _this = this; _classCallCheck(this, AssetLauncher); this.tabs = document.querySelectorAll('.asset-class__tab'); Array.prototype.forEach.call(this.tabs, function (tab) { tab.addEventListener('click', function (e) { return _this.onClick(e, tab); }); }); } _createClass(AssetLauncher, [{ key: 'onClick', value: function onClick(e, tab) { e.preventDefault(); var tabNumber = tab.dataset.assetClass; var assetContents = document.querySelectorAll('[data-asset-class-content]'); var assetContent = document.querySelector('[data-asset-class-content=\'' + tabNumber + '\']'); // Reset all content blocks to invisible Array.prototype.forEach.call(assetContents, function (asset) { asset.style.display = 'none'; }); // Reset all tabs to inactive Array.prototype.forEach.call(this.tabs, function (tab) { tab.className = 'asset-class__tab'; tab.setAttribute("aria-selected", false); }); // Display selected content and set active tab tab.className = 'asset-class__tab asset-class__tab--active'; tab.setAttribute("aria-selected", true); if (tab.getAttribute("aria-controls") == "panel_4") { setTimeout(function () { PostRenderAlternatives(); }, 700); } assetContent.style.display = 'block'; var children = assetContent.querySelectorAll('.asset-class__copy'); sr.reveal(children); } }]); return AssetLauncher; }(); exports.default = AssetLauncher; /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Parallax = function Parallax() { _classCallCheck(this, Parallax); var headerBg = document.querySelector('.header__bg'); if (headerBg) { window.onscroll = animateBg; } function animateBg() { if (window.scrollY < window.innerHeight) { requestAnimationFrame(updateTopPosition); } requestAnimationFrame(updateTopPosition); } function updateTopPosition() { headerBg.style.transform = 'translateY(' + window.scrollY * 0.5 + 'px)'; } }; exports.default = Parallax; /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Animations = function Animations() { _classCallCheck(this, Animations); // Homepage if (document.querySelector('.header--home')) { var items = document.querySelectorAll('.themes__list-item'); var itemCount = 0; // Header // sr.reveal('.header__bg', { // delay: 200, // distance: 0, // afterReveal: function() { // const headerBg = document.querySelector('.header__bg'); // headerBg.removeAttribute('style'); // headerBg.style.visibility = 'visible'; // } // }); sr.reveal('.header__text__title', { delay: 300 }); sr.reveal('.header__text__subtitle', { delay: 400 }); sr.reveal('.header .section-header', { delay: 500 }); sr.reveal('.header .section-header__title', { delay: 500 }); sr.reveal('.header .section-header__description', { delay: 600 }); sr.reveal('.header .button-cma', { delay: 800 }); sr.reveal('.section-header__title2', { delay: 800 }); sr.reveal('.secondary-button', { delay: 800 }); // sr.reveal('.header__video__inner' ); sr.reveal('.header__video__inner', { delay: 900 }); // removed 800s delay when image is used // Themes sr.reveal('.themes .section-header'); sr.reveal('.themes .section-header__title'); sr.reveal('.themes .section-header__description'); sr.reveal('.themes__list-item', { delay: 500, afterReveal: function afterReveal() { items[itemCount].removeAttribute('style'); items[itemCount].style.visibility = 'visible'; itemCount += 1; } }, 200); // sr.reveal('.themes__list-item > *', {delay: 500}, 50); // More Themes sr.reveal('.more-themes .section-header'); sr.reveal('.more-themes .section-header__title'); sr.reveal('.more-themes .section-header__description'); sr.reveal('.more-themes .reusable-article', 200); // Asset Classes sr.reveal('.asset-classes .section-header'); sr.reveal('.asset-classes .section-header__title'); sr.reveal('.asset-classes .section-header__description'); sr.reveal('.asset-class__tab', 200); sr.reveal('.asset-class__outlook__headline'); sr.reveal('.asset-class__outlook__description'); sr.reveal('.asset-class__outlook__video'); sr.reveal('.asset-class__outlook__stat'); sr.reveal('.class__outlook__rationale__header'); sr.reveal('.asset-classes .button-cma'); // More Asset Classes sr.reveal('.more-asset-classes'); sr.reveal('.more-asset-classes .section-header'); // Reusable Article Container sr.reveal('.reusable-article-container .resuable-articles'); sr.reveal('.reusable-article > *', 50); // Product Module sr.reveal('.portfolios-module__header__subtitle'); sr.reveal('.portfolios-module__header__title'); sr.reveal('.portfolios-module__header__description'); sr.reveal('.portfolios-module__product', 200); sr.reveal('.portfolios-module__product *', 50); // Product CTA sr.reveal('.product-cta__copy__headline'); sr.reveal('.product-cta__copy__description'); sr.reveal('.product-cta__button'); // Download CTA sr.reveal('.download-cta .section-header'); sr.reveal('.download-cta .section-header__title'); sr.reveal('.download-cta .section-header__description'); sr.reveal('.download-cta .button-cma'); // Contributors sr.reveal('.contributors__intro'); sr.reveal('.contributors__list__header'); sr.reveal('.contributor', 150); // NT Asset Management sr.reveal('.nt-asset-management__title'); sr.reveal('.nt-asset-management__intro'); sr.reveal('.nt-asset-management__subheadline'); sr.reveal('.nt-asset-management__column', 200); sr.reveal('.nt-asset-management__disclaimer__text'); } // Old Products Page (as of 8/29/18) // Products page if (document.querySelector('.header--products')) { // Header // sr.reveal('.header__bg', { // delay: 200, // distance: 0, // afterReveal: function() { // const headerBg = document.querySelector('.header__bg'); // headerBg.removeAttribute('style'); // headerBg.style.visibility = 'visible'; // } // }); // More on products sr.reveal('.more-themes .section-header'); sr.reveal('.more-themes .section-header__title'); sr.reveal('.more-themes .section-header__description'); sr.reveal('.more-themes .reusable-article', 200); // Product Module sr.reveal('.portfolios-module__header__subtitle'); sr.reveal('.portfolios-module__header__title'); sr.reveal('.portfolios-module__header__description'); sr.reveal('.portfolios-module__product', 200); sr.reveal('.portfolios-module__product *', 50); // Product selector sr.reveal('.product-selector__label'); sr.reveal('.product-selector__dropdown'); sr.reveal('.product-selector__tabs'); sr.reveal('.product-selector__tab', 200); sr.reveal('.product-selector__headline'); sr.reveal('.product-selector__description'); sr.reveal('.product-selector__button', 200); // NT Asset Management sr.reveal('.nt-asset-management__title'); sr.reveal('.nt-asset-management__intro'); sr.reveal('.nt-asset-management__subheadline'); sr.reveal('.nt-asset-management__column', 200); sr.reveal('.nt-asset-management__disclaimer__text'); sr.reveal('.contact__title'); sr.reveal('.contact__description'); sr.reveal('.contact__disclaimer'); sr.reveal('.contact__contacts__item', 200); // Product content is animated in productLauncher.js } // 2018 Outlook Page if (document.querySelector('.header--oneyear')) { // ASSET CLASS FORECASTS AND ALLOCATIONS sr.reveal('.asset-class__outlook__stat', 200); } // New Products Page (as of 8/29/18) if (document.querySelector('.products-page')) { sr.reveal('.product-offerings'); sr.reveal('.product-header-wrapper'); sr.reveal('.product-subheader'); // Quant Equity sr.reveal('.product-strategies-wrap'); sr.reveal('.themes__list--product-page'); sr.reveal('.themes__list-item', 10); sr.reveal('.disclosure'); // // Advantages Section sr.reveal('.advantages'); sr.reveal('.advantages__list'); sr.reveal('.advantages__list--multi-asset'); sr.reveal('.advantages__list-item', 10); // // Liquidity // sr.reveal('.segmentation'); // sr.reveal('.segmentation-item * '); // // Product Component // sr.reveal('.products-list'); // sr.reveal('.product-type-nav'); // sr.reveal('.products-featured-wrapper *'); // // sr.reveal('.products-more-wrapper'); // sr.reveal('.products-more-wrapper *'); sr.reveal('.product-chart'); sr.reveal('.investment-step'); sr.reveal('.footer__logo'); sr.reveal('.footer__social'); sr.reveal('.footer__links'); sr.reveal('.disclaimer'); } }; exports.default = Animations; /***/ }), /* 9 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; !function () { "use strict"; function e(n) { return "undefined" == typeof this || Object.getPrototypeOf(this) !== e.prototype ? new e(n) : (O = this, O.version = "3.3.6", O.tools = new E(), O.isSupported() ? (O.tools.extend(O.defaults, n || {}), O.defaults.container = t(O.defaults), O.store = { elements: {}, containers: [] }, O.sequences = {}, O.history = [], O.uid = 0, O.initialized = !1) : "undefined" != typeof console && null !== console, O); }function t(e) { if (e && e.container) { if ("string" == typeof e.container) return window.document.documentElement.querySelector(e.container);if (O.tools.isNode(e.container)) return e.container; }return O.defaults.container; }function n(e, t) { return "string" == typeof e ? Array.prototype.slice.call(t.querySelectorAll(e)) : O.tools.isNode(e) ? [e] : O.tools.isNodeList(e) ? Array.prototype.slice.call(e) : []; }function i() { return ++O.uid; }function o(e, t, n) { t.container && (t.container = n), e.config ? e.config = O.tools.extendClone(e.config, t) : e.config = O.tools.extendClone(O.defaults, t), "top" === e.config.origin || "bottom" === e.config.origin ? e.config.axis = "Y" : e.config.axis = "X"; }function r(e) { var t = window.getComputedStyle(e.domEl);e.styles || (e.styles = { transition: {}, transform: {}, computed: {} }, e.styles.inline = e.domEl.getAttribute("style") || "", e.styles.inline += "; visibility: visible; ", e.styles.computed.opacity = t.opacity, t.transition && "all 0s ease 0s" !== t.transition ? e.styles.computed.transition = t.transition + ", " : e.styles.computed.transition = ""), e.styles.transition.instant = s(e, 0), e.styles.transition.delayed = s(e, e.config.delay), e.styles.transform.initial = " -webkit-transform:", e.styles.transform.target = " -webkit-transform:", a(e), e.styles.transform.initial += "transform:", e.styles.transform.target += "transform:", a(e); }function s(e, t) { var n = e.config;return "-webkit-transition: " + e.styles.computed.transition + "-webkit-transform " + n.duration / 1e3 + "s " + n.easing + " " + t / 1e3 + "s, opacity " + n.duration / 1e3 + "s " + n.easing + " " + t / 1e3 + "s; transition: " + e.styles.computed.transition + "transform " + n.duration / 1e3 + "s " + n.easing + " " + t / 1e3 + "s, opacity " + n.duration / 1e3 + "s " + n.easing + " " + t / 1e3 + "s; "; }function a(e) { var t, n = e.config, i = e.styles.transform;t = "top" === n.origin || "left" === n.origin ? /^-/.test(n.distance) ? n.distance.substr(1) : "-" + n.distance : n.distance, parseInt(n.distance) && (i.initial += " translate" + n.axis + "(" + t + ")", i.target += " translate" + n.axis + "(0)"), n.scale && (i.initial += " scale(" + n.scale + ")", i.target += " scale(1)"), n.rotate.x && (i.initial += " rotateX(" + n.rotate.x + "deg)", i.target += " rotateX(0)"), n.rotate.y && (i.initial += " rotateY(" + n.rotate.y + "deg)", i.target += " rotateY(0)"), n.rotate.z && (i.initial += " rotateZ(" + n.rotate.z + "deg)", i.target += " rotateZ(0)"), i.initial += "; opacity: " + n.opacity + ";", i.target += "; opacity: " + e.styles.computed.opacity + ";"; }function l(e) { var t = e.config.container;t && O.store.containers.indexOf(t) === -1 && O.store.containers.push(e.config.container), O.store.elements[e.id] = e; }function c(e, t, n) { var i = { target: e, config: t, interval: n };O.history.push(i); }function f() { if (O.isSupported()) { y();for (var e = 0; e < O.store.containers.length; e++) { O.store.containers[e].addEventListener("scroll", d), O.store.containers[e].addEventListener("resize", d); }O.initialized || (window.addEventListener("scroll", d), window.addEventListener("resize", d), O.initialized = !0); }return O; }function d() { T(y); }function u() { var e, t, n, i;O.tools.forOwn(O.sequences, function (o) { i = O.sequences[o], e = !1;for (var r = 0; r < i.elemIds.length; r++) { n = i.elemIds[r], t = O.store.elements[n], q(t) && !e && (e = !0); }i.active = e; }); }function y() { var e, t;u(), O.tools.forOwn(O.store.elements, function (n) { t = O.store.elements[n], e = w(t), g(t) ? (t.config.beforeReveal(t.domEl), e ? t.domEl.setAttribute("style", t.styles.inline + t.styles.transform.target + t.styles.transition.delayed) : t.domEl.setAttribute("style", t.styles.inline + t.styles.transform.target + t.styles.transition.instant), p("reveal", t, e), t.revealing = !0, t.seen = !0, t.sequence && m(t, e)) : v(t) && (t.config.beforeReset(t.domEl), t.domEl.setAttribute("style", t.styles.inline + t.styles.transform.initial + t.styles.transition.instant), p("reset", t), t.revealing = !1); }); }function m(e, t) { var n = 0, i = 0, o = O.sequences[e.sequence.id];o.blocked = !0, t && "onload" === e.config.useDelay && (i = e.config.delay), e.sequence.timer && (n = Math.abs(e.sequence.timer.started - new Date()), window.clearTimeout(e.sequence.timer)), e.sequence.timer = { started: new Date() }, e.sequence.timer.clock = window.setTimeout(function () { o.blocked = !1, e.sequence.timer = null, d(); }, Math.abs(o.interval) + i - n); }function p(e, t, n) { var i = 0, o = 0, r = "after";switch (e) {case "reveal": o = t.config.duration, n && (o += t.config.delay), r += "Reveal";break;case "reset": o = t.config.duration, r += "Reset";}t.timer && (i = Math.abs(t.timer.started - new Date()), window.clearTimeout(t.timer.clock)), t.timer = { started: new Date() }, t.timer.clock = window.setTimeout(function () { t.config[r](t.domEl), t.timer = null; }, o - i); }function g(e) { if (e.sequence) { var t = O.sequences[e.sequence.id];return t.active && !t.blocked && !e.revealing && !e.disabled; }return q(e) && !e.revealing && !e.disabled; }function w(e) { var t = e.config.useDelay;return "always" === t || "onload" === t && !O.initialized || "once" === t && !e.seen; }function v(e) { if (e.sequence) { var t = O.sequences[e.sequence.id];return !t.active && e.config.reset && e.revealing && !e.disabled; }return !q(e) && e.config.reset && e.revealing && !e.disabled; }function b(e) { return { width: e.clientWidth, height: e.clientHeight }; }function h(e) { if (e && e !== window.document.documentElement) { var t = x(e);return { x: e.scrollLeft + t.left, y: e.scrollTop + t.top }; }return { x: window.pageXOffset, y: window.pageYOffset }; }function x(e) { var t = 0, n = 0, i = e.offsetHeight, o = e.offsetWidth;do { isNaN(e.offsetTop) || (t += e.offsetTop), isNaN(e.offsetLeft) || (n += e.offsetLeft), e = e.offsetParent; } while (e);return { top: t, left: n, height: i, width: o }; }function q(e) { function t() { var t = c + a * s, n = f + l * s, i = d - a * s, y = u - l * s, m = r.y + e.config.viewOffset.top, p = r.x + e.config.viewOffset.left, g = r.y - e.config.viewOffset.bottom + o.height, w = r.x - e.config.viewOffset.right + o.width;return t < g && i > m && n < w && y > p; }function n() { return "fixed" === window.getComputedStyle(e.domEl).position; }var i = x(e.domEl), o = b(e.config.container), r = h(e.config.container), s = e.config.viewFactor, a = i.height, l = i.width, c = i.top, f = i.left, d = c + a, u = f + l;return t() || n(); }function E() {}var O, T;e.prototype.defaults = { origin: "bottom", distance: "20px", duration: 500, delay: 0, rotate: { x: 0, y: 0, z: 0 }, opacity: 0, scale: .9, easing: "cubic-bezier(0.6, 0.2, 0.1, 1)", container: window.document.documentElement, mobile: !0, reset: !1, useDelay: "always", viewFactor: .2, viewOffset: { top: 0, right: 0, bottom: 0, left: 0 }, beforeReveal: function beforeReveal(e) {}, beforeReset: function beforeReset(e) {}, afterReveal: function afterReveal(e) {}, afterReset: function afterReset(e) {} }, e.prototype.isSupported = function () { var e = document.documentElement.style;return "WebkitTransition" in e && "WebkitTransform" in e || "transition" in e && "transform" in e; }, e.prototype.reveal = function (e, s, a, d) { var u, y, m, p, g, w;if (void 0 !== s && "number" == typeof s ? (a = s, s = {}) : void 0 !== s && null !== s || (s = {}), u = t(s), y = n(e, u), !y.length) return O;a && "number" == typeof a && (w = i(), g = O.sequences[w] = { id: w, interval: a, elemIds: [], active: !1 });for (var v = 0; v < y.length; v++) { p = y[v].getAttribute("data-sr-id"), p ? m = O.store.elements[p] : (m = { id: i(), domEl: y[v], seen: !1, revealing: !1 }, m.domEl.setAttribute("data-sr-id", m.id)), g && (m.sequence = { id: g.id, index: g.elemIds.length }, g.elemIds.push(m.id)), o(m, s, u), r(m), l(m), O.tools.isMobile() && !m.config.mobile || !O.isSupported() ? (m.domEl.setAttribute("style", m.styles.inline), m.disabled = !0) : m.revealing || m.domEl.setAttribute("style", m.styles.inline + m.styles.transform.initial); }return !d && O.isSupported() && (c(e, s, a), O.initTimeout && window.clearTimeout(O.initTimeout), O.initTimeout = window.setTimeout(f, 0)), O; }, e.prototype.sync = function () { if (O.history.length && O.isSupported()) { for (var e = 0; e < O.history.length; e++) { var t = O.history[e];O.reveal(t.target, t.config, t.interval, !0); }f(); }return O; }, E.prototype.isObject = function (e) { return null !== e && "object" == (typeof e === "undefined" ? "undefined" : _typeof(e)) && e.constructor === Object; }, E.prototype.isNode = function (e) { return "object" == _typeof(window.Node) ? e instanceof window.Node : e && "object" == (typeof e === "undefined" ? "undefined" : _typeof(e)) && "number" == typeof e.nodeType && "string" == typeof e.nodeName; }, E.prototype.isNodeList = function (e) { var t = Object.prototype.toString.call(e), n = /^\[object (HTMLCollection|NodeList|Object)\]$/;return "object" == _typeof(window.NodeList) ? e instanceof window.NodeList : e && "object" == (typeof e === "undefined" ? "undefined" : _typeof(e)) && n.test(t) && "number" == typeof e.length && (0 === e.length || this.isNode(e[0])); }, E.prototype.forOwn = function (e, t) { if (!this.isObject(e)) throw new TypeError('Expected "object", but received "' + (typeof e === "undefined" ? "undefined" : _typeof(e)) + '".');for (var n in e) { e.hasOwnProperty(n) && t(n); } }, E.prototype.extend = function (e, t) { return this.forOwn(t, function (n) { this.isObject(t[n]) ? (e[n] && this.isObject(e[n]) || (e[n] = {}), this.extend(e[n], t[n])) : e[n] = t[n]; }.bind(this)), e; }, E.prototype.extendClone = function (e, t) { return this.extend(this.extend({}, e), t); }, E.prototype.isMobile = function () { return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ); }, T = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (e) { window.setTimeout(e, 1e3 / 60); }, "function" == "function" && "object" == _typeof(__webpack_require__(0)) && __webpack_require__(0) ? !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () { return e; }).call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : "undefined" != typeof module && module.exports ? module.exports = e : window.ScrollReveal = e; }(); /***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var triggerPoint = 600 - 96; var FixedNav = function () { function FixedNav() { _classCallCheck(this, FixedNav); this.nav = document.querySelector('.fixed-nav'); if (!this.nav) return; this.header = document.querySelector('.header'); if (this.header) { window.requestAnimationFrame(this.loop.bind(this)); } } _createClass(FixedNav, [{ key: 'loop', value: function loop() { var top = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop; var diff = this.header.clientHeight - top; if (diff <= triggerPoint && this.nav.style.opacity == 0) { this.nav.style.opacity = 1; this.nav.style.pointerEvents = 'all'; this.nav.style.display = "block"; this.nav.setAttribute("aria-hidden", false); } if (diff > triggerPoint && this.nav.style.opacity == 1) { this.nav.style.opacity = 0; this.nav.style.pointerEvents = 'none'; this.nav.style.display = "none"; this.nav.setAttribute("aria-hidden", true); } window.requestAnimationFrame(this.loop.bind(this)); } }]); return FixedNav; }(); exports.default = FixedNav; /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _download = __webpack_require__(1); var _download2 = _interopRequireDefault(_download); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var DownloadLauncher = function () { function DownloadLauncher() { var _this = this; _classCallCheck(this, DownloadLauncher); this.buttons = document.querySelectorAll(".oneYearExec"); this.fiveYear = document.querySelectorAll(".fiveYearExec"); this.onClick = this.onClick.bind(this); Array.prototype.forEach.call(this.buttons, function (button) { button.addEventListener("click", _this.onClick); }); Array.prototype.forEach.call(this.fiveYear, function (button) { button.addEventListener("click", _this.onClickFiveYear); }); } _createClass(DownloadLauncher, [{ key: "onClickFiveYear", value: function onClickFiveYear() { var x = new XMLHttpRequest(); var fileName = "2024-Executive-Summary-CMA"; x.open("GET", "/downloads/" + fileName + ".pdf", true); x.responseType = "blob"; x.onload = function () { (0, _download2.default)(x.response, fileName + ".pdf", "application/pdf"); }; x.send(); } }, { key: "onClick", value: function onClick() { var x = new XMLHttpRequest(); var fileName = "2023_Outlook_Executive_summary"; x.open("GET", "/downloads/" + fileName + ".pdf", true); x.responseType = "blob"; x.onload = function () { (0, _download2.default)(x.response, fileName + ".pdf", "application/pdf"); }; x.send(); } }]); return DownloadLauncher; }(); exports.default = DownloadLauncher; /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _download = __webpack_require__(1); var _download2 = _interopRequireDefault(_download); var _js = __webpack_require__(13); var _js2 = _interopRequireDefault(_js); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var env = env || "prodution"; var DownloadModalLauncher = function () { function DownloadModalLauncher() { var _this = this; _classCallCheck(this, DownloadModalLauncher); this.modal = document.querySelector(".download-modal"); if (!this.modal) { return false; } this.buttons = document.querySelectorAll(".button--download.full-report"); this.closeButton = document.querySelector(".download-modal__close"); this.onClick = this.onClick.bind(this); this.killModal = this.killModal.bind(this); this.hideModal = this.hideModal.bind(this); this.modalData = { modal_parent: "#downloadFullReport.download-modal", modal_children: ["#downloadButtonClose", "input#FirstName", "input#LastName", "input#Email", "input#Company", "input#Title", "select#investorType", "button.mktoButton"] }; // Cookie track only for prod Marketo form this.modalForm = document.querySelector(".download-modal form"); //Replaced by marketo form 2019 // this.modalForm = document.querySelector('.sg-survey-form'); this.returningUserFiveYear = _js2.default.get("returning_user_fiveyear"); this.returningUserOneYear = _js2.default.get("returning_user_oneyear"); this.oneYear = window.location.pathname.indexOf("1year") >= 0; this.downloadTitleCopy = document.querySelector(".download-title-copy"); this.signupTitleCopy = document.querySelector(".signup-title-copy"); this.downloadBodyCopy = document.querySelector(".download-body-copy"); this.signupBodyCopy = document.querySelector(".signup-body-copy"); this.oneYearBodyCopy = document.querySelector(".oneyear-body-copy"); this.fiveYearBodyCopy = document.querySelector(".fiveyear-body-copy"); this.downloadButton = this.modal.querySelector('button[type="submit"], .button-cma.button--direct-download-full-report'); this.oneYearDirectDownload = document.querySelector(".oneyear-direct-download"); this.fiveYearDirectDownload = document.querySelector(".fiveyear-direct-download"); if (this.modal) { Array.prototype.forEach.call(this.buttons, function (button) { button.addEventListener("click", _this.onClick); }); this.closeButton.addEventListener("click", this.killModal); this.closeButton.addEventListener("keypress", function (e) { var key = e.which || e.keyCode; if (key === 13) { _this.killModal(); } }); document.addEventListener("keydown", this.onKeyDown.bind(this)); if (this.oneYear) { if (this.returningUserOneYear) { if (this.modalForm) this.modalForm.style.display = "none"; this.modal.classList.add("returning-user"); this.signupTitleCopy.style.display = "none"; this.downloadTitleCopy.style.display = "inline"; this.signupBodyCopy.style.display = "none"; this.downloadBodyCopy.style.display = "inline"; this.oneYearDirectDownload.style.display = "inline-block"; } } else { if (this.returningUserFiveYear) { if (this.modalForm) this.modalForm.style.display = "none"; this.modal.classList.add("returning-user"); this.signupTitleCopy.style.display = "none"; this.downloadTitleCopy.style.display = "inline"; this.signupBodyCopy.style.display = "none"; this.downloadBodyCopy.style.display = "inline"; this.fiveYearDirectDownload.style.display = "inline-block"; } else { this.fiveYearDirectDownload.style.display = "none"; } } } } _createClass(DownloadModalLauncher, [{ key: "hideModal", value: function hideModal() { this.modal.style.display = "none"; accessibility.modalHidden(this.modalData); } }, { key: "killModal", value: function killModal(e) { if (e) { e.preventDefault(); } this.modal.addEventListener("transitionend", this.hideModal); this.modal.classList.remove("show"); // window.history.pushState("", "", "/"); } }, { key: "onClick", value: function onClick(e) { var _this2 = this; e.preventDefault(); accessibility.whichButtonClickedToOpenModal = e.target; if (!(this.downloadButton instanceof HTMLElement)) { this.downloadButton = this.modal.querySelector('button[type="submit"], .button-cma.button--direct-download-full-report'); } if (this.downloadButton && this.oneYear) { MktoForms2.whenReady(function (form) { form.onSuccess(function (vals, thanksURL) { document.querySelector(".download-modal__copy.success-message").classList.add("show"); document.querySelector(".download-modal__form").classList.add("complete"); window.dataLayer = window.dataLayer || []; window.dataLayer.push({ event: "marketo_success", event_label: "marketo", formLocation: "Full Report - Marketo Form - Success One Year" }); document.cookie = "returning_user_oneyear=true; expires=Fri, 31 Dec 9999 23:59:59 GMT"; var modal = document.querySelector('.download-modal'); var modalForm = document.querySelector('.download-modal form'); var downloadTitleCopy = document.querySelector('.download-title-copy'); var signupTitleCopy = document.querySelector('.signup-title-copy'); var downloadBodyCopy = document.querySelector('.download-body-copy'); var signupBodyCopy = document.querySelector('.signup-body-copy'); var oneYearBodyCopy = document.querySelector('.oneyear-body-copy'); if (modalForm) modalForm.style.display = 'none'; modal.classList.add('returning-user'); signupTitleCopy.style.display = 'none'; downloadTitleCopy.style.display = 'inline'; signupBodyCopy.style.display = 'none'; downloadBodyCopy.style.display = 'inline'; return false; }); }); } else if (this.downloadButton) { MktoForms2.whenReady(function (form) { form.onSuccess(function (vals, thanksURL) { document.querySelector(".download-modal__copy.success-message").classList.add("show"); document.querySelector(".download-modal__form").classList.add("complete"); window.dataLayer = window.dataLayer || []; window.dataLayer.push({ event: "marketo_success", event_label: "marketo", formLocation: "Full Report - Marketo Form - Success" }); document.cookie = "returning_user_fiveyear=true; expires=Fri, 31 Dec 9999 23:59:59 GMT"; return false; }); }); } this.modal.removeEventListener("transitionend", this.hideModal); setTimeout(function () { _this2.modal.classList.add("show"); accessibility.modalShown(_this2.modalData); accessibility.markRequiredFields(["#FirstName", "#LastName", "#Email", "#Country"]); accessibility.markAriaLabel([{ id: "FirstName", label: "First name" }, { id: "LastName", label: "Last name" }, { id: "Email", label: "Email" }, { id: "Country", label: "Country" }, { id: "Company", label: "Company" }, { id: "Title", label: "Job Title" }, { id: "investorType", label: "Investor Type" }]); }, 16); this.modal.style.display = "block"; } }, { key: "onKeyDown", value: function onKeyDown(e) { // Hide modal if user presses enter key or the spacebar on the close button while it is visible. if (e.target.id == "downloadExecutiveSummeryBodyClose" && (13 == e.keyCode || 34 == e.keyCode) && this.modal.classList.contains("show") === "1") { this.killModal(); } // Hide modal if user presses escape key while it is visible. if (e.keyCode === 27 && classList.contains("show")) { this.killModal(); } } }]); return DownloadModalLauncher; }(); exports.default = DownloadModalLauncher; /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /*! * JavaScript Cookie v2.2.0 * https://github.com/js-cookie/js-cookie * * Copyright 2006, 2015 Klaus Hartl & Fagner Brack * Released under the MIT license */ (function (factory) { var registeredInModuleLoader = false; if (true) { !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); registeredInModuleLoader = true; } if (( false ? 'undefined' : _typeof(exports)) === 'object') { module.exports = factory(); registeredInModuleLoader = true; } if (!registeredInModuleLoader) { var OldCookies = window.Cookies; var api = window.Cookies = factory(); api.noConflict = function () { window.Cookies = OldCookies; return api; }; } })(function () { function extend() { var i = 0; var result = {}; for (; i < arguments.length; i++) { var attributes = arguments[i]; for (var key in attributes) { result[key] = attributes[key]; } } return result; } function init(converter) { function api(key, value, attributes) { var result; if (typeof document === 'undefined') { return; } // Write if (arguments.length > 1) { attributes = extend({ path: '/' }, api.defaults, attributes); if (typeof attributes.expires === 'number') { var expires = new Date(); expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e5); attributes.expires = expires; } // We're using "expires" because "max-age" is not supported by IE attributes.expires = attributes.expires ? attributes.expires.toUTCString() : ''; try { result = JSON.stringify(value); if (/^[\{\[]/.test(result)) { value = result; } } catch (e) {} if (!converter.write) { value = encodeURIComponent(String(value)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent); } else { value = converter.write(value, key); } key = encodeURIComponent(String(key)); key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent); key = key.replace(/[\(\)]/g, escape); var stringifiedAttributes = ''; for (var attributeName in attributes) { if (!attributes[attributeName]) { continue; } stringifiedAttributes += '; ' + attributeName; if (attributes[attributeName] === true) { continue; } stringifiedAttributes += '=' + attributes[attributeName]; } return document.cookie = key + '=' + value + stringifiedAttributes; } // Read if (!key) { result = {}; } // To prevent the for loop in the first place assign an empty array // in case there are no cookies at all. Also prevents odd result when // calling "get()" var cookies = document.cookie ? document.cookie.split('; ') : []; var rdecode = /(%[0-9A-Z]{2})+/g; var i = 0; for (; i < cookies.length; i++) { var parts = cookies[i].split('='); var cookie = parts.slice(1).join('='); if (!this.json && cookie.charAt(0) === '"') { cookie = cookie.slice(1, -1); } try { var name = parts[0].replace(rdecode, decodeURIComponent); cookie = converter.read ? converter.read(cookie, name) : converter(cookie, name) || cookie.replace(rdecode, decodeURIComponent); if (this.json) { try { cookie = JSON.parse(cookie); } catch (e) {} } if (key === name) { result = cookie; break; } if (!key) { result[name] = cookie; } } catch (e) {} } return result; } api.set = api; api.get = function (key) { return api.call(api, key); }; api.getJSON = function () { return api.apply({ json: true }, [].slice.call(arguments)); }; api.defaults = {}; api.remove = function (key, attributes) { api(key, '', extend(attributes, { expires: -1 })); }; api.withConverter = init; return api; } return init(function () {}); }); /***/ }), /* 14 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var assetClasses = { asia: ['individual'], australia: ['individual'], canada: ['individual', 'multi'], europe: ['individual'], middleEast: ['individual'], us: ['individual', 'multi'] }; var categories = { 'asia-individual': ['strategies'], 'australia-individual': ['strategies'], 'europe-individual': ['strategies', 'pooled'], 'middleEast-individual': ['strategies'], 'us-individual': ['institutional', 'mutual', 'exchange'], 'canada-individual': ['institutional', 'mutual', 'exchange'], 'us-multi': ['institutional', 'mutual'], 'canada-multi': ['institutional', 'mutual'] }; var ProductLauncher = function () { function ProductLauncher() { var _this = this; _classCallCheck(this, ProductLauncher); this.state = { location: 'us', assetClass: 'individual', category: 'institutional' }; this.locationSelect = document.querySelector('.product-selector__dropdown__select'); this.productButtons = document.querySelectorAll('.product-selector__button'); this.assetClassTabs = document.querySelectorAll('.product-selector__tab'); if (!this.locationSelect) return; this.contentContainer = document.querySelector('.product-content'); // this.disclaimerContentContainer = document.querySelector( // '.disclaimer__copy' // ); Array.prototype.forEach.call(this.productButtons, function (productButton) { productButton.addEventListener('click', function (e) { e.preventDefault(); _this.selectCategory(productButton.dataset.productCategory); window.track.page('products/' + _this.state['location'] + '/' + _this.state['assetClass'] + '/' + _this.state['category']); }); }); Array.prototype.forEach.call(this.assetClassTabs, function (assetClassTab) { assetClassTab.addEventListener('click', function (e) { e.preventDefault(); _this.selectAssetClass(assetClassTab.dataset.assetClass); window.track.page('products/' + _this.state['location'] + '/' + _this.state['assetClass']); }); }); this.locationSelect.addEventListener('change', this.onChangeLocation.bind(this)); // Kick off first render this.updateContent(); } _createClass(ProductLauncher, [{ key: 'onChangeLocation', value: function onChangeLocation(e) { var newLocation = e.target.value; this.selectLocation(newLocation); } }, { key: 'selectLocation', value: function selectLocation(newLocation) { if (this.state.location != newLocation) { this.state.location = newLocation; this.pruneAssetClasses(); this.selectAssetClass(assetClasses[this.state.location][0]); window.track.page('products/' + this.state.location); } } }, { key: 'pruneAssetClasses', value: function pruneAssetClasses() { // Based on the current location, iterate asset tabs // and display only those applicable var availableAssetClasses = assetClasses[this.state.location]; var allTabs = document.querySelectorAll('.product-selector__tab'); Array.prototype.forEach.call(this.assetClassTabs, function (assetClassTab) { if (availableAssetClasses.indexOf(assetClassTab.dataset.assetClass) >= 0) { assetClassTab.className = 'product-selector__tab'; } else { assetClassTab.className = 'product-selector__tab is-hidden'; } }); } }, { key: 'highlightAssetClassTab', value: function highlightAssetClassTab(assetClass) { // Based on a given assetClass, find and highlight the appropriate tab Array.prototype.forEach.call(this.assetClassTabs, function (assetClassTab) { if (assetClassTab.dataset.assetClass == assetClass) { assetClassTab.className = 'product-selector__tab is-selected'; } else if (assetClassTab.className != 'product-selector__tab is-hidden') { assetClassTab.className = 'product-selector__tab'; } }); } }, { key: 'selectAssetClass', value: function selectAssetClass(newAssetClass) { this.state.assetClass = newAssetClass; this.highlightAssetClassTab(newAssetClass); this.pruneCategories(); this.selectCategory(categories[this.state.location + '-' + this.state.assetClass][0]); } }, { key: 'pruneCategories', value: function pruneCategories() { // Based on the current asset class, iterate category buttons // and display only those applicable var availableCategories = categories[this.state.location + '-' + this.state.assetClass]; Array.prototype.forEach.call(this.productButtons, function (productButton) { if (availableCategories.indexOf(productButton.dataset.productCategory) >= 0) { productButton.className = 'product-selector__button'; } else { productButton.className = 'product-selector__button is-hidden'; } }); } }, { key: 'highlightProductButton', value: function highlightProductButton(productCategory) { Array.prototype.forEach.call(this.productButtons, function (productButton) { if (productButton.dataset.productCategory == productCategory) { productButton.className = 'product-selector__button is-selected'; } else if (productButton.className != 'product-selector__button is-hidden') { productButton.className = 'product-selector__button'; } }); } }, { key: 'selectCategory', value: function selectCategory(newCategory) { this.state.category = newCategory; this.highlightProductButton(newCategory); window.requestAnimationFrame(this.updateContent.bind(this)); } }, { key: 'updateContent', value: function updateContent() { var _this2 = this; var productCode = this.state.location + '-' + this.state.assetClass + '-' + this.state.category; var contentNodes = document.querySelectorAll('.product-templates > [data-product-code=' + productCode + ']'); var disclaimerNodes = document.querySelectorAll('.disclaimer-templates > [data-product-code=' + productCode + ']'); if (!disclaimerNodes.length) { disclaimerNodes = document.querySelectorAll('.disclaimer-templates > [data-product-code=' + this.state.location + ']'); } this.contentContainer.innerHTML = ''; Array.prototype.forEach.call(contentNodes, function (node) { var clone = node.cloneNode(true); _this2.contentContainer.appendChild(clone); }); // this.disclaimerContentContainer.innerHTML = ''; // Array.prototype.forEach.call(disclaimerNodes, node => { // const clone = node.cloneNode(true); // this.disclaimerContentContainer.appendChild(clone); // }); // Product content animations sr.reveal('.product-content .product-header__title'); sr.reveal('.product-content .product-header__description'); sr.reveal('.product-content .featured-strategies__column', 200); sr.reveal('.product-content .equity__management-styles'); sr.reveal('.product-content .equity__footnote'); sr.reveal('.product-content .product-table'); sr.reveal('.product-content .fixed-income__chart__management-styles'); sr.reveal('.product-content .fixed-income__chart__fixed-income-capabilities', { delay: 200 }); sr.reveal('.product-content .cash-liquidity-solutions__column', 200); sr.reveal('.product-content .real-assets__column', 200); sr.reveal('.product-content .product__more-link'); } }]); return ProductLauncher; }(); exports.default = ProductLauncher; /***/ }), /* 15 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var ThemeGraphTabs = function () { function ThemeGraphTabs() { var _this = this; _classCallCheck(this, ThemeGraphTabs); this.tabs = document.querySelectorAll('.themes__modal-item__chart__tab'); Array.prototype.forEach.call(this.tabs, function (tab) { tab.addEventListener('click', function (e) { return _this.onClick(e, tab); }); }); } _createClass(ThemeGraphTabs, [{ key: 'onClick', value: function onClick(e, tab) { e.preventDefault(); var tabNumber = tab.dataset.chartTab; var chartContents = document.querySelectorAll('[data-theme-chart-content]'); var chartContent = document.querySelector('[data-theme-chart-content=\'' + tabNumber + '\']'); // Reset all content blocks to invisible Array.prototype.forEach.call(chartContents, function (chart) { chart.style.display = 'none'; }); // Reset all tabs to inactive Array.prototype.forEach.call(this.tabs, function (tab) { tab.className = 'themes__modal-item__chart__tab'; }); // Display selected content and set active tab tab.className = 'themes__modal-item__chart__tab themes__modal-item__chart__tab--active'; chartContent.style.display = 'block'; } }]); return ThemeGraphTabs; }(); exports.default = ThemeGraphTabs; /***/ }), /* 16 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Matrices = function () { function Matrices() { _classCallCheck(this, Matrices); if (typeof $ == "undefined" || !document.querySelector(".matrices-page")) { return; } var fixedColumns = 7; var defaultTooltipTitle = "CORRELATING ASSET TYPE:"; var table = $("#table-matrices").DataTable({ paging: false, ordering: false, searching: false, scrollX: true, info: false, autoWidth: false, initComplete: function initComplete(settings, json) { mergeColSpan(); fixColumns(this); setTableOffset(); scrollTableBody(); $("#table-matrices").delay(500).css({ opacity: "1" }); $(".DTFC_ScrollWrapper").delay(500).css({ opacity: "1" }); $(".matrices__loading").delay(500).css({ opacity: "0" }); } }); function safari() { var isSafari = navigator.vendor && navigator.vendor.indexOf("Apple") > -1 && navigator.userAgent && navigator.userAgent.indexOf("CriOS") == -1 && navigator.userAgent.indexOf("FxiOS") == -1; return isSafari; } function scrollTableBody() { var paginateBtnWrapper = document.createElement("div"); var tableScollBody = document.querySelector(".dataTables_scrollBody"); var tableBody = document.querySelector(".dataTables_wrapper"); // Create Scroll buttons var paginateBtnRight = document.createElement("button"); var paginateBtnLeft = document.createElement("button"); // Append pagination wrapper to table body paginateBtnWrapper.classList.add("scroll-table-button--wrapper"); tableBody.appendChild(paginateBtnWrapper); var browserDimensions = 150; if (safari()) { browserDimensions = 70; } var matrixTable = document.querySelector(".DTFC_ScrollWrapper"); var matrixTableRect = matrixTable.getBoundingClientRect(); var matrixTableScrollBottomPosition = matrixTableRect.top + matrixTableRect.height + window.pageYOffset - window.innerHeight + browserDimensions; window.addEventListener("resize", function () { matrixTableRect = matrixTable.getBoundingClientRect(); matrixTableScrollBottomPosition = matrixTableRect.top + matrixTableRect.height + window.pageYOffset - window.innerHeight + browserDimensions; }); window.addEventListener("scroll", function () { if (window.pageYOffset >= matrixTableScrollBottomPosition) { paginateBtnWrapper.classList.add("scroll-table-button--wrapper-stick"); } else if (window.pageYOffset < matrixTableScrollBottomPosition) { paginateBtnWrapper.classList.remove("scroll-table-button--wrapper-stick"); } }); // Add some button style paginateBtnRight.innerText = "Scroll table right"; paginateBtnRight.classList.add("scroll-table-button--right"); paginateBtnWrapper.appendChild(paginateBtnRight); paginateBtnLeft.innerText = "Scroll table left"; paginateBtnLeft.classList.add("scroll-table-button--left", "inactive"); paginateBtnLeft.setAttribute("aria-disabled", true); paginateBtnWrapper.appendChild(paginateBtnLeft); paginateBtnRight.addEventListener("click", function (e) { tableScollBody.scrollLeft += 250; paginateBtnLeft.classList.remove("inactive"); paginateBtnLeft.setAttribute("aria-disabled", false); // substract the length of the container. Like this we have the actual max scroll width. // if the actual max scroll of the container equals the scroll position, we can disable the button. if (tableScollBody.scrollWidth - tableScollBody.offsetWidth === tableScollBody.scrollLeft) { e.target.classList.add("inactive"); e.target.setAttribute("aria-disabled", true); } }); paginateBtnLeft.addEventListener("click", function (e) { tableScollBody.scrollLeft -= 250; paginateBtnRight.classList.remove("inactive"); paginateBtnRight.setAttribute("aria-disabled", false); if (tableScollBody.scrollLeft === 0) { // if we are all on the left e.target.classList.add("inactive"); e.target.setAttribute("aria-disabled", true); } }); } function mergeColSpan() { $("td[data-colspan]").each(function () { $(this).attr("colspan", $(this).data("colspan")); }); $("td[data-rowspan]").each(function () { $(this).attr("rowspan", $(this).data("rowspan")); }); } function fixColumns(table) { new $.fn.dataTable.FixedColumns(table, { leftColumns: fixedColumns, heightMatch: "none" }); } function setTableOffset() { return; var offset = $(".content--matrices:first").offset().left; $("#table-matrices_wrapper").css("width", "calc(100% - " + offset + "px)"); $("#table-matrices_wrapper").css("margin-left", offset + "px"); } $(window).resize(function () { setTableOffset(); }); $("table").on("mouseenter", "td", function () { $("table .highlight").removeClass("highlight"); if (!$(this).hasClass("no-highlight") && !$(this).parents().hasClass("no-highlight")) { var rowIndex = $(this).parents("tr").index() + 2; var totalRows = $(".DTFC_LeftBodyLiner table tr").length; var totalColumns = $("#table-matrices tr:last-child td").length; var colIdx = table.cell(this).index().column + 1; if (colIdx > 4) { var td = $("tr td:nth-child(" + colIdx + ").numbers"); var tooltipTitle = defaultTooltipTitle; if (td.data("tooltip-title")) { tooltipTitle = td.data("tooltip-title"); } $(".tablecell-tooltip").removeClass("hidden"); $(".tablecell-tooltip strong").html(tooltipTitle); $(".tablecell-tooltip span").html(td[0].innerText); // shorten width of tooltip on very last bottom right row // so that it stays in screen if (rowIndex === totalRows) { $(".tablecell-tooltip").css({ width: "120px" }); } else { $(".tablecell-tooltip").css({ width: "189px" }); } } else { $(".tablecell-tooltip").addClass("hidden"); } var colIndex = $(this).index(); if (colIdx > 3) { highlightItems($("table tr").find("td:eq(" + colIndex + ")")); } highlightItems($("table tr:eq(" + rowIndex + ") td")); highlightItems($(".DTFC_Cloned tr:eq(" + rowIndex + ") td")); } }); $("table").on("mouseleave", "td", function () { $(".tablecell-tooltip").addClass("hidden"); }); function highlightItems(items) { items.each(function () { if (!$(this).hasClass("no-highlight") && !$(this).parents().hasClass("no-highlight")) { $(this).addClass("highlight"); } }); } function checkZoomToggles() { var zoom = parseInt($("table").attr("data-zoom")); if (zoom == 3) { $(".zoom-toggle-in").addClass("disabled"); } else if (zoom == -2) { $(".zoom-toggle-out").addClass("disabled"); } else { $(".matrices-toggles .disabled").removeClass("disabled"); } } $(document).on("click", ".matrices-checkbox", function () { $(this).toggleClass("active"); $(this).attr("aria-checked", $(this).hasClass("active")); /* $("#errormsgs").html(""); if(!$(this).hasClass("active")) { $("#errormsgs").html("not checked"); } else { $("#errormsgs").html("checked"); }*/ if ($(this).data("type") == "fixed-income") { $("table tbody tr").slice(3, 26).toggleClass("filter-hidden"); $(".DTFC_Cloned tbody tr").slice(3, 26).toggleClass("filter-hidden"); $([8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]).each(function () { $("table tr td:nth-child(" + this + ")").toggleClass("filter-hidden"); }); } if ($(this).data("type") == "equity") { $("table tbody tr").slice(26, 38).toggleClass("filter-hidden"); $(".DTFC_Cloned tbody tr").slice(26, 38).toggleClass("filter-hidden"); $([31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]).each(function () { $("table tr td:nth-child(" + this + ")").toggleClass("filter-hidden"); }); } if ($(this).data("type") == "real-assets") { $("table tbody tr").slice(38, 41).toggleClass("filter-hidden"); $(".DTFC_Cloned tbody tr").slice(38, 41).toggleClass("filter-hidden"); $([43, 44, 45]).each(function () { $("table tr td:nth-child(" + this + ")").toggleClass("filter-hidden"); }); } if ($(this).data("type") == "alternatives") { $("table tbody tr").slice(41, 43).toggleClass("filter-hidden"); $(".DTFC_Cloned tbody tr").slice(41, 43).toggleClass("filter-hidden"); $([46, 47]).each(function () { $("table tr td:nth-child(" + this + ")").toggleClass("filter-hidden"); }); } if ($(this).data("type") == "geometric-return") { $("table tr td:nth-child(5)").toggleClass("filter-hidden"); } if ($(this).data("type") == "arithmetic-return") { $("table tr td:nth-child(6)").toggleClass("filter-hidden"); } if ($(this).data("type") == "risk") { $("table tr td:nth-child(7)").toggleClass("filter-hidden"); } checkGlobalRow(); checkGlobalCol(); checkFiveYearCol(); }); function checkGlobalRow() { var equityHidden = $("table tr td:nth-child(31)").hasClass("filter-hidden"); var realAssetsHidden = $("table tr td:nth-child(43)").hasClass("filter-hidden"); var alternativesHidden = $("table tr td:nth-child(46)").hasClass("filter-hidden"); var equityGlobalRow = $(".equity-global-row"); var realAssetsGlobalRow = $(".real-assets-global-row"); var alternativesGlobalRow = $(".alternatives-global-row"); equityGlobalRow.addClass("hidden"); realAssetsGlobalRow.addClass("hidden"); alternativesGlobalRow.addClass("hidden"); if (equityHidden && realAssetsHidden && alternativesHidden) { // Do Nothing } else if (equityHidden && realAssetsHidden) { alternativesGlobalRow.attr("colspan", 2).removeClass("hidden"); } else if (equityHidden && alternativesHidden) { realAssetsGlobalRow.attr("colspan", 3).removeClass("hidden"); } else if (realAssetsHidden && alternativesHidden) { equityGlobalRow.attr("colspan", 1).removeClass("hidden"); } else if (equityHidden) { realAssetsGlobalRow.attr("colspan", 5).removeClass("hidden"); } else if (realAssetsHidden) { equityGlobalRow.attr("colspan", 3).removeClass("hidden"); } else if (alternativesHidden) { equityGlobalRow.attr("colspan", 4).removeClass("hidden"); } else { equityGlobalRow.attr("colspan", 6).removeClass("hidden"); } } function checkGlobalCol() { var equityHidden = $("table tr:nth-child(27)").hasClass("filter-hidden"); var realAssetsHidden = $("table tr:nth-child(39)").hasClass("filter-hidden"); var alternativesHidden = $("table tr:nth-child(42)").hasClass("filter-hidden"); var equityGlobalCol = $(".equity-global-col"); var realAssetsGlobalCol = $(".real-assets-global-col"); var alternativesGlobalCol = $(".alternatives-global-col"); equityGlobalCol.addClass("hidden"); realAssetsGlobalCol.addClass("hidden"); alternativesGlobalCol.addClass("hidden"); if (equityHidden && realAssetsHidden && alternativesHidden) { // Do Nothing } else if (equityHidden && realAssetsHidden) { alternativesGlobalCol.attr("rowspan", 2).removeClass("hidden"); } else if (equityHidden && alternativesHidden) { realAssetsGlobalCol.attr("rowspan", 3).removeClass("hidden"); } else if (realAssetsHidden && alternativesHidden) { equityGlobalCol.attr("rowspan", 1).removeClass("hidden"); } else if (equityHidden) { realAssetsGlobalCol.attr("rowspan", 5).removeClass("hidden"); } else if (realAssetsHidden) { equityGlobalCol.attr("rowspan", 3).removeClass("hidden"); } else if (alternativesHidden) { equityGlobalCol.attr("rowspan", 4).removeClass("hidden"); } else { equityGlobalCol.attr("rowspan", 6).removeClass("hidden"); } } function checkFiveYearCol() { var geometricReturnHidden = $("table tr td:nth-child(5)").hasClass("filter-hidden"); var arithmeticReturnHidden = $("table tr td:nth-child(6)").hasClass("filter-hidden"); var riskHidden = $("table tr td:nth-child(7)").hasClass("filter-hidden"); var geometricReturnCol = $(".geometric-return-five-year-col"); var arithmeticReturnCol = $(".arithmetic-return-five-year-col"); var riskCol = $(".risk-five-year-col"); geometricReturnCol.addClass("hidden"); arithmeticReturnCol.addClass("hidden"); riskCol.addClass("hidden"); if (geometricReturnHidden && arithmeticReturnHidden && riskHidden) { // Do Nothing } else if (geometricReturnHidden && arithmeticReturnHidden) { riskCol.attr("colspan", 1).removeClass("hidden"); } else if (geometricReturnHidden && riskHidden) { arithmeticReturnCol.attr("colspan", 1).removeClass("hidden"); } else if (arithmeticReturnHidden && riskHidden) { geometricReturnCol.attr("colspan", 1).removeClass("hidden"); } else if (geometricReturnHidden) { arithmeticReturnCol.attr("colspan", 2).removeClass("hidden"); } else if (arithmeticReturnHidden) { geometricReturnCol.attr("colspan", 2).removeClass("hidden"); } else if (riskHidden) { geometricReturnCol.attr("colspan", 2).removeClass("hidden"); } else { geometricReturnCol.attr("colspan", 3).removeClass("hidden"); } } this._bindEvents(); } _createClass(Matrices, [{ key: "_bindEvents", value: function _bindEvents() { $(document).on("click", ".selections-toggle-reset", function () { $(".matrices-checkbox:not(.active)").click(); }); $(".matrices-selections .control").on("click", function () { $(this).parent().toggleClass("collapsed"); }); $("table").on("click", "td", function () { if (!$(this).hasClass("no-highlight") && !$(this).parents().hasClass("no-highlight")) { $(this).toggleClass("clicked"); } }); $(document).bind("mousemove", function (e) { $(".tablecell-tooltip").css({ left: e.pageX - 94, top: e.pageY + 25 }); }); $(document).on("click", ".zoom-toggle-in", function () { var zoom = parseInt($("table").attr("data-zoom")); if (zoom < 3) { $("table").attr("data-zoom", zoom + 1); } }); $(document).on("click", ".zoom-toggle-out", function () { var zoom = parseInt($("table").attr("data-zoom")); if (zoom > -2) { $("table").attr("data-zoom", zoom - 1); } }); $(document).on("click", ".zoom-toggle-reset", function () { $("table").attr("data-zoom", 0); }); $(document).on("click", ".matrices-toggles a", function () { checkZoomToggles(); }); } }]); return Matrices; }(); exports.default = Matrices; /***/ }), /* 17 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Track = function () { function Track() { _classCallCheck(this, Track); this.internal = this.internal.bind(this); this.external = this.external.bind(this); this.page = this.page.bind(this); this.appendParametersAndGo = this.appendParametersAndGo.bind(this); this.hiddenDLVElement = document.querySelector('.hidden-dlv-element'); } _createClass(Track, [{ key: 'internal', value: function internal(category, action, label) { var trackerName = ga.getAll()[0].get('name'); if (trackerName) { ga(trackerName + '.send', 'event', { 'eventCategory': category, 'eventAction': action, 'eventLabel': label, 'eventValue': 1, 'transport': 'beacon', 'hitCallback': function hitCallback() {} }); } if (category == 'PDF Downloads') { window.uetq = window.uetq || []; window.uetq.push({ 'ec': 'PDF Downloads', 'ea': 'Click', 'el': label, 'ev': '1' }); } } }, { key: 'external', value: function external(category, action, label, url) { var newWindow = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; if (url) { var trackerName = ga.getAll()[0].get('name'); var eventLabel = label || url; if (trackerName) { ga(trackerName + '.send', 'event', { 'eventCategory': category, 'eventAction': action, 'eventLabel': eventLabel, 'eventValue': 1, 'transport': 'beacon', 'hitCallback': function hitCallback() { if (newWindow) { window.open(url + document.location.search); } else { document.location = url + document.location.search; } } }); } window.uetq = window.uetq || []; window.uetq.push({ 'ec': 'External Link', 'ea': 'Click', 'el': eventLabel, 'ev': '1' }); } } }, { key: 'clickDLVElement', value: function clickDLVElement(cat, label) { /** use this method to send custom click events though an invisible element **/ if (!this.hiddenDLVElement || !this.hiddenDLVElement.length) { this.hiddenDLVElement = document.createElement('a'); this.hiddenDLVElement.style.position = "absolute"; this.hiddenDLVElement.style.top = "-1000px"; document.body.appendChild(this.hiddenDLVElement); } this.hiddenDLVElement.setAttribute('data-uacategory', cat); this.hiddenDLVElement.setAttribute('data-ualabel', label); this.hiddenDLVElement.click(); } }, { key: 'page', value: function page(path) { var trackerName = ga.getAll()[0].get('name'); if (trackerName && path) { ga(trackerName + '.send', 'pageview', path); } } }, { key: 'appendParametersAndGo', value: function appendParametersAndGo(url) { var newWindow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; if (newWindow) { window.open(url + document.location.search); } else { document.location = url + document.location.search; } } }]); return Track; }(); exports.default = Track; /***/ }), /* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /* Accessibility additional script */ /* Product page variables */ var opensAnewWindow = " Opens a new window"; var opensAModal = " Opens a modal"; var productsVariables = { byclassname: [{ name: "footer-social__link", type: "sr-only", textvalue: opensAnewWindow }, { name: "KeyEquityFactor", type: "aria-label", textvalue: "key equity factors" }, { name: "Decorative", type: "alt", textvalue: "" }, { name: "LearnMoreqe-factors-quality", type: "aria-label", textvalue: "Learn more about Q E Factors Quality Opens a modal popup" }, { name: "LearnMoreqe-factors-value", type: "aria-label", textvalue: "Learn more about Q E Factors Value Opens a modal popup" }, { name: "LearnMoreqe-factors-volatility", type: "aria-label", textvalue: "Learn more about Q E Factors velocity Opens a modal popup" }, { name: "LearnMoreqe-factors-yield", type: "aria-label", textvalue: "Learn more about Q E Factors yield Opens a modal popup" }, { name: "LearnMoreqe-factors-momentum", type: "aria-label", textvalue: "Learn more about Q E Factors momentum Opens a modal popup" }, { name: "LearnMoreqe-factors-size", type: "aria-label", textvalue: "Learn more about Q E Factors size Opens a modal popup" }, { name: "OpensANewBlankWindow", type: "sr-only", textvalue: "Opens a new window" }, { name: "MoreOnProductsModal", type: "sr-only", textvalue: "Opens a modal popup" }, { name: "MoreOnProductsLink", type: "sr-only", textvalue: "Opens a new window" }, { name: "GraphFixedIncome", type: "innerText", textvalue: "\n\t\t\t\t

Graph showing risk verses return

\n\t\t\t\t

Starting on the left side bottom of the graph continuing to the right go the top side of the graph

\n\t\t\t\t\n\t\t\t" }, { name: "GraphAGradualShiftHeigher", type: "innerText", textvalue: "\n\t\t\t\t

Graph showing Efficient mix of Risk Asset and Risk-Control Asset portfolios

\n\t\t\t\t

left side of graph shows Risk control asset portfolios

\n\t\t\t\t

Efficient mix of

\n\t\t\t\t\n\t\t\t\t

Right side of graph shows Risk Asset Portfolios

\n\t\t\t\t

Efficient Mix of

\n\t\t\t\t\n\t\t\t\t

Middle of graph shows

\n\t\t\t\t\n\t\t\t" }, { name: "ContactUs", type: "aria-label", textvalue: "contact us" }, { name: "ProductsMoreStrategiesUSLargeCap", type: "abbr", textvalue: "Cap", replacement: "Capitalization" }, { name: "ProductsMoreStrategiesUSLargeCap", type: "aria-label", textvalue: "More Strategies US Large Capitalization" }, { name: "ProductsMoreStrategiesUSSmallCap", type: "abbr", textvalue: "Cap", replacement: "Capitalization" }, { name: "ProductsMoreStrategiesUSSmallCap", type: "aria-label", textvalue: "More Strategies US Small Capitalization" }, { name: "ProductsMoreStrategiesDevelopedMarketsEx-US", type: "", textvalue: "" }, { name: "ProductsMoreStrategiesEmergingMarkets", type: "", textvalue: "" }, { name: "ProductQualityLowVolatility", type: "aria-label", textvalue: "quality low volatility Opens a modal popup" }, { name: "ProductQualityInternationalCore", type: "aria-label", textvalue: "Quality International Core Opens a modal popup" }, { name: "ProductQualityESG", type: "aria-label", textvalue: "Quality Evironmental, Social and Governance Opens a modal popup" }, { name: "ProductGlobalTacticalAssetAllocationFundBBALX", type: "abbr", textvalue: "(BBALX)", replacement: "B B A L X" }, { name: "ProductGlobalTacticalAssetAllocationFundBBALX", type: "aria-label", textvalue: "Global Tactical Asset Allocation Fund B B A L X Opens a modal popup" }, { name: "ProductUltra-ShortStrategy", type: "aria-label", textvalue: "Ultra short strategy Opens a modal popup" }, { name: "ProductSmallCapValueFundNOSGX", type: "abbr", textvalue: "(NOSGX)", replacement: "N O S G X" }, { name: "ProductSmallCapValueFundNOSGX", type: "aria-label", textvalue: "Small Cap Value Fund (N O S G X).Opens a modal popup" }, { name: "ProductUSQualityESGFundNUESX", type: "abbr", textvalue: "(NUESX)", replacement: "N U E S X" }, { name: "ProductUSQualityESGFundNUESX", type: "aria-label", textvalue: "U.S. Quality Evironmental, Social and Governance Fund (N U E S X).Opens a modal popup" }, { name: "ProductDiversifiedStrategistPortfolios", type: "aria-label", textvalue: "Diversified Strategist Portfolios Opens a modal popup" }, { name: "ProductGoalEngineerSeries", type: "aria-label", textvalue: "Goal Engineer Series Opens a modal popup" }, { name: "ProductFlexSharesQualityDividendIndexFundQDF", type: "abbr", textvalue: "(QDF)", replacement: "Quality Dividend Index Fund" }, { name: "ProductFlexSharesQualityDividendIndexFundQDF", type: "aria-label", textvalue: "Flex Shares Quality Dividend Index Fund Q D F" + opensAnewWindow }, { name: "ProductFlexSharesInternationalQualityDividendIndexFundIQDF", type: "abbr", textvalue: "(IQDF)", replacement: "International Quality Dividend Index Fund" }, { name: "ProductFlexSharesInternationalQualityDividendIndexFundIQDF", type: "aria-label", textvalue: "Flex Shares International Quality Dividend Index Fund I Q D F" + opensAnewWindow }, { name: "ProductFlexsharesMorningstardevelopedmarketsex-usfactortiltindexfundTLTD", type: "abbr", textvalue: "(TLTD)", replacement: "T L T D" }, { name: "ProductFlexsharesMorningstardevelopedmarketsex-usfactortiltindexfundTLTD", type: "aria-label", textvalue: "Flex shares Morning star developed markets ex-us factor tilt index fund" + opensAnewWindow }, { name: "ProductLinkLargeCapCoreFundNOLCX", type: "abbr", textvalue: "(NOLCX)", replacement: "N O L C X" }, { name: "ProductLinkLargeCapCoreFundNOLCX", type: "aria-label", textvalue: "Large Capitalization Core Fund N O L C X Opens a new tab" }, { name: "ProductLinkUSQualityESGFundNUESX", type: "abbr", textvalue: "(NUESX)", replacement: "N U E S X" }, { name: "ProductLinkUSQualityESGFundNUESX", type: "aria-label", textvalue: "U.S. Quality Evironmental, Social and Governance Fund N U E S X Opens a new tab" }, { name: "ProductLinkSmallCapValueFundNOSGX", type: "abbr", textvalue: "(NOSGX)", replacement: "N O S G X" }, { name: "ProductLinkSmallCapValueFundNOSGX", type: "aria-label", textvalue: "Small Capitalization Value Fund N O S G X Opens a new tab" }, { name: "ProductLinkInternationalEquityFundNOIGX", type: "abbr", textvalue: "(NOIGX)", replacement: "N O I G X" }, { name: "ProductLinkInternationalEquityFundNOIGX", type: "aria-label", textvalue: "International Equity Fund N O I G X Opens a new tab" }, { name: "ProductLinkUSQualityDividendIndexFundQDF", type: "abbr", textvalue: "(QDF)", replacement: "Quality Dividend Index Fund" }, { name: "ProductLinkUSQualityDividendIndexFundQDF", type: "aria-label", textvalue: "U.S. Quality Dividend Index Fund Q D F Opens a new tab" }, { name: "ProductLinkSTOXXUSESGImpactIndexFundESG", type: "abbr", textvalue: "(ESG)", replacement: "Evironmental, Social and Governance" }, { name: "ProductLinkSTOXXUSESGImpactIndexFundESG", type: "aria-label", textvalue: "S T O X X U.S. E S G Impact Index Fund E S G Opens a new tab" }, { name: "ProductLinkInternationalDividendIndexFundIQDF", type: "aria-label", textvalue: "International Dividend Index Fund I Q D F Opens a new tab" }, { name: "ProductLinkMorningstarEmergingMarketsFactorTiltIndexFundTLTE", type: "abbr", textvalue: "(TLTE)", replacement: "T L T E" }, { name: "ProductLinkMorningstarEmergingMarketsFactorTiltIndexFundTLTE", type: "aria-label", textvalue: "Morning star Emerging Markets Factor Tilt Index Fund T L T E Opens a new tab" }, { name: "ProductUltra-ShortFixedIncomeNUSFX", type: "abbr", textvalue: "(NUSFX)", replacement: "Ultra-Short Fixed Income" }, { name: "ProductUltra-ShortFixedIncomeNUSFX", type: "aria-label", textvalue: "Ultra-Short Fixed Income N U S F X" + opensAnewWindow }, { name: "ProductLinkUltra-ShortFixedIncomeNUSFX", type: "abbr", textvalue: "(NUSFX)", replacement: "Ultra-Short Fixed Income" }, { name: "ProductLinkUltra-ShortFixedIncomeNUSFX", type: "aria-label", textvalue: "Ultra-Short Fixed Income N U S F X Opens a new tab" }, { name: "ProductLinkHighYieldFixedIncomeFundNHFIX", type: "abbr", textvalue: "(NHFIX)", replacement: "High Yield Fixed Income" }, { name: "ProductLinkHighYieldFixedIncomeFundNHFIX", type: "aria-label", textvalue: "High Yield Fixed Income Fund N H F I X Opens a new tab." }, { name: "ProductFlexsharesHighYieldValue-ScoredBondIndexFundHYGV", type: "abbr", textvalue: "(HYGV)", replacement: "Flexshares High Yield Value-Scored Bond Index Fund" }, { name: "ProductFlexsharesHighYieldValue-ScoredBondIndexFundHYGV", type: "aria-label", textvalue: "Flexshares High Yield Value-Scored Bond Index Fund H Y G V" + opensAnewWindow }, { name: "ProductLinkReadyAccessVariableIncomeFundRavi", type: "abbr", textvalue: "(Ravi)", replacement: "Ready Access variable Income Fund" }, { name: "ProductLinkReadyAccessVariableIncomeFundRavi", type: "aria-label", textvalue: "Ready Access variable Income Fund R A V I Opens a new tab." }, { name: "ProductLinkiBoxx5-YearTargetDateDurationTIPSIndexFundTDTF", type: "abbr", textvalue: "TIPS", replacement: "T I P S" }, { name: "ProductLinkiBoxx5-YearTargetDateDurationTIPSIndexFundTDTF", type: "abbr", textvalue: "(TDTF)", replacement: "T D T F" }, { name: "ProductLinkiBoxx5-YearTargetDateDurationTIPSIndexFundTDTF", type: "aria-label", textvalue: "iBoxx 5-Year Target Date Duration T I P S index fund T D T F Opens a new tab." }, { name: "ProductLinkHighYieldValue-ScoredBondIndexFundHYGV", type: "abbr", textvalue: "(HYGV)", replacement: "High Yield Value-Scored Bond Index Fund" }, { name: "ProductLinkHighYieldValue-ScoredBondIndexFundHYGV", type: "aria-label", textvalue: "High Yield Value-Scored Bond Index Fund H Y G V Opens a new tab." }, { name: "ProductLinkTreasuryPortfolioNITXX-InstitutionalFund", type: "abbr", textvalue: "NITXX", replacement: "Northern Institutuional" }, { name: "ProductLinkTreasuryPortfolioNITXX-InstitutionalFund", type: "aria-label", textvalue: "Treasury Portfolio N I T X X - Institutional Fund Opens a new tab." }, { name: "ProductLinkUSGovernmentMoneyMarketFundNOGXX", type: "abbr", textvalue: "NOGXX", replacement: "Northern US Government Mondy Market Fund" }, { name: "ProductLinkUSGovernmentMoneyMarketFundNOGXX", type: "aria-label", textvalue: "U.S. Government Money Market Fund N O G X X Opens a new tab" }, { name: "ProductFlexsharesreadyaccessvariableincomefundRAVI", type: "abbr", textvalue: "RAVI", replacement: "Ready Access variable Income Fund" }, { name: "ProductFlexsharesreadyaccessvariableincomefundRAVI", type: "aria-label", textvalue: "Flexshares Ready Access variable Income Fund R A V I" + opensAnewWindow }, { name: "FooterUCITS", type: "title", textvalue: "Undertakings for Collective Investments in Transferable Securities" }, { name: "WhatShouldInvestorsExpectin2019", type: "sr-only", textvalue: "This link will open a new page in the same window" }, { name: "1YearDownloadLatestPerspectiveLink", type: "sr-only", textvalue: "This link opens a modal window and dowenloads a P D F document related executive summary" }, { name: "MoreAssetsClassLink", type: "sr-only", textvalue: "Opens a new window" }, { name: "MatricesFooterLinkGroup", type: "sr-only", textvalue: "Link opens a new window" /* Product details */ }, { name: "ProductDetailsQualityLowVolatility", type: "aria-label", textvalue: "quality low volatility" }, { name: "ProductDetailsQualityInternationalCore", type: "aria-label", textvalue: "Quality International Core" }, { name: "ProductDetailsQualityESG", type: "aria-label", textvalue: "Quality Evironmental, Social and Governance" }, { name: "ProductDetailsGlobalTacticalAssetAllocationFundBBALX", type: "aria-label", textvalue: "Global Tactical Asset Allocation Fund B B A L X" }, { name: "ProductDetailsUltra-ShortStrategy", type: "aria-label", textvalue: "Ultra short strategy" }, { name: "ProductDetailsSmallCapValueFundNOSGX", type: "aria-label", textvalue: "Small Cap Value Fund (N O S G X)" }, { name: "ProductDetailsUSQualityESGFundNUESX", type: "aria-label", textvalue: "U.S. Quality Evironmental, Social and Governance Fund (N U E S X)" }, { name: "ProductDetailsDiversifiedStrategistPortfolios", type: "aria-label", textvalue: "Diversified Strategist Portfolios" }, { name: "ProductDetailsGoalEngineerSeries", type: "aria-label", textvalue: "Goal Engineer Series" }, { name: "ProductDetailsFlexSharesQualityDividendIndexFundQDF", type: "aria-label", textvalue: "Flex Shares Quality Dividend Index Fund Q D F" }, { name: "ProductDetailsFlexSharesInternationalQualityDividendIndexFundIQDF", type: "aria-label", textvalue: "Flex Shares International Quality Dividend Index Fund I Q D F" }, { name: "ProductDetailsFlexsharesMorningstardevelopedmarketsex-usfactortiltindexfundTLTD", type: "aria-label", textvalue: "Flex shares Morning star developed markets ex-us factor tilt index fund" }, { name: "ProductDetailsLinkLargeCapCoreFundNOLCX", type: "aria-label", textvalue: "Large Capitalization Core Fund N O L C X" }, { name: "ProductDetailsLinkUSQualityESGFundNUESX", type: "aria-label", textvalue: "U.S. Quality Evironmental, Social and Governance Fund N U E S X" }, { name: "ProductDetailsLinkSmallCapValueFundNOSGX", type: "aria-label", textvalue: "Small Capitalization Value Fund N O S G X" }, { name: "ProductDetailsLinkInternationalEquityFundNOIGX", type: "aria-label", textvalue: "International Equity Fund N O I G X" }, { name: "ProductDetailsLinkUSQualityDividendIndexFundQDF", type: "aria-label", textvalue: "U.S. Quality Dividend Index Fund Q D F" }, { name: "ProductDetailsLinkSTOXXUSESGImpactIndexFundESG", type: "aria-label", textvalue: "S T O X X U.S. E S G Impact Index Fund E S G" }, { name: "ProductDetailsLinkInternationalDividendIndexFundIQDF", type: "aria-label", textvalue: "International Dividend Index Fund I Q D F" }, { name: "ProductDetailsLinkMorningstarEmergingMarketsFactorTiltIndexFundTLTE", type: "aria-label", textvalue: "Morning star Emerging Markets Factor Tilt Index Fund T L T E" }, { name: "ProductDetailsUltra-ShortFixedIncomeNUSFX", type: "aria-label", textvalue: "Ultra-Short Fixed Income N U S F X" }, { name: "ProductDetailsLinkUltra-ShortFixedIncomeNUSFX", type: "aria-label", textvalue: "Ultra-Short Fixed Income N U S F X" }, { name: "ProductDetailsLinkHighYieldFixedIncomeFundNHFIX", type: "aria-label", textvalue: "High Yield Fixed Income Fund N H F I X" }, { name: "ProductDetailsFlexsharesHighYieldValue-ScoredBondIndexFundHYGV", type: "aria-label", textvalue: "Flexshares High Yield Value-Scored Bond Index Fund H Y G V" }, { name: "ProductDetailsLinkReadyAccessVariableIncomeFundRavi", type: "aria-label", textvalue: "Ready Access variable Income Fund R A V I" }, { name: "ProductDetailsLinkiBoxx5-YearTargetDateDurationTIPSIndexFundTDTF", type: "aria-label", textvalue: "iBoxx 5-Year Target Date Duration T I P S index fund T D T F" }, { name: "ProductDetailsLinkHighYieldValue-ScoredBondIndexFundHYGV", type: "aria-label", textvalue: "High Yield Value-Scored Bond Index Fund H Y G V" }, { name: "ProductDetailsLinkTreasuryPortfolioNITXX-InstitutionalFund", type: "aria-label", textvalue: "Treasury Portfolio N I T X X - Institutional Fund" }, { name: "ProductDetailsLinkUSGovernmentMoneyMarketFundNOGXX", type: "aria-label", textvalue: "U.S. Government Money Market Fund N O G X X" }, { name: "ProductDetailsFlexsharesreadyaccessvariableincomefundRAVI", type: "aria-label", textvalue: "Flexshares Ready Access variable Income Fund R A V I" }] }; /* Homepage variables */ var homeVariables = { byclassname: [{ name: "footer-social__link", type: "sr-only", textvalue: opensAnewWindow }, { name: "AboveFooterAUM", type: "abbr", textvalue: "AUM", replacement: "A U M" }, { name: "HomepageHiddenNavidationLink", type: "sr-only", textvalue: "opens a new page in the same window" }, { name: "1YearDownloadLatestPerspective", type: "sr-only", textvalue: "This button opens a modal window and dowenloads a P D F document related executive summary" }, { name: "1YearDownloadLatestPerspectiveLink", type: "sr-only", textvalue: "This link opens a modal window and dowenloads a P D F document related executive summary" }, { name: "WhatShouldInvestorsExpectin2019", type: "sr-only", textvalue: "This link will open a new page in the same window" }, { name: "CapitalMarketAssumptions5-YearOutlook", type: "alt", textvalue: "Capital Market Assumptions: 5-Year Outlook" }, { name: "ForecastedRiskReturnMatrices", type: "sr-only", textvalue: "This button opens a new window" }, { name: "Decorative", type: "alt", textvalue: "" }, { name: "Msci", type: "title", textvalue: "Morgan Stanley Capital International" }, { name: "Hfri", type: "title", textvalue: "Hedge Fudn Research, Inc." }, { name: "Acwi", type: "title", textvalue: "All Country World Index" }, { name: "GraphBuildingBlocksToTotalReturns", type: "innerText", textvalue: "\n\t\t\t\t

Building Blocks to Total Returns

\n\t\t\t\t

Constructive fundamentals and stable valuations should result in mid-to-upper-single digit total return.\n\t\t\t\t

\n\t\t\t\t

Graph depicting coupon interest rate from different countries

\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
Country\n\t\t\t\t\t\t\tRevenue PercentageProfit Translation PercentageValue PercentageDividend PercentageTotal Return Percentage
United States4.20.71.9-15.8
Europe4.33.2-0.8-0.56.3
Japan2.90.20.62.16
United Kingdome4.24.2-1.2-16.3
Emerging Markets6.91.12.4-2.28.3
\n\t\t\t" }, { name: "GraphThemes1", type: "innerText", textvalue: "\n\t\t\t\t

Chart showing economic growth

\n\t\t\t\t

Cumulative growth percentage at 75% in November 1982

\n\t\t\t\t

Cumulative growth percentage at 74% in March 1991

\n\t\t\t\t

Cumulative growth percentage at 38% in November 2001

\n\t\t\t\t

Cumulative growth percentage at 41% in June 2009 adding cumulative growth for the 5 years after June 2009 at 3.8% adds 29% to the cumulative growth making the cumulative growth from June 2009 to June 2014 at 70%.

\n\t\t\t" }, { name: "GraphThemes2", type: "innerText", textvalue: "\n\t\t\t

Chart showing cumulative inflation for different countries from June 30 2008 through June 20 2018

\n\t\t\t

Japan Cumulative inflation -20.4%

\n\t\t\t

Europe Cumulative inflation -10.2%

\n\t\t\t

U.S. Cumulative inflation -5.8%

\n\t\t\t

Canada Cumulative inflation -4%

\n\t\t\t

U.K. Cumulative inflation .7%

\n\t\t\t

Australia Cumulative inflation 3.1%

" }, { name: "GraphThemes3", type: "innerText", textvalue: "\n\t\t\t

Chart showing federal funds rate percentage at a little over 8% as of December 1989

\n\t\t\t

dropping to about 3% in December 1993 going up to just under 6% as of December 1997

\n\t\t\t

dropping to just over 1% in December 2001 raising to just under 6% as of December 2005

\n\t\t\t

dropping to just over 0% from December 2009 through December 2013 and raising to 2% as of June 2018

" }, { name: "GraphThemes4", type: "innerText", textvalue: "\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
NYCSydneyTokyoLondonTorontoParisMoscowBerlin
306240220217193167118114
187191931791141106592
" }, { name: "GraphThemes5", type: "innerText", textvalue: "\n\t\t\t\t

Graph depicting global trade increase

\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
YearGlobal Trade (% of Gross Domestic Product)
196024%
1970About 30%
1980About 35%
1990About 40%
2000About 48%
2010About 55%
201757%
\n\t\t\t" }, { name: "GraphThemes6", type: "innerText", textvalue: "\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
Leader/CountryGlobal Trade (% of Gross Domestic Product)
Putin- Russia72%
Orban-Hungary59%
Abe-Japan52%
Merkel-Germany50%
Trudeau - Canada50%
Erdogan - Turkey46%
Turnbull-Australia46%
Trump - U.S.42%
Macron - France40%
May - U.K.34%
\n\t\t\t" }, { name: "GraphAGradualShiftHeigher", type: "innerText", textvalue: "\n\t\t\t\t

A Gradual Shift Higher

\n\t\t\t\t

Higher interest rates will occur gradually and have been priced in across most regions

\n\t\t\t\t

Graph depicting coupon interest rate from different countries

\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
CountryCoupon Return PercentagePrice/reinvestment return percentageTotal Return Percentage
United States3.30.33.6
Europe0.71.11.8
Japan0.20.30.5
United Kingdome1.70.82.5
Canada2.50.42.9
Australia2.513.5
Global HY-0.96.54.6
\n\t\t\t" }, { name: "GraphRealReturns", type: "innerText", textvalue: "

Graph depicting Natural resources and Global listed Infrastructure do a better job of outpacing high inflation over fixed income, global equities, TIPS, Future-based Commodities and Global Real Estate.

" }, { name: "HomepageDynamicGraph", type: "innerText", textvalue: "\n\t\t\t\t

Graph: Hedge Fund versus Balanced Portfolio \u2014 10-Year Rolling Returns

\n\t\t\t\t

The detail of the graph

\n\t\t\t" }, { name: "MoreThemesModal", type: "sr-only", textvalue: "This button opens a new Modal" }, { name: "MoreThemesLink", type: "sr-only", textvalue: "This button opens a new window" }, { name: "MoreAssetsClassLink", type: "sr-only", textvalue: "Opens a new window" }, { name: "MoreAssetsClassModal", type: "sr-only", textvalue: "Opens a new modal window" }, /* { name : "themes__list-item__learn-more", type : "sr-only", textvalue : "opens a new modal window" },*/ { name: "learnmore1", type: "sr-only", textvalue: "opens a new modal window for Mild Growth Myopia" }, { name: "learnmore2", type: "sr-only", textvalue: "opens a new modal window for Stuckflation" }, { name: "learnmore3", type: "sr-only", textvalue: "opens a new modal window for Pass/Fail Monetarism" }, { name: "learnmore4", type: "sr-only", textvalue: "opens a new modal window for Technology Slowzone" }, { name: "learnmore5", type: "sr-only", textvalue: "opens a new modal window for Global (Re)Positioning System" }, { name: "learnmore6", type: "sr-only", textvalue: "opens a new modal window for Executive Power Drive" }, { name: "Key6ThemesOrder1", type: "aria-label", textvalue: "Mild Growth Myopia" }, { name: "Key6ThemesOrder2", type: "aria-label", textvalue: "Stuckflation" }, { name: "Key6ThemesOrder3", type: "aria-label", textvalue: "Pass/Fail Monetarism" }, { name: "Key6ThemesOrder4", type: "aria-label", textvalue: "Technology Slowzone" }, { name: "Key6ThemesOrder5", type: "aria-label", textvalue: "Global (Re)Positioning System" }, { name: "Key6ThemesOrder6", type: "aria-label", textvalue: "Executive Power Drive" }, { name: "themes__modal__previous-button", type: "aria-label", textvalue: "Previous Theme" }, { name: "themes__modal__next-button", type: "aria-label", textvalue: "Next Theme" }, { name: "FindASolution", type: "sr-only", textvalue: "This link will open a new page in the same window" }, { name: "MatricesFooterLinkGroup", type: "sr-only", textvalue: "Link opens a new window" }, { name: "FooterUCITS", type: "title", textvalue: "Undertakings for Collective Investments in Transferable Securities" }] }; /* Year page variables */ var yearVariables = { byclassname: [{ name: "footer-social__link", type: "sr-only", textvalue: opensAnewWindow }, { name: "Decorative", type: "alt", textvalue: "" }, { name: "AllocationRecomendationsButton", type: "sr-only", textvalue: "This button opens a modal window and dowenloads a P D F document related to Allocation remommendations" }, { name: "1YearDownloadLatestPerspective", type: "sr-only", textvalue: "This button opens a modal window and dowenloads a P D F document related to our latest perspective" }, { name: "1YearMarketscapeVideoIFrame", type: "alt", textvalue: "This is an iframe holding a video for the fourth quarter sell-off in financial markets." }, { name: "view2018Edition5YearOutlookLink", type: "sr-only", textvalue: "This link will open a new page in the same window" }, { name: "MoreAssetClassInsightsLink", type: "sr-only", textvalue: "This link will open a new page in the next tab" }, { name: "BondsHeldUpOKWileRiskAssetsOutsideTheUSDidNot", type: "innerText", textvalue: "\n\t\t\t\t

The chart description

\n\t\t\t\t

This is a symantic chart description.

\n\t\t\t\t

Actual description awaited from client.

\n\t\t\t" }, /* { name : "Key6ThemesOrder1", type : "alt", textvalue : "MILD GROWTH MYOPIA" }, { name : "Key6ThemesOrder2", type : "alt", textvalue : "STUCKFLATION" }, { name : "Key6ThemesOrder3", type : "alt", textvalue : "PASS/FAIL MONETARISM" }, { name : "Key6ThemesOrder4", type : "alt", textvalue : "TECHNOLOGY SLOWZONE" }, { name : "Key6ThemesOrder5", type : "alt", textvalue : "GLOBAL (RE)POSITIONING SYSTEM" }, { name : "Key6ThemesOrder6", type : "alt", textvalue : "EXECUTIVE POWER DRIVE" },*/ { name: "MoreOnOurAssetClassInsights", type: "", textvalue: "" }, { name: "ViewThe2018Edition5-YearOutlook", type: "sr-only", textvalue: "This button will open a new page in the same window" }, { name: "FindASolution", type: "sr-only", textvalue: "This button will open a new page in the same window" }, { name: "WhatShouldInvestorsExpectin2019", type: "sr-only", textvalue: "This link will open a new page in the same window" }, { name: "1YearDownloadLatestPerspectiveLink", type: "sr-only", textvalue: "This link opens a modal window and dowenloads a P D F document related our latest perspective" }, { name: "MoreAssetsClassLink", type: "sr-only", textvalue: "Opens a new window" }, { name: "MatricesFooterLinkGroup", type: "sr-only", textvalue: "Link opens a new window" }, { name: "FooterUCITS", type: "title", textvalue: "Undertakings for Collective Investments in Transferable Securities" }] }; /* Matrices page variables */ var matricesVariables = { byclassname: [{ name: "footer-social__link", type: "sr-only", textvalue: opensAnewWindow }, { name: "DownloadExcelMatrices", type: "sr-only", textvalue: "This button downloads an excel file to your system" }, { name: "ZoomResetMatrices", type: "aria-label", textvalue: "Reset zoom" }, { name: "ZoomOutMatrices", type: "aria-label", textvalue: "Zoom out, zooms out the table" }, { name: "ZoomInMatrices", type: "aria-label", textvalue: "Zoom in, zooms in the table" }, { name: "ResetMatrices", type: "aria-label", textvalue: "Reset selections, resets to the default view" }, { name: "ToggleForcastFilters", type: "sr-only", textvalue: "Toggle Forcast Filters" }, { name: "ToggleAssetClassFilters", type: "sr-only", textvalue: "Toggle Asset Class Filters" }, { name: "MatricesFooterLinkGroup", type: "sr-only", textvalue: "Link opens a new window" }, { name: "FooterUCITS", type: "title", textvalue: "Undertakings for Collective Investments in Transferable Securities" }] }; var prodVidClicked; /* Accessibility class provides the functionalities for focus, arialabels as well as restricted taborder */ var Accessibility = function () { function Accessibility() { _classCallCheck(this, Accessibility); this.whichButtonClickedToOpenModal = undefined; this.lang = "en"; this.screenReaderVariables = {}; } _createClass(Accessibility, [{ key: "setInvisible", value: function setInvisible(elementsel) { try { var ariaAlreadyHidden = elementsel.getAttribute("aria-hidden"); var elementTabIndex = elementsel.getAttribute("tabindex"); var tabIndexAlreadyNeg = false; if (0 == parseInt(elementTabIndex) || -1 == parseInt(elementTabIndex)) { tabIndexAlreadyNeg = -1 == parseInt(elementTabIndex); var elemClasslist = elementsel.classList; var havetabindex = false; if (null != elemClasslist) { havetabindex = elemClasslist.contains("tabindex"); } else { havetabindex = false; } if (havetabindex) { elementsel.setAttribute("data-tabindex", elementTabIndex); } } if (!ariaAlreadyHidden && !tabIndexAlreadyNeg) { elementsel.setAttribute("tabindex", -111); elementsel.setAttribute("aria-hidden", true); elementsel.setAttribute("data-hidden", true); } } catch (e) { console.warn(e); } } }, { key: "setVisible", value: function setVisible(elementsel) { try { var dataHidden = elementsel.getAttribute("data-hidden"); var elementTabIndex = elementsel.getAttribute("data-tabindex"); if (dataHidden) { if (null != elementTabIndex) { elementsel.setAttribute("tabindex", elementTabIndex); elementsel.removeAttribute("data-tabindex"); } else { elementsel.removeAttribute("tabindex"); } elementsel.removeAttribute("aria-hidden"); elementsel.removeAttribute("data-hidden"); } } catch (e) { console.warn(e); } } }, { key: "getAllElements", value: function getAllElements() { var tabindexes = document.getElementsByClassName("tabindex"); var inputs = document.getElementsByTagName("input"); var links = document.getElementsByTagName("a"); var buttons = document.getElementsByTagName("button"); var iframes = document.getElementsByTagName("iframe"); return { "tabindexes": tabindexes, "inputs": inputs, "links": links, "buttons": buttons, "iframes": iframes }; } }, { key: "allAccessable", value: function allAccessable(focusCallBackFn) { var elmn = this.getAllElements(); var tabindexes = elmn.tabindexes; var inputs = elmn.inputs; var links = elmn.links; var buttons = elmn.buttons; var iframes = elmn.iframes; for (var find in iframes) { if ("object" == _typeof(iframes[find])) { this.setVisible(iframes[find]); } } for (var bind in buttons) { if ("object" == _typeof(buttons[bind])) { this.setVisible(buttons[bind]); } } for (var lind in links) { if ("object" == _typeof(links[lind])) { this.setVisible(links[lind]); } } for (var iind in inputs) { if ("object" == _typeof(inputs[iind])) { this.setVisible(inputs[iind]); } } for (var tind in tabindexes) { if ("object" == _typeof(tabindexes[tind])) { this.setVisible(tabindexes[tind]); } } focusCallBackFn(); } }, { key: "allInaccessable", value: function allInaccessable(callbackFn) { var elmn = this.getAllElements(); var tabindexes = elmn.tabindexes; var inputs = elmn.inputs; var links = elmn.links; var buttons = elmn.buttons; var iframes = elmn.iframes; for (var find in iframes) { if ("object" == _typeof(iframes[find])) { this.setInvisible(iframes[find]); } } for (var bind in buttons) { if ("object" == _typeof(buttons[bind])) { this.setInvisible(buttons[bind]); } } for (var lind in links) { if ("object" == _typeof(links[lind])) { this.setInvisible(links[lind]); } } for (var iind in inputs) { if ("object" == _typeof(inputs[iind])) { this.setInvisible(inputs[iind]); } } for (var tind in tabindexes) { if ("object" == _typeof(tabindexes[tind])) { this.setInvisible(tabindexes[tind]); } } callbackFn(); } }, { key: "modalShown", value: function modalShown(modalData) { var moData = modalData; // console.log("In the big: modal is open and the focus should still go to ", this.whichButtonClickedToOpenModal); // console.log("moData.modal_parent ", moData.modal_parent); this.allInaccessable(function () { document.querySelector(moData.modal_parent).focus(); document.querySelector(moData.modal_parent).removeAttribute("aria-hidden"); /* if there is no children provided then */ if (moData.modal_children.length > 0) { var firstElement = moData.modal_children[0]; var lastElement = moData.modal_children[moData.modal_children.length - 1]; for (var ind in moData.modal_children) { var child = document.querySelector(moData.modal_parent + " " + moData.modal_children[ind]); if (null != child) { var childClassList = child.classList; var childTabbable = true; if (null != childClassList) { childTabbable = !childClassList.contains("notab"); } if (childTabbable) { child.setAttribute("tabindex", 0); } else { child.removeAttribute("tabindex"); } child.removeAttribute("aria-hidden"); child.removeAttribute("data-hidden"); } } if (null != document.querySelector(moData.modal_parent + " " + firstElement)) { document.querySelector(moData.modal_parent + " " + firstElement).addEventListener("keydown", function (e) { if (e.shiftKey && 9 == e.keyCode) { e.preventDefault(); e.stopPropagation(); // console.log(moData.modal_parent+" "+lastElement); document.querySelector(moData.modal_parent + " " + lastElement).focus(); } if (moData.modal_children.length == 2 && !e.shiftKey && 9 == e.keyCode) { e.preventDefault(); e.stopPropagation(); document.querySelector(moData.modal_parent + " " + lastElement).focus(); } }); } if (null != document.querySelector(moData.modal_parent + " " + lastElement)) { document.querySelector(moData.modal_parent + " " + lastElement).addEventListener("keydown", function (e) { if (!e.shiftKey && 9 == e.keyCode) { e.preventDefault(); e.stopPropagation(); document.querySelector(moData.modal_parent + " " + firstElement).focus(); } }); } } }); // console.log("modal is open and the focus should still go to ", this.whichButtonClickedToOpenModal); this.formvalidationAria(); } }, { key: "formvalidationAria", value: function formvalidationAria() { var submitButton = document.getElementsByClassName("mktoButton")[0]; var astrix = document.getElementsByClassName("mktoAsterix"); if (document.getElementById("errormsgs")) { document.getElementById("errormsgs").innerHTML = ""; } try { var that = this; submitButton.addEventListener("keydown", function (event) { setTimeout(function () { that.bindEventWithSubmit(); }, 100); }); if (!!astrix && astrix.length > 0) { for (var ax = 0; ax < astrix.length; ax++) { astrix[ax].setAttribute("aria-hidden", true); } } submitButton.addEventListener("click", function (event) { setTimeout(function () { that.bindEventWithSubmit(); }, 100); }); } catch (e) {} } }, { key: "bindEventWithSubmit", value: function bindEventWithSubmit() { try { var errMsgElem = document.getElementsByClassName("mktoErrorMsg")[0]; var elementHavingError = errMsgElem.parentElement.parentElement.children[2].getAttribute("aria-label"); var msgs = elementHavingError + ": " + errMsgElem.innerHTML; document.getElementById("errormsgs").innerHTML = msgs; } catch (e) { // console.log("WARN: the form is submitted!"); document.getElementById("errormsgs").innerHTML = ""; } } }, { key: "modalHidden", value: function modalHidden(modalData, toFocus) { var moData = modalData; var firstElement = moData.modal_children[0]; var lastElement = moData.modal_children[moData.modal_children.length - 1]; // console.log("modal is closing now", this.whichButtonClickedToOpenModal); if (undefined != toFocus) { // console.log("moving focus to ", toFocus); toFocus.focus(); } else if (undefined !== this.whichButtonClickedToOpenModal) { this.whichButtonClickedToOpenModal.focus(); this.whichButtonClickedToOpenModal = undefined; screen.currentselectedElement = undefined; } else { if (prodVidClicked) { prodVidClicked.focus(); } } this.allAccessable(function () { document.querySelector(moData.modal_parent + " " + firstElement).removeEventListener("keydown", function (e) {}); document.querySelector(moData.modal_parent + " " + lastElement).removeEventListener("keydown", function (e) {}); document.getElementById("errormsgs").innerHTML = ""; // console.log("cleaning done!!"); }); } }, { key: "markAriaLabel", value: function markAriaLabel(fieldList) { for (var i = 0; i < fieldList.length; i++) { try { document.querySelector("#" + fieldList[i].id).setAttribute("aria-label", fieldList[i].label); } catch (e) { // console.warn("The form elements are not loaded or the form is already submitted once.", e); } } } }, { key: "markRequiredFields", value: function markRequiredFields(fieldList) { setTimeout(function () { for (var i = 0; i < fieldList.length; i++) { try { document.querySelector(fieldList[i]).setAttribute("aria-required", true); } catch (e) { // console.warn("The form elements are not loaded or the form is already submitted once.", e); } } }, 100); } }, { key: "toggelVisibility", value: function toggelVisibility(elmt, children, value) { elmt.setAttribute("aria-hidden", !value); for (var i = 0; i < children.length; i++) { var allchildren = document.querySelectorAll(children[i]); for (var a = 0; a < allchildren.length; a++) { var child = allchildren[a]; child.setAttribute("tabindex", value ? 0 : -1); } } } }, { key: "onDOMContentLoaded", value: function onDOMContentLoaded(lang) { this.lang = lang; var br = document.getElementsByTagName("br"); for (var i = 0; i < br.length; i++) { br[i].setAttribute("aria-hidden", true); br[i].setAttribute("tabindex", -1); br[i].classList.add("tabindex"); } this.ariaHiddenAllBlankPs(); this.productsPageClickableList("overlay-link"); this.elementsClickNFocus(); this.pageTitles(); this.removeTitlesFromLinks(); this.screenReaderTextVariables(); this.addAriaLiveHiddenDiv(); this.provideAltToImg(); window.onresize = function () { setTimeout(function () { PostRenderAlternatives(); }, 700); }; } }, { key: "tabControlSetup", value: function tabControlSetup(ProdutTabs, tabPanelId) { for (var i = 0; i < ProdutTabs.length; i++) { var tabpanelElem = document.querySelectorAll(ProdutTabs[i]); for (var t = 0; t < tabpanelElem.length; t++) { var tabpanelNode = tabpanelElem[t]; var tabpanelParent = tabpanelNode.parentNode; var tabParentChildren = tabpanelParent.children; var ulChildren = tabParentChildren[1].children; tabpanelNode.setAttribute("id", tabPanelId[i] + "_" + t); ulChildren[i].classList.add("tabindex"); ulChildren[i].setAttribute("tabindex", "0"); var aofli = ulChildren[i].children[0]; aofli.classList.add("tabindex"); aofli.setAttribute("tabindex", "-1"); aofli.setAttribute("aria-controls", tabPanelId[i] + "_" + t); /* Transferring the click event of li to the child link */ ulChildren[i].addEventListener("keydown", function (event) { if (event.keyCode == 13) { event.target.children[0].click(); } }); } } } }, { key: "provideAltToImg", value: function provideAltToImg(delay) { if (undefined == delay) { delay = 0; } setTimeout(function () { var images = document.getElementsByTagName("img"); for (var imagei = 0; imagei < images.length; imagei++) { var imageElem = images[imagei]; if (!imageElem.hasAttribute("alt")) { imageElem.setAttribute("alt", ""); } } }, delay); } }, { key: "ariaHiddenAllBlankPs", value: function ariaHiddenAllBlankPs() { var allPs = document.getElementsByTagName("p"); for (var pind = 0; pind < allPs.length; pind++) { var pElem = allPs[pind]; var textValue = pElem.innerHTML; if ("" == textValue) { pElem.setAttribute("aria-hidden", true); } } } }, { key: "AUMSuperscript", value: function AUMSuperscript(referanceLinkValue) { var supElem = document.getElementById("AUMSuperscript"); var supElemBck = document.getElementById("AUMback"); supElem.href = referanceLinkValue + "#AUMDescription"; supElemBck.href = referanceLinkValue + "#AUMSuperscript"; } }, { key: "addAriaLiveHiddenDiv", value: function addAriaLiveHiddenDiv() { var span = this.createSrOnlySpan([{ "name": "data-tabindex", "value": -1 }, { "name": "tabindex", "value": -1 }, { "name": "id", "value": "errormsgs" }, { "name": "aria-atomic", "value": true }, { "name": "aria-live", "value": "polite" }], ""); document.body.appendChild(span); } }, { key: "dynamicCommonSrOnly", value: function dynamicCommonSrOnly(classname, nodeText, removeExistingAlt) { var classContains = document.getElementsByClassName(classname); for (var i = 0; i < classContains.length; i++) { var parentElem = classContains[i]; if (removeExistingAlt) { parentElem.removeAttribute("alt"); } var span = this.createSrOnlySpan([], nodeText); parentElem.appendChild(span); } } }, { key: "addDescr", value: function addDescr(nodeSelector, nodeText) { document.querySelector(nodeSelector).setAttribute("aria-label", nodeText); } }, { key: "addlongdescr", value: function addlongdescr(nodeSelector, describedby, nodeText) { if (!describedby) { console.warn("Long description could not be added for " + nodeSelector + " as describedby id was not given. The description is added in the aria-label instead"); this.addDescr(nodeSelector, nodeText); } else { var parentElem = document.querySelector(nodeSelector); var span = this.createSrOnlySpan([{ "name": "id", "value": describedby }], nodeText); parentElem.prepend(span); } } }, { key: "addlongdescrClass", value: function addlongdescrClass(nodeSelector, describedby, nodeText) { if (!describedby) { console.warn("Long description could not be added for " + nodeSelector + " as describedby id was not given. The description is added in the aria-label instead"); this.addDescr(nodeSelector, nodeText); } else { var parentElem = document.getElementsByClassName(nodeSelector); console.log("Node selector >>> ", typeof parentElem === "undefined" ? "undefined" : _typeof(parentElem)); var span = this.createSrOnlySpan([{ "name": "id", "value": describedby }], nodeText); if ("object" == (typeof parentElem === "undefined" ? "undefined" : _typeof(parentElem))) { parentElem[0].prepend(span); } else { for (var pe = 0; pe < parentElem.length; pe++) { var child = parentElem[pe]; child.prepend(span); } } } } }, { key: "createSrOnlySpan", value: function createSrOnlySpan(attrs, nodeText) { var span = this.createNewSpan(attrs, nodeText, "sr-only"); return span; } }, { key: "createNewSpan", value: function createNewSpan(attrs, nodeText, classlist) { var span = document.createElement("span"); if (undefined != classlist && "" != classlist) { span.classList.add(classlist); } for (var i = 0; i < attrs.length; i++) { span.setAttribute(attrs[i].name, attrs[i].value); } span.textContent = nodeText; return span; } }, { key: "addAlt", value: function addAlt(nodeSelector, nodeText) { document.querySelector(nodeSelector).setAttribute("alt", nodeText); } }, { key: "addAltToClasses", value: function addAltToClasses(className, nodeText) { var nodes = document.getElementsByClassName(className); for (var i = 0; i < nodes.length; i++) { var currentClassObj = nodes[i]; currentClassObj.setAttribute("alt", nodeText); } } }, { key: "addTitleToClasses", value: function addTitleToClasses(className, nodeText) { var nodes = document.getElementsByClassName(className); for (var i = 0; i < nodes.length; i++) { var currentClassObj = nodes[i]; currentClassObj.setAttribute("title", nodeText); } } }, { key: "addAriaLabelToClasses", value: function addAriaLabelToClasses(className, nodeText) { var nodes = document.getElementsByClassName(className); for (var i = 0; i < nodes.length; i++) { var currentClassObj = nodes[i]; currentClassObj.setAttribute("aria-label", nodeText); } } }, { key: "addAbbrToClasses", value: function addAbbrToClasses(className, nodeText, replacement, attrib) { var attribute = "title"; if (undefined != attrib) { attribute = attrib; } var nodes = document.getElementsByClassName(className); for (var i = 0; i < nodes.length; i++) { var currentClassObj = nodes[i]; var replacementTxt = "" + nodeText + ""; var currentNodeTextValue = currentClassObj.innerHTML.replace(nodeText, replacementTxt); currentClassObj.innerHTML = currentNodeTextValue; } } }, { key: "remediateCapsIssueToClasses", value: function remediateCapsIssueToClasses(className, nodeText) { var nodes = document.getElementsByClassName(className); for (var i = 0; i < nodes.length; i++) { var currentClassObj = nodes[i]; var currentNodeTextValueSR = ""; var currentNodeTextValue = currentClassObj.innerHTML; if ("" != nodeText) { currentNodeTextValueSR = nodeText; } else { currentNodeTextValueSR = currentClassObj.innerHTML; } currentClassObj.innerHTML = ""; var spanSrOnly = this.createSrOnlySpan([], currentNodeTextValueSR.toLowerCase()); var spanAriaHidden = this.createNewSpan([{ "name": "aria-hidden", "value": true }], currentNodeTextValue); currentClassObj.appendChild(spanSrOnly); currentClassObj.appendChild(spanAriaHidden); } } }, { key: "addInnerHTMLToClasses", value: function addInnerHTMLToClasses(className, nodeText) { var nodes = document.getElementsByClassName(className); for (var i = 0; i < nodes.length; i++) { var currentClassObj = nodes[i]; currentClassObj.innerHTML = nodeText; } } }, { key: "productsPageClickableList", value: function productsPageClickableList(classname) { var overlay_link = document.getElementsByClassName(classname); for (var i in overlay_link) { if ("object" == _typeof(overlay_link[i])) { overlay_link[i].addEventListener("keydown", function (event) { if (event.keyCode == 13 || event.keyCode == 34) { event.target.click(); } }); } } } }, { key: "elementsClickNFocus", value: function elementsClickNFocus() { try { document.querySelector("#multiasset-products div.reusable-article-container div.reusable-article.reusable-article__is-video.video-type__products-multiasset.tabindex").addEventListener("keydown", function (event) { if (event.keyCode == 13 || event.keyCode == 34) { this.whichButtonClickedToOpenModal = event.target; prodVidClicked = this.whichButtonClickedToOpenModal; this.whichButtonClickedToOpenModal.click(); console.log("selected element", this.whichButtonClickedToOpenModal); } }); var OpensAModalPopUpClasses = document.querySelector("OpensAModalPopUp"); for (var cind = 0; cind < OpensAModalPopUpClasses.length; cind++) { OpensAModalPopUpClasses[cind].addEventListener("keydown", function (event) { if (event.keyCode == 13 || event.keyCode == 34) { this.whichButtonClickedToOpenModal = event.target; console.log("Targetted element", this.whichButtonClickedToOpenModal); } }); } } catch (e) { console.warn("WARN: selector not available in the function elementsClickNFocus. ", e); } } }, { key: "screenReaderTextVariables", value: function screenReaderTextVariables() { this.screenReaderVariables = {}; switch (window.location.pathname) { case "/": this.screenReaderVariables = homeVariables; var changeHeadings = document.getElementsByClassName("changeHeadingLevelForHome"); for (var i = 0; i < changeHeadings.length; i++) { changeHeadings[i].setAttribute("aria-level", 4); } break; case "/products/": this.screenReaderVariables = productsVariables; var that = this; setTimeout(function () { var common1 = "#equity-products > div.region-wrapper.region-united-states > div.background-overlap.background-overlap--equity > div > div > ul > li"; var common2 = "#multiasset-products > div.region-wrapper.region-united-states > div.background-overlap.background-overlap--multi-asset > div > div.products-list > ul > li"; var common3 = "#fixedincome-products > div.region-wrapper.region-united-states > div.background-overlap.background-overlap--fixed-income > div > div > ul > li"; var common4 = "#liquidity-products > div.region-wrapper.region-united-states > div.background-overlap.background-overlap--liquidity > div > div > ul > li"; var probTabList1 = [common1 + ".tab-is.quantitative_active_equity_products_tab_1", common1 + ".tab-mf.quantitative_active_equity_products_tab_2", common1 + ".tab-etf.quantitative_active_equity_products_tab_3"]; var probTabList2 = [common2 + ".tab-is.quantitative_active_equity_products_tab_1", common2 + ".tab-mf.quantitative_active_equity_products_tab_2", common2 + ".tab-etf.quantitative_active_equity_products_tab_3"]; var probTabList3 = [common3 + ".tab-is.quantitative_active_equity_products_tab_1", common3 + ".tab-mf.quantitative_active_equity_products_tab_2", common3 + ".tab-etf.quantitative_active_equity_products_tab_3"]; var probTabList4 = [common4 + ".tab-is.quantitative_active_equity_products_tab_1", common4 + ".tab-mf.quantitative_active_equity_products_tab_2", common4 + ".tab-etf.quantitative_active_equity_products_tab_3"]; that.ProductTabs(probTabList1); that.ProductTabs(probTabList2); that.ProductTabs(probTabList3); that.ProductTabs(probTabList4); }, 700); break; case "/1year/": this.screenReaderVariables = yearVariables; break; case "/matrices/": this.screenReaderVariables = matricesVariables; this.clickOnEnter(); break; } this.attachText(); } }, { key: "ProductTabs", value: function ProductTabs(probTabList1) { this.productsTabCoreFunction(probTabList1, 0); this.productsTabCoreFunction(probTabList1, 1); this.productsTabCoreFunction(probTabList1, 2); } }, { key: "productsTabCoreFunction", value: function productsTabCoreFunction(probTabList1, ptabindex) { try { document.querySelector(probTabList1[ptabindex]).addEventListener("keydown", function (event) { if (event.keyCode == 13 || event.keyCode == 34) { for (var i = 0; i < probTabList1.length; i++) { document.querySelector(probTabList1[i]).setAttribute("aria-selected", false); } document.querySelector(probTabList1[ptabindex]).setAttribute("aria-selected", true); } }); document.querySelector(probTabList1[ptabindex]).addEventListener("click", function () { for (var i = 0; i < probTabList1.length; i++) { document.querySelector(probTabList1[i]).setAttribute("aria-selected", false); } document.querySelector(probTabList1[ptabindex]).setAttribute("aria-selected", true); }); } catch (e) { console.log(e); } } }, { key: "clickOnEnter", value: function clickOnEnter() { var classesToClickOnEnter = document.getElementsByClassName("clickonenter"); for (var i = 0; i < classesToClickOnEnter.length; i++) { try { classesToClickOnEnter[i].addEventListener("keydown", function (event) { if (event.keyCode == 13 || event.keyCode == 34) { event.target.click(); } }); } catch (e) { console.warn("WARN:", e); } } } }, { key: "attachText", value: function attachText() { for (var i in this.screenReaderVariables.byclassname) { var arrNode = this.screenReaderVariables.byclassname[i]; var className = arrNode.name; var type = arrNode.type; var textValue = arrNode.textvalue; if ("sr-only" == type) { this.dynamicCommonSrOnly(className, textValue, true); } if ("alt" == type) { this.addAltToClasses(className, textValue); } if ("title" == type) { this.addTitleToClasses(className, textValue); } if ("aria-label" == type) { this.addAriaLabelToClasses(className, textValue); } if ("capsreading" == type) { this.remediateCapsIssueToClasses(className, textValue); } if ("abbr" == type) { var replacement = arrNode.replacement; var attribute = arrNode.attrib; this.addAbbrToClasses(className, textValue, replacement, attribute); } if ("innerText" == type) { this.addInnerHTMLToClasses(className, textValue); } if ("longdescr" == type) { this.addlongdescrClass(className, className, textValue); } } } }, { key: "pageTitles", value: function pageTitles() { var titleElem = document.getElementsByTagName("title")[0]; var d = new Date(); var n = d.getFullYear(); switch (window.location.pathname) { case "/": titleElem.innerText = "Northern Trust Capital Market Assumptions 10 Year Outlook: 2024 Edition"; this.AUMSuperscript(""); break; case "/products/": titleElem.innerText = "Northern Trust Capital Market Assumptions 10 Year Outlook: 2024 Edition"; this.AUMSuperscript("/products/"); var ProdutTabs = [".products-list-content.content-is", ".products-list-content.content-mf", ".products-list-content.content-etf", ".products-list-content.content-pf", ".products-list-content.content-uc"], tabPanelId = ["content_is", "content_mf", "content_etf", "content_pf", "content_uc"]; this.tabControlSetup(ProdutTabs, tabPanelId); this.productModalCloseClick(".themes__modal__close-button img"); break; case "/1year/": titleElem.innerText = "2023 Market Outlook | Northern Trust"; this.AUMSuperscript("/1year/"); break; case "/matrices/": titleElem.innerText = "Northern Trust 2023 Asset Class Forecasts"; break; } } }, { key: "productModalCloseClick", value: function productModalCloseClick(elementSelector) { document.querySelector(elementSelector).addEventListener("keydown", function (event) { if (event.keyCode == 13) { var parentEle = event.target.parentNode; parentEle.click(); } }); } }, { key: "removeTitlesFromLinks", value: function removeTitlesFromLinks() { var anchorLinks = document.getElementsByTagName("a"); for (var i = 0; i < anchorLinks.length; i++) { anchorLinks[i].removeAttribute("title"); } } }]); return Accessibility; }(); exports.default = Accessibility; /***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Screen = function () { function Screen() { _classCallCheck(this, Screen); this.currentselectedElement = undefined; } _createClass(Screen, [{ key: "opening", value: function opening(e) { this.currentselectedElement = e.target; if ("click" != e.type) { var x = e.which || e.keyCode; if (13 == x || 34 == x) { e.target.click(); } } } }]); return Screen; }(); exports.default = Screen; /***/ }), /* 20 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var LoadMoreProducts = function () { function LoadMoreProducts() { _classCallCheck(this, LoadMoreProducts); this.loadMoreButtons = document.querySelectorAll('.products-page .more-on a'); if (!this.loadMoreButtons || !this.loadMoreButtons.length) { return false; } var t = this; Array.prototype.slice.call(this.loadMoreButtons).forEach(function (el, i) { el.addEventListener('click', function (e) { t._onClick(e, t); }); }); } _createClass(LoadMoreProducts, [{ key: 'toggleOpen', value: function toggleOpen(el) { el.classList.toggle('is-active'); el.classList.toggle('is-closed'); // should only be used to toggle text el.previousElementSibling.classList.toggle('is-visible'); var value = true; if (!el.previousElementSibling.classList.contains("is-visible")) { value = false; } else { value = true; } var children = ["section.more-themes.more-on-products div.tabindex.reusable-article", "section.more-themes.more-on-products a.tabindex.reusable-article"]; accessibility.toggelVisibility(el.previousElementSibling, children, value); document.querySelector("#multiasset-products > div.region-wrapper.region-united-states > div.background-overlap.background-overlap--multi-asset > div > section > div > div.section-header.section-header-- > div.section-header__title.uppercase.tracked.section-header__title--").focus(); } }, { key: '_onClick', value: function _onClick(e, t) { e.preventDefault(); t.toggleOpen(e.target.parentNode); } }]); return LoadMoreProducts; }(); exports.default = LoadMoreProducts; /***/ }), /* 21 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var LoadMoreThemes = function () { function LoadMoreThemes() { var _this = this; _classCallCheck(this, LoadMoreThemes); this.loadMoreButton = document.querySelector('.button--load-more-themes'); this.additionalContent = document.querySelector('.more-themes'); if (!this.loadMoreButton) { return; } this.loadMoreButton.addEventListener('click', function (e) { return _this._onClick(e); }); } _createClass(LoadMoreThemes, [{ key: '_onClick', value: function _onClick(event) { event.preventDefault(); this._isOpen = !this._isOpen; } }, { key: '_isOpen', get: function get() { return this.additionalContent.classList.contains('is-visible'); }, set: function set(value) { this.loadMoreButton.classList.toggle('is-active', value); this.loadMoreButton.innerText = value ? 'Show less' : 'More on our themes'; this.additionalContent.classList.toggle('is-visible', value); var children = [".more-themes .tabindex.reusable-article"]; accessibility.toggelVisibility(this.additionalContent, children, value); this.loadMoreButton.setAttribute("aria-expanded", value); } }]); return LoadMoreThemes; }(); exports.default = LoadMoreThemes; /***/ }), /* 22 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var LoadMoreAssetClasses = function () { function LoadMoreAssetClasses() { var _this = this; _classCallCheck(this, LoadMoreAssetClasses); this.loadMoreButton = document.querySelector('.button--load-more-asset-classes'); this.additionalContent = document.querySelector('.more-asset-classes'); if (!this.loadMoreButton) { return; } this.loadMoreButton.addEventListener('click', function (e) { return _this._onClick(e); }); } _createClass(LoadMoreAssetClasses, [{ key: '_onClick', value: function _onClick(event) { event.preventDefault(); this._isOpen = !this._isOpen; } }, { key: '_isOpen', get: function get() { return this.additionalContent.classList.contains('is-visible'); }, set: function set(value) { this.loadMoreButton.classList.toggle('is-active', value); this.loadMoreButton.innerText = value ? 'Show less' : 'More on our asset class insights'; this.additionalContent.classList.toggle('is-visible', value); var children = [".more-asset-classes .tabindex.reusable-article"]; accessibility.toggelVisibility(this.additionalContent, children, value); this.loadMoreButton.setAttribute("aria-expanded", value); } }]); return LoadMoreAssetClasses; }(); exports.default = LoadMoreAssetClasses; /***/ }), /* 23 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _modal = __webpack_require__(24); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var allVideoModal = function () { function allVideoModal() { _classCallCheck(this, allVideoModal); //videos for More Asset Classes on homepage section this.moreAssetPlayerData = [{ accountId: '2862659545001', playerId: 'adc0c982-3300-496e-a729-20dc5babb15f', videoId: '5843868333001', selector: '.modal__content', header: 'Global Tactical Asset Allocation Update', aspectRatio: '16:9' }]; //videos for More Themes section this.themePlayerData = [{ accountId: '2862659545001', playerId: 'adc0c982-3300-496e-a729-20dc5babb15f', videoId: '5977693646001', selector: '.modal__content', header: 'Mixed messages from the Fed', aspectRatio: '16:9' }, { accountId: '2862659545001', playerId: 'adc0c982-3300-496e-a729-20dc5babb15f', videoId: '5843868313001', selector: '.modal__content', header: '6 Themes for the Next 5 Years', aspectRatio: '16:9' }, { accountId: '2862659545001', playerId: 'adc0c982-3300-496e-a729-20dc5babb15f', videoId: '5844536371001', selector: '.modal__content', header: 'What Investors Can Expect in the Years to Come', aspectRatio: '16:9' }]; //videos for More Asset Classes section on products page this.assetPlayersData = [{ accountId: '2862659545001', playerId: 'adc0c982-3300-496e-a729-20dc5babb15f', videoId: '5853910986001', selector: '.modal__content', header: '6 Pillars', aspectRatio: '16:9' }, { accountId: '2862659545001', playerId: 'adc0c982-3300-496e-a729-20dc5babb15f', videoId: '6052586369001', selector: '.modal__content', header: 'How Multi-Asset Strategies Deliver', aspectRatio: '16:9' }]; // One Year Page - Global Momentum Video this.oneYearGlobalMomentumData = [{ accountId: '2862659545001', playerId: 'adc0c982-3300-496e-a729-20dc5babb15f', videoId: '5989369144001', selector: '.modal__content', header: '2020 Outlook: What to Expect in the Year Ahead', aspectRatio: '16:9' }]; // One Year Page - More Asset Class Insights section this.oneYearMoreAssetClasses = [{ accountId: '2862659545001', playerId: 'adc0c982-3300-496e-a729-20dc5babb15f', videoId: '5713023090001', selector: '.modal__content', header: 'Video: Expecting Global Momentum to Continue in 2018', aspectRatio: '16:9' }, { accountId: '2862659545001', playerId: 'adc0c982-3300-496e-a729-20dc5babb15f', videoId: '5722708701001', selector: '.modal__content', header: 'Webinar Replay: Find Out What Investors Should Expect in the Year Ahead', aspectRatio: '16:9' }, { accountId: '2862659545001', playerId: 'adc0c982-3300-496e-a729-20dc5babb15f', videoId: '5642088296001', selector: '.modal__content', header: 'Video: Tackling Low Rates and Modest Growth', aspectRatio: '16:9' }]; // One Year Page - More On Our Themes section this.oneYearMoreThemes = [{ accountId: '2862659545001', playerId: 'adc0c982-3300-496e-a729-20dc5babb15f', videoId: '5688468142001', selector: '.modal__content', header: 'Video: 6 Key Themes for the Next 5 Years', aspectRatio: '16:9' }, { accountId: '2862659545001', playerId: 'adc0c982-3300-496e-a729-20dc5babb15f', videoId: '5722801911001', selector: '.modal__content', header: 'Video: Three Investment Themes that Remain Front and Center in 2018', aspectRatio: '16:9' }]; this.modal = new _modal.Modal(); try { this._bindAllEvents(); this._createModal(); } catch (error) {} } _createClass(allVideoModal, [{ key: '_bindAllEvents', value: function _bindAllEvents() { var _this = this; //grab all of the elements which will be video links var themeArticleElements = document.getElementsByClassName('video-type__theme'); //loop through array-like Node list of elements and add click event listener var _loop = function _loop(i) { var element = themeArticleElements[i]; element.addEventListener('click', function () { _this.modal.open(); _this.modal.closeButton.setAttribute("data-video-id", _this.themePlayerData[i].videoId); _this.modal.addVideo(_this.themePlayerData[i]); }); }; for (var i = 0; i < themeArticleElements.length; i++) { _loop(i); } var moreAssetVideoElements = document.getElementsByClassName('video-type__asset'); var _loop2 = function _loop2(i) { moreAssetVideoElements[i].addEventListener('click', function () { _this.modal.open(); _this.modal.closeButton.setAttribute("data-video-id", _this.moreAssetPlayerData[i].videoId); _this.modal.addVideo(_this.moreAssetPlayerData[i]); }); }; for (var i = 0; i < moreAssetVideoElements.length; i++) { _loop2(i); } var assetVideoElements = document.getElementsByClassName('video-type__products-multiasset'); var _loop3 = function _loop3(i) { assetVideoElements[i].addEventListener('click', function () { _this.modal.open(); _this.modal.addVideo(_this.assetPlayersData[i]); }); }; for (var i = 0; i < assetVideoElements.length; i++) { _loop3(i); } var momentumElements = document.getElementsByClassName('video-type__global-momentum'); var _loop4 = function _loop4(i) { momentumElements[i].addEventListener('click', function () { _this.modal.open(); _this.modal.addVideo(_this.oneYearGlobalMomentumData[i]); }); }; for (var i = 0; i < momentumElements.length; i++) { _loop4(i); } var oneYearAssetClassElements = document.getElementsByClassName('video-type__one-year-asset-class'); var _loop5 = function _loop5(i) { oneYearAssetClassElements[i].addEventListener('click', function () { _this.modal.open(); _this.modal.addVideo(_this.oneYearMoreAssetClasses[i]); }); }; for (var i = 0; i < oneYearAssetClassElements.length; i++) { _loop5(i); } var oneYearThemeElements = document.getElementsByClassName('video-type__one-year-theme'); var _loop6 = function _loop6(i) { oneYearThemeElements[i].addEventListener('click', function () { _this.modal.open(); _this.modal.addVideo(_this.oneYearMoreThemes[i]); }); }; for (var i = 0; i < oneYearThemeElements.length; i++) { _loop6(i); } } }, { key: '_createModal', value: function _createModal() { // note - The selector for createModal() has to be an element that is shared amongst all pages // ie: home page, and One Year page both have .themes therefore modal will work on both this.modal.createModal(document.getElementsByClassName('reusable-article__is-video').length ? '.products-page' : '.themes'); // this.modal.createModal('.content') //this.modal.createModal('.more-themes'); } }]); return allVideoModal; }(); exports.default = allVideoModal; /***/ }), /* 24 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Modal = undefined; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _videoPlayer = __webpack_require__(25); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Modal = exports.Modal = function () { function Modal() { _classCallCheck(this, Modal); this.videoplayer; this.closeButton; this.body = document.querySelector('body'); this.modal = document.querySelector('.modal-wrapper'); this.modalData = { "modal_parent": ".modal-wrapper", "modal_children": ["button.vjs-play-control", "div.vjs-volume-panel", "div.vjs-current-time", "div.vjs-duration", "div.vjs-progress-control", "button.vjs-share-control", "div.vjs-subs-caps-button", "button.vjs-fullscreen-control", "button.modal__close"] }; if (!this.modal) return; // clone it. So that we have seperate modals. // TODO: Ideally we should create the modal here! Instead of cloning it //this.modal = wrapper.cloneNode(true); DO NOT CLONE - THIS IS NOT WORKING CORRECTLY. GM } _createClass(Modal, [{ key: '_bindEvents', value: function _bindEvents() { var _this = this; this.closeButton.addEventListener('click', function () { _this.close(); }); this.modalBg.addEventListener('click', function (e) { console.log(e); // e.stopPropagation(); _this.close(); }); this.modalContent.addEventListener('click', function (e) { e.stopPropagation(); }); document.addEventListener('keydown', this.onKeyDown.bind(this)); } }, { key: 'createModal', value: function createModal(selector) { //reuse already existing modal. Not needed. -- GM // create a modal and append it to a selector //document.querySelector(selector).appendChild(this.modal); // put the modal in the container of the corresponding DOM element this.modalBg = this.modal.querySelector('.modal__bg'); this.modalContent = this.modal.querySelector('.modal__content'); this.closeButton = this.modal.querySelector('.modal__close'); this.selector = selector; this.modalBg.style.opacity = '0'; this.modalContent.style.opacity = '0'; this._bindEvents(); } }, { key: 'open', value: function open() { this.modal.style.display = 'block'; accessibility.whichButtonClickedToOpenModal = screen_acc.currentselectedElement; Velocity(this.modalBg, { opacity: '1' }); Velocity(this.modalContent, { opacity: '1', translateY: ['0px', '50px'] }); var that = this; setTimeout(function () { document.body.classList.add('modal-is-open'); }, 1000); // adds overlow hidden to the body to prevent scrolling setTimeout(function () { accessibility.modalShown(that.modalData); }, 1000); } }, { key: 'close', value: function close() { var _this2 = this; this.body.classList.remove('modal-is-open'); // removes overflow hidden from body if (!!this.videoplayer) { // only if a videoplayer has been initialized. Stop all this.videoplayer.stopAllVideos(); } Velocity(this.modalBg, { opacity: '0' }); Velocity(this.modalContent, { opacity: '0', translateY: ['-50px', '0px'] }, { complete: function complete() { _this2.modal.style.display = 'none'; var path = window.location.pathname; var video_id = _this2.closeButton.getAttribute("data-video-id"); if ("/products/" == path) { accessibility.modalHidden(_this2.modalData, document.getElementsByClassName("MoreOnProductsModal")[0]); } else { var focusBackMap = { '5977693646001': document.querySelector("#moreThemesModalId1"), '5843868313001': document.querySelector("#moreThemesModalId2"), '5844536371001': document.querySelector("#moreThemesModalId3"), '5843868333001': document.querySelector("body > section:nth-child(5) > section.more-asset-classes.is-visible > div > div.reusable-article-container > div > div") }; if (!!video_id) { accessibility.modalHidden(_this2.modalData, focusBackMap[video_id]); } else { accessibility.modalHidden(_this2.modalData); } } } }); } }, { key: 'onKeyDown', value: function onKeyDown(e) { // Hide modal if user presses escape key while it is visible. if (e.keyCode === 27) { this.close(); } } }, { key: 'addVideo', value: function addVideo(playerData) { // we are expecting an Object here. VideoPlayer will take care of that and will create instances this.videoplayer = new _videoPlayer.VideoPlayer(); //do different things depending on if user passed in array of videos, or just one video if ((typeof playerData === 'undefined' ? 'undefined' : _typeof(playerData)) === 'object') { this.videoplayer._createVideo(playerData); } else { this.videoplayer.add(playerData); } } }]); return Modal; }(); /***/ }), /* 25 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var VideoPlayer = exports.VideoPlayer = function () { function VideoPlayer() { _classCallCheck(this, VideoPlayer); } _createClass(VideoPlayer, [{ key: 'add', value: function add(playerData) { var _this = this; //playerData is an array of objects if (playerData.length > 0) { playerData.forEach(function (data) { _this._createVideo(data); }, this); } } }, { key: '_createVideo', value: function _createVideo(videoData) { var videoWrapper = document.querySelector(videoData.selector); if (!!videoWrapper) { console.log(videoWrapper); // Dynamically build the player video element // also create the video's header, and wrap both video and header in a container div var aspectRatio = videoData.aspectRatio === '4:3' ? 'is-4x3vid' : null; var playerHTML = '
'; playerHTML += '
' + videoData.header + '
'; videoWrapper.innerHTML = playerHTML; // Inject the player code into the DOM //code for dynamically resizing vid depending on 16:9 or 4:3 aspect ratio //todo - figure this out // let vid = document.querySelector('video') // vid.addEventListener( "loadedmetadata", function (e) { // const width = this.videoWidth; // const height = this.videoHeight; // console.log('after metadata', vid.videoHeight, vid.videoWidth) // let aspectRatioPercent = height / width; // let aspectRatio = height / width * 100; // let videoJS = document.querySelector('.video-js'); // videoJS.style.paddingBottom = `${aspectRatio}%`; // vid.style.width = height / aspectRatioPercent; // }, false ); var scriptTag = document.createElement('script'); // Add and execute the player script tag scriptTag.src = '//players.brightcove.net/' + videoData.accountId + '/' + videoData.playerId + '_default/index.min.js'; // Add the script tag to the document document.body.appendChild(scriptTag); } else { console.error('There is no video in the DOM with the classname: ' + videoData.selector + '. We need this to append an video. Please set this up in order to create a video.'); } } }, { key: 'stopAllVideos', value: function stopAllVideos() { if (typeof videojs !== 'undefined') { // nothing should break if the lib is not loaded // Check for playerIDs for (var i = 0; i < Object.keys(videojs.players).length; i++) { // get the playerID var playerId = Object.keys(videojs.players)[i]; videojs(playerId).pause(); } } } }]); return VideoPlayer; }(); /***/ }), /* 26 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var oneYearOutlook = function () { function oneYearOutlook() { var _this = this; _classCallCheck(this, oneYearOutlook); this.loadMoreButton = document.querySelector('.button--toggle-outlook-table-new'); this.additionalContent = document.querySelector('.exhibit-outlook-table-wrap'); if (!this.loadMoreButton) { return; } this.loadMoreButton.addEventListener('click', function (e) { return _this._onClick(e); }); } _createClass(oneYearOutlook, [{ key: '_onClick', value: function _onClick(event) { event.preventDefault(); this._isOpen = !this._isOpen; } }, { key: '_isOpen', get: function get() { return this.additionalContent.classList.contains('is-visible'); }, set: function set(value) { this.loadMoreButton.classList.toggle('is-active', value); this.loadMoreButton.innerText = value ? 'Hide Allocations as of December 2022' : 'Show Allocations as of December 2022'; this.additionalContent.classList.toggle('is-visible', value); var children = [".exhibit-outlook-table-wrap .tabindex"]; accessibility.toggelVisibility(this.additionalContent, children, value); this.loadMoreButton.setAttribute("aria-expanded", value); } }]); return oneYearOutlook; }(); exports.default = oneYearOutlook; /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var oneYearLoadMoreAssetClasses = function () { function oneYearLoadMoreAssetClasses() { var _this = this; _classCallCheck(this, oneYearLoadMoreAssetClasses); this.loadMoreButton = document.querySelector('.button--oneyear-load-more-asset-classes'); this.additionalContent = document.querySelector('.more-asset-classes'); if (!this.loadMoreButton) { return; } this.loadMoreButton.addEventListener('click', function (e) { return _this._onClick(e); }); } _createClass(oneYearLoadMoreAssetClasses, [{ key: '_onClick', value: function _onClick(event) { event.preventDefault(); this._isOpen = !this._isOpen; } }, { key: '_isOpen', get: function get() { return this.additionalContent.classList.contains('is-visible'); }, set: function set(value) { this.loadMoreButton.classList.toggle('is-active', value); this.loadMoreButton.innerText = value ? 'Show less' : 'More on our asset class insights'; this.additionalContent.classList.toggle('is-visible', value); var children = [".more-asset-classes .MoreAssetClassInsightsLink"]; accessibility.toggelVisibility(this.additionalContent, children, value); this.loadMoreButton.setAttribute("aria-expanded", value); } }]); return oneYearLoadMoreAssetClasses; }(); exports.default = oneYearLoadMoreAssetClasses; /***/ }), /* 28 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var oneYearLoadChart = function () { function oneYearLoadChart() { var _this = this; _classCallCheck(this, oneYearLoadChart); this.loadMoreButton = document.querySelector('.button__oneyear-chart'); this.additionalContent = document.querySelector('.oneyear .charts__container'); if (!this.loadMoreButton) { return; } this.loadMoreButton.addEventListener('click', function (e) { return _this._onClick(e); }); } _createClass(oneYearLoadChart, [{ key: '_onClick', value: function _onClick(event) { event.preventDefault(); this._isOpen = !this._isOpen; } }, { key: '_isOpen', get: function get() { return this.additionalContent.classList.contains('is-visible'); }, set: function set(value) { this.loadMoreButton.classList.toggle('is-active', value); this.loadMoreButton.innerText = value ? 'Show less' : 'Show More'; this.additionalContent.classList.toggle('is-visible', value); } }]); return oneYearLoadChart; }(); exports.default = oneYearLoadChart; /***/ }), /* 29 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var FOOTER_URL = 'https://www.northerntrust.com/asset-management/'; var ProductStickyNav = function () { function ProductStickyNav() { _classCallCheck(this, ProductStickyNav); this.productNav = document.querySelector('.product-sticky-nav'); if (!this.productNav) { return; } this.productsSection = document.querySelector('.products-container'); this.regionSelector = document.getElementById('product-region-select'); this.mobileDropdownButton = document.querySelector('.mobile-current-active-wrap'); this.mobileDropdownMenu = document.querySelector('.product-links-container'); // set current region in product sticky nav this.currentSelectedRegion = this.regionSelector.value; // footer url link so that user can visit link in same region // as the one they have selected in the sticky nav var footerLinksNodeList = document.querySelectorAll('.footer__link'); var footerLinkArr = Array.prototype.slice.call(footerLinksNodeList).filter(function (link) { return link.textContent == 'More on Northern Trust Asset Management'; }); this.footerLink = footerLinkArr[0]; this.footerLink.href = FOOTER_URL + this.currentSelectedRegion; // Binding this.changeRegion = this.changeRegion.bind(this); this.setActiveLink = this.setActiveLink.bind(this); this.scrollToSection = this.scrollToSection.bind(this); this.toggleDropdown = this.toggleDropdown.bind(this); // Events and Inits if (this.productsSection) { window.requestAnimationFrame(this.checkFixedNav.bind(this)); } this._bindEvents(); } _createClass(ProductStickyNav, [{ key: '_bindEvents', value: function _bindEvents() { var t = this; window.addEventListener('optimizedScroll', this.setActiveLink); var links = document.querySelectorAll('.product-link'); // CALLING THIS DIRECTLY FROM THE CSS FOR NOW // Array.prototype.forEach.call(links, link => { // link.addEventListener('click', e => { // t.scrollToSection(e); // }); // }); // swap out region class in page body this.regionSelector.addEventListener('change', function () { t.changeRegion(); }); this.mobileDropdownButton.addEventListener('click', this.toggleDropdown); } }, { key: 'changeRegion', value: function changeRegion() { // sr.reveal('.products-page'); var previousSelectedRegion = this.currentSelectedRegion; if (previousSelectedRegion) { this.currentSelectedRegion = this.regionSelector.value; document.body.classList.remove('region-' + previousSelectedRegion); document.body.classList.add('region-' + this.currentSelectedRegion); } track.clickDLVElement('Products Page Region Selector', this.currentSelectedRegion); productsPage.selectProductTypeByClass(); this.setActiveLink(); // The below is a solution to a Scroll Reveal issue. The ScrollReveal // library reveals elements onScroll, but changing the region on the // products page doesn't require scroll, meaning the elements stay "unrevealed" // The below scrollTo() is a means to trigger the scroll reveal function and give // the reveal affect without affecting scroll position on the screen window.scrollTo(window.scrollX, window.scrollY - 1); window.scrollTo(window.scrollX, window.scrollY + 1); // Update corresponding NT Asset Management Footer Link // with newly updated region this.footerLink.href = FOOTER_URL + this.currentSelectedRegion; } // toggle active class for a product nav link }, { key: 'setActiveLink', value: function setActiveLink() { if (document.querySelector('.product-sticky-nav').classList.contains('fixed')) { var product = document.querySelectorAll('.product-wrapper'); var links = document.querySelectorAll('.product-link'); var navHeight = document.querySelector('.product-sticky-nav').clientHeight; var products = {}; var scrollPosition = document.documentElement.scrollTop || document.body.scrollTop; var selectedProduct, selectedEls; /* mobile and desktop versions */ var mobileNavActiveElem = document.querySelector('.dropdown-btn'); document.querySelector('.product-sticky-nav').setAttribute("aria-hidden", false); document.querySelector('.product-sticky-nav').style.display = "block"; var usCa = this.currentSelectedRegion === "united-states" || this.currentSelectedRegion === "canada"; /* remove active from all previously active links including mobile and desktop */ if (links) { Array.prototype.forEach.call(links, function (link) { link.classList.remove('active'); if (usCa) link.parentElement.classList.remove("active"); }); } var i = 0; Array.prototype.forEach.call(product, function (el) { if (!productsPage.elementIsVisible(el)) return; products[el.id] = el.offsetTop; }); for (i in products) { /* do not break out after set because scroll position might be at element testing for after this. */ if (products[i] <= scrollPosition + navHeight) { selectedProduct = i; } } selectedEls = document.querySelectorAll('a[href*="#' + selectedProduct + '"]'); if (selectedEls) { Array.prototype.forEach.call(selectedEls, function (link) { link.classList.add('active'); if (usCa) link.parentElement.classList.add("active"); }); mobileNavActiveElem.innerHTML = selectedEls[0].innerHTML; } } else { document.querySelector('.product-sticky-nav').setAttribute("aria-hidden", true); document.querySelector('.product-sticky-nav').style.display = "none"; } } }, { key: 'toggleDropdown', value: function toggleDropdown(e) { console.log("toggle dropdown called"); e.preventDefault(); e.currentTarget.classList.toggle('open'); this.mobileDropdownMenu.classList.toggle('open'); } // check if sticky nav should be fixed or not }, { key: 'checkFixedNav', value: function checkFixedNav() { var top = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop; var diff = this.productsSection.getBoundingClientRect().top; var nav = this.productNav.clientHeight; if (diff > nav) { this.productNav.classList.remove('fixed'); } if (diff <= nav) { this.productNav.classList.add('fixed'); } window.requestAnimationFrame(this.checkFixedNav.bind(this)); } // scroll to product section event handler }, { key: 'scrollToSection', value: function scrollToSection(e) { e.preventDefault(); // If we want to disable user clicking on active link, uncomment this // if (e.currentTarget.classList.contains('active')) { // return; // } // if user is in mobile and clicks link from dropdown menu, close the dropdown if (this.mobileDropdownMenu.classList.contains('open')) { this.mobileDropdownMenu.classList.remove('open'); } var products = document.querySelectorAll('.product-wrapper'); var navHeight = document.querySelector('.product-sticky-nav').clientHeight; var withoutHash = e.target.hash.split('#').join(''); var scrollPosition = 0; for (var i = 0; i < products.length; i++) { if (products[i].id === withoutHash) { scrollPosition = products[i].getBoundingClientRect().top + window.pageYOffset - navHeight; window.scrollTo({ top: scrollPosition + 1, behavior: 'smooth' }); return; } } } }]); return ProductStickyNav; }(); // IIFE to throttle scroll event exports.default = ProductStickyNav; (function () { var throttle = function throttle(type, name, obj) { obj = obj || window; var running = false; var func = function func() { if (running) { return; } running = true; requestAnimationFrame(function () { obj.dispatchEvent(new CustomEvent(name)); running = false; }); }; obj.addEventListener(type, func); }; throttle('scroll', 'optimizedScroll'); })(); /***/ }), /* 30 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var ProductPage = function () { function ProductPage() { _classCallCheck(this, ProductPage); this.navItems = document.querySelectorAll('.products-page .product-type-nav a'); if (this.navItems.length < 1) return; this.discLinks = document.querySelectorAll('.disclosure > a'); this.tabClasses = ['tab-is', 'tab-mf', 'tab-etf', 'tab-pf', "tab-uc", "tab-fis", "tab-so"]; this._bindEvents(); } _createClass(ProductPage, [{ key: '_bindEvents', value: function _bindEvents() { var t = this; // const discLinks = document.querySelectorAll('.disclosure > a'); [].forEach.call(this.discLinks, function (el) { el.addEventListener('click', function () { t.toggleDisclosure(this); }); }); [].forEach.call(this.navItems, function (el) { el.addEventListener('click', function () { t.selectProductType(this); }); }); } }, { key: 'selectProductTypeByClass', value: function selectProductTypeByClass() { var c = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; if (c == null) c = 'tab-is'; var body = document.querySelector('body'); var selectedTab = null; this.tabClasses.forEach(function (c) { body.classList.remove(c); }); body.classList.add(c); } }, { key: 'selectProductType', value: function selectProductType(el) { var body = document.querySelector('body'); var t = this; var selectedTab = null; this.tabClasses.forEach(function (c) { if (!selectedTab && t.hasClass(el.parentElement, c)) { selectedTab = c; } body.classList.remove(c); }); body.classList.add(selectedTab); // Solution to ScrollReveal issue of elements only being // "revealed" via scroll and not on other instances // like selecting a new tab or nav link // also used in productStickyNav.js window.scrollTo(window.scrollX, window.scrollY); // window.scrollTo(window.scrollX, window.scrollY - 1); // window.scrollTo(window.scrollX, window.scrollY + 1); } }, { key: 'toggleDisclosure', value: function toggleDisclosure(el) { var wrappers = document.querySelectorAll('.advantages .disclosure'); for (var i = 0; i < wrappers.length; i++) { if (wrappers[i].classList.contains('closed')) { wrappers[i].classList.remove('closed'); } else { wrappers[i].classList.add('closed'); } } } }, { key: 'elementIsVisible', value: function elementIsVisible(elem) { return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length); } }, { key: 'hasClass', value: function hasClass(el, testClass) { if ('classList' in el) { return el.classList.contains(testClass); } else { return new Regexp(testClass).exec(el.className); } // this is better return false; } }]); return ProductPage; }(); exports.default = ProductPage; /***/ }), /* 31 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var HoverTooltip = function () { function HoverTooltip() { _classCallCheck(this, HoverTooltip); // this grabs all elem for each region, even display:none elements this.hoverIcons = document.querySelectorAll('g .tooltipTrigger'); this.tooltips = document.querySelectorAll('.hover-tooltip'); this.chartContainer = document.querySelectorAll('.chart__svg--fixed-income'); // Bind Methods this.showPopup = this.showPopup.bind(this); this.hidePopup = this.hidePopup.bind(this); this.toggleMobileChartClass = this.toggleMobileChartClass.bind(this); this._runPolyfills = this._runPolyfills.bind(this); this._bindEvents = this._bindEvents.bind(this); this._runPolyfills(); this._bindEvents(); // First Run this.toggleMobileChartClass(); } _createClass(HoverTooltip, [{ key: '_bindEvents', value: function _bindEvents() { var t = this; for (var i = 0; i < this.hoverIcons.length; i++) { this.hoverIcons[i].addEventListener('mouseover', this.showPopup); this.hoverIcons[i].addEventListener('mouseout', this.hidePopup); /* Accessibility code to make tooltip accessible */ /* var that = this; this.hoverIcons[i].addEventListener('keydown', function(event){ if(event.keyCode==13 || event.keyCode==34) { that.showPopup(event); } if(event.keyCode==9) { that.hidePopup(event); } }); */ } // window resize event only for Product Page if (document.body.classList.contains('products-page')) { window.addEventListener('optimizedResize', this.toggleMobileChartClass); } } }, { key: '_runPolyfills', value: function _runPolyfills() { // POLYFILL FOR IE -- Element.closest() if (!Element.prototype.matches) Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; if (!Element.prototype.closest) { Element.prototype.closest = function (s) { var el = this; if (!document.documentElement.contains(el)) return null; do { if (el.matches(s)) return el; el = el.parentElement || el.parentNode; } while (el !== null && el.nodeType === 1); return null; }; } } }, { key: 'toggleMobileChartClass', value: function toggleMobileChartClass(event) { if (window.innerWidth < 768) { for (var i = 0; i < this.tooltips.length; i++) { this.tooltips[i].classList.add('hover-tooltip--mobile'); } for (var _i = 0; _i < this.chartContainer.length; _i++) { this.chartContainer[_i].classList.add('chart__svg--fixed-income--mobile'); } } else { for (var _i2 = 0; _i2 < this.tooltips.length; _i2++) { this.tooltips[_i2].classList.remove('hover-tooltip--mobile'); } for (var _i3 = 0; _i3 < this.chartContainer.length; _i3++) { this.chartContainer[_i3].classList.remove('chart__svg--fixed-income--mobile'); } } } }, { key: 'showPopup', value: function showPopup(event) { var parentContainer = event.currentTarget.closest('div.chart__svg--fixed-income'); var parentPos = parentContainer.getBoundingClientRect(); var iconPos = event.currentTarget.getBoundingClientRect(); var tooltipID = event.currentTarget.getAttribute('data-id'); var correspondingTooltip = document.querySelectorAll('[data-tooltip=\'' + tooltipID + '\']'); var distanceBetween = iconPos.top - parentPos.top; var identifyactiveToolTip = {}; for (var i = 0; i < correspondingTooltip.length; i++) { if (!correspondingTooltip[i].classList.contains('hover-tooltip--mobile')) { if (tooltipID === 'core-plus' || tooltipID === 'high-yield') { // the 42 is to account for the width and positioning of the tooltip arrow correspondingTooltip[i].style.left = iconPos.left - parentPos.left - correspondingTooltip[i].clientWidth + 42 + 'px'; correspondingTooltip[i].style.top = distanceBetween - correspondingTooltip[i].clientHeight - 30 + 'px'; correspondingTooltip[i].classList.add('hover-tooltip--right-arow'); } else { // the 30 is to account for the width and positioning of the tooltip arrow correspondingTooltip[i].style.left = iconPos.left - parentPos.left - 30 + 'px'; correspondingTooltip[i].style.top = distanceBetween - correspondingTooltip[i].clientHeight - 30 + 'px'; } } else { correspondingTooltip[i].style.top = distanceBetween - correspondingTooltip[i].clientHeight - 30 + 'px'; } correspondingTooltip[i].classList.add('active'); /* Accessibility code to make tooltip accessible */ // identifyactiveToolTip = correspondingTooltip[i]; } /* Accessibility code to make tooltip accessible */ // identifyactiveToolTip.focus(); } }, { key: 'hidePopup', value: function hidePopup(event) { var tooltipID = event.currentTarget.getAttribute('data-id'); var correspondingTooltip = document.querySelectorAll('[data-tooltip=\'' + tooltipID + '\']'); for (var i = 0; i < correspondingTooltip.length; i++) { correspondingTooltip[i].classList.remove('active'); } } }]); return HoverTooltip; }(); // CustomEvent() Polyfill for IE11. required for the below resize throttle to work exports.default = HoverTooltip; (function () { if (typeof window.CustomEvent === 'function') return false; function CustomEvent(event, params) { params = params || { bubbles: false, cancelable: false, detail: undefined }; var evt = document.createEvent('CustomEvent'); evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); return evt; } CustomEvent.prototype = window.Event.prototype; window.CustomEvent = CustomEvent; })(); // Polyfill for IE -> throttled resize event (function () { var throttle = function throttle(type, name, obj) { obj = obj || window; var running = false; var func = function func() { if (running) { return; } running = true; requestAnimationFrame(function () { obj.dispatchEvent(new CustomEvent(name)); running = false; }); }; obj.addEventListener(type, func); }; /* init - you can init any event */ throttle('resize', 'optimizedResize'); })(); /***/ }), /* 32 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /*! VelocityJS.org (1.5.0). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */ /*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */ !function (a) { "use strict"; function b(a) { var b = a.length, d = c.type(a);return "function" !== d && !c.isWindow(a) && (!(1 !== a.nodeType || !b) || "array" === d || 0 === b || "number" == typeof b && b > 0 && b - 1 in a); }if (!a.jQuery) { var c = function c(a, b) { return new c.fn.init(a, b); };c.isWindow = function (a) { return a && a === a.window; }, c.type = function (a) { return a ? "object" == (typeof a === "undefined" ? "undefined" : _typeof(a)) || "function" == typeof a ? e[g.call(a)] || "object" : typeof a === "undefined" ? "undefined" : _typeof(a) : a + ""; }, c.isArray = Array.isArray || function (a) { return "array" === c.type(a); }, c.isPlainObject = function (a) { var b;if (!a || "object" !== c.type(a) || a.nodeType || c.isWindow(a)) return !1;try { if (a.constructor && !f.call(a, "constructor") && !f.call(a.constructor.prototype, "isPrototypeOf")) return !1; } catch (d) { return !1; }for (b in a) {}return b === undefined || f.call(a, b); }, c.each = function (a, c, d) { var e = 0, f = a.length, g = b(a);if (d) { if (g) for (; e < f && c.apply(a[e], d) !== !1; e++) {} else for (e in a) { if (a.hasOwnProperty(e) && c.apply(a[e], d) === !1) break; } } else if (g) for (; e < f && c.call(a[e], e, a[e]) !== !1; e++) {} else for (e in a) { if (a.hasOwnProperty(e) && c.call(a[e], e, a[e]) === !1) break; }return a; }, c.data = function (a, b, e) { if (e === undefined) { var f = a[c.expando], g = f && d[f];if (b === undefined) return g;if (g && b in g) return g[b]; } else if (b !== undefined) { var h = a[c.expando] || (a[c.expando] = ++c.uuid);return d[h] = d[h] || {}, d[h][b] = e, e; } }, c.removeData = function (a, b) { var e = a[c.expando], f = e && d[e];f && (b ? c.each(b, function (a, b) { delete f[b]; }) : delete d[e]); }, c.extend = function () { var a, b, d, e, f, g, h = arguments[0] || {}, i = 1, j = arguments.length, k = !1;for ("boolean" == typeof h && (k = h, h = arguments[i] || {}, i++), "object" != (typeof h === "undefined" ? "undefined" : _typeof(h)) && "function" !== c.type(h) && (h = {}), i === j && (h = this, i--); i < j; i++) { if (f = arguments[i]) for (e in f) { f.hasOwnProperty(e) && (a = h[e], d = f[e], h !== d && (k && d && (c.isPlainObject(d) || (b = c.isArray(d))) ? (b ? (b = !1, g = a && c.isArray(a) ? a : []) : g = a && c.isPlainObject(a) ? a : {}, h[e] = c.extend(k, g, d)) : d !== undefined && (h[e] = d))); } }return h; }, c.queue = function (a, d, e) { if (a) { d = (d || "fx") + "queue";var f = c.data(a, d);return e ? (!f || c.isArray(e) ? f = c.data(a, d, function (a, c) { var d = c || [];return a && (b(Object(a)) ? function (a, b) { for (var c = +b.length, d = 0, e = a.length; d < c;) { a[e++] = b[d++]; }if (c !== c) for (; b[d] !== undefined;) { a[e++] = b[d++]; }a.length = e, a; }(d, "string" == typeof a ? [a] : a) : [].push.call(d, a)), d; }(e)) : f.push(e), f) : f || []; } }, c.dequeue = function (a, b) { c.each(a.nodeType ? [a] : a, function (a, d) { b = b || "fx";var e = c.queue(d, b), f = e.shift();"inprogress" === f && (f = e.shift()), f && ("fx" === b && e.unshift("inprogress"), f.call(d, function () { c.dequeue(d, b); })); }); }, c.fn = c.prototype = { init: function init(a) { if (a.nodeType) return this[0] = a, this;throw new Error("Not a DOM node."); }, offset: function offset() { var b = this[0].getBoundingClientRect ? this[0].getBoundingClientRect() : { top: 0, left: 0 };return { top: b.top + (a.pageYOffset || document.scrollTop || 0) - (document.clientTop || 0), left: b.left + (a.pageXOffset || document.scrollLeft || 0) - (document.clientLeft || 0) }; }, position: function position() { var a = this[0], b = function (a) { for (var b = a.offsetParent; b && "html" !== b.nodeName.toLowerCase() && b.style && "static" === b.style.position;) { b = b.offsetParent; }return b || document; }(a), d = this.offset(), e = /^(?:body|html)$/i.test(b.nodeName) ? { top: 0, left: 0 } : c(b).offset();return d.top -= parseFloat(a.style.marginTop) || 0, d.left -= parseFloat(a.style.marginLeft) || 0, b.style && (e.top += parseFloat(b.style.borderTopWidth) || 0, e.left += parseFloat(b.style.borderLeftWidth) || 0), { top: d.top - e.top, left: d.left - e.left }; } };var d = {};c.expando = "velocity" + new Date().getTime(), c.uuid = 0;for (var e = {}, f = e.hasOwnProperty, g = e.toString, h = "Boolean Number String Function Array Date RegExp Object Error".split(" "), i = 0; i < h.length; i++) { e["[object " + h[i] + "]"] = h[i].toLowerCase(); }c.fn.init.prototype = c.fn, a.Velocity = { Utilities: c }; } }(window), function (a) { "use strict"; "object" == ( false ? "undefined" : _typeof(module)) && "object" == _typeof(module.exports) ? module.exports = a() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (a), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : a(); }(function () { "use strict"; return function (a, b, c, d) { function e(a) { for (var b = -1, c = a ? a.length : 0, d = []; ++b < c;) { var e = a[b];e && d.push(e); }return d; }function f(a) { return u.isWrapped(a) ? a = s.call(a) : u.isNode(a) && (a = [a]), a; }function g(a) { var b = o.data(a, "velocity");return null === b ? d : b; }function h(a, b) { var c = g(a);c && c.delayTimer && !c.delayPaused && (c.delayRemaining = c.delay - b + c.delayBegin, c.delayPaused = !0, clearTimeout(c.delayTimer.setTimeout)); }function i(a, b) { var c = g(a);c && c.delayTimer && c.delayPaused && (c.delayPaused = !1, c.delayTimer.setTimeout = setTimeout(c.delayTimer.next, c.delayRemaining)); }function j(a) { return function (b) { return Math.round(b * a) * (1 / a); }; }function k(a, c, d, e) { function f(a, b) { return 1 - 3 * b + 3 * a; }function g(a, b) { return 3 * b - 6 * a; }function h(a) { return 3 * a; }function i(a, b, c) { return ((f(b, c) * a + g(b, c)) * a + h(b)) * a; }function j(a, b, c) { return 3 * f(b, c) * a * a + 2 * g(b, c) * a + h(b); }function k(b, c) { for (var e = 0; e < p; ++e) { var f = j(c, a, d);if (0 === f) return c;c -= (i(c, a, d) - b) / f; }return c; }function l() { for (var b = 0; b < t; ++b) { x[b] = i(b * u, a, d); } }function m(b, c, e) { var f, g, h = 0;do { g = c + (e - c) / 2, f = i(g, a, d) - b, f > 0 ? e = g : c = g; } while (Math.abs(f) > r && ++h < s);return g; }function n(b) { for (var c = 0, e = 1, f = t - 1; e !== f && x[e] <= b; ++e) { c += u; }--e;var g = (b - x[e]) / (x[e + 1] - x[e]), h = c + g * u, i = j(h, a, d);return i >= q ? k(b, h) : 0 === i ? h : m(b, c, c + u); }function o() { y = !0, a === c && d === e || l(); }var p = 4, q = .001, r = 1e-7, s = 10, t = 11, u = 1 / (t - 1), v = "Float32Array" in b;if (4 !== arguments.length) return !1;for (var w = 0; w < 4; ++w) { if ("number" != typeof arguments[w] || isNaN(arguments[w]) || !isFinite(arguments[w])) return !1; }a = Math.min(a, 1), d = Math.min(d, 1), a = Math.max(a, 0), d = Math.max(d, 0);var x = v ? new Float32Array(t) : new Array(t), y = !1, z = function z(b) { return y || o(), a === c && d === e ? b : 0 === b ? 0 : 1 === b ? 1 : i(n(b), c, e); };z.getControlPoints = function () { return [{ x: a, y: c }, { x: d, y: e }]; };var A = "generateBezier(" + [a, c, d, e] + ")";return z.toString = function () { return A; }, z; }function l(a, b) { var c = a;return u.isString(a) ? y.Easings[a] || (c = !1) : c = u.isArray(a) && 1 === a.length ? j.apply(null, a) : u.isArray(a) && 2 === a.length ? z.apply(null, a.concat([b])) : !(!u.isArray(a) || 4 !== a.length) && k.apply(null, a), c === !1 && (c = y.Easings[y.defaults.easing] ? y.defaults.easing : x), c; }function m(a) { if (a) { var b = y.timestamp && a !== !0 ? a : r.now(), c = y.State.calls.length;c > 1e4 && (y.State.calls = e(y.State.calls), c = y.State.calls.length);for (var f = 0; f < c; f++) { if (y.State.calls[f]) { var h = y.State.calls[f], i = h[0], j = h[2], k = h[3], l = !!k, q = null, s = h[5], t = h[6];if (k || (k = y.State.calls[f][3] = b - 16), s) { if (s.resume !== !0) continue;k = h[3] = Math.round(b - t - 16), h[5] = null; }t = h[6] = b - k;for (var v = Math.min(t / j.duration, 1), w = 0, x = i.length; w < x; w++) { var z = i[w], B = z.element;if (g(B)) { var D = !1;if (j.display !== d && null !== j.display && "none" !== j.display) { if ("flex" === j.display) { var E = ["-webkit-box", "-moz-box", "-ms-flexbox", "-webkit-flex"];o.each(E, function (a, b) { A.setPropertyValue(B, "display", b); }); }A.setPropertyValue(B, "display", j.display); }j.visibility !== d && "hidden" !== j.visibility && A.setPropertyValue(B, "visibility", j.visibility);for (var F in z) { if (z.hasOwnProperty(F) && "element" !== F) { var G, H = z[F], I = u.isString(H.easing) ? y.Easings[H.easing] : H.easing;if (u.isString(H.pattern)) { var J = 1 === v ? function (a, b, c) { var d = H.endValue[b];return c ? Math.round(d) : d; } : function (a, b, c) { var d = H.startValue[b], e = H.endValue[b] - d, f = d + e * I(v, j, e);return c ? Math.round(f) : f; };G = H.pattern.replace(/{(\d+)(!)?}/g, J); } else if (1 === v) G = H.endValue;else { var K = H.endValue - H.startValue;G = H.startValue + K * I(v, j, K); }if (!l && G === H.currentValue) continue;if (H.currentValue = G, "tween" === F) q = G;else { var L;if (A.Hooks.registered[F]) { L = A.Hooks.getRoot(F);var M = g(B).rootPropertyValueCache[L];M && (H.rootPropertyValue = M); }var N = A.setPropertyValue(B, F, H.currentValue + (p < 9 && 0 === parseFloat(G) ? "" : H.unitType), H.rootPropertyValue, H.scrollData);A.Hooks.registered[F] && (A.Normalizations.registered[L] ? g(B).rootPropertyValueCache[L] = A.Normalizations.registered[L]("extract", null, N[1]) : g(B).rootPropertyValueCache[L] = N[1]), "transform" === N[0] && (D = !0); } } }j.mobileHA && g(B).transformCache.translate3d === d && (g(B).transformCache.translate3d = "(0px, 0px, 0px)", D = !0), D && A.flushTransformCache(B); } }j.display !== d && "none" !== j.display && (y.State.calls[f][2].display = !1), j.visibility !== d && "hidden" !== j.visibility && (y.State.calls[f][2].visibility = !1), j.progress && j.progress.call(h[1], h[1], v, Math.max(0, k + j.duration - b), k, q), 1 === v && n(f); } } }y.State.isTicking && C(m); }function n(a, b) { if (!y.State.calls[a]) return !1;for (var c = y.State.calls[a][0], e = y.State.calls[a][1], f = y.State.calls[a][2], h = y.State.calls[a][4], i = !1, j = 0, k = c.length; j < k; j++) { var l = c[j].element;b || f.loop || ("none" === f.display && A.setPropertyValue(l, "display", f.display), "hidden" === f.visibility && A.setPropertyValue(l, "visibility", f.visibility));var m = g(l);if (f.loop !== !0 && (o.queue(l)[1] === d || !/\.velocityQueueEntryFlag/i.test(o.queue(l)[1])) && m) { m.isAnimating = !1, m.rootPropertyValueCache = {};var n = !1;o.each(A.Lists.transforms3D, function (a, b) { var c = /^scale/.test(b) ? 1 : 0, e = m.transformCache[b];m.transformCache[b] !== d && new RegExp("^\\(" + c + "[^.]").test(e) && (n = !0, delete m.transformCache[b]); }), f.mobileHA && (n = !0, delete m.transformCache.translate3d), n && A.flushTransformCache(l), A.Values.removeClass(l, "velocity-animating"); }if (!b && f.complete && !f.loop && j === k - 1) try { f.complete.call(e, e); } catch (r) { setTimeout(function () { throw r; }, 1); }h && f.loop !== !0 && h(e), m && f.loop === !0 && !b && (o.each(m.tweensContainer, function (a, b) { if (/^rotate/.test(a) && (parseFloat(b.startValue) - parseFloat(b.endValue)) % 360 == 0) { var c = b.startValue;b.startValue = b.endValue, b.endValue = c; }/^backgroundPosition/.test(a) && 100 === parseFloat(b.endValue) && "%" === b.unitType && (b.endValue = 0, b.startValue = 100); }), y(l, "reverse", { loop: !0, delay: f.delay })), f.queue !== !1 && o.dequeue(l, f.queue); }y.State.calls[a] = !1;for (var p = 0, q = y.State.calls.length; p < q; p++) { if (y.State.calls[p] !== !1) { i = !0;break; } }i === !1 && (y.State.isTicking = !1, delete y.State.calls, y.State.calls = []); }var o, p = function () { if (c.documentMode) return c.documentMode;for (var a = 7; a > 4; a--) { var b = c.createElement("div");if (b.innerHTML = "", b.getElementsByTagName("span").length) return b = null, a; }return d; }(), q = function () { var a = 0;return b.webkitRequestAnimationFrame || b.mozRequestAnimationFrame || function (b) { var c, d = new Date().getTime();return c = Math.max(0, 16 - (d - a)), a = d + c, setTimeout(function () { b(d + c); }, c); }; }(), r = function () { var a = b.performance || {};if ("function" != typeof a.now) { var c = a.timing && a.timing.navigationStart ? a.timing.navigationStart : new Date().getTime();a.now = function () { return new Date().getTime() - c; }; }return a; }(), s = function () { var a = Array.prototype.slice;try { return a.call(c.documentElement), a; } catch (b) { return function (b, c) { var d = this.length;if ("number" != typeof b && (b = 0), "number" != typeof c && (c = d), this.slice) return a.call(this, b, c);var e, f = [], g = b >= 0 ? b : Math.max(0, d + b), h = c < 0 ? d + c : Math.min(c, d), i = h - g;if (i > 0) if (f = new Array(i), this.charAt) for (e = 0; e < i; e++) { f[e] = this.charAt(g + e); } else for (e = 0; e < i; e++) { f[e] = this[g + e]; }return f; }; } }(), t = function t() { return Array.prototype.includes ? function (a, b) { return a.includes(b); } : Array.prototype.indexOf ? function (a, b) { return a.indexOf(b) >= 0; } : function (a, b) { for (var c = 0; c < a.length; c++) { if (a[c] === b) return !0; }return !1; }; }, u = { isNumber: function isNumber(a) { return "number" == typeof a; }, isString: function isString(a) { return "string" == typeof a; }, isArray: Array.isArray || function (a) { return "[object Array]" === Object.prototype.toString.call(a); }, isFunction: function isFunction(a) { return "[object Function]" === Object.prototype.toString.call(a); }, isNode: function isNode(a) { return a && a.nodeType; }, isWrapped: function isWrapped(a) { return a && a !== b && u.isNumber(a.length) && !u.isString(a) && !u.isFunction(a) && !u.isNode(a) && (0 === a.length || u.isNode(a[0])); }, isSVG: function isSVG(a) { return b.SVGElement && a instanceof b.SVGElement; }, isEmptyObject: function isEmptyObject(a) { for (var b in a) { if (a.hasOwnProperty(b)) return !1; }return !0; } }, v = !1;if (a.fn && a.fn.jquery ? (o = a, v = !0) : o = b.Velocity.Utilities, p <= 8 && !v) throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if (p <= 7) return void (jQuery.fn.velocity = jQuery.fn.animate);var w = 400, x = "swing", y = { State: { isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent), isAndroid: /Android/i.test(navigator.userAgent), isGingerbread: /Android 2\.3\.[3-7]/i.test(navigator.userAgent), isChrome: b.chrome, isFirefox: /Firefox/i.test(navigator.userAgent), prefixElement: c.createElement("div"), prefixMatches: {}, scrollAnchor: null, scrollPropertyLeft: null, scrollPropertyTop: null, isTicking: !1, calls: [], delayedElements: { count: 0 } }, CSS: {}, Utilities: o, Redirects: {}, Easings: {}, Promise: b.Promise, defaults: { queue: "", duration: w, easing: x, begin: d, complete: d, progress: d, display: d, visibility: d, loop: !1, delay: !1, mobileHA: !0, _cacheValues: !0, promiseRejectEmpty: !0 }, init: function init(a) { o.data(a, "velocity", { isSVG: u.isSVG(a), isAnimating: !1, computedStyle: null, tweensContainer: null, rootPropertyValueCache: {}, transformCache: {} }); }, hook: null, mock: !1, version: { major: 1, minor: 5, patch: 0 }, debug: !1, timestamp: !0, pauseAll: function pauseAll(a) { var b = new Date().getTime();o.each(y.State.calls, function (b, c) { if (c) { if (a !== d && (c[2].queue !== a || c[2].queue === !1)) return !0;c[5] = { resume: !1 }; } }), o.each(y.State.delayedElements, function (a, c) { c && h(c, b); }); }, resumeAll: function resumeAll(a) { var b = new Date().getTime();o.each(y.State.calls, function (b, c) { if (c) { if (a !== d && (c[2].queue !== a || c[2].queue === !1)) return !0;c[5] && (c[5].resume = !0); } }), o.each(y.State.delayedElements, function (a, c) { c && i(c, b); }); } };b.pageYOffset !== d ? (y.State.scrollAnchor = b, y.State.scrollPropertyLeft = "pageXOffset", y.State.scrollPropertyTop = "pageYOffset") : (y.State.scrollAnchor = c.documentElement || c.body.parentNode || c.body, y.State.scrollPropertyLeft = "scrollLeft", y.State.scrollPropertyTop = "scrollTop");var z = function () { function a(a) { return -a.tension * a.x - a.friction * a.v; }function b(b, c, d) { var e = { x: b.x + d.dx * c, v: b.v + d.dv * c, tension: b.tension, friction: b.friction };return { dx: e.v, dv: a(e) }; }function c(c, d) { var e = { dx: c.v, dv: a(c) }, f = b(c, .5 * d, e), g = b(c, .5 * d, f), h = b(c, d, g), i = 1 / 6 * (e.dx + 2 * (f.dx + g.dx) + h.dx), j = 1 / 6 * (e.dv + 2 * (f.dv + g.dv) + h.dv);return c.x = c.x + i * d, c.v = c.v + j * d, c; }return function d(a, b, e) { var f, g, h, i = { x: -1, v: 0, tension: null, friction: null }, j = [0], k = 0;for (a = parseFloat(a) || 500, b = parseFloat(b) || 20, e = e || null, i.tension = a, i.friction = b, f = null !== e, f ? (k = d(a, b), g = k / e * .016) : g = .016;;) { if (h = c(h || i, g), j.push(1 + h.x), k += 16, !(Math.abs(h.x) > 1e-4 && Math.abs(h.v) > 1e-4)) break; }return f ? function (a) { return j[a * (j.length - 1) | 0]; } : k; }; }();y.Easings = { linear: function linear(a) { return a; }, swing: function swing(a) { return .5 - Math.cos(a * Math.PI) / 2; }, spring: function spring(a) { return 1 - Math.cos(4.5 * a * Math.PI) * Math.exp(6 * -a); } }, o.each([["ease", [.25, .1, .25, 1]], ["ease-in", [.42, 0, 1, 1]], ["ease-out", [0, 0, .58, 1]], ["ease-in-out", [.42, 0, .58, 1]], ["easeInSine", [.47, 0, .745, .715]], ["easeOutSine", [.39, .575, .565, 1]], ["easeInOutSine", [.445, .05, .55, .95]], ["easeInQuad", [.55, .085, .68, .53]], ["easeOutQuad", [.25, .46, .45, .94]], ["easeInOutQuad", [.455, .03, .515, .955]], ["easeInCubic", [.55, .055, .675, .19]], ["easeOutCubic", [.215, .61, .355, 1]], ["easeInOutCubic", [.645, .045, .355, 1]], ["easeInQuart", [.895, .03, .685, .22]], ["easeOutQuart", [.165, .84, .44, 1]], ["easeInOutQuart", [.77, 0, .175, 1]], ["easeInQuint", [.755, .05, .855, .06]], ["easeOutQuint", [.23, 1, .32, 1]], ["easeInOutQuint", [.86, 0, .07, 1]], ["easeInExpo", [.95, .05, .795, .035]], ["easeOutExpo", [.19, 1, .22, 1]], ["easeInOutExpo", [1, 0, 0, 1]], ["easeInCirc", [.6, .04, .98, .335]], ["easeOutCirc", [.075, .82, .165, 1]], ["easeInOutCirc", [.785, .135, .15, .86]]], function (a, b) { y.Easings[b[0]] = k.apply(null, b[1]); });var A = y.CSS = { RegEx: { isHex: /^#([A-f\d]{3}){1,2}$/i, valueUnwrap: /^[A-z]+\((.*)\)$/i, wrappedValueAlreadyExtracted: /[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/, valueSplit: /([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi }, Lists: { colors: ["fill", "stroke", "stopColor", "color", "backgroundColor", "borderColor", "borderTopColor", "borderRightColor", "borderBottomColor", "borderLeftColor", "outlineColor"], transformsBase: ["translateX", "translateY", "scale", "scaleX", "scaleY", "skewX", "skewY", "rotateZ"], transforms3D: ["transformPerspective", "translateZ", "scaleZ", "rotateX", "rotateY"], units: ["%", "em", "ex", "ch", "rem", "vw", "vh", "vmin", "vmax", "cm", "mm", "Q", "in", "pc", "pt", "px", "deg", "grad", "rad", "turn", "s", "ms"], colorNames: { aliceblue: "240,248,255", antiquewhite: "250,235,215", aquamarine: "127,255,212", aqua: "0,255,255", azure: "240,255,255", beige: "245,245,220", bisque: "255,228,196", black: "0,0,0", blanchedalmond: "255,235,205", blueviolet: "138,43,226", blue: "0,0,255", brown: "165,42,42", burlywood: "222,184,135", cadetblue: "95,158,160", chartreuse: "127,255,0", chocolate: "210,105,30", coral: "255,127,80", cornflowerblue: "100,149,237", cornsilk: "255,248,220", crimson: "220,20,60", cyan: "0,255,255", darkblue: "0,0,139", darkcyan: "0,139,139", darkgoldenrod: "184,134,11", darkgray: "169,169,169", darkgrey: "169,169,169", darkgreen: "0,100,0", darkkhaki: "189,183,107", darkmagenta: "139,0,139", darkolivegreen: "85,107,47", darkorange: "255,140,0", darkorchid: "153,50,204", darkred: "139,0,0", darksalmon: "233,150,122", darkseagreen: "143,188,143", darkslateblue: "72,61,139", darkslategray: "47,79,79", darkturquoise: "0,206,209", darkviolet: "148,0,211", deeppink: "255,20,147", deepskyblue: "0,191,255", dimgray: "105,105,105", dimgrey: "105,105,105", dodgerblue: "30,144,255", firebrick: "178,34,34", floralwhite: "255,250,240", forestgreen: "34,139,34", fuchsia: "255,0,255", gainsboro: "220,220,220", ghostwhite: "248,248,255", gold: "255,215,0", goldenrod: "218,165,32", gray: "128,128,128", grey: "128,128,128", greenyellow: "173,255,47", green: "0,128,0", honeydew: "240,255,240", hotpink: "255,105,180", indianred: "205,92,92", indigo: "75,0,130", ivory: "255,255,240", khaki: "240,230,140", lavenderblush: "255,240,245", lavender: "230,230,250", lawngreen: "124,252,0", lemonchiffon: "255,250,205", lightblue: "173,216,230", lightcoral: "240,128,128", lightcyan: "224,255,255", lightgoldenrodyellow: "250,250,210", lightgray: "211,211,211", lightgrey: "211,211,211", lightgreen: "144,238,144", lightpink: "255,182,193", lightsalmon: "255,160,122", lightseagreen: "32,178,170", lightskyblue: "135,206,250", lightslategray: "119,136,153", lightsteelblue: "176,196,222", lightyellow: "255,255,224", limegreen: "50,205,50", lime: "0,255,0", linen: "250,240,230", magenta: "255,0,255", maroon: "128,0,0", mediumaquamarine: "102,205,170", mediumblue: "0,0,205", mediumorchid: "186,85,211", mediumpurple: "147,112,219", mediumseagreen: "60,179,113", mediumslateblue: "123,104,238", mediumspringgreen: "0,250,154", mediumturquoise: "72,209,204", mediumvioletred: "199,21,133", midnightblue: "25,25,112", mintcream: "245,255,250", mistyrose: "255,228,225", moccasin: "255,228,181", navajowhite: "255,222,173", navy: "0,0,128", oldlace: "253,245,230", olivedrab: "107,142,35", olive: "128,128,0", orangered: "255,69,0", orange: "255,165,0", orchid: "218,112,214", palegoldenrod: "238,232,170", palegreen: "152,251,152", paleturquoise: "175,238,238", palevioletred: "219,112,147", papayawhip: "255,239,213", peachpuff: "255,218,185", peru: "205,133,63", pink: "255,192,203", plum: "221,160,221", powderblue: "176,224,230", purple: "128,0,128", red: "255,0,0", rosybrown: "188,143,143", royalblue: "65,105,225", saddlebrown: "139,69,19", salmon: "250,128,114", sandybrown: "244,164,96", seagreen: "46,139,87", seashell: "255,245,238", sienna: "160,82,45", silver: "192,192,192", skyblue: "135,206,235", slateblue: "106,90,205", slategray: "112,128,144", snow: "255,250,250", springgreen: "0,255,127", steelblue: "70,130,180", tan: "210,180,140", teal: "0,128,128", thistle: "216,191,216", tomato: "255,99,71", turquoise: "64,224,208", violet: "238,130,238", wheat: "245,222,179", whitesmoke: "245,245,245", white: "255,255,255", yellowgreen: "154,205,50", yellow: "255,255,0" } }, Hooks: { templates: { textShadow: ["Color X Y Blur", "black 0px 0px 0px"], boxShadow: ["Color X Y Blur Spread", "black 0px 0px 0px 0px"], clip: ["Top Right Bottom Left", "0px 0px 0px 0px"], backgroundPosition: ["X Y", "0% 0%"], transformOrigin: ["X Y Z", "50% 50% 0px"], perspectiveOrigin: ["X Y", "50% 50%"] }, registered: {}, register: function register() { for (var a = 0; a < A.Lists.colors.length; a++) { var b = "color" === A.Lists.colors[a] ? "0 0 0 1" : "255 255 255 1";A.Hooks.templates[A.Lists.colors[a]] = ["Red Green Blue Alpha", b]; }var c, d, e;if (p) for (c in A.Hooks.templates) { if (A.Hooks.templates.hasOwnProperty(c)) { d = A.Hooks.templates[c], e = d[0].split(" ");var f = d[1].match(A.RegEx.valueSplit);"Color" === e[0] && (e.push(e.shift()), f.push(f.shift()), A.Hooks.templates[c] = [e.join(" "), f.join(" ")]); } }for (c in A.Hooks.templates) { if (A.Hooks.templates.hasOwnProperty(c)) { d = A.Hooks.templates[c], e = d[0].split(" ");for (var g in e) { if (e.hasOwnProperty(g)) { var h = c + e[g], i = g;A.Hooks.registered[h] = [c, i]; } } } } }, getRoot: function getRoot(a) { var b = A.Hooks.registered[a];return b ? b[0] : a; }, getUnit: function getUnit(a, b) { var c = (a.substr(b || 0, 5).match(/^[a-z%]+/) || [])[0] || "";return c && t(A.Lists.units, c) ? c : ""; }, fixColors: function fixColors(a) { return a.replace(/(rgba?\(\s*)?(\b[a-z]+\b)/g, function (a, b, c) { return A.Lists.colorNames.hasOwnProperty(c) ? (b ? b : "rgba(") + A.Lists.colorNames[c] + (b ? "" : ",1)") : b + c; }); }, cleanRootPropertyValue: function cleanRootPropertyValue(a, b) { return A.RegEx.valueUnwrap.test(b) && (b = b.match(A.RegEx.valueUnwrap)[1]), A.Values.isCSSNullValue(b) && (b = A.Hooks.templates[a][1]), b; }, extractValue: function extractValue(a, b) { var c = A.Hooks.registered[a];if (c) { var d = c[0], e = c[1];return b = A.Hooks.cleanRootPropertyValue(d, b), b.toString().match(A.RegEx.valueSplit)[e]; }return b; }, injectValue: function injectValue(a, b, c) { var d = A.Hooks.registered[a];if (d) { var e, f = d[0], g = d[1];return c = A.Hooks.cleanRootPropertyValue(f, c), e = c.toString().match(A.RegEx.valueSplit), e[g] = b, e.join(" "); }return c; } }, Normalizations: { registered: { clip: function clip(a, b, c) { switch (a) {case "name": return "clip";case "extract": var d;return A.RegEx.wrappedValueAlreadyExtracted.test(c) ? d = c : (d = c.toString().match(A.RegEx.valueUnwrap), d = d ? d[1].replace(/,(\s+)?/g, " ") : c), d;case "inject": return "rect(" + c + ")";} }, blur: function blur(a, b, c) { switch (a) {case "name": return y.State.isFirefox ? "filter" : "-webkit-filter";case "extract": var d = parseFloat(c);if (!d && 0 !== d) { var e = c.toString().match(/blur\(([0-9]+[A-z]+)\)/i);d = e ? e[1] : 0; }return d;case "inject": return parseFloat(c) ? "blur(" + c + ")" : "none";} }, opacity: function opacity(a, b, c) { if (p <= 8) switch (a) {case "name": return "filter";case "extract": var d = c.toString().match(/alpha\(opacity=(.*)\)/i);return c = d ? d[1] / 100 : 1;case "inject": return b.style.zoom = 1, parseFloat(c) >= 1 ? "" : "alpha(opacity=" + parseInt(100 * parseFloat(c), 10) + ")";} else switch (a) {case "name": return "opacity";case "extract": return c;case "inject": return c;} } }, register: function register() { function a(a, b, c) { if ("border-box" === A.getPropertyValue(b, "boxSizing").toString().toLowerCase() === (c || !1)) { var d, e, f = 0, g = "width" === a ? ["Left", "Right"] : ["Top", "Bottom"], h = ["padding" + g[0], "padding" + g[1], "border" + g[0] + "Width", "border" + g[1] + "Width"];for (d = 0; d < h.length; d++) { e = parseFloat(A.getPropertyValue(b, h[d])), isNaN(e) || (f += e); }return c ? -f : f; }return 0; }function b(b, c) { return function (d, e, f) { switch (d) {case "name": return b;case "extract": return parseFloat(f) + a(b, e, c);case "inject": return parseFloat(f) - a(b, e, c) + "px";} }; }p && !(p > 9) || y.State.isGingerbread || (A.Lists.transformsBase = A.Lists.transformsBase.concat(A.Lists.transforms3D));for (var c = 0; c < A.Lists.transformsBase.length; c++) { !function () { var a = A.Lists.transformsBase[c];A.Normalizations.registered[a] = function (b, c, e) { switch (b) {case "name": return "transform";case "extract": return g(c) === d || g(c).transformCache[a] === d ? /^scale/i.test(a) ? 1 : 0 : g(c).transformCache[a].replace(/[()]/g, "");case "inject": var f = !1;switch (a.substr(0, a.length - 1)) {case "translate": f = !/(%|px|em|rem|vw|vh|\d)$/i.test(e);break;case "scal":case "scale": y.State.isAndroid && g(c).transformCache[a] === d && e < 1 && (e = 1), f = !/(\d)$/i.test(e);break;case "skew": f = !/(deg|\d)$/i.test(e);break;case "rotate": f = !/(deg|\d)$/i.test(e);}return f || (g(c).transformCache[a] = "(" + e + ")"), g(c).transformCache[a];} }; }(); }for (var e = 0; e < A.Lists.colors.length; e++) { !function () { var a = A.Lists.colors[e];A.Normalizations.registered[a] = function (b, c, e) { switch (b) {case "name": return a;case "extract": var f;if (A.RegEx.wrappedValueAlreadyExtracted.test(e)) f = e;else { var g, h = { black: "rgb(0, 0, 0)", blue: "rgb(0, 0, 255)", gray: "rgb(128, 128, 128)", green: "rgb(0, 128, 0)", red: "rgb(255, 0, 0)", white: "rgb(255, 255, 255)" };/^[A-z]+$/i.test(e) ? g = h[e] !== d ? h[e] : h.black : A.RegEx.isHex.test(e) ? g = "rgb(" + A.Values.hexToRgb(e).join(" ") + ")" : /^rgba?\(/i.test(e) || (g = h.black), f = (g || e).toString().match(A.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g, " "); }return (!p || p > 8) && 3 === f.split(" ").length && (f += " 1"), f;case "inject": return (/^rgb/.test(e) ? e : (p <= 8 ? 4 === e.split(" ").length && (e = e.split(/\s+/).slice(0, 3).join(" ")) : 3 === e.split(" ").length && (e += " 1"), (p <= 8 ? "rgb" : "rgba") + "(" + e.replace(/\s+/g, ",").replace(/\.(\d)+(?=,)/g, "") + ")") );} }; }(); }A.Normalizations.registered.innerWidth = b("width", !0), A.Normalizations.registered.innerHeight = b("height", !0), A.Normalizations.registered.outerWidth = b("width"), A.Normalizations.registered.outerHeight = b("height"); } }, Names: { camelCase: function camelCase(a) { return a.replace(/-(\w)/g, function (a, b) { return b.toUpperCase(); }); }, SVGAttribute: function SVGAttribute(a) { var b = "width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return (p || y.State.isAndroid && !y.State.isChrome) && (b += "|transform"), new RegExp("^(" + b + ")$", "i").test(a); }, prefixCheck: function prefixCheck(a) { if (y.State.prefixMatches[a]) return [y.State.prefixMatches[a], !0];for (var b = ["", "Webkit", "Moz", "ms", "O"], c = 0, d = b.length; c < d; c++) { var e;if (e = 0 === c ? a : b[c] + a.replace(/^\w/, function (a) { return a.toUpperCase(); }), u.isString(y.State.prefixElement.style[e])) return y.State.prefixMatches[a] = e, [e, !0]; }return [a, !1]; } }, Values: { hexToRgb: function hexToRgb(a) { var b, c = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;return a = a.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function (a, b, c, d) { return b + b + c + c + d + d; }), b = c.exec(a), b ? [parseInt(b[1], 16), parseInt(b[2], 16), parseInt(b[3], 16)] : [0, 0, 0]; }, isCSSNullValue: function isCSSNullValue(a) { return !a || /^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(a); }, getUnitType: function getUnitType(a) { return (/^(rotate|skew)/i.test(a) ? "deg" : /(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(a) ? "" : "px" ); }, getDisplayType: function getDisplayType(a) { var b = a && a.tagName.toString().toLowerCase();return (/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(b) ? "inline" : /^(li)$/i.test(b) ? "list-item" : /^(tr)$/i.test(b) ? "table-row" : /^(table)$/i.test(b) ? "table" : /^(tbody)$/i.test(b) ? "table-row-group" : "block" ); }, addClass: function addClass(a, b) { if (a) if (a.classList) a.classList.add(b);else if (u.isString(a.className)) a.className += (a.className.length ? " " : "") + b;else { var c = a.getAttribute(p <= 7 ? "className" : "class") || "";a.setAttribute("class", c + (c ? " " : "") + b); } }, removeClass: function removeClass(a, b) { if (a) if (a.classList) a.classList.remove(b);else if (u.isString(a.className)) a.className = a.className.toString().replace(new RegExp("(^|\\s)" + b.split(" ").join("|") + "(\\s|$)", "gi"), " ");else { var c = a.getAttribute(p <= 7 ? "className" : "class") || "";a.setAttribute("class", c.replace(new RegExp("(^|s)" + b.split(" ").join("|") + "(s|$)", "gi"), " ")); } } }, getPropertyValue: function getPropertyValue(a, c, e, f) { function h(a, c) { var e = 0;if (p <= 8) e = o.css(a, c);else { var i = !1;/^(width|height)$/.test(c) && 0 === A.getPropertyValue(a, "display") && (i = !0, A.setPropertyValue(a, "display", A.Values.getDisplayType(a)));var j = function j() { i && A.setPropertyValue(a, "display", "none"); };if (!f) { if ("height" === c && "border-box" !== A.getPropertyValue(a, "boxSizing").toString().toLowerCase()) { var k = a.offsetHeight - (parseFloat(A.getPropertyValue(a, "borderTopWidth")) || 0) - (parseFloat(A.getPropertyValue(a, "borderBottomWidth")) || 0) - (parseFloat(A.getPropertyValue(a, "paddingTop")) || 0) - (parseFloat(A.getPropertyValue(a, "paddingBottom")) || 0);return j(), k; }if ("width" === c && "border-box" !== A.getPropertyValue(a, "boxSizing").toString().toLowerCase()) { var l = a.offsetWidth - (parseFloat(A.getPropertyValue(a, "borderLeftWidth")) || 0) - (parseFloat(A.getPropertyValue(a, "borderRightWidth")) || 0) - (parseFloat(A.getPropertyValue(a, "paddingLeft")) || 0) - (parseFloat(A.getPropertyValue(a, "paddingRight")) || 0);return j(), l; } }var m;m = g(a) === d ? b.getComputedStyle(a, null) : g(a).computedStyle ? g(a).computedStyle : g(a).computedStyle = b.getComputedStyle(a, null), "borderColor" === c && (c = "borderTopColor"), e = 9 === p && "filter" === c ? m.getPropertyValue(c) : m[c], "" !== e && null !== e || (e = a.style[c]), j(); }if ("auto" === e && /^(top|right|bottom|left)$/i.test(c)) { var n = h(a, "position");("fixed" === n || "absolute" === n && /top|left/i.test(c)) && (e = o(a).position()[c] + "px"); }return e; }var i;if (A.Hooks.registered[c]) { var j = c, k = A.Hooks.getRoot(j);e === d && (e = A.getPropertyValue(a, A.Names.prefixCheck(k)[0])), A.Normalizations.registered[k] && (e = A.Normalizations.registered[k]("extract", a, e)), i = A.Hooks.extractValue(j, e); } else if (A.Normalizations.registered[c]) { var l, m;l = A.Normalizations.registered[c]("name", a), "transform" !== l && (m = h(a, A.Names.prefixCheck(l)[0]), A.Values.isCSSNullValue(m) && A.Hooks.templates[c] && (m = A.Hooks.templates[c][1])), i = A.Normalizations.registered[c]("extract", a, m); }if (!/^[\d-]/.test(i)) { var n = g(a);if (n && n.isSVG && A.Names.SVGAttribute(c)) { if (/^(height|width)$/i.test(c)) try { i = a.getBBox()[c]; } catch (q) { i = 0; } else i = a.getAttribute(c); } else i = h(a, A.Names.prefixCheck(c)[0]); }return A.Values.isCSSNullValue(i) && (i = 0), y.debug >= 2 && console.log("Get " + c + ": " + i), i; }, setPropertyValue: function setPropertyValue(a, c, d, e, f) { var h = c;if ("scroll" === c) f.container ? f.container["scroll" + f.direction] = d : "Left" === f.direction ? b.scrollTo(d, f.alternateValue) : b.scrollTo(f.alternateValue, d);else if (A.Normalizations.registered[c] && "transform" === A.Normalizations.registered[c]("name", a)) A.Normalizations.registered[c]("inject", a, d), h = "transform", d = g(a).transformCache[c];else { if (A.Hooks.registered[c]) { var i = c, j = A.Hooks.getRoot(c);e = e || A.getPropertyValue(a, j), d = A.Hooks.injectValue(i, d, e), c = j; }if (A.Normalizations.registered[c] && (d = A.Normalizations.registered[c]("inject", a, d), c = A.Normalizations.registered[c]("name", a)), h = A.Names.prefixCheck(c)[0], p <= 8) try { a.style[h] = d; } catch (l) { y.debug && console.log("Browser does not support [" + d + "] for [" + h + "]"); } else { var k = g(a);k && k.isSVG && A.Names.SVGAttribute(c) ? a.setAttribute(c, d) : a.style[h] = d; }y.debug >= 2 && console.log("Set " + c + " (" + h + "): " + d); }return [h, d]; }, flushTransformCache: function flushTransformCache(a) { var b = "", c = g(a);if ((p || y.State.isAndroid && !y.State.isChrome) && c && c.isSVG) { var d = function d(b) { return parseFloat(A.getPropertyValue(a, b)); }, e = { translate: [d("translateX"), d("translateY")], skewX: [d("skewX")], skewY: [d("skewY")], scale: 1 !== d("scale") ? [d("scale"), d("scale")] : [d("scaleX"), d("scaleY")], rotate: [d("rotateZ"), 0, 0] };o.each(g(a).transformCache, function (a) { /^translate/i.test(a) ? a = "translate" : /^scale/i.test(a) ? a = "scale" : /^rotate/i.test(a) && (a = "rotate"), e[a] && (b += a + "(" + e[a].join(" ") + ") ", delete e[a]); }); } else { var f, h;o.each(g(a).transformCache, function (c) { if (f = g(a).transformCache[c], "transformPerspective" === c) return h = f, !0;9 === p && "rotateZ" === c && (c = "rotate"), b += c + f + " "; }), h && (b = "perspective" + h + " " + b); }A.setPropertyValue(a, "transform", b); } };A.Hooks.register(), A.Normalizations.register(), y.hook = function (a, b, c) { var e;return a = f(a), o.each(a, function (a, f) { if (g(f) === d && y.init(f), c === d) e === d && (e = A.getPropertyValue(f, b));else { var h = A.setPropertyValue(f, b, c);"transform" === h[0] && y.CSS.flushTransformCache(f), e = h; } }), e; };var B = function B() { function a() { return k ? z.promise || null : p; }function e(a, e) { function f(f) { var k, n;if (i.begin && 0 === D) try { i.begin.call(r, r); } catch (V) { setTimeout(function () { throw V; }, 1); }if ("scroll" === G) { var p, q, w, x = /^x$/i.test(i.axis) ? "Left" : "Top", B = parseFloat(i.offset) || 0;i.container ? u.isWrapped(i.container) || u.isNode(i.container) ? (i.container = i.container[0] || i.container, p = i.container["scroll" + x], w = p + o(a).position()[x.toLowerCase()] + B) : i.container = null : (p = y.State.scrollAnchor[y.State["scrollProperty" + x]], q = y.State.scrollAnchor[y.State["scrollProperty" + ("Left" === x ? "Top" : "Left")]], w = o(a).offset()[x.toLowerCase()] + B), j = { scroll: { rootPropertyValue: !1, startValue: p, currentValue: p, endValue: w, unitType: "", easing: i.easing, scrollData: { container: i.container, direction: x, alternateValue: q } }, element: a }, y.debug && console.log("tweensContainer (scroll): ", j.scroll, a); } else if ("reverse" === G) { if (!(k = g(a))) return;if (!k.tweensContainer) return void o.dequeue(a, i.queue);"none" === k.opts.display && (k.opts.display = "auto"), "hidden" === k.opts.visibility && (k.opts.visibility = "visible"), k.opts.loop = !1, k.opts.begin = null, k.opts.complete = null, v.easing || delete i.easing, v.duration || delete i.duration, i = o.extend({}, k.opts, i), n = o.extend(!0, {}, k ? k.tweensContainer : null);for (var E in n) { if (n.hasOwnProperty(E) && "element" !== E) { var F = n[E].startValue;n[E].startValue = n[E].currentValue = n[E].endValue, n[E].endValue = F, u.isEmptyObject(v) || (n[E].easing = i.easing), y.debug && console.log("reverse tweensContainer (" + E + "): " + JSON.stringify(n[E]), a); } }j = n; } else if ("start" === G) { k = g(a), k && k.tweensContainer && k.isAnimating === !0 && (n = k.tweensContainer);var H = function H(e, f) { var g, l = A.Hooks.getRoot(e), m = !1, p = f[0], q = f[1], r = f[2];if (!(k && k.isSVG || "tween" === l || A.Names.prefixCheck(l)[1] !== !1 || A.Normalizations.registered[l] !== d)) return void (y.debug && console.log("Skipping [" + l + "] due to a lack of browser support."));(i.display !== d && null !== i.display && "none" !== i.display || i.visibility !== d && "hidden" !== i.visibility) && /opacity|filter/.test(e) && !r && 0 !== p && (r = 0), i._cacheValues && n && n[e] ? (r === d && (r = n[e].endValue + n[e].unitType), m = k.rootPropertyValueCache[l]) : A.Hooks.registered[e] ? r === d ? (m = A.getPropertyValue(a, l), r = A.getPropertyValue(a, e, m)) : m = A.Hooks.templates[l][1] : r === d && (r = A.getPropertyValue(a, e));var s, t, v, w = !1, x = function x(a, b) { var c, d;return d = (b || "0").toString().toLowerCase().replace(/[%A-z]+$/, function (a) { return c = a, ""; }), c || (c = A.Values.getUnitType(a)), [d, c]; };if (r !== p && u.isString(r) && u.isString(p)) { g = "";var z = 0, B = 0, C = [], D = [], E = 0, F = 0, G = 0;for (r = A.Hooks.fixColors(r), p = A.Hooks.fixColors(p); z < r.length && B < p.length;) { var H = r[z], I = p[B];if (/[\d\.-]/.test(H) && /[\d\.-]/.test(I)) { for (var J = H, K = I, L = ".", N = "."; ++z < r.length;) { if ((H = r[z]) === L) L = "..";else if (!/\d/.test(H)) break;J += H; }for (; ++B < p.length;) { if ((I = p[B]) === N) N = "..";else if (!/\d/.test(I)) break;K += I; }var O = A.Hooks.getUnit(r, z), P = A.Hooks.getUnit(p, B);if (z += O.length, B += P.length, O === P) J === K ? g += J + O : (g += "{" + C.length + (F ? "!" : "") + "}" + O, C.push(parseFloat(J)), D.push(parseFloat(K)));else { var Q = parseFloat(J), R = parseFloat(K);g += (E < 5 ? "calc" : "") + "(" + (Q ? "{" + C.length + (F ? "!" : "") + "}" : "0") + O + " + " + (R ? "{" + (C.length + (Q ? 1 : 0)) + (F ? "!" : "") + "}" : "0") + P + ")", Q && (C.push(Q), D.push(0)), R && (C.push(0), D.push(R)); } } else { if (H !== I) { E = 0;break; }g += H, z++, B++, 0 === E && "c" === H || 1 === E && "a" === H || 2 === E && "l" === H || 3 === E && "c" === H || E >= 4 && "(" === H ? E++ : (E && E < 5 || E >= 4 && ")" === H && --E < 5) && (E = 0), 0 === F && "r" === H || 1 === F && "g" === H || 2 === F && "b" === H || 3 === F && "a" === H || F >= 3 && "(" === H ? (3 === F && "a" === H && (G = 1), F++) : G && "," === H ? ++G > 3 && (F = G = 0) : (G && F < (G ? 5 : 4) || F >= (G ? 4 : 3) && ")" === H && --F < (G ? 5 : 4)) && (F = G = 0); } }z === r.length && B === p.length || (y.debug && console.error('Trying to pattern match mis-matched strings ["' + p + '", "' + r + '"]'), g = d), g && (C.length ? (y.debug && console.log('Pattern found "' + g + '" -> ', C, D, "[" + r + "," + p + "]"), r = C, p = D, t = v = "") : g = d); }g || (s = x(e, r), r = s[0], v = s[1], s = x(e, p), p = s[0].replace(/^([+-\/*])=/, function (a, b) { return w = b, ""; }), t = s[1], r = parseFloat(r) || 0, p = parseFloat(p) || 0, "%" === t && (/^(fontSize|lineHeight)$/.test(e) ? (p /= 100, t = "em") : /^scale/.test(e) ? (p /= 100, t = "") : /(Red|Green|Blue)$/i.test(e) && (p = p / 100 * 255, t = "")));if (/[\/*]/.test(w)) t = v;else if (v !== t && 0 !== r) if (0 === p) t = v;else { h = h || function () { var d = { myParent: a.parentNode || c.body, position: A.getPropertyValue(a, "position"), fontSize: A.getPropertyValue(a, "fontSize") }, e = d.position === M.lastPosition && d.myParent === M.lastParent, f = d.fontSize === M.lastFontSize;M.lastParent = d.myParent, M.lastPosition = d.position, M.lastFontSize = d.fontSize;var g = {};if (f && e) g.emToPx = M.lastEmToPx, g.percentToPxWidth = M.lastPercentToPxWidth, g.percentToPxHeight = M.lastPercentToPxHeight;else { var h = k && k.isSVG ? c.createElementNS("http://www.w3.org/2000/svg", "rect") : c.createElement("div");y.init(h), d.myParent.appendChild(h), o.each(["overflow", "overflowX", "overflowY"], function (a, b) { y.CSS.setPropertyValue(h, b, "hidden"); }), y.CSS.setPropertyValue(h, "position", d.position), y.CSS.setPropertyValue(h, "fontSize", d.fontSize), y.CSS.setPropertyValue(h, "boxSizing", "content-box"), o.each(["minWidth", "maxWidth", "width", "minHeight", "maxHeight", "height"], function (a, b) { y.CSS.setPropertyValue(h, b, "100%"); }), y.CSS.setPropertyValue(h, "paddingLeft", "100em"), g.percentToPxWidth = M.lastPercentToPxWidth = (parseFloat(A.getPropertyValue(h, "width", null, !0)) || 1) / 100, g.percentToPxHeight = M.lastPercentToPxHeight = (parseFloat(A.getPropertyValue(h, "height", null, !0)) || 1) / 100, g.emToPx = M.lastEmToPx = (parseFloat(A.getPropertyValue(h, "paddingLeft")) || 1) / 100, d.myParent.removeChild(h); }return null === M.remToPx && (M.remToPx = parseFloat(A.getPropertyValue(c.body, "fontSize")) || 16), null === M.vwToPx && (M.vwToPx = parseFloat(b.innerWidth) / 100, M.vhToPx = parseFloat(b.innerHeight) / 100), g.remToPx = M.remToPx, g.vwToPx = M.vwToPx, g.vhToPx = M.vhToPx, y.debug >= 1 && console.log("Unit ratios: " + JSON.stringify(g), a), g; }();var S = /margin|padding|left|right|width|text|word|letter/i.test(e) || /X$/.test(e) || "x" === e ? "x" : "y";switch (v) {case "%": r *= "x" === S ? h.percentToPxWidth : h.percentToPxHeight;break;case "px": break;default: r *= h[v + "ToPx"];}switch (t) {case "%": r *= 1 / ("x" === S ? h.percentToPxWidth : h.percentToPxHeight);break;case "px": break;default: r *= 1 / h[t + "ToPx"];} }switch (w) {case "+": p = r + p;break;case "-": p = r - p;break;case "*": p *= r;break;case "/": p = r / p;}j[e] = { rootPropertyValue: m, startValue: r, currentValue: r, endValue: p, unitType: t, easing: q }, g && (j[e].pattern = g), y.debug && console.log("tweensContainer (" + e + "): " + JSON.stringify(j[e]), a); };for (var I in s) { if (s.hasOwnProperty(I)) { var J = A.Names.camelCase(I), K = function (b, c) { var d, f, g;return u.isFunction(b) && (b = b.call(a, e, C)), u.isArray(b) ? (d = b[0], !u.isArray(b[1]) && /^[\d-]/.test(b[1]) || u.isFunction(b[1]) || A.RegEx.isHex.test(b[1]) ? g = b[1] : u.isString(b[1]) && !A.RegEx.isHex.test(b[1]) && y.Easings[b[1]] || u.isArray(b[1]) ? (f = c ? b[1] : l(b[1], i.duration), g = b[2]) : g = b[1] || b[2]) : d = b, c || (f = f || i.easing), u.isFunction(d) && (d = d.call(a, e, C)), u.isFunction(g) && (g = g.call(a, e, C)), [d || 0, f, g]; }(s[I]);if (t(A.Lists.colors, J)) { var L = K[0], O = K[1], P = K[2];if (A.RegEx.isHex.test(L)) { for (var Q = ["Red", "Green", "Blue"], R = A.Values.hexToRgb(L), S = P ? A.Values.hexToRgb(P) : d, T = 0; T < Q.length; T++) { var U = [R[T]];O && U.push(O), S !== d && U.push(S[T]), H(J + Q[T], U); }continue; } }H(J, K); } }j.element = a; }j.element && (A.Values.addClass(a, "velocity-animating"), N.push(j), k = g(a), k && ("" === i.queue && (k.tweensContainer = j, k.opts = i), k.isAnimating = !0), D === C - 1 ? (y.State.calls.push([N, r, i, null, z.resolver, null, 0]), y.State.isTicking === !1 && (y.State.isTicking = !0, m())) : D++); }var h, i = o.extend({}, y.defaults, v), j = {};switch (g(a) === d && y.init(a), parseFloat(i.delay) && i.queue !== !1 && o.queue(a, i.queue, function (b) { y.velocityQueueEntryFlag = !0;var c = y.State.delayedElements.count++;y.State.delayedElements[c] = a;var d = function (a) { return function () { y.State.delayedElements[a] = !1, b(); }; }(c);g(a).delayBegin = new Date().getTime(), g(a).delay = parseFloat(i.delay), g(a).delayTimer = { setTimeout: setTimeout(b, parseFloat(i.delay)), next: d }; }), i.duration.toString().toLowerCase()) {case "fast": i.duration = 200;break;case "normal": i.duration = w;break;case "slow": i.duration = 600;break;default: i.duration = parseFloat(i.duration) || 1;}if (y.mock !== !1 && (y.mock === !0 ? i.duration = i.delay = 1 : (i.duration *= parseFloat(y.mock) || 1, i.delay *= parseFloat(y.mock) || 1)), i.easing = l(i.easing, i.duration), i.begin && !u.isFunction(i.begin) && (i.begin = null), i.progress && !u.isFunction(i.progress) && (i.progress = null), i.complete && !u.isFunction(i.complete) && (i.complete = null), i.display !== d && null !== i.display && (i.display = i.display.toString().toLowerCase(), "auto" === i.display && (i.display = y.CSS.Values.getDisplayType(a))), i.visibility !== d && null !== i.visibility && (i.visibility = i.visibility.toString().toLowerCase()), i.mobileHA = i.mobileHA && y.State.isMobile && !y.State.isGingerbread, i.queue === !1) { if (i.delay) { var k = y.State.delayedElements.count++;y.State.delayedElements[k] = a;var n = function (a) { return function () { y.State.delayedElements[a] = !1, f(); }; }(k);g(a).delayBegin = new Date().getTime(), g(a).delay = parseFloat(i.delay), g(a).delayTimer = { setTimeout: setTimeout(f, parseFloat(i.delay)), next: n }; } else f(); } else o.queue(a, i.queue, function (a, b) { if (b === !0) return z.promise && z.resolver(r), !0;y.velocityQueueEntryFlag = !0, f(a); });"" !== i.queue && "fx" !== i.queue || "inprogress" === o.queue(a)[0] || o.dequeue(a); }var j, k, p, q, r, s, v, x = arguments[0] && (arguments[0].p || o.isPlainObject(arguments[0].properties) && !arguments[0].properties.names || u.isString(arguments[0].properties));u.isWrapped(this) ? (k = !1, q = 0, r = this, p = this) : (k = !0, q = 1, r = x ? arguments[0].elements || arguments[0].e : arguments[0]);var z = { promise: null, resolver: null, rejecter: null };if (k && y.Promise && (z.promise = new y.Promise(function (a, b) { z.resolver = a, z.rejecter = b; })), x ? (s = arguments[0].properties || arguments[0].p, v = arguments[0].options || arguments[0].o) : (s = arguments[q], v = arguments[q + 1]), !(r = f(r))) return void (z.promise && (s && v && v.promiseRejectEmpty === !1 ? z.resolver() : z.rejecter()));var C = r.length, D = 0;if (!/^(stop|finish|finishAll|pause|resume)$/i.test(s) && !o.isPlainObject(v)) { var E = q + 1;v = {};for (var F = E; F < arguments.length; F++) { u.isArray(arguments[F]) || !/^(fast|normal|slow)$/i.test(arguments[F]) && !/^\d/.test(arguments[F]) ? u.isString(arguments[F]) || u.isArray(arguments[F]) ? v.easing = arguments[F] : u.isFunction(arguments[F]) && (v.complete = arguments[F]) : v.duration = arguments[F]; } }var G;switch (s) {case "scroll": G = "scroll";break;case "reverse": G = "reverse";break;case "pause": var H = new Date().getTime();return o.each(r, function (a, b) { h(b, H); }), o.each(y.State.calls, function (a, b) { var c = !1;b && o.each(b[1], function (a, e) { var f = v === d ? "" : v;return f !== !0 && b[2].queue !== f && (v !== d || b[2].queue !== !1) || (o.each(r, function (a, d) { if (d === e) return b[5] = { resume: !1 }, c = !0, !1; }), !c && void 0); }); }), a();case "resume": return o.each(r, function (a, b) { i(b, H); }), o.each(y.State.calls, function (a, b) { var c = !1;b && o.each(b[1], function (a, e) { var f = v === d ? "" : v;return f !== !0 && b[2].queue !== f && (v !== d || b[2].queue !== !1) || !b[5] || (o.each(r, function (a, d) { if (d === e) return b[5].resume = !0, c = !0, !1; }), !c && void 0); }); }), a();case "finish":case "finishAll":case "stop": o.each(r, function (a, b) { g(b) && g(b).delayTimer && (clearTimeout(g(b).delayTimer.setTimeout), g(b).delayTimer.next && g(b).delayTimer.next(), delete g(b).delayTimer), "finishAll" !== s || v !== !0 && !u.isString(v) || (o.each(o.queue(b, u.isString(v) ? v : ""), function (a, b) { u.isFunction(b) && b(); }), o.queue(b, u.isString(v) ? v : "", [])); });var I = [];return o.each(y.State.calls, function (a, b) { b && o.each(b[1], function (c, e) { var f = v === d ? "" : v;if (f !== !0 && b[2].queue !== f && (v !== d || b[2].queue !== !1)) return !0;o.each(r, function (c, d) { if (d === e) if ((v === !0 || u.isString(v)) && (o.each(o.queue(d, u.isString(v) ? v : ""), function (a, b) { u.isFunction(b) && b(null, !0); }), o.queue(d, u.isString(v) ? v : "", [])), "stop" === s) { var h = g(d);h && h.tweensContainer && f !== !1 && o.each(h.tweensContainer, function (a, b) { b.endValue = b.currentValue; }), I.push(a); } else "finish" !== s && "finishAll" !== s || (b[2].duration = 1); }); }); }), "stop" === s && (o.each(I, function (a, b) { n(b, !0); }), z.promise && z.resolver(r)), a();default: if (!o.isPlainObject(s) || u.isEmptyObject(s)) { if (u.isString(s) && y.Redirects[s]) { j = o.extend({}, v);var J = j.duration, K = j.delay || 0;return j.backwards === !0 && (r = o.extend(!0, [], r).reverse()), o.each(r, function (a, b) { parseFloat(j.stagger) ? j.delay = K + parseFloat(j.stagger) * a : u.isFunction(j.stagger) && (j.delay = K + j.stagger.call(b, a, C)), j.drag && (j.duration = parseFloat(J) || (/^(callout|transition)/.test(s) ? 1e3 : w), j.duration = Math.max(j.duration * (j.backwards ? 1 - a / C : (a + 1) / C), .75 * j.duration, 200)), y.Redirects[s].call(b, b, j || {}, a, C, r, z.promise ? z : d); }), a(); }var L = "Velocity: First argument (" + s + ") was not a property map, a known action, or a registered redirect. Aborting.";return z.promise ? z.rejecter(new Error(L)) : b.console && console.log(L), a(); }G = "start";}var M = { lastParent: null, lastPosition: null, lastFontSize: null, lastPercentToPxWidth: null, lastPercentToPxHeight: null, lastEmToPx: null, remToPx: null, vwToPx: null, vhToPx: null }, N = [];o.each(r, function (a, b) { u.isNode(b) && e(b, a); }), j = o.extend({}, y.defaults, v), j.loop = parseInt(j.loop, 10);var O = 2 * j.loop - 1;if (j.loop) for (var P = 0; P < O; P++) { var Q = { delay: j.delay, progress: j.progress };P === O - 1 && (Q.display = j.display, Q.visibility = j.visibility, Q.complete = j.complete), B(r, "reverse", Q); }return a(); };y = o.extend(B, y), y.animate = B;var C = b.requestAnimationFrame || q;if (!y.State.isMobile && c.hidden !== d) { var D = function D() { c.hidden ? (C = function C(a) { return setTimeout(function () { a(!0); }, 16); }, m()) : C = b.requestAnimationFrame || q; };D(), c.addEventListener("visibilitychange", D); }return a.Velocity = y, a !== b && (a.fn.velocity = B, a.fn.velocity.defaults = y.defaults), o.each(["Down", "Up"], function (a, b) { y.Redirects["slide" + b] = function (a, c, e, f, g, h) { var i = o.extend({}, c), j = i.begin, k = i.complete, l = {}, m = { height: "", marginTop: "", marginBottom: "", paddingTop: "", paddingBottom: "" };i.display === d && (i.display = "Down" === b ? "inline" === y.CSS.Values.getDisplayType(a) ? "inline-block" : "block" : "none"), i.begin = function () { 0 === e && j && j.call(g, g);for (var c in m) { if (m.hasOwnProperty(c)) { l[c] = a.style[c];var d = A.getPropertyValue(a, c);m[c] = "Down" === b ? [d, 0] : [0, d]; } }l.overflow = a.style.overflow, a.style.overflow = "hidden"; }, i.complete = function () { for (var b in l) { l.hasOwnProperty(b) && (a.style[b] = l[b]); }e === f - 1 && (k && k.call(g, g), h && h.resolver(g)); }, y(a, m, i); }; }), o.each(["In", "Out"], function (a, b) { y.Redirects["fade" + b] = function (a, c, e, f, g, h) { var i = o.extend({}, c), j = i.complete, k = { opacity: "In" === b ? 1 : 0 };0 !== e && (i.begin = null), i.complete = e !== f - 1 ? null : function () { j && j.call(g, g), h && h.resolver(g); }, i.display === d && (i.display = "In" === b ? "auto" : "none"), y(this, k, i); }; }), y; }(window.jQuery || window.Zepto || window, window, window ? window.document : undefined); }); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33)(module))) /***/ }), /* 33 */ /***/ (function(module, exports) { module.exports = function(module) { if(!module.webpackPolyfill) { module.deprecate = function() {}; module.paths = []; // module.parent = undefined by default if(!module.children) module.children = []; Object.defineProperty(module, "loaded", { enumerable: true, get: function() { return module.l; } }); Object.defineProperty(module, "id", { enumerable: true, get: function() { return module.i; } }); module.webpackPolyfill = 1; } return module; }; /***/ }) /******/ ]);