{"version":3,"file":"index-CzTGF1dh.js","sources":["../../../app/assets/javascripts/app/sticky_navbar_handler/index.ts"],"sourcesContent":["\nimport $ from \"jquery\"\nimport _pick from \"lodash/pick\"\n\ninterface InputScrollOptions {\n duration?: number,\n easing?: string,\n complete?: (() => void), // Should put function here if you need\n offset?: number, // Some extra offset on top\n}\n\ninterface ScrollOptions {\n duration: number,\n easing: string,\n complete?: (() => void), // Should put function here if you need\n offset: number, // Some extra offset on top\n}\n\n/* eslint-disable no-empty-function */\n/* eslint-disable @typescript-eslint/no-empty-function */\nconst defaultScrollOptions: ScrollOptions = {\n duration: 1000,\n easing: \"swing\",\n complete: () => {},\n offset: 20,\n}\n/* eslint-enable @typescript-eslint/no-empty-function */\n/* eslint-enable no-empty-function */\n\n\nclass StickyNavbarHandler {\n private totalOffsetForScrolling: number\n\n constructor(totalOffsetForScrolling = 0){\n this.totalOffsetForScrolling = totalOffsetForScrolling\n }\n\n public scrollTo(selectorOrElement: string | Element | JQuery, options?: InputScrollOptions) {\n const $target = $(selectorOrElement)\n const opts: ScrollOptions = Object.assign({}, defaultScrollOptions, options)\n\n if ( $target.length === 0 ){\n return\n }\n const target_offset = $target.offset()\n if (target_offset == null) { return }\n\n const totalOffset = target_offset.top - opts.offset - this.totalOffsetForScrolling\n $(\"html, body\").animate({\n scrollTop: totalOffset,\n }, _pick(opts, \"duration\", \"easing\", \"complete\") )\n }\n\n public getTotalOffsetForScrolling() {\n return this.totalOffsetForScrolling\n }\n\n public setTotalOffsetForScrolling(num: number) {\n this.totalOffsetForScrolling = num\n }\n\n public addToTotalOffsetForScrolling(num: number) {\n this.totalOffsetForScrolling += num\n }\n\n public substractFromTotalOffsetForScrolling(num: number) {\n this.totalOffsetForScrolling -= num\n }\n}\n\nconst instance = new StickyNavbarHandler()\n\nexport {instance as default, StickyNavbarHandler }\n\n"],"names":["defaultScrollOptions","StickyNavbarHandler","totalOffsetForScrolling","selectorOrElement","options","$target","$","opts","target_offset","totalOffset","_pick","num","instance"],"mappings":"gFAoBA,MAAMA,EAAsC,CAC1C,SAAU,IACV,OAAU,QACV,SAAU,IAAM,CAAC,EACjB,OAAU,EACZ,EAKA,MAAMC,CAAoB,CAGxB,YAAYC,EAA0B,EAAE,CACtC,KAAK,wBAA0BA,CAAA,CAG1B,SAASC,EAA8CC,EAA8B,CACpF,MAAAC,EAAUC,EAAEH,CAAiB,EAC7BI,EAAsB,OAAO,OAAO,CAAA,EAAIP,EAAsBI,CAAO,EAEtE,GAAAC,EAAQ,SAAW,EACtB,OAEI,MAAAG,EAAgBH,EAAQ,OAAO,EACrC,GAAIG,GAAiB,KAAQ,OAE7B,MAAMC,EAAcD,EAAc,IAAMD,EAAK,OAAS,KAAK,wBACzDD,EAAA,YAAY,EAAE,QAAQ,CACtB,UAAWG,GACVC,EAAMH,EAAM,WAAY,SAAU,UAAU,CAAE,CAAA,CAG5C,4BAA6B,CAClC,OAAO,KAAK,uBAAA,CAGP,2BAA2BI,EAAa,CAC7C,KAAK,wBAA0BA,CAAA,CAG1B,6BAA6BA,EAAa,CAC/C,KAAK,yBAA2BA,CAAA,CAG3B,qCAAqCA,EAAa,CACvD,KAAK,yBAA2BA,CAAA,CAEpC,CAEM,MAAAC,EAAW,IAAIX"}