{"version":3,"sources":["webpack:///./cartridges/app_designholding/cartridge/client/default/js/utilities/uniqueID.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/scroll-gradient/scroll-gradient.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/scroll-gradient/index.js"],"names":["uniqueID","Math","random","toString","substring","JS_HOOK_BACKGROUND","JS_HOOK_CONTENT","JS_HOOK_CONTAINER","JS_HOOK_GRADIENT_LEFT","JS_HOOK_GRADIENT_RIGHT","HIDDEN_CLASS","ScrollGradient","constructor","element","id","content","querySelector","container","background","closest","gradientLeft","gradientRight","setVisiblity","bindEvents","RafThrottle","set","event","namespace","fn","delay","width","contentWidth","left","contentLeft","getBoundingClientRect","containerWidth","containerLeft","hasScrollBar","position","leftAction","classList","rightAction","round"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,SAASA,QAAT,GAAoB;AAClB,SACEC,IAAI,CAACC,MAAL,GACGC,QADH,CACY,EADZ,EAEGC,SAFH,CAEa,CAFb,EAEgB,EAFhB,IAGAH,IAAI,CAACC,MAAL,GACGC,QADH,CACY,EADZ,EAEGC,SAFH,CAEa,CAFb,EAEgB,EAFhB,CAJF;AAQD;;AAEcJ,+DAAf,E;;ACXA;AACA;AAEA,IAAMK,kBAAkB,GAAG,sCAA3B;AACA,IAAMC,eAAe,GAAG,mCAAxB;AACA,IAAMC,iBAAiB,GAAG,qCAA1B;AACA,IAAMC,qBAAqB,GAAG,gCAA9B;AACA,IAAMC,sBAAsB,GAAG,iCAA/B;AAEA,IAAMC,YAAY,GAAG,UAArB;;AAEA,MAAMC,8BAAN,CAAqB;AACnBC,aAAW,CAACC,OAAD,EAAU;AACnB,SAAKA,OAAL,GAAeA,OAAf;AACA,SAAKC,EAAL,GAAU,KAAKD,OAAL,CAAaC,EAAvB;AACA,SAAKC,OAAL,GAAe,KAAKF,OAAL,CAAaG,aAAb,CAA2BV,eAA3B,CAAf;AACA,SAAKW,SAAL,GAAiB,KAAKJ,OAAL,CAAaG,aAAb,CAA2BT,iBAA3B,CAAjB;AACA,SAAKW,UAAL,GAAkB,KAAKL,OAAL,CAAaM,OAAb,CAAqBd,kBAArB,CAAlB;AACA,SAAKe,YAAL,GAAoB,KAAKP,OAAL,CAAaG,aAAb,CAA2BR,qBAA3B,CAApB;AACA,SAAKa,aAAL,GAAqB,KAAKR,OAAL,CAAaG,aAAb,CAA2BP,sBAA3B,CAArB;AAEA,SAAKa,YAAL;AAEA,SAAKC,UAAL;AACD;;AAEDA,YAAU,GAAG;AACXC,2BAAW,CAACC,GAAZ,CAAgB,CACd;AACEZ,aAAO,EAAE,KAAKI,SADhB;AAEES,WAAK,EAAE,QAFT;AAGEC,eAAS,oCAA6B3B,kBAAQ,EAArC,CAHX;AAIE4B,QAAE,EAAE,MAAM,KAAKN,YAAL,EAJZ;AAKEO,WAAK,EAAE;AALT,KADc,CAAhB;AASD;;AAEDP,cAAY,GAAG;AACb,QAAM;AAAEQ,WAAK,EAAEC,YAAT;AAAuBC,UAAI,EAAEC;AAA7B,QAA6C,KAAKlB,OAAL,CAAamB,qBAAb,EAAnD;AACA,QAAM;AAAEJ,WAAK,EAAEK,cAAT;AAAyBH,UAAI,EAAEI;AAA/B,QAAiD,KAAKvB,OAAL,CAAaqB,qBAAb,EAAvD;AACA,QAAMG,YAAY,GAAGF,cAAc,GAAGJ,YAAtC;AACA,QAAMO,QAAQ,GAAGL,WAAW,GAAGG,aAA/B;AAEA,QAAI,CAACC,YAAL,EAAmB;AAEnB,QAAME,UAAU,GAAGD,QAAQ,GAAG,CAAX,GAAe,QAAf,GAA0B,KAA7C;AACA,SAAKlB,YAAL,CAAkBoB,SAAlB,CAA4BD,UAA5B,EAAwC7B,YAAxC;AAEA,QAAM+B,WAAW,GAAGxC,IAAI,CAACyC,KAAL,CAAWX,YAAX,IAA2BO,QAA3B,GAAsCrC,IAAI,CAACyC,KAAL,CAAWP,cAAX,CAAtC,GAAmE,QAAnE,GAA8E,KAAlG;AACA,SAAKd,aAAL,CAAmBmB,SAAnB,CAA6BC,WAA7B,EAA0C/B,YAA1C;AACD;;AAxCkB;;AA2CNC,kFAAf,E;;ACtDA;AAEeA,+GAAf,E","file":"js/ScrollGradient.js","sourcesContent":["function uniqueID() {\n return (\n Math.random()\n .toString(36)\n .substring(2, 15) +\n Math.random()\n .toString(36)\n .substring(2, 15)\n )\n}\n\nexport default uniqueID\n","import RafThrottle from '@utilities/raf-throttle';\nimport uniqueID from '@utilities/uniqueID'\n\nconst JS_HOOK_BACKGROUND = '[js-hook-scroll-gradient-background]';\nconst JS_HOOK_CONTENT = '[js-hook-scroll-gradient-content]';\nconst JS_HOOK_CONTAINER = '[js-hook-scroll-gradient-container]';\nconst JS_HOOK_GRADIENT_LEFT = '[js-hook-scroll-gradient-left]';\nconst JS_HOOK_GRADIENT_RIGHT = '[js-hook-scroll-gradient-right]';\n\nconst HIDDEN_CLASS = 'u-hidden';\n\nclass ScrollGradient {\n constructor(element) {\n this.element = element;\n this.id = this.element.id;\n this.content = this.element.querySelector(JS_HOOK_CONTENT);\n this.container = this.element.querySelector(JS_HOOK_CONTAINER);\n this.background = this.element.closest(JS_HOOK_BACKGROUND);\n this.gradientLeft = this.element.querySelector(JS_HOOK_GRADIENT_LEFT);\n this.gradientRight = this.element.querySelector(JS_HOOK_GRADIENT_RIGHT);\n\n this.setVisiblity();\n\n this.bindEvents();\n }\n\n bindEvents() {\n RafThrottle.set([\n {\n element: this.container,\n event: 'scroll',\n namespace: `ScrollGradientNamespace_${uniqueID()}`,\n fn: () => this.setVisiblity(),\n delay: 50\n }\n ]);\n }\n\n setVisiblity() {\n const { width: contentWidth, left: contentLeft } = this.content.getBoundingClientRect();\n const { width: containerWidth, left: containerLeft } = this.element.getBoundingClientRect();\n const hasScrollBar = containerWidth < contentWidth;\n const position = contentLeft - containerLeft;\n\n if (!hasScrollBar) return;\n\n const leftAction = position < 0 ? 'remove' : 'add';\n this.gradientLeft.classList[leftAction](HIDDEN_CLASS);\n\n const rightAction = Math.round(contentWidth) + position > Math.round(containerWidth) ? 'remove' : 'add';\n this.gradientRight.classList[rightAction](HIDDEN_CLASS);\n }\n}\n\nexport default ScrollGradient;\n","import ScrollGradient from './scroll-gradient';\n\nexport default ScrollGradient;\n"],"sourceRoot":""}