{"version":3,"file":"layout-master.js","names":["angular","module","controller","$scope","$timeout","$http","$anchorScroll","ctrl","this","_q","tios","util","parseQuery","_fadeTO","_listening","_clickOffMNav","event","target","hasAttribute","$applyAsync","ux","showMNav","document","removeEventListener","headerFade","e","scrolled","scrollingElement","scrollTop","getElementById","getBoundingClientRect","height","scrollFollow","parentTop","followScroll","classList","add","remove","parentNode","offsetHeight","window","innerHeight","enums","PP","PPValues","showSub","subNav","isPrestige","Prestige","hideIntro","Intro","addEventListener","menu","cancel","toggleMSub","navObj","label","sub","init","top","querySelector"],"sources":["jscript-pages/layout-master.js"],"mappings":"AAMIA,QAAQC,OAAO,SAASC,WAAW,yBAA0B,CAAC,SAAU,WAAY,QAAS,gBACzF,SAA0BC,EAAQC,EAAUC,EAAOC,GAC/C,IAAIC,EAAOC,KAEPC,EAAKC,KAAKC,KAAKC,WAAW,MAAM,GAEhCC,EAAU,KAGVC,GAAa,EAsBjB,SAASC,EAAcC,GACfA,EAAMC,OAAOC,aAAa,SAC1Bf,EAAOgB,aAAY,WACfZ,EAAKa,GAAGC,UAAW,EACnBC,SAASC,oBAAoB,QAASR,EAC1C,GAER,CAwDA,SAASS,EAAWC,GAChBtB,EAAOgB,aAAY,WACfZ,EAAKa,GAAGM,SAAWJ,SAASK,iBAAiBC,UAC1BN,SAASO,eAAe,eAAeC,wBAAwBC,MACtF,GACJ,CAEA,SAASC,IACL7B,EAAOgB,aAAY,WACXG,SAASK,iBAAiBC,WAAaK,UACvCC,aAAaC,UAAUC,IAAI,UAE3BF,aAAaC,UAAUE,OAAO,UAE5BH,aAAaI,WAAWC,cACzBjB,SAASK,iBAAiBC,WACzBK,UAAYC,aAAaI,WAAWC,aAAgBC,OAAOC,YAC7DP,aAAaC,UAAUC,IAAI,UAE3BF,aAAaC,UAAUE,OAAO,SAEtC,IACAvB,GAAa,CACjB,CA1GU4B,MAAMC,GACLD,MAAME,SAEjBrC,EAAKa,GAAK,CAENyB,QAAS,KACTC,OAAQ,KACRzB,UAAU,EAEV0B,WAA6B,SAAjBtC,GAAIuC,SAEhBC,UAAyB,SAAdxC,GAAIyC,MACfxB,UAAU,GAiBdnB,EAAKc,SAAW,WACZd,EAAKa,GAAGC,UAAYd,EAAKa,GAAGC,SACxBd,EAAKa,GAAGC,SACRC,SAAS6B,iBAAiB,QAASpC,GAEnCO,SAASC,oBAAoB,QAASR,EAE9C,EAGAR,EAAKsC,QAAU,SAAUO,GACfA,GACW,QAATA,IAAgB7C,EAAKa,GAAG0B,OAASM,GACrC7C,EAAKa,GAAGyB,QAAUtC,EAAKa,GAAG0B,OACpBjC,GAAST,EAASiD,OAAOxC,KAE/BN,EAAKa,GAAGyB,QAAU,KAClBhC,EAAUT,GAAS,WACfG,EAAKa,GAAG0B,OAAS,IACrB,GAAG,KAEX,EAEAvC,EAAK+C,WAAa,SAAUC,GACpBhD,EAAKa,GAAGyB,UAAYU,EAAOC,OAC3BjD,EAAKa,GAAGyB,QAAUU,EAAOC,MACzBjD,EAAKa,GAAG0B,OAASS,EAAOE,MAExBlD,EAAKa,GAAGyB,QAAU,KACRzC,GAAS,WACfG,EAAKa,GAAG0B,OAAS,IACrB,GAAG,KAEX,EA+CAvC,EAAKmD,KAAO,WACRpC,SAASO,eAAe,kBAAkBM,UAAUE,OAAO,WAEtDvB,GACDX,EAAOgB,aAAY,WACf,IAAIe,EAAeZ,SAASO,eAAe,iBACrCK,IACcA,EAAaI,WAAWR,wBAAwB6B,IAGhErC,SAAS6B,iBAAiB,SAAUnB,GAE5C,IASJ1B,IAEAF,GAAS,KACDkB,SAASsC,cAAc,iBACvBtC,SAAS6B,iBAAiB,SAAU3B,EACxC,GAYR,EAEAjB,EAAKmD,MACT","sourcesContent":["(function () {\r\n var _u = 'undefined';\r\n var _f = 'function';\r\n var _$destroy = '$destroy';\r\n\r\n //#region angular.js\r\n angular.module('agweb').controller('LayoutMasterController', ['$scope', '$timeout', '$http', '$anchorScroll',\r\n function LayoutMasterCtrl($scope, $timeout, $http, $anchorScroll) {\r\n var ctrl = this;\r\n\r\n var _q = tios.util.parseQuery(null, true);\r\n\r\n var _fadeTO = null;\r\n var _hideTO = null;\r\n\r\n var _listening = false;\r\n\r\n var _pp = enums.PP;\r\n var _ppv = enums.PPValues;\r\n\r\n ctrl.ux = {\r\n //Nav vars\r\n showSub: null,\r\n subNav: null,\r\n showMNav: false,\r\n // Global page vars\r\n isPrestige: _q?.Prestige === 'true',\r\n // YourHomeApp page\r\n hideIntro: _q?.Intro === 'true',\r\n scrolled: false,\r\n };\r\n\r\n //-\r\n function menuItem(pp, query) {\r\n return { label: _ppv[pp].Description, url: urls[pp] + (!!query ? '?' + query : '') };\r\n }\r\n\r\n function _clickOffMNav(event) {\r\n if (event.target.hasAttribute('href')) {\r\n $scope.$applyAsync(function () {\r\n ctrl.ux.showMNav = false;\r\n document.removeEventListener('click', _clickOffMNav);\r\n });\r\n }\r\n }\r\n\r\n ctrl.showMNav = function () {\r\n ctrl.ux.showMNav = !ctrl.ux.showMNav;\r\n if (ctrl.ux.showMNav) {\r\n document.addEventListener('click', _clickOffMNav);\r\n } else {\r\n document.removeEventListener('click', _clickOffMNav);\r\n }\r\n };\r\n\r\n //#region Site menu\r\n ctrl.showSub = function (menu) {\r\n if (!!menu) {\r\n if (menu !== 'Sub') ctrl.ux.subNav = menu;\r\n ctrl.ux.showSub = ctrl.ux.subNav;\r\n if (!!_fadeTO) $timeout.cancel(_fadeTO);\r\n } else {\r\n ctrl.ux.showSub = null;\r\n _fadeTO = $timeout(function () {\r\n ctrl.ux.subNav = null;\r\n }, 300);\r\n }\r\n };\r\n\r\n ctrl.toggleMSub = function (navObj) {\r\n if (ctrl.ux.showSub !== navObj.label) {\r\n ctrl.ux.showSub = navObj.label;\r\n ctrl.ux.subNav = navObj.sub;\r\n } else {\r\n ctrl.ux.showSub = null;\r\n _hideTO = $timeout(function () {\r\n ctrl.ux.subNav = null;\r\n }, 300);\r\n }\r\n };\r\n //#endregion Site menu\r\n\r\n //#region Scroll animation\r\n function scrollAnimation(e) {\r\n let scrollEnd = (window.scrollY + window.innerHeight);\r\n for (element of document.querySelectorAll('.animation-container')) {\r\n let start = parseFloat(element.getAttribute('start'));\r\n let end = parseFloat(element.getAttribute('end'));\r\n let type = element.getAttribute('data-anim-type');\r\n if (scrollEnd >= end && scrollEnd <= (end + window.innerHeight)) {\r\n switch (type) {\r\n case 'fade-between':\r\n element.querySelector('.fade2').style.opacity =\r\n (scrollEnd - end) / (window.innerHeight - (end - start) - 50);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function headerFade(e) {\r\n $scope.$applyAsync(function () {\r\n ctrl.ux.scrolled = document.scrollingElement.scrollTop >\r\n document.getElementById('site-header').getBoundingClientRect().height;\r\n });\r\n }\r\n\r\n function scrollFollow() {\r\n $scope.$applyAsync(function () {\r\n if (document.scrollingElement.scrollTop >= parentTop) {\r\n followScroll.classList.add('follow')\r\n } else {\r\n followScroll.classList.remove('follow')\r\n }\r\n if (!!followScroll.parentNode.offsetHeight &&\r\n (document.scrollingElement.scrollTop >=\r\n ((parentTop + followScroll.parentNode.offsetHeight) - window.innerHeight))) {\r\n followScroll.classList.add('bottom');\r\n } else {\r\n followScroll.classList.remove('bottom');\r\n }\r\n });\r\n _listening = true;\r\n }\r\n //#endregion Scroll animation\r\n\r\n ctrl.init = function () {\r\n document.getElementById('site-container').classList.remove('loading');\r\n\r\n if (!_listening) {\r\n $scope.$applyAsync(function () {\r\n var followScroll = document.getElementById('follow-scroll');\r\n if (!!followScroll) {\r\n var parentTop = followScroll.parentNode.getBoundingClientRect().top;\r\n // Check if the page is scrolled to or below the top\r\n // of the follow-scroll element and add the fixed class if so.\r\n document.addEventListener('scroll', scrollFollow);\r\n }\r\n });\r\n }\r\n\r\n // Jump to the anchor tag if one is specified in the url\r\n // NB this is necessary for pages that navigate directly\r\n // from another to one with a # fragment, because the page\r\n // isn't rendered early enough by angular for the built-in \r\n // browser navigation to work properly.\r\n\r\n $anchorScroll();\r\n\r\n $timeout(() => {\r\n if (document.querySelector('.header-fade')) {\r\n document.addEventListener('scroll', headerFade);\r\n }\r\n\r\n // if (document.querySelector('.animation-container')) {\r\n // for (element of document.querySelectorAll('.animation-container')) {\r\n // let bb = element.getBoundingClientRect();\r\n // element.setAttribute('start', bb.top);\r\n // element.setAttribute('end', bb.bottom);\r\n // }\r\n\r\n // window.addEventListener('scroll', scrollAnimation);\r\n // }\r\n });\r\n };\r\n //-i\r\n ctrl.init();\r\n }\r\n ]);\r\n\r\n})();"]}