{"version":3,"sources":["block-fifty-fifty-content.js"],"names":["BlockFiftyFiftyContent","constructor","container","options","this","Object","assign","scrollContainer","arrowsContainer","downButton","upButton","scrollSpeed","document","querySelector","init","addEventListener","scrollDown","e","stopScrolling","scrollUp","scrollChanged","offsetHeight","scrollHeight","style","display","overflowY","elem","target","reachEnd","scrollTop","classList","add","remove","scrollTo","top","left","behavior"],"mappings":"qBACqBA,uBAEjBC,YAAYC,EAAWC,GASnBC,KAAKD,QAAUE,OAAOC,OAAO,GARN,CACnBC,gBAAiB,oBACjBC,gBAAiB,UACjBC,WAAY,QACZC,SAAU,MACVC,YAAa,GACjB,EAEiDR,CAAO,EAExDC,KAAKF,UAAYU,SAASC,cAAcX,CAAS,EACjDE,KAAKK,WAAaL,KAAKF,UAAUW,cAAcT,KAAKD,QAAQM,UAAU,EACtEL,KAAKM,SAAWN,KAAKF,UAAUW,cAAcT,KAAKD,QAAQO,QAAQ,EAClEN,KAAKG,gBAAkBH,KAAKF,UAAUW,cAAcT,KAAKD,QAAQI,eAAe,EAChFH,KAAKI,gBAAkBJ,KAAKF,UAAUW,cAAcT,KAAKD,QAAQK,eAAe,EAEhFJ,KAAKU,KAAK,CACd,CAEAA,OAEIV,KAAKK,WACAM,iBAAiB,YAAa,GAAOX,KAAKY,WAAWC,CAAC,CAAC,EAC5Db,KAAKK,WACAM,iBAAiB,UAAW,GAAOX,KAAKc,cAAcD,CAAC,CAAC,EAE7Db,KAAKM,SACAK,iBAAiB,YAAa,GAAOX,KAAKe,SAASF,CAAC,CAAC,EAC1Db,KAAKM,SACAK,iBAAiB,UAAW,GAAOX,KAAKc,cAAcD,CAAC,CAAC,EAE7Db,KAAKG,gBACAQ,iBAAiB,SAAU,GAAOX,KAAKgB,cAAcH,CAAC,CAAC,EAEzDb,KAAKG,gBAAgBc,eAAiBjB,KAAKG,gBAAgBe,eAC1DlB,KAAKI,gBAAgBe,MAAMC,QAAU,OACrCpB,KAAKG,gBAAgBgB,MAAME,UAAY,OAG/C,CAEAL,cAAcH,GAEV,IAAMS,EAAOT,EAAEU,OAETC,EAAYF,EAAKG,UAAYH,EAAKL,cAAkBK,EAAKJ,aAAe,EACxC,IAAnBI,EAAKG,WAGpBzB,KAAKM,SAASoB,UAAUC,IAAI,QAAQ,EACpC3B,KAAKK,WAAWqB,UAAUE,OAAO,QAAQ,GAEpCJ,GACLxB,KAAKM,SAASoB,UAAUE,OAAO,QAAQ,EACvC5B,KAAKK,WAAWqB,UAAUC,IAAI,QAAQ,IAGtC3B,KAAKM,SAASoB,UAAUE,OAAO,QAAQ,EACvC5B,KAAKK,WAAWqB,UAAUE,OAAO,QAAQ,EAGjD,CAEAhB,aAEIZ,KAAKG,gBAAgB0B,SAAS,CAC1BC,IAAK9B,KAAKG,gBAAgBe,aAC1Ba,KAAM,EACNC,SAAU,QAEd,CAAC,CAEL,CAEAjB,WAEIf,KAAKG,gBAAgB0B,SAAS,CAC1BC,IAAK,EACLC,KAAM,EACNC,SAAU,QAEd,CAAC,CACL,CAEAlB,gBACId,KAAKG,gBAAgBsB,UAAYzB,KAAKG,gBAAgBsB,SAC1D,CACJ","file":"block-fifty-fifty-content.min.js","sourcesContent":["\r\nexport default class BlockFiftyFiftyContent {\r\n \r\n constructor(container, options) {\r\n const defaultOptions = {\r\n scrollContainer: '.scroll-container',\r\n arrowsContainer: '.arrows',\r\n downButton: '.down',\r\n upButton: '.up',\r\n scrollSpeed: 120\r\n };\r\n\r\n this.options = Object.assign({}, defaultOptions, options);\r\n\r\n this.container = document.querySelector(container);\r\n this.downButton = this.container.querySelector(this.options.downButton);\r\n this.upButton = this.container.querySelector(this.options.upButton);\r\n this.scrollContainer = this.container.querySelector(this.options.scrollContainer);\r\n this.arrowsContainer = this.container.querySelector(this.options.arrowsContainer); \r\n\r\n this.init();\r\n }\r\n\r\n init(){\r\n \r\n this.downButton\r\n .addEventListener('mousedown', (e) => this.scrollDown(e));\r\n this.downButton\r\n .addEventListener('mouseup', (e) => this.stopScrolling(e));\r\n \r\n this.upButton\r\n .addEventListener('mousedown', (e) => this.scrollUp(e)); \r\n this.upButton\r\n .addEventListener('mouseup', (e) => this.stopScrolling(e));\r\n\r\n this.scrollContainer\r\n .addEventListener('scroll', (e) => this.scrollChanged(e));\r\n\r\n if(this.scrollContainer.offsetHeight === this.scrollContainer.scrollHeight){ \r\n this.arrowsContainer.style.display = 'none';\r\n this.scrollContainer.style.overflowY = 'auto';\r\n }\r\n\r\n }\r\n\r\n scrollChanged(e){\r\n\r\n const elem = e.target;\r\n \r\n const reachEnd = (elem.scrollTop + elem.offsetHeight) >= (elem.scrollHeight - 1); \r\n const reachStart = elem.scrollTop === 0;\r\n\r\n if(reachStart){\r\n this.upButton.classList.add(\"hidden\");\r\n this.downButton.classList.remove(\"hidden\");\r\n }\r\n else if (reachEnd){\r\n this.upButton.classList.remove(\"hidden\");\r\n this.downButton.classList.add(\"hidden\");\r\n }\r\n else{\r\n this.upButton.classList.remove(\"hidden\");\r\n this.downButton.classList.remove(\"hidden\");\r\n }\r\n\r\n }\r\n\r\n scrollDown(){\r\n \r\n this.scrollContainer.scrollTo({\r\n top: this.scrollContainer.scrollHeight,\r\n left: 0,\r\n behavior: \"smooth\"\r\n\r\n });\r\n\r\n }\r\n\r\n scrollUp(){\r\n\r\n this.scrollContainer.scrollTo({\r\n top: 0,\r\n left: 0,\r\n behavior: \"smooth\"\r\n\r\n });\r\n }\r\n\r\n stopScrolling(){\r\n this.scrollContainer.scrollTop = this.scrollContainer.scrollTop;\r\n }\r\n}"]}