text: /******/ (function(modules) { // webpackBootstrap
  /******/ 	// The module cache
  /******/ 	var installedModules = {};
  /******/
  /******/ 	// The require function
  /******/ 	function __webpack_require__(moduleId) {
  /******/
  /******/ 		// Check if module is in cache
  /******/ 		if(installedModules[moduleId]) {
  /******/ 			return installedModules[moduleId].exports;
  /******/ 		}
  /******/ 		// Create a new module (and put it into the cache)
  /******/ 		var module = installedModules[moduleId] = {
  /******/ 			i: moduleId,
  /******/ 			l: false,
  /******/ 			exports: {}
  /******/ 		};
  /******/
  /******/ 		// Execute the module function
  /******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  /******/
  /******/ 		// Flag the module as loaded
  /******/ 		module.l = true;
  /******/
  /******/ 		// Return the exports of the module
  /******/ 		return module.exports;
  /******/ 	}
  /******/
  /******/
  /******/ 	// expose the modules object (__webpack_modules__)
  /******/ 	__webpack_require__.m = modules;
  /******/
  /******/ 	// expose the module cache
  /******/ 	__webpack_require__.c = installedModules;
  /******/
  /******/ 	// define getter function for harmony exports
  /******/ 	__webpack_require__.d = function(exports, name, getter) {
  /******/ 		if(!__webpack_require__.o(exports, name)) {
  /******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
  /******/ 		}
  /******/ 	};
  /******/
  /******/ 	// define __esModule on exports
  /******/ 	__webpack_require__.r = function(exports) {
  /******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  /******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  /******/ 		}
  /******/ 		Object.defineProperty(exports, '__esModule', { value: true });
  /******/ 	};
  /******/
  /******/ 	// create a fake namespace object
  /******/ 	// mode & 1: value is a module id, require it
  /******/ 	// mode & 2: merge all properties of value into the ns
  /******/ 	// mode & 4: return value when already ns object
  /******/ 	// mode & 8|1: behave like require
  /******/ 	__webpack_require__.t = function(value, mode) {
  /******/ 		if(mode & 1) value = __webpack_require__(value);
  /******/ 		if(mode & 8) return value;
  /******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
  /******/ 		var ns = Object.create(null);
  /******/ 		__webpack_require__.r(ns);
  /******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
  /******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
  /******/ 		return ns;
  /******/ 	};
  /******/
  /******/ 	// getDefaultExport function for compatibility with non-harmony modules
  /******/ 	__webpack_require__.n = function(module) {
  /******/ 		var getter = module && module.__esModule ?
  /******/ 			function getDefault() { return module['default']; } :
  /******/ 			function getModuleExports() { return module; };
  /******/ 		__webpack_require__.d(getter, 'a', getter);
  /******/ 		return getter;
  /******/ 	};
  /******/
  /******/ 	// Object.prototype.hasOwnProperty.call
  /******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  /******/
  /******/ 	// __webpack_public_path__
  /******/ 	__webpack_require__.p = "";
  /******/
  /******/
  /******/ 	// Load entry module and return exports
  /******/ 	return __webpack_require__(__webpack_require__.s = "./lib/index.js");
  /******/ })
  /************************************************************************/
  /******/ ({
  
  /***/ "./lib/Bip.js":
  /*!********************!*\
    !*** ./lib/Bip.js ***!
    \********************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\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\nvar Bip =\n/*#__PURE__*/\nfunction () {\n  function Bip(options) {\n    _classCallCheck(this, Bip);\n\n    this._callbacks = {};\n    this._options = options;\n    this._element = this.buildHtml();\n  }\n\n  _createClass(Bip, [{\n    key: \"show\",\n    value: function show(pagination) {\n      this._element.classList.remove('hidden');\n\n      if (this._pagination) this._info.removeChild(this._pagination);\n\n      if (pagination) {\n        this._pagination = pagination;\n\n        this._info.appendChild(pagination);\n      }\n\n      this._info.classList.add('visible');\n    }\n  }, {\n    key: \"on\",\n    value: function on(type, func) {\n      var item = this._callbacks[type] || [];\n      item.push(func);\n      this._callbacks[type] = item;\n      return this;\n    }\n  }, {\n    key: \"exec\",\n    value: function exec(type) {\n      var funcs = this._callbacks[type] || [];\n      funcs.forEach(function (func) {\n        return func();\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var body = document.querySelector('body');\n\n      if (body) {\n        body.appendChild(this.element);\n      }\n\n      return this;\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this._info.classList.remove('visible');\n\n      this._element.classList.add('hidden');\n    }\n  }, {\n    key: \"hideInfo\",\n    value: function hideInfo() {\n      this._info.classList.remove('visible');\n    }\n  }, {\n    key: \"buildHtml\",\n    value: function buildHtml() {\n      var div = document.createElement('div');\n      div.classList.add('tour-item');\n      div.style.left = this.left + \"px\";\n      div.style.top = this.top + \"px\";\n      div.appendChild(this.buildPulse());\n      this._info = this.buildInfo();\n      div.appendChild(this._info);\n\n      if (this.position) {\n        div.classList.add('position-' + this.position);\n      } else {\n        var body = document.querySelector('body');\n        body.appendChild(div);\n        var width = this._info.offsetWidth;\n        var height = this._info.offsetHeight;\n        body.removeChild(div);\n\n        if (this.left - width / 2 < 0) {\n          div.classList.add('position-right');\n        } else if (this.left + width / 2 >= window.innerWidth) {\n          div.classList.add('position-left');\n        } else if (this.top + height >= window.innerHeight) {\n          div.classList.add('position-top');\n        }\n      }\n\n      return div;\n    }\n  }, {\n    key: \"buildPulse\",\n    value: function buildPulse() {\n      var pulse = document.createElement('div');\n      var ringing = document.createElement('div');\n      var ringing1 = document.createElement('div');\n      var dot = document.createElement('div');\n      pulse.classList.add('pulse-container');\n      dot.classList.add('dot');\n      ringing.classList.add('ringing');\n      ringing1.classList.add('ringing', 'ringing-1');\n\n      if (this.color) {\n        dot.style.backgroundColor = this.color;\n        ringing.style.borderColor = this.color;\n        ringing1.style.borderColor = this.color;\n      }\n\n      pulse.appendChild(dot);\n      pulse.appendChild(ringing);\n      pulse.appendChild(ringing1);\n      return pulse;\n    }\n  }, {\n    key: \"buildInfo\",\n    value: function buildInfo() {\n      var info = document.createElement('div');\n      var title = document.createElement('h2');\n      var p = document.createElement('p');\n      var closeButton = document.createElement('span');\n      closeButton.classList.add('close-button');\n      closeButton.innerHTML = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\" + \"<path d=\\\"M13.41 12L17.71 7.71C17.8983 7.52169 18.0041 7.2663 18.0041 7C18.0041 6.7337 17.8983 6.4783 17.71 6.29C17.5217 6.10169 17.2663 5.99591 17 5.99591C16.7337 5.99591 16.4783 6.10169 16.29 6.29L12 10.59L7.71 6.29C7.5217 6.10169 7.2663 5.99591 7 5.99591C6.7337 5.99591 6.4783 6.10169 6.29 6.29C6.1017 6.4783 5.99591 6.7337 5.99591 7C5.99591 7.2663 6.1017 7.52169 6.29 7.71L10.59 12L6.29 16.29C6.19627 16.383 6.12188 16.4936 6.07111 16.6154C6.02034 16.7373 5.9942 16.868 5.9942 17C5.9942 17.132 6.02034 17.2627 6.07111 17.3846C6.12188 17.5064 6.19627 17.617 6.29 17.71C6.38296 17.8037 6.49356 17.8781 6.61542 17.9289C6.73728 17.9797 6.86799 18.0058 7 18.0058C7.13201 18.0058 7.26272 17.9797 7.38458 17.9289C7.50644 17.8781 7.61704 17.8037 7.71 17.71L12 13.41L16.29 17.71C16.383 17.8037 16.4936 17.8781 16.6154 17.9289C16.7373 17.9797 16.868 18.0058 17 18.0058C17.132 18.0058 17.2627 17.9797 17.3846 17.9289C17.5064 17.8781 17.617 17.8037 17.71 17.71C17.8037 17.617 17.8781 17.5064 17.9289 17.3846C17.9797 17.2627 18.0058 17.132 18.0058 17C18.0058 16.868 17.9797 16.7373 17.9289 16.6154C17.8781 16.4936 17.8037 16.383 17.71 16.29L13.41 12Z\\\" fill=\\\"black\\\"/>\\n\" + \"</svg>\\n\";\n      closeButton.addEventListener('click', this.close.bind(this));\n      p.classList.add('info-description');\n      p.innerHTML = this.description;\n      info.style.borderColor = this.color || 'current';\n      title.classList.add('info-title');\n      title.innerText = this.title;\n      info.classList.add('bip-info');\n      info.appendChild(title);\n      info.appendChild(p);\n      info.appendChild(closeButton);\n      return info;\n    }\n  }, {\n    key: \"close\",\n    value: function close(e) {\n      e.preventDefault();\n      this.hide();\n      this.exec('close');\n    }\n  }, {\n    key: \"element\",\n    get: function get() {\n      return this._element;\n    }\n  }, {\n    key: \"position\",\n    get: function get() {\n      return this._options.position;\n    }\n  }, {\n    key: \"top\",\n    get: function get() {\n      if (this._options.selector) {\n        var selector = document.querySelector(this._options.selector);\n        if (!selector) throw new Error(\"Cannot find element \" + this._options.selector);\n        return selector.offsetTop;\n      }\n\n      if (this._options.y) return this._options.y;\n      throw new Error(\"You must pass y position or a selector to tour item !\");\n    }\n  }, {\n    key: \"left\",\n    get: function get() {\n      if (this._options.selector) {\n        var selector = document.querySelector(this._options.selector);\n        if (!selector) throw new Error(\"Cannot find element \" + this._options.selector);\n        return selector.offsetLeft;\n      }\n\n      if (this._options.x) return this._options.x;\n      throw new Error(\"You must pass  x position or a selector to tour item !\");\n    }\n  }, {\n    key: \"description\",\n    get: function get() {\n      return this._options.description || '';\n    }\n  }, {\n    key: \"title\",\n    get: function get() {\n      return this._options.title || '';\n    }\n  }, {\n    key: \"color\",\n    get: function get() {\n      return this._options.color;\n    }\n  }]);\n\n  return Bip;\n}();\n\nif (window) {\n  window.TourItem = Bip;\n}\n\nvar _default = Bip;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack:///./lib/Bip.js?");
  
  /***/ }),
  
  /***/ "./lib/Tour.js":
  /*!*********************!*\
    !*** ./lib/Tour.js ***!
    \*********************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = exports.TourEvents = void 0;\n\nvar _Bip = _interopRequireDefault(__webpack_require__(/*! ./Bip */ \"./lib/Bip.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\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\nvar TourEvents;\nexports.TourEvents = TourEvents;\n\n(function (TourEvents) {\n  TourEvents[TourEvents[\"FINISH\"] = 0] = \"FINISH\";\n  TourEvents[TourEvents[\"NAVIGATE_PREV\"] = 1] = \"NAVIGATE_PREV\";\n  TourEvents[TourEvents[\"NAVIGATE_NEXT\"] = 2] = \"NAVIGATE_NEXT\";\n})(TourEvents || (exports.TourEvents = TourEvents = {}));\n\nvar Tour =\n/*#__PURE__*/\nfunction () {\n  function Tour(options) {\n    _classCallCheck(this, Tour);\n\n    this.items = [];\n    this._options = {\n      nextText: \"Next\",\n      prevText: \"Previous\"\n    };\n    this._current = 0;\n    this._events = {};\n\n    if (options) {\n      this._options = Object.assign(this._options, options);\n    }\n  }\n\n  _createClass(Tour, [{\n    key: \"on\",\n\n    /**\n     * Add an event to execute later when a specific action is executed\n     *\n     * @param {TourEvents} event\n     * @param {TourEvent} func\n     */\n    value: function on(event, func) {\n      var e = this._events[event] || [];\n      e.push(func);\n      this._events[event] = e;\n      return this;\n    }\n    /**\n     * Executes the event stack corresponding to an action\n     *\n     * @param event\n     * @return {void}\n     */\n\n  }, {\n    key: \"exec\",\n    value: function exec(event) {\n      var e = this._events[event] || [];\n      e.forEach(function (i) {\n        return i();\n      });\n    }\n    /**\n     *  Add a new Bip\n     *\n     * @param item\n     */\n\n  }, {\n    key: \"add\",\n    value: function add(item) {\n      if (!(item instanceof _Bip[\"default\"])) {\n        if (this._options.color && !item.color) item.color = this._options.color;\n        item = new _Bip[\"default\"](item);\n      }\n\n      item.on('close', this.finish.bind(this));\n      this.items.push(item);\n\n      if (this.body) {\n        this.body.appendChild(item.element);\n      }\n\n      return this;\n    }\n    /**\n     *  Get current Bip\n     */\n\n  }, {\n    key: \"play\",\n\n    /**\n     * Show current Bip\n     */\n    value: function play() {\n      this.current.show(this.items.length > 1 ? this.buildPagination() : undefined);\n    }\n  }, {\n    key: \"buildPagination\",\n    value: function buildPagination() {\n      var pagn = document.createElement('div');\n      pagn.classList.add('bip-pagination');\n      var p = document.createElement('div');\n      p.innerText = this._current + 1 + \"/\" + this.items.length;\n      var btns = document.createElement('div');\n      var nextButton = document.createElement('a');\n      nextButton.classList.add('pagination-nav');\n\n      if (this._current + 1 >= this.items.length) {\n        nextButton.classList.add('disabled');\n      } else {\n        nextButton.addEventListener(\"click\", this.next.bind(this));\n      }\n\n      nextButton.innerText = this._options.nextText;\n      var prevButton = document.createElement('a');\n      prevButton.classList.add('pagination-nav');\n      if (this._current <= 0) prevButton.classList.add('disabled');else prevButton.addEventListener(\"click\", this.prev.bind(this));\n      prevButton.innerText = this._options.prevText;\n      btns.appendChild(prevButton);\n      btns.appendChild(nextButton);\n      pagn.appendChild(p);\n      pagn.appendChild(btns);\n      return pagn;\n    }\n  }, {\n    key: \"html\",\n    value: function html() {\n      var container = document.createElement('ul');\n      container.classList.add('bip-tour-container');\n      return container;\n    }\n  }, {\n    key: \"next\",\n    value: function next(e) {\n      if (this._current + 1 < this.items.length) {\n        this.current.hideInfo();\n        this._current = this._current + 1;\n        this.play();\n        this.exec(TourEvents.NAVIGATE_NEXT);\n      }\n    }\n  }, {\n    key: \"prev\",\n    value: function prev(e) {\n      if (this._current > 0) {\n        this.current.hideInfo();\n        this._current -= 1;\n        this.play();\n        this.exec(TourEvents.NAVIGATE_PREV);\n      }\n    }\n  }, {\n    key: \"finish\",\n    value: function finish() {\n      var _this = this;\n\n      this.items.forEach(function (item) {\n        return _this.body.removeChild(item.element);\n      });\n      this.exec(TourEvents.FINISH);\n    }\n  }, {\n    key: \"body\",\n    get: function get() {\n      var body = document.querySelector('body');\n\n      if (body) {\n        return body;\n      } else throw new Error(\"Page body is not found !\");\n    }\n  }, {\n    key: \"current\",\n    get: function get() {\n      return this.items[this._current];\n    }\n  }]);\n\n  return Tour;\n}();\n\nif (window) {\n  window.Tour = Tour;\n  window.TourEvents = TourEvents;\n}\n\nvar _default = Tour;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack:///./lib/Tour.js?");
  
  /***/ }),
  
  /***/ "./lib/index.js":
  /*!**********************!*\
    !*** ./lib/index.js ***!
    \**********************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"Bip\", {\n  enumerable: true,\n  get: function get() {\n    return _Bip[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"Tour\", {\n  enumerable: true,\n  get: function get() {\n    return _Tour[\"default\"];\n  }\n});\nexports[\"default\"] = void 0;\n\nvar _Bip = _interopRequireDefault(__webpack_require__(/*! ./Bip */ \"./lib/Bip.js\"));\n\nvar _Tour = _interopRequireDefault(__webpack_require__(/*! ./Tour */ \"./lib/Tour.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// @ts-ignore\n__webpack_require__(/*! ../src/sass/bip.scss */ \"./src/sass/bip.scss\");\n\nvar _default = {\n  Tour: _Tour[\"default\"],\n  Bip: _Bip[\"default\"]\n};\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack:///./lib/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/sass/bip.scss":
  /*!********************************************************************************************************!*\
    !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/sass/bip.scss ***!
    \********************************************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".bip-tour-container {\\n  position: fixed;\\n  list-style: none;\\n  top: 0;\\n  left: 0;\\n  bottom: 0;\\n  right: 0;\\n  z-index: 2; }\\n\\n.tour-item {\\n  position: absolute;\\n  display: flex;\\n  justify-content: center; }\\n  .tour-item.hidden {\\n    display: none; }\\n  .tour-item.position-right {\\n    justify-content: flex-start;\\n    align-items: center; }\\n    .tour-item.position-right .bip-info {\\n      margin-top: 10px; }\\n      .tour-item.position-right .bip-info.visible {\\n        animation: slideLeft .3s ease-in both; }\\n      .tour-item.position-right .bip-info::before {\\n        left: 0;\\n        bottom: 50%;\\n        border-color: transparent #fefffb transparent transparent;\\n        transform: translate3d(-20px, 0, 0);\\n        filter: drop-shadow(-4px 0px 3px rgba(0, 0, 0, 0.3)); }\\n  .tour-item.position-left {\\n    justify-content: flex-end;\\n    align-items: center; }\\n    .tour-item.position-left .bip-info {\\n      margin-top: 10px; }\\n      .tour-item.position-left .bip-info.visible {\\n        animation: slideRight .3s ease-in both; }\\n      .tour-item.position-left .bip-info::before {\\n        left: 100%;\\n        bottom: 50%;\\n        border-color: transparent transparent transparent #fefffb;\\n        transform: translate3d(0px, 0, 0);\\n        filter: drop-shadow(4px 0px 3px rgba(0, 0, 0, 0.3)); }\\n  .tour-item.position-top {\\n    justify-content: center;\\n    align-items: flex-end; }\\n    .tour-item.position-top .bip-info {\\n      margin-left: -10px; }\\n      .tour-item.position-top .bip-info.visible {\\n        animation: slideBottom .3s ease-in both; }\\n      .tour-item.position-top .bip-info::before {\\n        left: 50%;\\n        top: 100%;\\n        border-color: #fefffb transparent transparent transparent;\\n        transform: translate3d(0px, 0px, 0);\\n        filter: drop-shadow(0px 4px 3px rgba(0, 0, 0, 0.3)); }\\n  .tour-item .pulse-container {\\n    position: relative;\\n    cursor: pointer;\\n    display: flex;\\n    justify-content: center;\\n    align-items: center; }\\n    .tour-item .pulse-container.red .ringing {\\n      border-color: #d63031; }\\n    .tour-item .pulse-container.red .dot {\\n      background-color: #d63031; }\\n    .tour-item .pulse-container.green .ringing {\\n      border-color: #00b894; }\\n    .tour-item .pulse-container.green .dot {\\n      background-color: #00b894; }\\n    .tour-item .pulse-container .ringing {\\n      border: 3px solid #0984e3;\\n      -webkit-border-radius: 30px;\\n      -moz-border-radius: 30px;\\n      border-radius: 30px;\\n      height: 25px;\\n      width: 25px;\\n      position: absolute;\\n      animation: pulsate 2s ease-out infinite;\\n      opacity: 0.0; }\\n      .tour-item .pulse-container .ringing.ringing-1 {\\n        animation: pulsate 1s ease-out infinite;\\n        animation-delay: -1s; }\\n    .tour-item .pulse-container .dot {\\n      width: 15px;\\n      height: 15px;\\n      background-color: #0984e3;\\n      border-radius: 50%; }\\n  .tour-item .bip-info {\\n    padding: 12px 15px;\\n    position: absolute;\\n    width: 340px;\\n    opacity: 0;\\n    visibility: hidden;\\n    border-radius: 4px;\\n    -webkit-box-shadow: 0 3px 20px rgba(0, 0, 0, 0.15);\\n    box-shadow: 0 3px 20px rgba(0, 0, 0, 0.15);\\n    background-color: #fefffb;\\n    border-color: #fefffb;\\n    border-bottom: 3px solid #0984e3; }\\n    .tour-item .bip-info .close-button {\\n      position: absolute;\\n      top: 10px;\\n      right: 10px;\\n      width: 32px;\\n      height: 32px;\\n      overflow: hidden;\\n      text-indent: 100%;\\n      white-space: nowrap;\\n      display: flex;\\n      justify-content: center;\\n      align-items: center;\\n      cursor: pointer; }\\n      .tour-item .bip-info .close-button svg {\\n        fill: #cbccc8;\\n        width: 24px;\\n        height: 24px; }\\n        .tour-item .bip-info .close-button svg path {\\n          fill: #cbccc8; }\\n    .tour-item .bip-info .bip-pagination {\\n      display: flex;\\n      justify-content: space-between;\\n      align-items: center; }\\n      .tour-item .bip-info .bip-pagination .pagination-nav {\\n        font-weight: bold;\\n        cursor: pointer;\\n        margin-right: 10px; }\\n        .tour-item .bip-info .bip-pagination .pagination-nav.disabled {\\n          color: #cbccc8; }\\n    .tour-item .bip-info.visible {\\n      animation: slideTop .3s ease-in both; }\\n    .tour-item .bip-info::before {\\n      content: \\\" \\\";\\n      border: 10px solid;\\n      position: absolute;\\n      left: 50%;\\n      bottom: 100%;\\n      border-color: transparent transparent #fefffb;\\n      transform: translate3d(-10px, 0, 0);\\n      filter: drop-shadow(0 2px 1px rgba(254, 255, 251, 0.3)); }\\n    .tour-item .bip-info .info-title {\\n      margin-top: 0; }\\n    .tour-item .bip-info .info-description {\\n      color: #3e3e3e;\\n      line-height: 1.6; }\\n\\n@keyframes slideTop {\\n  from {\\n    opacity: 0;\\n    visibility: hidden;\\n    transform: translateY(30px); }\\n  to {\\n    opacity: 1;\\n    visibility: visible;\\n    transform: translateY(20px); } }\\n\\n@keyframes slideBottom {\\n  from {\\n    opacity: 0;\\n    visibility: hidden;\\n    transform: translateY(-30px); }\\n  to {\\n    opacity: 1;\\n    visibility: visible;\\n    transform: translateY(-20px); } }\\n\\n@keyframes slideLeft {\\n  from {\\n    opacity: 0;\\n    visibility: hidden;\\n    transform: translateX(35px); }\\n  to {\\n    opacity: 1;\\n    visibility: visible;\\n    transform: translateX(25px); } }\\n\\n@keyframes slideRight {\\n  from {\\n    opacity: 0;\\n    visibility: hidden;\\n    transform: translateX(-35px); }\\n  to {\\n    opacity: 1;\\n    visibility: visible;\\n    transform: translateX(-25px); } }\\n\\n@keyframes bip {\\n  0% {\\n    width: 0;\\n    height: 0;\\n    background-color: #0984e3; }\\n  100% {\\n    width: 50px;\\n    height: 50px;\\n    background-color: #0984e3; } }\\n\\n@keyframes pulsate {\\n  0% {\\n    -webkit-transform: scale(0.1, 0.1);\\n    -moz-transform: scale(0.1, 0.1);\\n    -ms-transform: scale(0.1, 0.1);\\n    -o-transform: scale(0.1, 0.1);\\n    transform: scale(0.1, 0.1);\\n    opacity: 0.0; }\\n  50% {\\n    opacity: 1.0; }\\n  100% {\\n    -webkit-transform: scale(1.2, 1.2);\\n    -moz-transform: scale(1.2, 1.2);\\n    -ms-transform: scale(1.2, 1.2);\\n    -o-transform: scale(1.2, 1.2);\\n    transform: scale(1.2, 1.2);\\n    opacity: 0.0; } }\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/sass/bip.scss?./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js");
  
  /***/ }),
  
  /***/ "./node_modules/css-loader/dist/runtime/api.js":
  /*!*****************************************************!*\
    !*** ./node_modules/css-loader/dist/runtime/api.js ***!
    \*****************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n  var list = []; // return the list of modules as css string\n\n  list.toString = function toString() {\n    return this.map(function (item) {\n      var content = cssWithMappingToString(item, useSourceMap);\n\n      if (item[2]) {\n        return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n      }\n\n      return content;\n    }).join('');\n  }; // import a list of modules into the list\n  // eslint-disable-next-line func-names\n\n\n  list.i = function (modules, mediaQuery, dedupe) {\n    if (typeof modules === 'string') {\n      // eslint-disable-next-line no-param-reassign\n      modules = [[null, modules, '']];\n    }\n\n    var alreadyImportedModules = {};\n\n    if (dedupe) {\n      for (var i = 0; i < this.length; i++) {\n        // eslint-disable-next-line prefer-destructuring\n        var id = this[i][0];\n\n        if (id != null) {\n          alreadyImportedModules[id] = true;\n        }\n      }\n    }\n\n    for (var _i = 0; _i < modules.length; _i++) {\n      var item = [].concat(modules[_i]);\n\n      if (dedupe && alreadyImportedModules[item[0]]) {\n        // eslint-disable-next-line no-continue\n        continue;\n      }\n\n      if (mediaQuery) {\n        if (!item[2]) {\n          item[2] = mediaQuery;\n        } else {\n          item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n        }\n      }\n\n      list.push(item);\n    }\n  };\n\n  return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n  var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n  var cssMapping = item[3];\n\n  if (!cssMapping) {\n    return content;\n  }\n\n  if (useSourceMap && typeof btoa === 'function') {\n    var sourceMapping = toComment(cssMapping);\n    var sourceURLs = cssMapping.sources.map(function (source) {\n      return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n    });\n    return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n  }\n\n  return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n  // eslint-disable-next-line no-undef\n  var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n  var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n  return \"/*# \".concat(data, \" */\");\n}\n\n//# sourceURL=webpack:///./node_modules/css-loader/dist/runtime/api.js?");
  
  /***/ }),
  
  /***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
  /*!****************************************************************************!*\
    !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
    \****************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nvar isOldIE = function isOldIE() {\n  var memo;\n  return function memorize() {\n    if (typeof memo === 'undefined') {\n      // Test for IE <= 9 as proposed by Browserhacks\n      // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n      // Tests for existence of standard globals is to allow style-loader\n      // to operate correctly into non-standard environments\n      // @see https://github.com/webpack-contrib/style-loader/issues/177\n      memo = Boolean(window && document && document.all && !window.atob);\n    }\n\n    return memo;\n  };\n}();\n\nvar getTarget = function getTarget() {\n  var memo = {};\n  return function memorize(target) {\n    if (typeof memo[target] === 'undefined') {\n      var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n      if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n        try {\n          // This will throw an exception if access to iframe is blocked\n          // due to cross-origin restrictions\n          styleTarget = styleTarget.contentDocument.head;\n        } catch (e) {\n          // istanbul ignore next\n          styleTarget = null;\n        }\n      }\n\n      memo[target] = styleTarget;\n    }\n\n    return memo[target];\n  };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n  var result = -1;\n\n  for (var i = 0; i < stylesInDom.length; i++) {\n    if (stylesInDom[i].identifier === identifier) {\n      result = i;\n      break;\n    }\n  }\n\n  return result;\n}\n\nfunction modulesToDom(list, options) {\n  var idCountMap = {};\n  var identifiers = [];\n\n  for (var i = 0; i < list.length; i++) {\n    var item = list[i];\n    var id = options.base ? item[0] + options.base : item[0];\n    var count = idCountMap[id] || 0;\n    var identifier = \"\".concat(id, \" \").concat(count);\n    idCountMap[id] = count + 1;\n    var index = getIndexByIdentifier(identifier);\n    var obj = {\n      css: item[1],\n      media: item[2],\n      sourceMap: item[3]\n    };\n\n    if (index !== -1) {\n      stylesInDom[index].references++;\n      stylesInDom[index].updater(obj);\n    } else {\n      stylesInDom.push({\n        identifier: identifier,\n        updater: addStyle(obj, options),\n        references: 1\n      });\n    }\n\n    identifiers.push(identifier);\n  }\n\n  return identifiers;\n}\n\nfunction insertStyleElement(options) {\n  var style = document.createElement('style');\n  var attributes = options.attributes || {};\n\n  if (typeof attributes.nonce === 'undefined') {\n    var nonce =  true ? __webpack_require__.nc : undefined;\n\n    if (nonce) {\n      attributes.nonce = nonce;\n    }\n  }\n\n  Object.keys(attributes).forEach(function (key) {\n    style.setAttribute(key, attributes[key]);\n  });\n\n  if (typeof options.insert === 'function') {\n    options.insert(style);\n  } else {\n    var target = getTarget(options.insert || 'head');\n\n    if (!target) {\n      throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n    }\n\n    target.appendChild(style);\n  }\n\n  return style;\n}\n\nfunction removeStyleElement(style) {\n  // istanbul ignore if\n  if (style.parentNode === null) {\n    return false;\n  }\n\n  style.parentNode.removeChild(style);\n}\n/* istanbul ignore next  */\n\n\nvar replaceText = function replaceText() {\n  var textStore = [];\n  return function replace(index, replacement) {\n    textStore[index] = replacement;\n    return textStore.filter(Boolean).join('\\n');\n  };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n  var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n  /* istanbul ignore if  */\n\n  if (style.styleSheet) {\n    style.styleSheet.cssText = replaceText(index, css);\n  } else {\n    var cssNode = document.createTextNode(css);\n    var childNodes = style.childNodes;\n\n    if (childNodes[index]) {\n      style.removeChild(childNodes[index]);\n    }\n\n    if (childNodes.length) {\n      style.insertBefore(cssNode, childNodes[index]);\n    } else {\n      style.appendChild(cssNode);\n    }\n  }\n}\n\nfunction applyToTag(style, options, obj) {\n  var css = obj.css;\n  var media = obj.media;\n  var sourceMap = obj.sourceMap;\n\n  if (media) {\n    style.setAttribute('media', media);\n  } else {\n    style.removeAttribute('media');\n  }\n\n  if (sourceMap && btoa) {\n    css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n  } // For old IE\n\n  /* istanbul ignore if  */\n\n\n  if (style.styleSheet) {\n    style.styleSheet.cssText = css;\n  } else {\n    while (style.firstChild) {\n      style.removeChild(style.firstChild);\n    }\n\n    style.appendChild(document.createTextNode(css));\n  }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n  var style;\n  var update;\n  var remove;\n\n  if (options.singleton) {\n    var styleIndex = singletonCounter++;\n    style = singleton || (singleton = insertStyleElement(options));\n    update = applyToSingletonTag.bind(null, style, styleIndex, false);\n    remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n  } else {\n    style = insertStyleElement(options);\n    update = applyToTag.bind(null, style, options);\n\n    remove = function remove() {\n      removeStyleElement(style);\n    };\n  }\n\n  update(obj);\n  return function updateStyle(newObj) {\n    if (newObj) {\n      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n        return;\n      }\n\n      update(obj = newObj);\n    } else {\n      remove();\n    }\n  };\n}\n\nmodule.exports = function (list, options) {\n  options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n  // tags it will allow on a page\n\n  if (!options.singleton && typeof options.singleton !== 'boolean') {\n    options.singleton = isOldIE();\n  }\n\n  list = list || [];\n  var lastIdentifiers = modulesToDom(list, options);\n  return function update(newList) {\n    newList = newList || [];\n\n    if (Object.prototype.toString.call(newList) !== '[object Array]') {\n      return;\n    }\n\n    for (var i = 0; i < lastIdentifiers.length; i++) {\n      var identifier = lastIdentifiers[i];\n      var index = getIndexByIdentifier(identifier);\n      stylesInDom[index].references--;\n    }\n\n    var newLastIdentifiers = modulesToDom(newList, options);\n\n    for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n      var _identifier = lastIdentifiers[_i];\n\n      var _index = getIndexByIdentifier(_identifier);\n\n      if (stylesInDom[_index].references === 0) {\n        stylesInDom[_index].updater();\n\n        stylesInDom.splice(_index, 1);\n      }\n    }\n\n    lastIdentifiers = newLastIdentifiers;\n  };\n};\n\n//# sourceURL=webpack:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js?");
  
  /***/ }),
  
  /***/ "./src/sass/bip.scss":
  /*!***************************!*\
    !*** ./src/sass/bip.scss ***!
    \***************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("var api = __webpack_require__(/*! ../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n            var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js!./bip.scss */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/sass/bip.scss\");\n\n            content = content.__esModule ? content.default : content;\n\n            if (typeof content === 'string') {\n              content = [[module.i, content, '']];\n            }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;\n\n//# sourceURL=webpack:///./src/sass/bip.scss?");
  
  /***/ })
  
  /******/ });