{"version":3,"sources":["webpack://fair-labour/./assets/project/general/js/scroll-service.ts","webpack://fair-labour/./assets/project/general/js/subscribe-service.ts"],"names":["ScrollService","_SubscribeService","_inherits","_super","_this","_classCallCheck","call","scrollToCenter","element","options","arguments","length","undefined","pageYOffset","window","clientHeight","document","documentElement","pos","getBoundingClientRect","top","scroll","scrollToElementsTop","offset","duration","Math","max","min","abs","scrollTop","_objectSpread","anime","targets","easing","handler","throttle","emit","addEventListener","passive","_createClass","SubscribeService","_subscribers","subscribe","id","cb","unsubscribe","serviceArgument","Object","keys","forEach","key","scrollService"],"mappings":"8gFAMA,IAIMA,EAAc,SAAAC,I,qRAAAC,CAAAF,EAAAC,GAAA,I,MAAAE,G,EAAAH,E,qrBAChB,SAAAA,IAAA,IAAAI,G,4FAAAC,CAAA,KAAAL,IACII,EAAAD,EAAAG,KAAA,OAKGC,eAAiB,SAACC,GAAsC,IAAhBC,EAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC9CG,EAAgBC,OAAhBD,YACAE,EAAiBC,SAASC,gBAA1BF,aAEFG,EAAML,EADIL,EAAQW,wBAAhBC,IACwBL,EAAe,EAC/CX,EAAKiB,OAAOH,EAAKT,EACrB,EAEOL,EAAAkB,oBAAsB,SAACd,GAAkD,IAA5BC,EAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGa,EAAMb,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAC/DG,EAAgBC,OAAhBD,YAEFK,EADUV,EAAQW,wBAAhBC,IACUP,EAAcU,EAC1BC,EAAWC,KAAKC,IAClBD,KAAKE,IAAIF,KAAKG,IAAIZ,SAASC,gBAAgBY,UAAYX,GAxB9C,KACA,KA0Bbd,EAAKiB,OAAOH,EAAGY,EAAA,CAAIN,YAAaf,GACpC,EAEOL,EAAAiB,OAAS,WAA0B,IAAzBH,EAAGR,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAAGD,EAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,GACjCqB,OAAKD,EAAC,CACFE,QAAS,cACTH,UAAWX,EACXM,SAAU,IACVS,OAAQ,kBACLxB,GAEX,EA/BI,IAAMyB,EAAUC,IAAS/B,EAAKgC,KALhB,KAMwD,OAAtEtB,OAAOuB,iBAAiB,UAAU,kBAAMH,GAAS,GAAE,CAAEI,SAAS,IAAQlC,CAC1E,CAAC,O,EAAAJ,E,oDAAA,CALe,CCVSuC,GAA7B,SAAAC,IAAA,IAAApC,EAAA,M,4FAAAC,CAAA,KAAAmC,GACY,KAAAC,aAAkE,CAAC,EAEpE,KAAAC,UAAY,SAACC,EAAYC,GAC5BxC,EAAKqC,aAAaE,GAAMC,CAC5B,EAEO,KAAAC,YAAc,SAACF,GACdA,GAAMvC,EAAKqC,aAAaE,WAAYvC,EAAKqC,aAAaE,EAC9D,EAEO,KAAAP,KAAO,SAACO,EAAaG,GACxBC,OAAOC,KAAK5C,EAAKqC,cAAcQ,SAAQ,SAACC,GAChCA,IAAQP,GAAIvC,EAAKqC,aAAaS,GAAKJ,EAC3C,GACJ,CACJ,KD+BaK,EAAgB,IAAInD,C","file":"6341.82d29b09a01e55dfd82b.js","sourcesContent":["// @ts-ignore\nimport anime from 'animejs';\n// @ts-ignore\nimport throttle from 'lodash.throttle';\nimport { SubscribeService } from './subscribe-service';\n\nconst MAX_DURATION = 600;\nconst MIN_DURATION = 300;\nconst THROTTLE_TIME = 100;\n\nclass ScrollService extends SubscribeService {\n constructor() {\n super();\n const handler = throttle(this.emit, THROTTLE_TIME);\n window.addEventListener('scroll', () => handler(), { passive: true });\n }\n\n public scrollToCenter = (element: HTMLElement, options = {}) => {\n const { pageYOffset } = window;\n const { clientHeight } = document.documentElement;\n const { top } = element.getBoundingClientRect();\n const pos = pageYOffset + top - clientHeight / 2;\n this.scroll(pos, options);\n };\n\n public scrollToElementsTop = (element: HTMLElement, options = {}, offset = 0) => {\n const { pageYOffset } = window;\n const { top } = element.getBoundingClientRect();\n const pos = top + pageYOffset + offset;\n const duration = Math.max(\n Math.min(Math.abs(document.documentElement.scrollTop - pos), MAX_DURATION),\n MIN_DURATION\n );\n this.scroll(pos, { duration, ...options });\n };\n\n public scroll = (pos = 0, options = {}) => {\n anime({\n targets: 'body, html ',\n scrollTop: pos,\n duration: 600,\n easing: 'easeInOutQuart',\n ...options,\n });\n };\n}\n\nexport const scrollService = new ScrollService();\n","export class SubscribeService {\n private _subscribers: { [id: string]: (serviceArgument?: any) => void } = {};\n\n public subscribe = (id: string, cb: (serviceArgument?: any) => void) => {\n this._subscribers[id] = cb;\n };\n\n public unsubscribe = (id: string): void => {\n if (id && this._subscribers[id]) delete this._subscribers[id];\n };\n\n public emit = (id?: string, serviceArgument?: any): void => {\n Object.keys(this._subscribers).forEach((key) => {\n if (key !== id) this._subscribers[key](serviceArgument);\n });\n };\n}\n"],"sourceRoot":""}