{"version":3,"sources":["izzi-sticky.js"],"names":["root","factory","define","amd","module","exports","IzziSticky","this","el","options","self","Object","create","prototype","heightValue","classIsSticky","onStick","onUnstick","keys","forEach","key","sticky","document","querySelector","Error","stickApply","element","classList","add","stickRemove","remove","window","addEventListener","hasStickyClass","contains","pageYOffset"],"mappings":";;;;;;CAOC,SAAUA,EAAMC,GACM,kBAAXC,SAAyBA,OAAOC,IAE1CD,UAAWD,GACiB,gBAAXG,SAAuBA,OAAOC,QAI/CD,OAAOC,QAAUJ,IAGjBD,EAAKM,WAAaL,KAElBM,KAAM,WACP,GAAID,GAAa,SAAUE,EAAIC,GAC9B,YAEA,IAAIC,GAAOC,OAAOC,OAAON,EAAWO,UA4BpC,IAvBAH,EAAKD,SACJK,YAAa,EACbC,cAAe,YACfC,QAAS,KACTC,UAAW,MAMRR,GACHE,OAAOO,KAAKT,GAASU,QAAQ,SAAUC,GACtCV,EAAKD,QAAQW,GAAOX,EAAQW,KAOzBZ,IACJE,EAAKW,OAASC,SAASC,cAAc,kBAGlCf,GAAM,gBAAoBA,GAC7BE,EAAKW,OAASC,SAASC,cAAcf,OAEjC,CAAA,IAAIA,GAAM,gBAAoBA,GAIlC,KAAM,IAAIgB,OAAM,qDAHhBd,GAAKW,OAASb,EAUf,GAAIiB,GAAa,SAAUC,GAC1BA,EAAQC,UAAUC,IAAIlB,EAAKD,QAAQM,eAG/B,kBAAsBL,GAAKD,QAAQO,SACtCN,EAAKD,QAAQO,WAQXa,EAAc,SAAUH,GAC3BA,EAAQC,UAAUG,OAAOpB,EAAKD,QAAQM,eAGlC,kBAAsBL,GAAKD,QAAQQ,WACtCP,EAAKD,QAAQQ,YA0Bf,OAjBW,YACNP,EAAKW,QACRU,OAAOC,iBAAiB,SAAU,WACjC,GAAIC,GAAiBvB,EAAKW,OAAOM,UAAUO,SAASxB,EAAKD,QAAQM,cAE7DgB,QAAOI,aAAezB,EAAKD,QAAQK,cAAgBmB,EACtDR,EAAWf,EAAKW,QAERU,OAAOI,YAAczB,EAAKD,QAAQK,aAAemB,GACzDJ,EAAYnB,EAAKW,aAQdX,EAER,OAAOJ","file":"../js/izzi-sticky.min.js","sourcesContent":["/*!\n * A lightweight and simple plugin to have sticky stuff.\n * Version : 2.0.2\n * Emmanuel B. (www.emmanuelbeziat.com)\n * https://github.com/EmmanuelBeziat/izzi-sticky\n **/\n\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t} else if (typeof module === 'object' && module.exports) {\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals (root is window)\n\t\troot.IzziSticky = factory();\n\t}\n}(this, function () {\n\tvar IzziSticky = function (el, options){\n\t\t'use strict';\n\n\t\tvar self = Object.create(IzziSticky.prototype);\n\n\t\t/**\n\t\t * Default settings\n\t\t */\n\t\tself.options = {\n\t\t\theightValue: 0,\n\t\t\tclassIsSticky: 'is-sticky',\n\t\t\tonStick: null,\n\t\t\tonUnstick: null\n\t\t};\n\n\t\t/**\n\t\t * User defined options\n\t\t */\n\t\tif (options) {\n\t\t\tObject.keys(options).forEach(function (key){\n\t\t\t\tself.options[key] = options[key];\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * By default, search for an item with 'data-sticky' attribute\n\t\t */\n\t\tif (!el) {\n\t\t\tself.sticky = document.querySelector('[data-sticky]');\n\t\t}\n\n\t\tif (el && 'string' === typeof el) {\n\t\t\tself.sticky = document.querySelector(el);\n\t\t}\n\t\telse if (el && 'object' === typeof el) {\n\t\t\tself.sticky = el;\n\t\t}\n\t\telse {\n\t\t\tthrow new Error('[IzziSticky] Unable to get a valid object to stick');\n\t\t}\n\n\t\t/**\n\t\t * Add classe on the sticky element\n\t\t * Allow callback onStick\n\t\t */\n\t\tvar stickApply = function (element) {\n\t\t\telement.classList.add(self.options.classIsSticky);\n\n\t\t\t// callback\n\t\t\tif ('function' === typeof self.options.onStick) {\n\t\t\t\tself.options.onStick();\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Remove classes on the sticky element\n\t\t * Allow callback onUnstick\n\t\t */\n\t\tvar stickRemove = function (element) {\n\t\t\telement.classList.remove(self.options.classIsSticky);\n\n\t\t\t// callback\n\t\t\tif ('function' === typeof self.options.onUnstick) {\n\t\t\t\tself.options.onUnstick();\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Main build function\n\t\t * 1. Add the content class when loading, if the input's value is already defined\n\t\t * 2. Fire events when focus and blur happen\n\t\t */\n\t\tvar init = function () {\n\t\t\tif (self.sticky) {\n\t\t\t\twindow.addEventListener('scroll', function() {\n\t\t\t\t\tvar hasStickyClass = self.sticky.classList.contains(self.options.classIsSticky);\n\n\t\t\t\t\tif (window.pageYOffset >= self.options.heightValue && !hasStickyClass) {\n\t\t\t\t\t\tstickApply(self.sticky);\n\t\t\t\t\t}\n\t\t\t\t\telse if (window.pageYOffset < self.options.heightValue && hasStickyClass) {\n\t\t\t\t\t\tstickRemove(self.sticky);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\n\t\tinit();\n\t\treturn self;\n\t};\n\treturn IzziSticky;\n}));"]}