{"version":3,"sources":["webpack:///./app/components/m/background-image-hotspots/index.js","webpack:///./node_modules/global/document.js","webpack:///./node_modules/text-overflow-clamp/index.js","webpack:///min-document (ignored)"],"names":["$","fn","backgroundImageHotspots","args","arguments","length","undefined","TIP_SPOT_MARGIN","TIP_WRAPPER_THRESHOLD","getComponents","$hotspot","$tip","find","$spot","$line","init","spot","component","spotX","parseInt","data","spotY","css","left","top","reorder","$wrapper","wrapperOffset","offset","$hotspots","each","i","hotspot","on","addClass","spotOffset","tipOffset","width","getBoundingClientRect","tipWidth","spotRect","Math","abs","radius","tipRect","right","positions","height","positionBeneath","tip","outerHeight","positionAbove","line","bottom","clonedSpot","removeClass","animate","setTimeout","hotspotsImage","hasClass","sliderMain","closest","swiper","updateAutoHeight","txtTip","document","querySelectorAll","textContent","lineClamp"],"mappings":";;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAoC;AACQ;;AAE5C;AACA;AACA;AACA;AACAA,CAAC,CAACC,EAAE,CAACC,uBAAuB,GAAG,YAAqB;EAAA,IAAXC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAChD,IAAI,CAAC,IAAI,EAAE;IACT,OAAO,KAAK;EACd;;EAEA;EACA,MAAMG,eAAe,GAAG,EAAE;EAC1B;EACA;EACA,MAAMC,qBAAqB,GAAG,EAAE;;EAEhC;AACF;AACA;AACA;AACA;AACA;EACE,MAAMC,aAAa,GAAIC,QAAQ,IAAK;IAClC,OAAO;MACLC,IAAI,EAAED,QAAQ,CAACE,IAAI,CAAC,eAAe,CAAC;MACpCC,KAAK,EAAEH,QAAQ,CAACE,IAAI,CAAC,gBAAgB,CAAC;MACtCE,KAAK,EAAEJ,QAAQ,CAACE,IAAI,CAAC,gBAAgB;IACvC,CAAC;EACH,CAAC;;EAED;AACF;AACA;AACA;AACA;EACE,MAAMG,IAAI,GAAGA,CAACC,IAAI,EAAEC,SAAS,KAAK;IAChC,MAAMC,KAAK,GAAGC,QAAQ,CAACH,IAAI,CAACI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IAC3C,MAAMC,KAAK,GAAGF,QAAQ,CAACH,IAAI,CAACI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IAC3C;IACA,MAAM;MAAET,IAAI;MAAEE,KAAK;MAAEC;IAAM,CAAC,GAAGL,aAAa,CAACO,IAAI,CAAC;;IAElD;IACAL,IAAI,CAACW,GAAG,CAAC;MAAEC,IAAI,EAAG,GAAEL,KAAM;IAAG,CAAC,CAAC;IAC/BL,KAAK,CAACS,GAAG,CAAC;MACRC,IAAI,EAAG,GAAEL,KAAM,GAAE;MACjBM,GAAG,EAAG,GAAEH,KAAM;IAChB,CAAC,CAAC;IACFP,KAAK,CAACQ,GAAG,CAAC,MAAM,EAAG,GAAEJ,KAAM,GAAE,CAAC;EAChC,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAMO,OAAO,GAAIR,SAAS,IAAK;IAC7B,MAAMS,QAAQ,GAAG1B,CAAC,CAACiB,SAAS,CAAC,CAACL,IAAI,CAAC,oBAAoB,CAAC;IACxD,MAAMe,aAAa,GAAGD,QAAQ,CAACE,MAAM,EAAE;IACvC;IACA,MAAMC,SAAS,GAAGZ,SAAS,CAACL,IAAI,CAAC,UAAU,CAAC;;IAE5C;IACAiB,SAAS,CAACC,IAAI,CAAC,CAACC,CAAC,EAAEC,OAAO,KAAK;MAC7B;MACA,MAAMtB,QAAQ,GAAGV,CAAC,CAACgC,OAAO,CAAC;MAC3B;MACA,MAAM;QAAErB,IAAI;QAAEE,KAAK;QAAEC;MAAM,CAAC,GAAGL,aAAa,CAACC,QAAQ,CAAC;MAEtDA,QAAQ,CAACE,IAAI,CAAC,gBAAgB,CAAC,CAACqB,EAAE,CAAC,OAAO,EAAE,YAAY;QACtDjC,CAAC,CAAC,IAAI,CAAC,CAACkC,QAAQ,CAAC,kBAAkB,CAAC;MACtC,CAAC,CAAC;;MAEF;MACA;MACA,IAAIvB,IAAI,CAACN,MAAM,KAAK,CAAC,IAAIS,KAAK,CAACT,MAAM,KAAK,CAAC,EAAE;MAE7C,MAAM8B,UAAU,GAAGtB,KAAK,CAACe,MAAM,EAAE;MACjC,MAAMQ,SAAS,GAAGzB,IAAI,CAACiB,MAAM,EAAE;MAC/B,MAAM;QAAES;MAAM,CAAC,GAAGxB,KAAK,CAAC,CAAC,CAAC,CAACyB,qBAAqB,EAAE;MAClD,MAAMC,QAAQ,GAAG5B,IAAI,CAAC,CAAC,CAAC,CAAC2B,qBAAqB,EAAE,CAACD,KAAK;MAEtD,MAAMG,QAAQ,GAAG;QACfhB,GAAG,EAAEiB,IAAI,CAACC,GAAG,CAACf,aAAa,CAACH,GAAG,GAAGW,UAAU,CAACX,GAAG,CAAC,GAAGa,KAAK,GAAG,GAAG;QAC/Dd,IAAI,EAAEkB,IAAI,CAACC,GAAG,CAACf,aAAa,CAACJ,IAAI,GAAGY,UAAU,CAACZ,IAAI,CAAC,GAAGc,KAAK,GAAG,GAAG;QAClEM,MAAM,EAAEN;MACV,CAAC;MAED,MAAMO,OAAO,GAAG;QACdrB,IAAI,EAAE,CAACI,aAAa,CAACJ,IAAI,GAAGa,SAAS,CAACb,IAAI,IAAI,CAAC,CAAC;QAChDsB,KAAK,EAAE,CAAClB,aAAa,CAACJ,IAAI,GAAGa,SAAS,CAACb,IAAI,GAAGgB,QAAQ,IAAI,CAAC;MAC7D,CAAC;MAED,IAAIO,SAAS;MACb;MACA;MACA;MACA,IAAIN,QAAQ,CAAChB,GAAG,GAAGE,QAAQ,CAACqB,MAAM,EAAE,GAAG,CAAC,EAAE;QACxC;QACA;QACAD,SAAS,GAAGE,eAAe,CAACR,QAAQ,EAAE7B,IAAI,CAAC;;QAE3C;QACA;QACA,IAAImC,SAAS,CAACG,GAAG,CAACzB,GAAG,GAAGb,IAAI,CAACuC,WAAW,CAAC,IAAI,CAAC,IAAIxB,QAAQ,CAACwB,WAAW,EAAE,EAAE;UACxEJ,SAAS,GAAGK,aAAa,CAACX,QAAQ,EAAE7B,IAAI,CAAC;QAC3C;MACF,CAAC,MAAM;QACL;QACA;QACAmC,SAAS,GAAGK,aAAa,CAACX,QAAQ,EAAE7B,IAAI,CAAC;;QAEzC;QACA;QACA,IAAImC,SAAS,CAACG,GAAG,CAACzB,GAAG,IAAI,CAAC,EAAE;UAC1BsB,SAAS,GAAGE,eAAe,CAACR,QAAQ,EAAE7B,IAAI,CAAC;QAC7C;MACF;;MAEA;MACA;MACA,IAAIiC,OAAO,CAACrB,IAAI,IAAIf,qBAAqB,EAAE;QACzCG,IAAI,CAACW,GAAG,CAAC,MAAM,EAAEiB,QAAQ,GAAG,GAAG,GAAG/B,qBAAqB,CAAC;MAC1D;;MAEA;MACA;MACA,IAAIoC,OAAO,CAACC,KAAK,IAAInB,QAAQ,CAACW,KAAK,EAAE,GAAG7B,qBAAqB,EAAE;QAC7DG,IAAI,CAACW,GAAG,CAAC,MAAM,EAAEI,QAAQ,CAACW,KAAK,EAAE,GAAG7B,qBAAqB,GAAG+B,QAAQ,GAAG,GAAG,CAAC;MAC7E;;MAEA;MACA5B,IAAI,CAACW,GAAG,CAAC,KAAK,EAAEwB,SAAS,CAACG,GAAG,CAACzB,GAAG,CAAC;MAClCV,KAAK,CAACQ,GAAG,CAAC,KAAK,EAAEwB,SAAS,CAACM,IAAI,CAAC5B,GAAG,CAAC;MACpCV,KAAK,CAACQ,GAAG,CAAC,QAAQ,EAAEwB,SAAS,CAACM,IAAI,CAACC,MAAM,CAAC;MAC1C;MACAvC,KAAK,CAACQ,GAAG,CAAC,QAAQ,EAAEmB,IAAI,CAACC,GAAG,CAACI,SAAS,CAACM,IAAI,CAACC,MAAM,GAAGP,SAAS,CAACM,IAAI,CAAC5B,GAAG,CAAC,CAAC;IAC3E,CAAC,CAAC;EACJ,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAM2B,aAAa,GAAGA,CAACX,QAAQ,EAAE7B,IAAI,KAAK;IACxC,OAAO;MACLsC,GAAG,EAAE;QACHzB,GAAG,EAAEgB,QAAQ,CAAChB,GAAG,GAAGgB,QAAQ,CAACG,MAAM,GAAG,GAAG,GAAGhC,IAAI,CAACuC,WAAW,CAAC,IAAI,CAAC,GAAG3C;MACvE,CAAC;MACD6C,IAAI,EAAE;QACJ5B,GAAG,EAAEgB,QAAQ,CAAChB,GAAG,GAAGgB,QAAQ,CAACG,MAAM,GAAG,GAAG,GAAGpC,eAAe;QAC3D8C,MAAM,EAAEb,QAAQ,CAAChB,GAAG,GAAGgB,QAAQ,CAACG,MAAM,GAAG,GAAG,GAAG;MACjD;IACF,CAAC;EACH,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMK,eAAe,GAAGA,CAACR,QAAQ,EAAE7B,IAAI,KAAK;IAC1C,OAAO;MACLsC,GAAG,EAAE;QACHzB,GAAG,EAAEgB,QAAQ,CAAChB,GAAG,GAAGgB,QAAQ,CAACG,MAAM,GAAG,GAAG,GAAGpC;MAC9C,CAAC;MACD6C,IAAI,EAAE;QACJ5B,GAAG,EAAEgB,QAAQ,CAAChB,GAAG,GAAGgB,QAAQ,CAACG,MAAM,GAAG,GAAG,GAAG,EAAE;QAC9CU,MAAM,EAAEb,QAAQ,CAAChB,GAAG,GAAGgB,QAAQ,CAACG,MAAM,GAAG,GAAG,GAAGpC;MACjD;IACF,CAAC;EACH,CAAC;;EAED;EACAP,CAAC,CAAC,kBAAkB,CAAC,CAACiC,EAAE,CAAC,eAAe,EAAE,YAAY;IACpD,MAAMqB,UAAU,GAAGtD,CAAC,CAAC,wBAAwB,CAAC;IAE9CsD,UAAU,CAACC,WAAW,CAAC,iBAAiB,CAAC,CAACC,OAAO,CAAC,GAAG,CAAC;IAEtDC,UAAU,CAAC,MAAM;MACfzD,CAAC,CAAC,iCAAiC,CAAC,CAACkC,QAAQ,CAAC,qBAAqB,CAAC,CAACqB,WAAW,CAAC,kBAAkB,CAAC;IACtG,CAAC,EAAE,GAAG,CAAC;EACT,CAAC,CAAC;;EAEF;EACA;EACA;;EAEA;EACA,OAAO,IAAI,CAACzB,IAAI,CAAC,YAAY;IAC3B,MAAMb,SAAS,GAAGjB,CAAC,CAAC,IAAI,CAAC;IACzB,MAAM0D,aAAa,GAAGzC,SAAS,CAACL,IAAI,CAAC,kBAAkB,CAAC;IAExD,IAAIK,SAAS,CAAC0C,QAAQ,CAAC,2BAA2B,CAAC,EAAE;MACnD;MACA1C,SAAS,CAACL,IAAI,CAAC,UAAU,CAAC,CAACkB,IAAI,CAAC,YAAY;QAC1Cf,IAAI,CAACf,CAAC,CAAC,IAAI,CAAC,EAAEiB,SAAS,CAAC;MAC1B,CAAC,CAAC;MACFQ,OAAO,CAACR,SAAS,CAAC;IACpB;;IAEA;IACAyC,aAAa,CACVzB,EAAE,CAAC,YAAY,EAAE,YAAY;MAC5B;MACA,MAAM2B,UAAU,GAAG5D,CAAC,CAAC,IAAI,CAAC,CAAC6D,OAAO,CAAC,wBAAwB,CAAC;MAC5D,IAAID,UAAU,CAACvD,MAAM,GAAG,CAAC,EAAE;QACzBuD,UAAU,CAAC,CAAC,CAAC,CAACE,MAAM,CAACC,gBAAgB,EAAE;MACzC;MACA;MACA,KAAK,MAAMC,MAAM,IAAIC,QAAQ,CAACC,gBAAgB,CAAC,qBAAqB,CAAC,EAAE;QACrEF,MAAM,CAACG,WAAW,IAAI,GAAG;QACzBC,0DAAS,CAACJ,MAAM,EAAE,CAAC,CAAC;MACtB;MACA;MACA/C,SAAS,CAACK,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;;MAE3B;MACAG,OAAO,CAACR,SAAS,CAAC;IACpB,CAAC,CAAC,CACDiB,QAAQ,CAAC,UAAU,CAAC;EACzB,CAAC,CAAC;AACJ,CAAC;AAEDlC,CAAC,CAAC,4BAA4B,CAAC,CAACE,uBAAuB,EAAE,C;;;;;;;;;;;;ACrOzD;AACA;AACA,aAAa,mBAAO,CAAC,qBAAc;;AAEnC;;AAEA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,mBAAO,CAAC,0DAAiB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0BAA0B;AAC1B,uBAAuB;AACvB,0BAA0B;AAC1B,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,qB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;;;;;;;;;;;;AChIA,e","file":"background-image-hotspots.chunk.js","sourcesContent":["import { icon } from '../../a/icon';\r\nimport lineClamp from 'text-overflow-clamp';\r\n\r\n/**\r\n * jQuery M-081 Hotspots Plugin\r\n * 12.06.2019 - wha\r\n */\r\n$.fn.backgroundImageHotspots = function (args = {}) {\r\n  if (!this) {\r\n    return false;\r\n  }\r\n\r\n  // Defines the margin between the spot and its tip\r\n  const TIP_SPOT_MARGIN = 50;\r\n  // Defines the min margin a tip must have on either\r\n  // the right or left edge of the wrapper\r\n  const TIP_WRAPPER_THRESHOLD = 15;\r\n\r\n  /**\r\n   * Return the tip, spot and line elements\r\n   * of a single hotspot\r\n   * @param $hotspot\r\n   * @returns {{$tip, $line, $spot}}\r\n   */\r\n  const getComponents = ($hotspot) => {\r\n    return {\r\n      $tip: $hotspot.find('.hotspot__tip'),\r\n      $spot: $hotspot.find('.hotspot__spot'),\r\n      $line: $hotspot.find('.hotspot__line'),\r\n    };\r\n  };\r\n\r\n  /**\r\n   *\r\n   * @param spot\r\n   * @param component\r\n   */\r\n  const init = (spot, component) => {\r\n    const spotX = parseInt(spot.data('sx'), 10);\r\n    const spotY = parseInt(spot.data('sy'), 10);\r\n    // get hotspot elements\r\n    const { $tip, $spot, $line } = getComponents(spot);\r\n\r\n    // set positions for elements\r\n    $tip.css({ left: `${spotX}%` });\r\n    $spot.css({\r\n      left: `${spotX}%`,\r\n      top: `${spotY}%`,\r\n    });\r\n    $line.css('left', `${spotX}%`);\r\n  };\r\n\r\n  /**\r\n   *\r\n   * @param component\r\n   */\r\n  const reorder = (component) => {\r\n    const $wrapper = $(component).find('.hotspots__wrapper');\r\n    const wrapperOffset = $wrapper.offset();\r\n    // get all hotspots\r\n    const $hotspots = component.find('.hotspot');\r\n\r\n    //\r\n    $hotspots.each((i, hotspot) => {\r\n      //\r\n      const $hotspot = $(hotspot);\r\n      // get hotspot elements\r\n      const { $tip, $spot, $line } = getComponents($hotspot);\r\n\r\n      $hotspot.find('.hotspot__spot').on('click', function () {\r\n        $(this).addClass('hotspot--clicked');\r\n      });\r\n\r\n      // abort if the hotspot only consists of a spot, so\r\n      // there is not necessity to proceed from here.\r\n      if ($tip.length === 0 || $line.length === 0) return;\r\n\r\n      const spotOffset = $spot.offset();\r\n      const tipOffset = $tip.offset();\r\n      const { width } = $spot[0].getBoundingClientRect();\r\n      const tipWidth = $tip[0].getBoundingClientRect().width;\r\n\r\n      const spotRect = {\r\n        top: Math.abs(wrapperOffset.top - spotOffset.top) + width * 0.5,\r\n        left: Math.abs(wrapperOffset.left - spotOffset.left) + width * 0.5,\r\n        radius: width,\r\n      };\r\n\r\n      const tipRect = {\r\n        left: (wrapperOffset.left - tipOffset.left) * -1,\r\n        right: (wrapperOffset.left - tipOffset.left - tipWidth) * -1,\r\n      };\r\n\r\n      let positions;\r\n      // check whether the current spot are under or\r\n      // above the middle within the whole component. True\r\n      // if under the middle.\r\n      if (spotRect.top > $wrapper.height() / 2) {\r\n        // get positions for positioning the tooltip\r\n        // under the spot\r\n        positions = positionBeneath(spotRect, $tip);\r\n\r\n        // check if the tooltip will be out of the module. if\r\n        // so position the tooltip above the spot.\r\n        if (positions.tip.top + $tip.outerHeight(true) >= $wrapper.outerHeight()) {\r\n          positions = positionAbove(spotRect, $tip);\r\n        }\r\n      } else {\r\n        // get positions for positioning the tooltip\r\n        // above the spot\r\n        positions = positionAbove(spotRect, $tip);\r\n\r\n        // check if the tooltip will be out of the module. if\r\n        // so position the tooltip beneath the spot.\r\n        if (positions.tip.top <= 0) {\r\n          positions = positionBeneath(spotRect, $tip);\r\n        }\r\n      }\r\n\r\n      // re-position tip if it will be out\r\n      // of the left edge\r\n      if (tipRect.left <= TIP_WRAPPER_THRESHOLD) {\r\n        $tip.css('left', tipWidth * 0.5 + TIP_WRAPPER_THRESHOLD);\r\n      }\r\n\r\n      // re-position tip if it will be out\r\n      // of the right edge\r\n      if (tipRect.right >= $wrapper.width() - TIP_WRAPPER_THRESHOLD) {\r\n        $tip.css('left', $wrapper.width() - TIP_WRAPPER_THRESHOLD - tipWidth * 0.5);\r\n      }\r\n\r\n      // set calculated positions\r\n      $tip.css('top', positions.tip.top);\r\n      $line.css('top', positions.line.top);\r\n      $line.css('bottom', positions.line.bottom);\r\n      // set height of line\r\n      $line.css('height', Math.abs(positions.line.bottom - positions.line.top));\r\n    });\r\n  };\r\n\r\n  /**\r\n   * Get the positions for the elements of a hotspot to\r\n   * position the tooltip above the spot.\r\n   * @param spotRect  The rect of the spot the tooltip should be shown for\r\n   * @param $tip      The tooltip element\r\n   * @returns {{line: {top: number, bottom: number}, tip: {top: number}}}\r\n   */\r\n  const positionAbove = (spotRect, $tip) => {\r\n    return {\r\n      tip: {\r\n        top: spotRect.top - spotRect.radius * 0.5 - $tip.outerHeight(true) - TIP_SPOT_MARGIN,\r\n      },\r\n      line: {\r\n        top: spotRect.top - spotRect.radius * 0.5 - TIP_SPOT_MARGIN,\r\n        bottom: spotRect.top - spotRect.radius * 0.5 + 15,\r\n      },\r\n    };\r\n  };\r\n\r\n  /**\r\n   * Get the positions for the elements of a hotspot to\r\n   * position the tooltip beneath the spot.\r\n   * @param spotRect  The rect of the spot the tooltip should be shown for\r\n   * @param $tip      The tooltip element\r\n   * @returns {{line: {top: number, bottom: number}, tip: {top: number}}}\r\n   */\r\n  const positionBeneath = (spotRect, $tip) => {\r\n    return {\r\n      tip: {\r\n        top: spotRect.top + spotRect.radius * 0.5 + TIP_SPOT_MARGIN,\r\n      },\r\n      line: {\r\n        top: spotRect.top + spotRect.radius * 0.5 - 15,\r\n        bottom: spotRect.top + spotRect.radius * 0.5 + TIP_SPOT_MARGIN,\r\n      },\r\n    };\r\n  };\r\n\r\n  // Modal Handler\r\n  $('.modal--hotspots').on('hide.bs.modal', function () {\r\n    const clonedSpot = $('.page > .hotspot__spot');\r\n\r\n    clonedSpot.removeClass('hotspot--opened').animate(250);\r\n\r\n    setTimeout(() => {\r\n      $('.hotspot__spot.hotspot--clicked').addClass('hotspot--wasClicked').removeClass('hotspot--clicked');\r\n    }, 500);\r\n  });\r\n\r\n  // ===========================================================================\r\n  // == MAIN jQuery Plugin Function                                           ==\r\n  // ===========================================================================\r\n\r\n  // Iterate over all components\r\n  return this.each(function () {\r\n    const component = $(this);\r\n    const hotspotsImage = component.find('.hotspots__image');\r\n\r\n    if (component.hasClass('background-image-hotspots')) {\r\n      // Horizontal Hotspots (A)\r\n      component.find('.hotspot').each(function () {\r\n        init($(this), component);\r\n      });\r\n      reorder(component);\r\n    }\r\n\r\n    // Display component after image is loaded\r\n    hotspotsImage\r\n      .on('lazyloaded', function () {\r\n        // Recalc sliderAutoHeight after image is loaded\r\n        const sliderMain = $(this).closest('.hotspots-slider__main');\r\n        if (sliderMain.length > 0) {\r\n          sliderMain[0].swiper.updateAutoHeight();\r\n        }\r\n        // Cut text with ellipsis\r\n        for (const txtTip of document.querySelectorAll('.hotspot__tip > div')) {\r\n          txtTip.textContent += ' ';\r\n          lineClamp(txtTip, 2);\r\n        }\r\n        // Display hidden component\r\n        component.css('opacity', 1);\r\n\r\n        // reorder hotspots\r\n        reorder(component);\r\n      })\r\n      .addClass('lazyload');\r\n  });\r\n};\r\n\r\n$('.background-image-hotspots').backgroundImageHotspots();\r\n","var topLevel = typeof global !== 'undefined' ? global :\n    typeof window !== 'undefined' ? window : {}\nvar minDoc = require('min-document');\n\nvar doccy;\n\nif (typeof document !== 'undefined') {\n    doccy = document;\n} else {\n    doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'];\n\n    if (!doccy) {\n        doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'] = minDoc;\n    }\n}\n\nmodule.exports = doccy;\n","// http://codepen.io/Merri/pen/Dsuim\n/**\n  * TextOverflowClamp.js\n  *\n  * Updated 2013-05-09 to remove jQuery dependancy.\n  * But be careful with webfonts!\n  */\n\n// nieve window and document polyfill\nvar window = {};\nvar document = require('global/document');\n\n// bind function support for older browsers without it\n// https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind\nif (!Function.prototype.bind) {\n  Function.prototype.bind = function (oThis) {\n    if (typeof this !== \"function\") {\n      // closest thing possible to the ECMAScript 5 internal IsCallable function\n      throw new TypeError(\"Function.prototype.bind - what is trying to be bound is not callable\");\n    }\n \n    var aArgs = Array.prototype.slice.call(arguments, 1),\n        fToBind = this,\n        fNOP = function () {},\n        fBound = function () {\n          return fToBind.apply(this instanceof fNOP && oThis\n                                 ? this\n                                 : oThis,\n                               aArgs.concat(Array.prototype.slice.call(arguments)));\n        };\n \n    fNOP.prototype = this.prototype;\n    fBound.prototype = new fNOP();\n \n    return fBound;\n  };\n}\n\n// the actual meat is here\n(function(w, d){\n\tvar clamp, measure, text, lineWidth,\n\t\tlineStart, lineCount, wordStart,\n\t\tline, lineText, wasNewLine,\n    ce = d.createElement.bind(d),\n    ctn = d.createTextNode.bind(d);\n\t\n\t// measurement element is made a child of the clamped element to get it's style\n\tmeasure = ce('span');\n  \n\t(function(s){\n\t\ts.position = 'absolute'; // prevent page reflow\n\t\ts.whiteSpace = 'pre'; // cross-browser width results\n\t\ts.visibility = 'hidden'; // prevent drawing\n\t})(measure.style);\n\t\n\tclamp = function (el, lineClamp) {\n    // make sure the element belongs to the document\n    if(!el.ownerDocument || !el.ownerDocument === d) return;\n\t\t// reset to safe starting values\n\t\tlineStart = wordStart = 0;\n\t\tlineCount = 1;\n\t\twasNewLine = false; \n\t\tlineWidth = el.clientWidth;\n\t\t// get all the text, remove any line changes\n\t\ttext = (el.textContent || el.innerText).replace(/\\n/g, ' ');\n\t\t// remove all content\n\t\twhile(el.firstChild !== null)\n\t\t\tel.removeChild(el.firstChild);\n\t\t// add measurement element within so it inherits styles\n\t\tel.appendChild(measure);\n\t\t// http://ejohn.org/blog/search-and-dont-replace/\n\t\ttext.replace(/ /g, function(m, pos) {\n\t\t\t// ignore any further processing if we have total lines\n      if(lineCount === lineClamp) return;\n\t\t\t// create a text node and place it in the measurement element\n\t\t\tmeasure.appendChild(ctn(text.substr(lineStart, pos - lineStart)));\n\t\t\t// have we exceeded allowed line width?\n\t\t\tif(lineWidth < measure.clientWidth) {\n\t\t\t\tif(wasNewLine) {\n\t\t\t\t\t// we have a long word so it gets a line of it's own\n\t\t\t\t\tlineText = text.substr(lineStart, pos + 1 - lineStart);\n\t\t\t\t\t// next line start position\n\t\t\t\t\tlineStart = pos + 1;\n\t\t\t\t} else {\n\t\t\t\t\t// grab the text until this word\n\t\t\t\t\tlineText = text.substr(lineStart, wordStart - lineStart);\n\t\t\t\t\t// next line start position\n\t\t\t\t\tlineStart = wordStart;\n\t\t\t\t}\n\t\t\t\t// create a line element\n\t\t\t\tline = ce('span');\n\t\t\t\t// add text to the line element\n\t\t\t\tline.appendChild(ctn(lineText));\n\t\t\t\t// add the line element to the container\n\t\t\t\tel.appendChild(line);\n\t\t\t\t// yes, we created a new line\n\t\t\t\twasNewLine = true;\n        lineCount++;\n\t\t\t} else {\n\t\t\t\t// did not create a new line\n\t\t\t\twasNewLine = false;\n\t\t\t}\n\t\t\t// remember last word start position\n\t\t\twordStart = pos + 1;\n\t\t\t// clear measurement element\n\t\t\tmeasure.removeChild(measure.firstChild);\n\t\t});\n\t\t// remove the measurement element from the container\n\t\tel.removeChild(measure);\n\t\t// create the last line element\n\t\tline = ce('span');\n\t\t// give styles required for text-overflow to kick in\n\t\t(function(s){\n\t\t\ts.display = 'inline-block';\n\t\t\ts.overflow = 'hidden';\n\t\t\ts.textOverflow = 'ellipsis';\n\t\t\ts.whiteSpace = 'nowrap';\n\t\t\ts.width = '100%';\n\t\t})(line.style);\n\t\t// add all remaining text to the line element\n\t\tline.appendChild(ctn(text.substr(lineStart)));\n\t\t// add the line element to the container\n\t\tel.appendChild(line);\n\t}\n\tw.clamp = clamp;\n})(window, document);\n\n// export npm ready clamp function\nmodule.exports = window.clamp;\n","/* (ignored) */"],"sourceRoot":""}