{"version":3,"sources":["webpack:///./src/btu/js/components/Component.js","webpack:///./src/btu/js/components/ContentSlider.js"],"names":["domTree","WeakMap","configuration","Component","el","config","arguments","length","undefined","_classCallCheck","this","Error","$el","jQuery","$","set","hasOwnProperty","dom","setupDefaults","addListeners","get","elements","_component","__webpack_require__","_constants","ContentSlider","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","initSlick","$slider","find","$dotsContainer","slick","infinite","dots","appendDots","prevArrow","nextArrow","slidesToShow","slidesToScroll","responsive","breakpoint","BREAKPOINT","desktop","settings","centerMode"],"mappings":"ohBAAA,IAAMA,EAAU,IAAIC,QACdC,EAAgB,IAAID,QA4BpBE,aAOJ,SAAAA,EAAYC,GAAgB,IAAZC,EAAYC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,MAC1B,+FAD0BG,CAAAC,KAAAP,QACR,IAAPC,EACT,MAAM,IAAIO,MAAM,wEASlBD,KAAKE,IAAMR,aAAcS,EAAST,EAAKU,EAAEV,GAEjB,IAApBM,KAAKE,IAAIL,SAEbP,EAAQe,IAAIL,SACZR,EAAca,IAAIL,KAAML,GAEpBK,KAAKL,OAAOW,eAAe,SAC7BN,KAAKO,IAAMP,KAAKL,OAAOY,KAGzBP,KAAKQ,gBACLR,KAAKS,0IAuCL,OAAOjB,EAAckB,IAAIV,gCA6BnBW,GACNA,OACKX,KAAKO,IACLI,GAGLrB,EAAQe,IAAIL,KAAMW,mBAYlB,OAAOrB,EAAQoB,IAAIV,yBAIRP,sWCrJfmB,EAAAC,EAAA,yCACAC,EAAAD,EAAA,QAIME,cACJ,SAAAA,EAAYrB,gGAAIK,CAAAC,KAAAe,GAAA,IAAAC,mKAAAC,CAAAjB,MAAAe,EAAAG,WAAAC,OAAAC,eAAAL,IAAAM,KAAArB,KACRN,IADQ,OAEdsB,EAAKM,YAFSN,2XAMdhB,KAAKO,KACHgB,QAASvB,KAAKE,IAAIsB,KAAK,2BACvBC,eAAgBzB,KAAKE,IAAIsB,KAAK,8DAKlBxB,KACRO,IAAIgB,QAAQG,OAChBC,UAAU,EACVC,MAAM,EACNC,WAJY7B,KAIMO,IAAIkB,eACtBK,UAAW,qIACXC,UAAW,sIACXC,aAAc,EACdC,eAAgB,EAChBC,aAEIC,WAAYrB,EAAAsB,WAAWC,QACvBC,UACEX,UAAU,EACVY,YAAY,EACZP,aAAc,EACdC,eAAgB,0BAQblB","file":"43.c2bcd1533162547c5eb3.js","sourcesContent":["const domTree = new WeakMap();\nconst configuration = new WeakMap();\n\n/**\n * Component is a class that should be extended for every component that's being made. It\n * is a helper class to keep the code uniform.\n *\n * __PLEASE NOTE__: This is only to be extended, not instantiated.\n *\n * @example\n * import Component from 'component';\n *\n * class Foo extends Component {\n *   construction(el){\n *     super(el);\n *   }\n *\n *   setupDefaults(){\n *     // ...defaults go here\n *   }\n *\n *   addListeners(){\n *     // ...listeners go here\n *   }\n * }\n *\n * // Create a new Foo component\n * new Foo('.foo');\n */\nclass Component {\n  /**\n   * Component constructor - see {@link config} on how to pass in additional configuration to the constructor\n   *\n   * @param {string|Object} el - Main DOM element, you can pass a string such as `'.foo'` __or__ a jQuery object such as `$('.foo')`\n   * @param {Object} [config={ }] - Additional component configuration; reachable with `this.config`\n   */\n  constructor(el, config = {}){\n    if (typeof el === 'undefined') {\n      throw new Error('You must provide an element as a String type or a jQuery object type');\n    }\n\n    /**\n     * Main class element, this will be a jQuery instance\n     * This can be reachable at any time in your superclass with `this.$el`\n     *\n     * @type {Object}\n     */\n    this.$el = el instanceof jQuery ? el : $(el);\n\n    if (this.$el.length === 0) return;\n\n    domTree.set(this, {});\n    configuration.set(this, config);\n\n    if (this.config.hasOwnProperty('dom')) {\n      this.dom = this.config.dom;\n    }\n\n    this.setupDefaults();\n    this.addListeners();\n  }\n\n  /**\n   * This method is used for override;\n   * It's called directly after the element and configuration have been set up\n   * @abstract\n   */\n  setupDefaults(){}\n\n  /**\n   * This method is used for override;\n   * It's called directly after `setupDefaults()`, so everything is ready and setup at this point.\n   * @abstract\n   */\n  addListeners(){}\n\n  /**\n   * Get component configuration\n   *\n   * @example\n   * class Foo extends Component {\n   *   construction(el, config){\n   *     super(el, config);\n   *   }\n   *\n   *   setupDefaults(){\n   *     console.log(this.config.name); // Outputs \"Foo\"\n   *   }\n   * }\n   *\n   * // Create a new Foo component with some configuration\n   * new Foo('.foo', {\n   *   name: 'Foo'\n   * });\n   *\n   * @type {Object}\n   */\n  get config(){\n    return configuration.get(this);\n  }\n\n  /**\n   * Set DOM object\n   *\n   * @example\n   * class Foo extends Component {\n   *   construction(el){\n   *     super(el);\n   *   }\n   *\n   *   setupDefaults(){\n   *     this.dom = {\n   *       $container: this.$el.find('.container')\n   *     }\n   *   }\n   *\n   *   addListeners(){\n   *     //DOM object is available\n   *     console.log(this.dom.$container);\n   *   }\n   * }\n   *\n   * // Create a new Foo component\n   * new Foo('.foo');\n   *\n   * @type {Object}\n   */\n  set dom(elements){\n    elements = {\n      ...this.dom,\n      ...elements\n    };\n\n    domTree.set(this, elements);\n  }\n\n  /**\n   * Get DOM object\n   *\n   * @example\n   * this.dom\n   *\n   * @type {Object}\n   */\n  get dom(){\n    return domTree.get(this);\n  }\n}\n\nexport default Component;\n\n\n\n// WEBPACK FOOTER //\n// ./src/btu/js/components/Component.js","import Component from 'component';\nimport {\n  BREAKPOINT\n} from '../constants';\n\nclass ContentSlider extends Component {\n  constructor(el) {\n    super(el);\n    this.initSlick();\n  }\n\n  setupDefaults() {\n    this.dom = {\n      $slider: this.$el.find('.content-slider__slider'),\n      $dotsContainer: this.$el.find('.content-slider__dots')\n    };\n  }\n\n  initSlick() {\n    const _that = this;\n    _that.dom.$slider.slick({\n      infinite: false,\n      dots: true,\n      appendDots: _that.dom.$dotsContainer,\n      prevArrow: '<img class=\"slick-prev slick-arrow\" src=\"/dist/sites/btu/images/contentManaged/icons/icon-arrow-left-shadow.svg\" alt=\"prev slide\">',\n      nextArrow: '<img class=\"slick-next slick-arrow\" src=\"/dist/sites/btu/images/contentManaged/icons/icon-arrow-right-shadow.svg\" alt=\"next slide\">',\n      slidesToShow: 3,\n      slidesToScroll: 3,\n      responsive: [\n        {\n          breakpoint: BREAKPOINT.desktop,\n          settings: {\n            infinite: false,\n            centerMode: false,\n            slidesToShow: 1,\n            slidesToScroll: 1\n          }\n        }\n      ]\n    });\n  }\n}\n\nexport default ContentSlider;\n\n\n\n// WEBPACK FOOTER //\n// ./src/btu/js/components/ContentSlider.js"],"sourceRoot":""}