{"version":3,"sources":["togglemodule.js"],"names":["define","app","directive","$timeout","$window","restrict","bindToController","tabs","triggers","readmore","maxheight","controllerAs","controller","$scope","$element","$attrs","toggleLabel","initialheight","hasMore","readMoreLabel","readmorelbl","activate","which","angular","forEach","this","item","key","active","id","$","animate","height","barHeight","outerHeight","fullLeftVerticalTabsHeight","find","fullRightVerticalTabsHeight","children","rightListItemsHeight","additionalHeight","i","itemHeight","getCurrentDesktopHeight","numOfHyperlinks","addTab","length","addTabWithParams","addTrigger","t","tabid","init","link","innerWidth","getInitialMobileHeight","toString","css","readLessLabel","readlesslbl","readMore","event","preventDefault","currentTarget","siblings","getCurrentMaxDesktopHeight","require","scope","numofhyperlinks","tab","parseInt","trigger","activateTab"],"mappings":"AAAAA,OAAO,WACH,OAAO,SAAUC,GACbA,EAAIC,UAAU,QAAS,WAAY,UAAW,SAAUC,EAAUC,GAC9D,OACIC,SAAU,IACVC,kBACIC,KAAM,IACNC,SAAU,IACVC,SAAU,IACVC,UAAW,KAEfC,aAAc,OACdC,YAAa,SAAU,WAAY,SAAU,WAAY,UAAW,SAAUC,EAAQC,EAAUC,EAAQZ,EAAUC,GAC9GS,EAAON,QACPM,EAAOL,YACPK,EAAOJ,UAAW,EAClBI,EAAOG,YAAc,GACrBH,EAAOI,cAAgB,GACvBJ,EAAOK,SAAU,EACjB,IAAIC,EAAgBJ,EAAOK,YAE3BP,EAAOQ,SAAW,SAAUC,GACxBC,QAAQC,QAAQC,KAAKlB,KAAM,SAAUmB,EAAMC,GACvCD,EAAKE,OAAUF,EAAKG,KAAOP,EAC3BT,EAAOL,SAASkB,EAAKG,IAAID,OAASF,EAAKE,OACnCF,EAAKE,SACLzB,EAAS,WACL2B,EAAEhB,GAAUiB,SAAUC,OAkDtC,WACI,MAAMC,EAAYH,EAAE,qBAAqBI,cAEnCC,EAA6BL,EAAEhB,GAChCsB,KAAK,6BACLA,KAAK,gCACLF,cAECG,EAA8BP,EAAEhB,GACjCsB,KAAK,8BACLA,KAAK,wBACLA,KAAK,WACLA,KAAK,kBACLE,WAGL,IAAIC,EAAuB,GACvBC,EAAmB,EAEvB,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,GAAwC,MAAlCJ,EAA4BI,GAAa,CAC3C,IAAIC,EAAaZ,EAAEO,EAA4BI,IAAIL,KAAK,eAAeF,aAAY,GAC/EQ,EAAa,IAAO,IACpBF,GAAoB,GAExBD,GAAwBG,EAE5B,GAAIH,EAAuBJ,GAA8BI,EAzBnC,IA0BlB,OAAOA,EAAuBN,EAGtC,OAAQE,EA7BkB,IA6B+BA,EA7B/B,KA6BiFF,EAjF/DU,IAA6B,OAE7D9B,EAAOJ,WACPI,EAAOJ,UAAW,EAClBI,EAAOG,YAAcG,GAEG,MAAxBO,EAAKkB,kBACL/B,EAAOK,QAAUQ,EAAKkB,iBAAmB,QAMzD/B,EAAOgC,OAAS,WACZ,IAAIhB,EAAKhB,EAAON,KAAKuC,OAKrB,OAJAjC,EAAON,KAAKsB,IACRA,GAAIA,EACJD,OAAgB,IAAPC,GAENhB,EAAON,KAAKsB,IAGvBhB,EAAOkC,iBAAmB,SAAUH,GAChC,IAAIf,EAAKhB,EAAON,KAAKuC,OAMrB,OALAjC,EAAON,KAAKsB,IACRA,GAAIA,EACJD,OAAgB,IAAPC,EACTe,gBAAiBA,GAEd/B,EAAON,KAAKsB,IAGvBhB,EAAOmC,WAAa,SAAUC,GAC1B,IAAIpB,EAAKhB,EAAOL,SAASsC,OAKzB,OAJAjC,EAAOL,SAASqB,IACZqB,MAAOrB,EACPD,OAAgB,IAAPC,GAENhB,EAAOL,SAASqB,IAG3BhB,EAAOsC,KAAO,WAEVhD,EAAS,WACDU,EAAON,KAAKuC,OAAS,GACrBjC,EAAOQ,SAAS,IAErB,QAsCX+B,KAAM,SAAUvC,EAAQC,EAAUC,GAC9BZ,EAAS,WACL,MAAM8B,EAAYH,EAAE,qBAAqBI,cACrC9B,EAAQiD,WAAa,KACrBxC,EAAOI,eAiFf,WACI,MAAMkB,EAA6BL,EAAEhB,GAChCsB,KAAK,6BACLA,KAAK,gCACLF,cACCG,EAA8BP,EAAEhB,GACjCsB,KAAK,8BACLA,KAAK,wBACLA,KAAK,WACLA,KAAK,mBACLF,cAEL,OAAOC,EAA6BE,EA7FRiB,GAA2BrB,GAAWsB,WAAa,KAC3E1C,EAAOH,UA+Ff,WACI,MAAMyB,EAA6BL,EAAEhB,GAChCsB,KAAK,6BACLA,KAAK,gCACLF,cACCG,EAA8BvB,EAC/BsB,KAAK,8BACLA,KAAK,wBACLF,cACL,OAAOC,EAA6BE,EAxGb,GAAuBkB,WAAa,KACvDzB,EAAEhB,GAAU0C,IAAI,aAAc3C,EAAOI,cAAcsC,WAAa,QAEhE1C,EAAOI,eAAiB0B,IAA4BV,GAAWsB,WAAa,KAC5E1C,EAAOH,UA8DJoB,EAAEhB,GACJsB,KAAK,8BACLA,KAAK,wBACLF,cAjE0CqB,WAAa,KACxDzB,EAAEhB,GAAUkB,OAAOnB,EAAOI,kBAGlC,IAAIE,EAAgBJ,EAAOK,YACvBqC,EAAgB1C,EAAO2C,YAsB3B,SAASf,IACL,MAAMV,EAAYH,EAAE,qBAAqBI,cAEnCC,EAA6BL,EAAEhB,GAChCsB,KAAK,6BACLA,KAAK,gCACLF,cAECG,EAA8BP,EAAEhB,GACjCsB,KAAK,8BACLA,KAAK,wBACLA,KAAK,WACLA,KAAK,kBACLE,WAGL,IAAIC,EAAuB,GACvBC,EAAmB,EAEvB,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,GAAwC,MAAlCJ,EAA4BI,GAAa,CAC3C,IAAIC,EAAaZ,EAAEO,EAA4BI,IAAIL,KAAK,eAAeF,aAAY,GAC/EQ,EAAa,IAAO,IACpBF,GAAoB,GAExBD,GAAwBG,EAE5B,GAAIH,EAAuBJ,GAA8BI,EAzBnC,IA0BlB,OAAOA,EAAuBN,EAGtC,OAAQE,EA7BkB,IA6B+BA,EA7B/B,KA6BiFF,EApD/GpB,EAAOG,YAAcG,EAErBN,EAAO8C,SAAW,SAAUC,GACpBA,GACAA,EAAMC,iBAGNhD,EAAOJ,UACPI,EAAOJ,UAAW,EAClBqB,EAAEhB,GAAUiB,SAAUC,OAAUW,KAA6B,KAC7D9B,EAAOG,YAAcG,IAErBN,EAAOJ,UAAW,EAElBqB,EAAEhB,GAAUiB,SAAUC,OAgD9B,SAAoC4B,GAChC,OAAO9B,EAAE8B,EAAME,eACVC,SAAS,8BACT3B,KAAK,wBACLF,cApD+B8B,CAA2BJ,IAAU,KAErE/C,EAAOG,YAAcyC,SAqFzCxD,EAAIC,UAAU,iBAAkB,WAC5B,OACIG,SAAU,IACV4D,QAAS,QACTC,OAAO,EACPvD,aAAc,OACdC,YAAa,SAAU,SAAU,SAAUC,EAAQE,GACjB,MAA1BA,EAAOoD,gBACPtD,EAAOuD,IAAMvD,EAAOkC,iBAAiBsB,SAAStD,EAAOoD,kBAErDtD,EAAOuD,IAAMvD,EAAOgC,eAOpC5C,EAAIC,UAAU,eAAgB,WAC1B,OACIG,SAAU,IACV4D,QAAS,QACTC,OAAO,EACP5D,oBACAK,aAAc,OACdC,YAAa,SAAU,SAAUC,GAC7BA,EAAOyD,QAAUzD,EAAOmC,aACxBnC,EAAO0D,YAAc,SAAUX,GACvBA,GAAOA,EAAMC,iBACjBhD,EAAOQ,SAASR,EAAOyD,QAAQpB","file":"togglemodule.js","sourcesContent":["define(function () {\r\n return function (app) {\r\n app.directive('tabs', ['$timeout', '$window', function ($timeout, $window) {\r\n return {\r\n restrict: \"A\",\r\n bindToController: {\r\n tabs: \"&\",\r\n triggers: \"&\",\r\n readmore: \"&\",\r\n maxheight: \"=\",\r\n },\r\n controllerAs: 'ctrl',\r\n controller: ['$scope', '$element', '$attrs', '$timeout', '$window' ,function ($scope, $element, $attrs, $timeout, $window) {\r\n $scope.tabs = [];\r\n $scope.triggers = [];\r\n $scope.readmore = false;\r\n $scope.toggleLabel = '';\r\n $scope.initialheight = '';\r\n $scope.hasMore = false;\r\n var readMoreLabel = $attrs.readmorelbl;\r\n\r\n $scope.activate = function (which) {\r\n angular.forEach(this.tabs, function (item, key) {\r\n item.active = (item.id === which);\r\n $scope.triggers[item.id].active = item.active;\r\n if (item.active) {\r\n $timeout(function () {\r\n $($element).animate({ 'height': getCurrentDesktopHeight() }, 500);\r\n })\r\n if ($scope.readmore) {\r\n $scope.readmore = false;\r\n $scope.toggleLabel = readMoreLabel;\r\n }\r\n if (item.numOfHyperlinks != null) {\r\n $scope.hasMore = item.numOfHyperlinks >= 13;\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.addTab = function () {\r\n var id = $scope.tabs.length;\r\n $scope.tabs[id] = {\r\n id: id,\r\n active: (id === 0)\r\n };\r\n return $scope.tabs[id];\r\n };\r\n\r\n $scope.addTabWithParams = function (numOfHyperlinks) {\r\n var id = $scope.tabs.length;\r\n $scope.tabs[id] = {\r\n id: id,\r\n active: (id === 0),\r\n numOfHyperlinks: numOfHyperlinks\r\n };\r\n return $scope.tabs[id];\r\n };\r\n\r\n $scope.addTrigger = function (t) {\r\n var id = $scope.triggers.length;\r\n $scope.triggers[id] = {\r\n tabid: id,\r\n active: (id === 0)\r\n };\r\n return $scope.triggers[id];\r\n };\r\n\r\n $scope.init = function () {\r\n //initialize first tab\r\n $timeout(function () {\r\n if ($scope.tabs.length > 0) {\r\n $scope.activate(0);\r\n }\r\n }, 250);\r\n };\r\n\r\n function getCurrentDesktopHeight() {\r\n const barHeight = $('.readmore-trigger').outerHeight();\r\n const tenLeftTabsHeight = 475;\r\n const fullLeftVerticalTabsHeight = $($element)\r\n .find('.verticaltabs-column-left')\r\n .find('.verticaltabs-column-content')\r\n .outerHeight();\r\n\r\n const fullRightVerticalTabsHeight = $($element)\r\n .find('.verticaltabs-column-right')\r\n .find('.verticaltabscontent')\r\n .find('.active')\r\n .find('.linklist-list')\r\n .children();\r\n\r\n // calculate the height of the first 14 items\r\n let rightListItemsHeight = 44;\r\n let additionalHeight = 0;\r\n\r\n for (let i = 0; i < 13; i++) {\r\n if (!(fullRightVerticalTabsHeight[i] == null)) {\r\n let itemHeight = $(fullRightVerticalTabsHeight[i]).find('.arrow-link').outerHeight(true);\r\n if (itemHeight % 33 !== 0) {\r\n additionalHeight += 9;\r\n }\r\n rightListItemsHeight += itemHeight;\r\n }\r\n if (rightListItemsHeight > fullLeftVerticalTabsHeight && rightListItemsHeight > tenLeftTabsHeight) {\r\n return rightListItemsHeight + barHeight;\r\n }\r\n }\r\n return (fullLeftVerticalTabsHeight > tenLeftTabsHeight ? fullLeftVerticalTabsHeight : tenLeftTabsHeight) + barHeight;\r\n }\r\n }],\r\n\r\n link: function ($scope, $element, $attrs) {\r\n $timeout(function () {\r\n const barHeight = $('.readmore-trigger').outerHeight();\r\n if ($window.innerWidth < 750) {\r\n $scope.initialheight = (getInitialMobileHeight() + barHeight).toString() + \"px\";\r\n $scope.maxheight = (getMaxMobileHeight()).toString() + \"px\";\r\n $($element).css(\"max-height\", $scope.initialheight.toString() + \"px\");\r\n } else {\r\n $scope.initialheight = (getCurrentDesktopHeight() + barHeight).toString() + \"px\";\r\n $scope.maxheight = (getMaxDesktopHeight()).toString() + \"px\";\r\n $($element).height($scope.initialheight);\r\n }\r\n });\r\n var readMoreLabel = $attrs.readmorelbl;\r\n var readLessLabel = $attrs.readlesslbl;\r\n $scope.toggleLabel = readMoreLabel;\r\n\r\n $scope.readMore = function (event) {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n\r\n if ($scope.readmore) {\r\n $scope.readmore = false;\r\n $($element).animate({ 'height': getCurrentDesktopHeight() }, 500);\r\n $scope.toggleLabel = readMoreLabel;\r\n } else {\r\n $scope.readmore = true;\r\n\r\n $($element).animate({ 'height': getCurrentMaxDesktopHeight(event) }, 500);\r\n\r\n $scope.toggleLabel = readLessLabel;\r\n }\r\n };\r\n\r\n\r\n function getCurrentDesktopHeight() {\r\n const barHeight = $('.readmore-trigger').outerHeight();\r\n const tenLeftTabsHeight = 475;\r\n const fullLeftVerticalTabsHeight = $($element)\r\n .find('.verticaltabs-column-left')\r\n .find('.verticaltabs-column-content')\r\n .outerHeight();\r\n\r\n const fullRightVerticalTabsHeight = $($element)\r\n .find('.verticaltabs-column-right')\r\n .find('.verticaltabscontent')\r\n .find('.active')\r\n .find('.linklist-list')\r\n .children();\r\n\r\n // calculate the height of the first 14 items\r\n let rightListItemsHeight = 44;\r\n let additionalHeight = 0;\r\n\r\n for (let i = 0; i < 13; i++) {\r\n if (!(fullRightVerticalTabsHeight[i] == null)) {\r\n let itemHeight = $(fullRightVerticalTabsHeight[i]).find('.arrow-link').outerHeight(true);\r\n if (itemHeight % 33 !== 0) {\r\n additionalHeight += 9;\r\n }\r\n rightListItemsHeight += itemHeight;\r\n }\r\n if (rightListItemsHeight > fullLeftVerticalTabsHeight && rightListItemsHeight > tenLeftTabsHeight) {\r\n return rightListItemsHeight + barHeight;\r\n }\r\n }\r\n return (fullLeftVerticalTabsHeight > tenLeftTabsHeight ? fullLeftVerticalTabsHeight : tenLeftTabsHeight) + barHeight;\r\n }\r\n\r\n function getMaxDesktopHeight() {\r\n return $($element)\r\n .find('.verticaltabs-column-right')\r\n .find('.verticaltabscontent')\r\n .outerHeight();\r\n }\r\n\r\n function getCurrentMaxDesktopHeight(event) {\r\n return $(event.currentTarget)\r\n .siblings('.verticaltabs-column-right')\r\n .find('.verticaltabscontent')\r\n .outerHeight();\r\n }\r\n\r\n\r\n function getInitialMobileHeight() {\r\n const fullLeftVerticalTabsHeight = $($element)\r\n .find('.verticaltabs-column-left')\r\n .find('.verticaltabs-column-content')\r\n .outerHeight();\r\n const fullRightVerticalTabsHeight = $($element)\r\n .find('.verticaltabs-column-right')\r\n .find('.verticaltabscontent')\r\n .find('.active')\r\n .find('.linklist-block')\r\n .outerHeight();\r\n\r\n return fullLeftVerticalTabsHeight + fullRightVerticalTabsHeight;\r\n }\r\n\r\n function getMaxMobileHeight() {\r\n const fullLeftVerticalTabsHeight = $($element)\r\n .find('.verticaltabs-column-left')\r\n .find('.verticaltabs-column-content')\r\n .outerHeight();\r\n const fullRightVerticalTabsHeight = $element\r\n .find('.verticaltabs-column-right')\r\n .find('.verticaltabscontent')\r\n .outerHeight();\r\n return fullLeftVerticalTabsHeight + fullRightVerticalTabsHeight;\r\n }\r\n }\r\n }\r\n }]);\r\n\r\n //inherits from tabs directive\r\n app.directive('tabsResponder', [function () {\r\n return {\r\n restrict: \"A\",\r\n require: \"^tabs\",\r\n scope: true,\r\n controllerAs: 'ctrl',\r\n controller: ['$scope', '$attrs', function ($scope, $attrs) {\r\n if ($attrs.numofhyperlinks != null) {\r\n $scope.tab = $scope.addTabWithParams(parseInt($attrs.numofhyperlinks));\r\n } else {\r\n $scope.tab = $scope.addTab();\r\n }\r\n }]\r\n }\r\n }]);\r\n\r\n //inherits from tabs directive\r\n app.directive('tabsTrigger', [function () {\r\n return {\r\n restrict: \"A\",\r\n require: \"^tabs\",\r\n scope: true,\r\n bindToController: {},\r\n controllerAs: 'ctrl',\r\n controller: ['$scope', function ($scope) {\r\n $scope.trigger = $scope.addTrigger();\r\n $scope.activateTab = function (event) {\r\n if (event) event.preventDefault();\r\n $scope.activate($scope.trigger.tabid);\r\n }\r\n }]\r\n }\r\n }]);\r\n }\r\n});"]}