{"version":3,"sources":["OpenContent/Templates/Counter/template.js"],"names":["jQuery","$","initCounters","each","$this","this","$counterValue","find","countTo","attr","countTimingString","countTiming","parseFloat","countNum","text","animate","duration","easing","step","Math","floor","toLocaleString","complete","fn","isInViewport","elementTop","offset","top","elementBottom","outerHeight","viewportTop","window","scrollTop","viewportBottom","height","counterAlreadyViewed","document","ready","index","counterContainer","on"],"mappings":"AACAA,QAAO,SAACC,GACP,aAUA,SAASC,IACRD,EAAE,YAAYE,MAAK,WAClB,IAAMC,EAAQH,EAAEI,MACVC,EAAgBL,EAAEI,MAAME,KAAK,kBAC7BC,EAAUJ,EAAMK,KAAK,cACrBC,EAAoBN,EAAMK,KAAK,eAC/BE,EAAcC,WAAWF,GAE/BT,EAAE,CAAEY,SAAUP,EAAcQ,SAAUC,QACrC,CAAEF,SAAUL,GACZ,CACCQ,SAAUL,EACVM,OAAQ,SACRC,KAAI,WACHZ,EAAcQ,KACbK,KAAKC,MAAMf,KAAKQ,UAAUQ,iBAE5B,EACAC,SAAQ,WACPhB,EAAcQ,KACbK,KAAKC,MAAMf,KAAKQ,UAAUQ,iBAE5B,GAGH,GACD,CAlCApB,EAAEsB,GAAGC,aAAe,WACnB,IAAMC,EAAaxB,EAAEI,MAAMqB,SAASC,IAC9BC,EAAgBH,EAAaxB,EAAEI,MAAMwB,cACrCC,EAAc7B,EAAE8B,QAAQC,YACxBC,EAAiBH,EAAc7B,EAAE8B,QAAQG,SAC/C,OAAON,EAAgBE,GAAeL,EAAaQ,CACpD,EA8BA,IAAIE,GAAuB,EAE3BlC,EAAEmC,UAAUC,OAAM,WACjBpC,EAAE,sBAAsBE,MAAK,SAACmC,EAAOC,GAChCtC,EAAEsC,GAAkBf,iBACM,IAAzBW,IACHjC,IACAiC,GAAuB,EAG1B,GACD,IAEAlC,EAAE8B,QAAQS,GAAG,iBAAiB,WAC7BvC,EAAE,sBAAsBE,MAAK,SAACmC,EAAOC,GAChCtC,EAAEsC,GAAkBf,iBACM,IAAzBW,IACHjC,IACAiC,GAAuB,EAG1B,GACD,GACD","file":"OpenContent\\Templates\\Counter\\template.min.js","sourcesContent":["/* global jQuery */\r\njQuery(($) => {\r\n\t'use strict';\r\n\r\n\t$.fn.isInViewport = function isInViewport() {\r\n\t\tconst elementTop = $(this).offset().top;\r\n\t\tconst elementBottom = elementTop + $(this).outerHeight();\r\n\t\tconst viewportTop = $(window).scrollTop();\r\n\t\tconst viewportBottom = viewportTop + $(window).height();\r\n\t\treturn elementBottom > viewportTop && elementTop < viewportBottom;\r\n\t};\r\n\r\n\tfunction initCounters() {\r\n\t\t$('.counter').each(function initCounter() {\r\n\t\t\tconst $this = $(this);\r\n\t\t\tconst $counterValue = $(this).find('.counter--data');\r\n\t\t\tconst countTo = $this.attr('data-count');\r\n\t\t\tconst countTimingString = $this.attr('data-timing');\r\n\t\t\tconst countTiming = parseFloat(countTimingString);\r\n\r\n\t\t\t$({ countNum: $counterValue.text() }).animate(\r\n\t\t\t\t{ countNum: countTo },\r\n\t\t\t\t{\r\n\t\t\t\t\tduration: countTiming,\r\n\t\t\t\t\teasing: 'linear',\r\n\t\t\t\t\tstep() {\r\n\t\t\t\t\t\t$counterValue.text(\r\n\t\t\t\t\t\t\tMath.floor(this.countNum).toLocaleString(),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcomplete() {\r\n\t\t\t\t\t\t$counterValue.text(\r\n\t\t\t\t\t\t\tMath.floor(this.countNum).toLocaleString(),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\tlet counterAlreadyViewed = false;\r\n\r\n\t$(document).ready(() => {\r\n\t\t$('.counter-container').each((index, counterContainer) => {\r\n\t\t\tif ($(counterContainer).isInViewport()) {\r\n\t\t\t\tif (counterAlreadyViewed === false) {\r\n\t\t\t\t\tinitCounters();\r\n\t\t\t\t\tcounterAlreadyViewed = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\r\n\t$(window).on('resize scroll', () => {\r\n\t\t$('.counter-container').each((index, counterContainer) => {\r\n\t\t\tif ($(counterContainer).isInViewport()) {\r\n\t\t\t\tif (counterAlreadyViewed === false) {\r\n\t\t\t\t\tinitCounters();\r\n\t\t\t\t\tcounterAlreadyViewed = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n});\r\n"]}