!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports.HSStickyBlock=n():t.HSStickyBlock=n()}(window,function(){return d={"./src/js/hs-sticky-block.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return HSStickyBlock; });\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\n* HSStickyBlock Plugin\n* @version: 2.0.0 (Mon, 25 Nov 2019)\n* @requires: jQuery v3.0 or laters\n* @author: HtmlStream\n* @event-namespace: .HSStickyBlock\n* @license: Htmlstream Libraries (https://htmlstream.com/)\n* Copyright 2019 Htmlstream\n*/\nvar HSStickyBlock = /*#__PURE__*/function () {\n  function HSStickyBlock(elem, settings) {\n    _classCallCheck(this, HSStickyBlock);\n\n    this.elem = elem;\n    this.defaults = {\n      parentSelector: null,\n      parentWidth: null,\n      parentPaddingLeft: null,\n      parentOffsetLeft: null,\n      targetSelector: null,\n      targetHeight: 0,\n      stickyHeight: null,\n      stickyOffsetTop: 0,\n      stickyOffsetBottom: 0,\n      windowOffsetTop: 0,\n      startPoint: null,\n      endPoint: null,\n      resolutionsList: {\n        xs: 0,\n        sm: 576,\n        md: 768,\n        lg: 992,\n        xl: 1200\n      },\n      breakpoint: 'lg',\n      styles: {\n        position: 'fixed'\n      },\n      classMap: {\n        kill: 'hs-kill-sticky'\n      }\n    };\n    this.settings = settings;\n    this.init();\n  }\n\n  _createClass(HSStickyBlock, [{\n    key: \"init\",\n    value: function init() {\n      var context = this,\n          $el = context.elem,\n          dataSettings = $el.attr('data-hs-sticky-block-options') ? JSON.parse($el.attr('data-hs-sticky-block-options')) : {},\n          options = $.extend(true, context.defaults, dataSettings, context.settings);\n\n      context._setRules($el, options);\n\n      $(window).on('resize scroll', function () {\n        context.update();\n      });\n    }\n  }, {\n    key: \"update\",\n    value: function update() {\n      var context = this,\n          $el = context.elem,\n          dataSettings = $el.attr('data-hs-sticky-block-options') ? JSON.parse($el.attr('data-hs-sticky-block-options')) : {},\n          options = $.extend(true, context.defaults, dataSettings, context.settings);\n\n      context._setRules($el, options);\n    }\n  }, {\n    key: \"_updateOptions\",\n    value: function _updateOptions(el, params) {\n      var options = params;\n      options.windowOffsetTop = $(window).scrollTop();\n      options.startPoint = $.isNumeric(options.startPoint) ? options.startPoint : $(options.startPoint).offset().top;\n      options.endPoint = $.isNumeric(options.endPoint) ? options.endPoint : $(options.endPoint).offset().top;\n      options.parentWidth = $(options.parentSelector).width();\n      options.parentPaddingLeft = parseInt($(options.parentSelector).css('padding-left'));\n      options.parentOffsetLeft = $(options.parentSelector).offset().left;\n      options.targetHeight = options.targetSelector ? $(options.targetSelector).outerHeight() : 0;\n      options.stickyHeight = el.outerHeight();\n    }\n  }, {\n    key: \"_setRules\",\n    value: function _setRules(el, params) {\n      var context = this;\n      var options = params;\n\n      context._kill(el, options);\n\n      context._updateOptions(el, options);\n\n      if (!el.hasClass(options.classMap.kill)) {\n        if (options.windowOffsetTop >= options.startPoint - options.targetHeight - options.stickyOffsetTop && options.windowOffsetTop <= options.endPoint - options.targetHeight - options.stickyOffsetTop) {\n          context._add(el, options);\n\n          context._top(el, options);\n\n          context._parentSetHeight(options);\n        } else {\n          context._reset(el);\n\n          context._parentRemoveHeight(options);\n        }\n\n        if (options.windowOffsetTop >= options.endPoint - options.targetHeight - options.stickyHeight - options.stickyOffsetTop - options.stickyOffsetBottom) {\n          context._bottom(el, options);\n        }\n      }\n    }\n  }, {\n    key: \"_add\",\n    value: function _add(el, params) {\n      var options = params;\n      el.css({\n        position: options.styles.position,\n        left: options.parentOffsetLeft + options.parentPaddingLeft,\n        width: options.parentWidth\n      });\n    }\n  }, {\n    key: \"_top\",\n    value: function _top(el, params) {\n      var options = params;\n      el.css({\n        top: options.stickyOffsetTop + options.targetHeight\n      });\n    }\n  }, {\n    key: \"_bottom\",\n    value: function _bottom(el, params) {\n      var options = params;\n      el.css({\n        top: options.endPoint - options.windowOffsetTop - options.stickyHeight - options.stickyOffsetBottom\n      });\n    }\n  }, {\n    key: \"_reset\",\n    value: function _reset(el) {\n      el.css({\n        position: '',\n        top: '',\n        bottom: '',\n        left: '',\n        width: ''\n      });\n    }\n  }, {\n    key: \"_kill\",\n    value: function _kill(el, params) {\n      var context = this;\n      var options = params;\n\n      if (window.innerWidth <= options.resolutionsList[options.breakpoint]) {\n        el.addClass(options.classMap.kill);\n\n        context._reset(el);\n\n        context._parentRemoveHeight(options);\n      } else {\n        el.removeClass(options.classMap.kill);\n      }\n    }\n  }, {\n    key: \"_parentSetHeight\",\n    value: function _parentSetHeight(params) {\n      var options = params;\n      $(options.parentSelector).css({\n        height: options.stickyHeight\n      });\n    }\n  }, {\n    key: \"_parentRemoveHeight\",\n    value: function _parentRemoveHeight(params) {\n      var options = params;\n      $(options.parentSelector).css({\n        height: ''\n      });\n    }\n  }]);\n\n  return HSStickyBlock;\n}();\n\n\n\n//# sourceURL=webpack://HSStickyBlock/./src/js/hs-sticky-block.js?")}},e={},f.m=d,f.c=e,f.d=function(t,n,e){f.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:e})},f.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},f.t=function(n,t){if(1&t&&(n=f(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var e=Object.create(null);if(f.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var o in n)f.d(e,o,function(t){return n[t]}.bind(null,o));return e},f.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return f.d(n,"a",n),n},f.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},f.p="",f(f.s="./src/js/hs-sticky-block.js").default;function f(t){if(e[t])return e[t].exports;var n=e[t]={i:t,l:!1,exports:{}};return d[t].call(n.exports,n,n.exports,f),n.l=!0,n.exports}var d,e});