{"version":3,"file":"scripts/chunks/_app_app_scripts_core_views_O87-collapsible-table_ts.07ec5baa4d18877636fa.mjs","mappings":"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","sources":["webpack://rockworld/./app/scripts/core/views/O87-collapsible-table.ts","webpack://rockworld/./app/scripts/framework/accordion.ts","webpack://rockworld/./app/scripts/framework/server-side-views.ts"],"sourcesContent":["/**\r\n * O87 Collapsible Table\r\n *\r\n * @author Daniel Kvistgaard <dkvistgaard@vertic.com>\r\n */\r\n\r\nimport _ from 'underscore';\r\nimport Accordion from '../../framework/accordion';\r\nimport { ServerView } from '../../framework/server-side-views';\r\n\r\nconst View = ServerView.extend({\r\n  el: '.O87-collapsible-table',\r\n\r\n  onRender() {\r\n    const { userAgent } = window.navigator;\r\n    this.isIE = userAgent.indexOf('MSIE ') >= 0 || userAgent.indexOf('Trident/') >= 0;\r\n    this.tables = this.el.querySelectorAll('.O87-collapsible-table__table-wrap');\r\n\r\n    if (!this.tables) {\r\n      return;\r\n    }\r\n\r\n    this.setupAccordionTable();\r\n\r\n    window.addEventListener('resize', this.onResize.bind(this), false);\r\n    this.onResize();\r\n\r\n    setTimeout(() => {\r\n      this.scrollableTables();\r\n      this.fixIEAccordianImageWidth();\r\n    }, 0);\r\n  },\r\n\r\n  // IE fix on images not taking max-width 100%;\r\n  fixIEAccordianImageWidth() {\r\n    const accordionTargets = this.el.querySelectorAll('.js-accordion__target');\r\n\r\n    if (this.isIE) {\r\n      _.each(accordionTargets, (accordionTarget) => {\r\n        const accordianContainer = this.el.querySelector('.O87-collapsible-table__table-container');\r\n        const img = accordionTarget.querySelector('img');\r\n        if (accordionTarget && img) {\r\n          const imgStyle = this.getUnvisibleDimensions(img);\r\n          const accordionStyle = this.getUnvisibleDimensions(accordianContainer);\r\n          const imageWidth = imgStyle.w;\r\n          const accordionWidth = accordionStyle.w;\r\n          if (imageWidth > accordionWidth) {\r\n            console.log('Fix image in IE');\r\n            img.style.width = '100%';\r\n          }\r\n        }\r\n      });\r\n    }\r\n  },\r\n  // Continued - IE fix on images not taking max-width 100%;\r\n  getUnvisibleDimensions(obj) {\r\n    if (!obj) {\r\n      return false;\r\n    }\r\n    const clone = obj.cloneNode(true);\r\n    clone.style.visibility = 'hidden';\r\n    clone.style.width = '';\r\n    clone.style.height = '';\r\n    clone.style.maxWidth = '';\r\n    clone.style.maxHeight = '';\r\n\r\n    document.body.appendChild(clone);\r\n    const width = clone.offsetWidth;\r\n    const height = clone.offsetHeight;\r\n    body.removeChild(clone);\r\n    return { w: width, h: height };\r\n  },\r\n\r\n  setupAccordionTable() {\r\n    this.accordion = new Accordion({\r\n      parent: this.tables,\r\n      selectorParent: 'tr',\r\n      selector: '.js-accordion-clickable-row',\r\n      indicatorSelector: '.js-accordion',\r\n      targetIsNext: true,\r\n      slideDuration: 400,\r\n      slideEasing: 'easeInOutQuad',\r\n    });\r\n\r\n    this.tableAccordion = new Accordion({\r\n      parent: this.el,\r\n      selector: '.js-table-accordion',\r\n      target: '.js-table-accordion__target',\r\n      closeSelector: '.js-table-accordion__close',\r\n      slideDuration: 400,\r\n      slideEasing: 'easeInOutQuad',\r\n      beforeOpen: this.onBeforeTableAccordionOpen.bind(this),\r\n    });\r\n\r\n    const accordionTargets = this.el.querySelectorAll('.js-accordion-clickable-row');\r\n    const accordionTargetsLinks = this.el.querySelectorAll('.js-accordion-clickable-row td a[href]:not([href=\"#\"])');\r\n\r\n    this.el.addEventListener('accordion:open', this.openAccordion.bind(this));\r\n    this.el.addEventListener('shadow:heights:set', this.setShadowHeights.bind(this));\r\n\r\n    [].forEach.call(accordionTargets, (a) => a.addEventListener('click', this.onClick.bind(this), false));\r\n    [].forEach.call(accordionTargetsLinks, (a) => a.addEventListener('click', this.onClickLink.bind(this), false));\r\n  },\r\n\r\n  onClickLink(event) {\r\n    window.open(event.target.href, '_blank').focus();\r\n  },\r\n\r\n  onClick(event) {\r\n    event.preventDefault();\r\n\r\n    const isMobile = Modernizr.mq(`(max-width: ${App.mq.tablet - 1}px)`);\r\n    let targetElement = event.target.parentElement.nextElementSibling;\r\n    let contentOverlayId = 0;\r\n\r\n    if (targetElement == null) {\r\n      const parent = event.target.closest('.O87-collapsible-table__accordion-parent');\r\n      if (parent) {\r\n        targetElement = parent.parentElement.nextElementSibling;\r\n        contentOverlayId = parent.querySelector('.O87-collapsible-table__overlay-btn').dataset.contentOverlay;\r\n      }\r\n    }\r\n\r\n    if (!targetElement || (isMobile && contentOverlayId === 0)) {\r\n      return;\r\n    }\r\n\r\n    const accordionTarget = targetElement.querySelector('.O87-collapsible-table__accordion-target');\r\n\r\n    if (!accordionTarget || !accordionTarget.hasAttribute('data-mobile-img')) {\r\n      return;\r\n    }\r\n\r\n    const imgUrl = isMobile ? accordionTarget.dataset.mobileImg : accordionTarget.dataset.img;\r\n    let imgElement = this.el.querySelector(`div[data-img='${accordionTarget.dataset.img}']`).querySelector('img');\r\n    if (imgUrl && imgElement && imgElement.src === '') {\r\n      if (isMobile) {\r\n        imgElement = document\r\n          .querySelector(\r\n            `.content-overlay.is-tablet.is-active-overlay[data-content-overlay-target=\"${contentOverlayId}\"] > .container`\r\n          )\r\n          .querySelector('img');\r\n      }\r\n      imgElement.src = imgUrl;\r\n    }\r\n  },\r\n\r\n  onResize() {\r\n    this.checkScroll();\r\n  },\r\n\r\n  openAccordion() {\r\n    const accordionTarget = this.el.querySelector('.js-table-accordion');\r\n\r\n    if (!accordionTarget || accordionTarget.classList.contains('has-accordion-open')) {\r\n      return;\r\n    }\r\n\r\n    // Trigger click event\r\n    const event = document.createEvent('HTMLEvents');\r\n    event.initEvent('click', true, false);\r\n    accordionTarget.dispatchEvent(event);\r\n  },\r\n\r\n  setShadowHeights() {\r\n    [].forEach.call(this.tables, (table) => {\r\n      const shadowEl = table.parentNode.querySelector('.O87-collapsible-table__shadow');\r\n\r\n      this.setShadowHeight(shadowEl, table);\r\n    });\r\n  },\r\n\r\n  setShadowHeight(shadowEl, table) {\r\n    if (!shadowEl || !table) {\r\n      return;\r\n    }\r\n\r\n    let tableEl = null;\r\n    let thead = null;\r\n\r\n    [].forEach.call(table.children, (child) => {\r\n      if (child.tagName.toLowerCase() === 'table') {\r\n        tableEl = child;\r\n      }\r\n    });\r\n\r\n    if (!tableEl) {\r\n      this.hideShadow(shadowEl);\r\n\r\n      return;\r\n    }\r\n\r\n    [].forEach.call(tableEl.children, (child) => {\r\n      if (child.tagName.toLowerCase() === 'thead') {\r\n        thead = child;\r\n      }\r\n    });\r\n\r\n    if (!thead) {\r\n      this.hideShadow(shadowEl);\r\n\r\n      return;\r\n    }\r\n\r\n    shadowEl.classList.add('is-shown');\r\n    shadowEl.style.height = `${thead.offsetHeight}px`;\r\n  },\r\n\r\n  hideShadow(shadowEl) {\r\n    if (!shadowEl) {\r\n      return;\r\n    }\r\n\r\n    shadowEl.classList.remove('is-shown');\r\n  },\r\n\r\n  checkScroll() {\r\n    [].forEach.call(this.tables, (table) => {\r\n      const shadowEl = table.parentNode.querySelector('.O87-collapsible-table__shadow');\r\n\r\n      if (table.scrollWidth > table.clientWidth) {\r\n        this.hideShadow(shadowEl);\r\n      } else {\r\n        this.setShadowHeight(shadowEl, table);\r\n      }\r\n    });\r\n  },\r\n\r\n  onBeforeTableAccordionOpen(otherOpen, target, item, next) {\r\n    target.style.display = 'block';\r\n\r\n    this.setShadowHeights();\r\n\r\n    target.style.display = 'none';\r\n\r\n    next();\r\n  },\r\n\r\n  scrollableTables() {\r\n    const tables = this.el.querySelectorAll('.O87-collapsible-table__accordion-row table, .content-overlay table');\r\n    let updatedMarkup = false;\r\n\r\n    [].forEach.call(tables, (table) => {\r\n      if (table.parentElement.classList.contains('js-table-scroll')) {\r\n        return;\r\n      }\r\n\r\n      const tableHtml = table.outerHTML;\r\n      const wrap = `<div class=\"js-table-scroll\">${tableHtml}</div>`;\r\n\r\n      table.insertAdjacentHTML('afterend', wrap);\r\n      table.parentElement.removeChild(table);\r\n\r\n      updatedMarkup = true;\r\n    });\r\n\r\n    if (updatedMarkup) {\r\n      App.triggerMethod('recheck:view', '.js-table-scroll');\r\n    }\r\n  },\r\n});\r\n\r\nexport default View;\r\n","/* eslint-disable max-classes-per-file */\r\n/**\r\n * Accordion\r\n *\r\n * @author Daniel Kvistgaard <dkvistgaard@vertic.com>\r\n */\r\n\r\nimport _ from 'underscore';\r\nimport EventEmitter from 'events';\r\nimport { PubSubKeys, PubSub } from '@utils/pubSub';\r\nimport * as customFunctions from './custom-functions';\r\n\r\n// Setting up default options parameters\r\nconst defaults = {\r\n  selector: '.js-accordion',\r\n  forceOpen: 'js-accordion-force-open',\r\n  target: '.js-accordion__target',\r\n  closeSelector: false,\r\n  openClass: 'has-accordion-open',\r\n\r\n  targetIsNext: false,\r\n  closeOthers: true,\r\n  scrollIntoView: false,\r\n\r\n  slideDuration: 300,\r\n  slideEasing: 'easeOutQuad',\r\n  rowDisplay: 'block',\r\n};\r\n\r\n/**\r\n * Instance\r\n * A single instance of an accordion container.\r\n */\r\nclass Instance extends EventEmitter {\r\n  constructor(options) {\r\n    super();\r\n\r\n    this.eventsNamespace = [];\r\n    this.options = options;\r\n    this.group = this.options.group;\r\n    this.el = this.options.el;\r\n    this.isDesktopSelectorName = this.options.isDesktopSelectorName || App.mq.desktop;\r\n    this.mdTargetSelector = this.options.mdTargetSelector || `${this.options.mdSelector}--target`;\r\n    this.xsTargetSelector = this.options.xsTargetSelector || `${this.options.xsSelector}--target`;\r\n\r\n    // Used to check if tablet/mobile events are bound\r\n    this.mdEventsBound = false;\r\n    this.xsEventsBound = false;\r\n\r\n    // Checking if the media query matches the desktop size breakpoint\r\n    this.isDesktop = Modernizr.mq(`(min-width: ${this.isDesktopSelectorName}px)`);\r\n    this.isMobile = Modernizr.mq(`(max-width: ${App.mq.tablet - 1}px)`);\r\n\r\n    // Trigger for closing all accordions in this instance\r\n    this.on('close', () => {\r\n      // Selecting all normal accordion selectors to close them\r\n      const allElems = this.el.querySelectorAll(this.options.selector);\r\n      const otherOpen = this.el.querySelectorAll(`${this.options.selector}.${this.options.openClass}`);\r\n\r\n      // Looping through the accordions, getting their target element\r\n      // and triggering the close function\r\n      [].forEach.call(allElems, (elem) => {\r\n        const target = this.getElTarget(elem);\r\n        this.close(elem, target, !!otherOpen.length);\r\n      });\r\n\r\n      // If we aren't on a desktop device (mobile or tablet), then also the accordions\r\n      // for tablet and mobile devices needs to be closed.\r\n      if (!this.isDesktop && this.options.mdSelector) {\r\n        const allMdElems = this.el.querySelectorAll(this.options.mdSelector);\r\n\r\n        // Looping through the accordions, getting their target element\r\n        // and triggering the close function\r\n        [].forEach.call(allMdElems, (elem) => {\r\n          const target = this.getElTarget(elem, this.mdTargetSelector);\r\n          this.close(elem, target, !!otherOpen.length);\r\n        });\r\n      }\r\n    });\r\n\r\n    // Binding user action events\r\n    customFunctions.delegateSelectorInElement(\r\n      [this.el],\r\n      'click',\r\n      this.options.selector,\r\n      this.onClick.bind(this, this.options.target)\r\n    );\r\n    customFunctions.delegateSelectorInElement(\r\n      [this.el],\r\n      'click',\r\n      this.options.mdSelector,\r\n      this.onClick.bind(this, this.mdTargetSelector)\r\n    );\r\n    customFunctions.delegateSelectorInElement(\r\n      [this.el],\r\n      'click',\r\n      this.options.xsSelector,\r\n      this.onClick.bind(this, this.xsTargetSelector)\r\n    );\r\n\r\n    if (this.options.closeSelector && typeof this.options.closeSelector === 'string') {\r\n      customFunctions.delegateSelectorInElement(\r\n        [this.el],\r\n        'click',\r\n        this.options.closeSelector,\r\n        this.onClickClose.bind(this, this.options.target)\r\n      );\r\n      customFunctions.delegateSelectorInElement(\r\n        [this.el],\r\n        'click',\r\n        this.options.mdSelector,\r\n        this.onClickClose.bind(this, this.mdTargetSelector)\r\n      );\r\n      customFunctions.delegateSelectorInElement(\r\n        [this.el],\r\n        'click',\r\n        this.options.xsSelector,\r\n        this.onClickClose.bind(this, this.xsTargetSelector)\r\n      );\r\n    }\r\n  }\r\n\r\n  // Checking if the clicked target was a link\r\n  // that should follow user somewhere instead\r\n  // of opening accordion.\r\n  isTargetLink(target) {\r\n    if (target?.tagName?.toString() === 'A') {\r\n      // a link was clicked.\r\n      if (!customFunctions.is(target, this.options.targetSelector)) {\r\n        return true;\r\n      }\r\n    }\r\n    return false;\r\n  }\r\n\r\n  /**\r\n   * onClick\r\n   *\r\n   * @param {String} targetSelector\r\n   * @param {Object} e\r\n   */\r\n  onClick(targetSelector, e) {\r\n    if (this.isTargetLink(e.target)) {\r\n      if (!e.target.classList.contains(defaults.forceOpen)) {\r\n        return;\r\n      }\r\n    }\r\n\r\n    if (e && e.cancelable) {\r\n      e.preventDefault();\r\n      e.stopPropagation();\r\n    }\r\n\r\n    const { userAgent } = window.navigator;\r\n    this.isIE = userAgent.indexOf('MSIE ') >= 0 || userAgent.indexOf('Trident/') >= 0;\r\n\r\n    const el = this.setElement(e);\r\n\r\n    // Fix to stop some of the rows jumping in IE\r\n    const tableRow = el.parentNode.parentNode;\r\n    const tableRowChildren = tableRow.querySelectorAll('th');\r\n\r\n    if (this.isIE && tableRow) {\r\n      _.each(tableRowChildren, (element) => {\r\n        const initialWidth = window.getComputedStyle(element, null).getPropertyValue('width');\r\n        element.style.width = initialWidth;\r\n      });\r\n    }\r\n\r\n    // Stop if we don't have a target to open\r\n    if (!this.options.target && !targetSelector) {\r\n      return;\r\n    }\r\n\r\n    if (!this._canOpenBasedOnVersion(targetSelector)) {\r\n      return;\r\n    }\r\n\r\n    // Getting the target\r\n    const target = this.getElTarget(el, targetSelector);\r\n    this.clickOpen(el, target);\r\n  }\r\n\r\n  setElement(e) {\r\n    let el = e.target;\r\n    let className = this.options.selector;\r\n\r\n    if (className[0]?.toString() === '.') {\r\n      className = className.substring(1);\r\n    }\r\n    if (![].some.call(e.target.classList, (cl) => cl.includes(className))) {\r\n      const [firstEl] = e.target.parents(`[class*='${className}']`);\r\n      el = firstEl;\r\n    }\r\n    return el;\r\n  }\r\n\r\n  _canOpenBasedOnVersion(targetSelector) {\r\n    this.isDesktop = Modernizr.mq(`(min-width: ${this.isDesktopSelectorName}px)`);\r\n    this.isMobile = Modernizr.mq(`(max-width: ${App.mq.tablet - 1}px)`);\r\n\r\n    if (\r\n      this.isDesktop &&\r\n      (targetSelector === this.options.mdTargetSelector || targetSelector === this.options.xsTargetSelector)\r\n    ) {\r\n      return false;\r\n    }\r\n    if (!this.isMobile && targetSelector === this.options.xsTargetSelector) {\r\n      return false;\r\n    }\r\n    return true;\r\n  }\r\n\r\n  /**\r\n   * onClickClose\r\n   */\r\n  onClickClose(targetSelector, e) {\r\n    if (this.isTargetLink(e.target)) {\r\n      // if we got there - the link was clicked and it is not\r\n      // the trigger to open/close the accordion, so we\r\n      // should fallback to the default behaviour, not\r\n      // proceed with our code.\r\n      return;\r\n    }\r\n\r\n    if (e && e.cancelable) {\r\n      e.preventDefault();\r\n    }\r\n\r\n    // Stop if we don't have a target to close\r\n    if (!this.options.target && !targetSelector) {\r\n      return;\r\n    }\r\n\r\n    // Getting the target\r\n    const el = e.currentTarget;\r\n    const target = Instance.closest(el, targetSelector);\r\n    const btnEl = this.getElTarget(target, this.options.selector);\r\n\r\n    this.close(btnEl, target, false);\r\n  }\r\n\r\n  /**\r\n   * Opening an element and checking if others are open.\r\n   *\r\n   * @param {HTMLElement} el\r\n   * @param {HTMLElement} target\r\n   */\r\n  clickOpen(el, target) {\r\n    const opening = !el.classList.contains(this.options.openClass);\r\n\r\n    // Figuring out if other accordion items are open\r\n    const otherOpen = this.el.querySelectorAll(`${this.options.selector}.${this.options.openClass}`);\r\n\r\n    // Close other open accordions (unless closeOthers are set to false)\r\n    if (opening && this.options.closeOthers && otherOpen.length > 0) {\r\n      this.emit('close');\r\n    }\r\n\r\n    // Toggling the accordion\r\n    if (opening) {\r\n      this.open(el, target, !!otherOpen.length);\r\n    } else {\r\n      this.close(el, target, false);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * getElTarget\r\n   * Getting the target element of a specified element in its context.\r\n   *\r\n   * @param {HTMLElement} el - the DOM element of which we want to find its target\r\n   * @param {String} targetSelector\r\n   */\r\n  getElTarget(el, targetSelector) {\r\n    // Getting the target\r\n    const containsTarget = (targetSelector || this.options.target).replace('.', '');\r\n    const elem = this.options.selectorParent ? Instance.closest(el, this.options.selectorParent) : el;\r\n    let target = null;\r\n\r\n    if (this.options.targetIsNext) {\r\n      const nextEl = elem.nextElementSibling;\r\n      const nextIsElem = nextEl && nextEl instanceof HTMLElement;\r\n      target = nextIsElem && nextEl.classList.contains(containsTarget) ? nextEl : false;\r\n\r\n      if (!target && nextIsElem && nextEl.querySelector(targetSelector || this.options.target)) {\r\n        target = nextEl.querySelector(targetSelector || this.options.target);\r\n      }\r\n\r\n      if (target) {\r\n        return target;\r\n      }\r\n    }\r\n\r\n    target = elem.parentNode.querySelector(targetSelector || this.options.target);\r\n\r\n    // If we can't find the target within the parentNode, then we'll expand the search a bit\r\n    if (!target) {\r\n      target = elem.parentNode.parentNode.querySelector(targetSelector || this.options.target);\r\n    }\r\n\r\n    return target;\r\n  }\r\n\r\n  /**\r\n   * Opening an accordion element.\r\n   *\r\n   * @param {HTMLElement} el\r\n   * @param {HTMLElement} target\r\n   */\r\n  open(el, target, otherOpen) {\r\n    const targetEl = !target || typeof target === 'string' ? this.getElTarget(el, target) : target;\r\n    const item = this.options.item ? Instance.closest(el, this.options.item) : null;\r\n    const selectorParent =\r\n      targetEl && this.options.selectorParent ? Instance.closest(targetEl, this.options.selectorParent) : null;\r\n\r\n    el.classList.add(this.options.openClass);\r\n\r\n    if (this.options.parentOpenClass && !otherOpen) {\r\n      this.el.classList.add(this.options.openClass);\r\n    }\r\n\r\n    if (item) {\r\n      item.classList.add(this.options.openClass);\r\n    }\r\n\r\n    if (targetEl) {\r\n      targetEl.classList.add(this.options.openClass);\r\n    }\r\n\r\n    if (selectorParent) {\r\n      selectorParent.classList.add(`${this.options.openClass}--parent`);\r\n    }\r\n\r\n    if (this.options.indicatorSelector) {\r\n      [].forEach.call(el.querySelectorAll(this.options.indicatorSelector), (e) => {\r\n        e.classList.add(this.options.openClass);\r\n      });\r\n    }\r\n\r\n    // Calling beforeOpen if it's set.\r\n    // beforeOpen makes it possible to do calculations or similar before the accordion item opens\r\n    if (this.options.beforeOpen && _.isFunction(this.options.beforeOpen)) {\r\n      this.options.beforeOpen(otherOpen, targetEl, item, () => {\r\n        if (targetEl) {\r\n          this.slide(targetEl, 'down');\r\n        }\r\n      });\r\n    } else if (targetEl) {\r\n      this.slide(targetEl, 'down');\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Closing an accordion element.\r\n   *\r\n   * @param {HTMLElement} el\r\n   * @param {HTMLElement} target\r\n   */\r\n  close(el, target, otherOpen) {\r\n    const targetEl = !target || typeof target === 'string' ? this.getElTarget(el, target) : target;\r\n    const item = this.options.item ? Instance.closest(el, this.options.item) : null;\r\n\r\n    // Prevent closing elements that aren't open\r\n    if (!el.classList.contains(this.options.openClass)) {\r\n      return;\r\n    }\r\n\r\n    el.classList.remove(this.options.openClass);\r\n\r\n    if (this.options.parentOpenClass && !otherOpen) {\r\n      this.el.classList.remove(this.options.openClass);\r\n    }\r\n\r\n    if (item) {\r\n      item.classList.remove(this.options.openClass);\r\n    }\r\n\r\n    if (targetEl) {\r\n      targetEl.classList.remove(this.options.openClass);\r\n    }\r\n\r\n    if (this.options.indicatorSelector) {\r\n      [].forEach.call(el.querySelectorAll(this.options.indicatorSelector), (e) => {\r\n        e.classList.remove(this.options.openClass);\r\n      });\r\n    }\r\n\r\n    // Calling beforeClose if it's set.\r\n    // beforeClose makes it possible to do calculations or similar before the accordion item closes\r\n    if (this.options.beforeClose && _.isFunction(this.options.beforeClose)) {\r\n      this.options.beforeClose(otherOpen, targetEl, item, () => {\r\n        if (targetEl) {\r\n          this.slide(targetEl, 'up');\r\n        }\r\n      });\r\n    } else if (targetEl) {\r\n      this.slide(targetEl, 'up');\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Clearing all tablet/mobile setup (classes and stylings).\r\n   * This is used when we go from tablet/mobile to desktop.\r\n   */\r\n  clearMdSetup() {\r\n    const mdSelectors = this.el.querySelectorAll(this.options.mdSelector);\r\n    const mdTargets = this.el.querySelectorAll(this.mdTargetSelector);\r\n\r\n    [].forEach.call(mdSelectors, (mdSelector) => {\r\n      mdSelector.classList.remove(this.options.openClass);\r\n    });\r\n\r\n    [].forEach.call(mdTargets, (mdTarget) => {\r\n      mdTarget.style.display = '';\r\n      mdTarget.classList.add(this.options.openClass);\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Clearing all mobile setup (classes and stylings).\r\n   * This is used when we go from mobile to tablet/desktop.\r\n   */\r\n  clearXsSetup() {\r\n    const xsSelectors = this.el.querySelectorAll(this.options.xsSelector);\r\n    const xsTargets = this.el.querySelectorAll(this.xsTargetSelector);\r\n\r\n    [].forEach.call(xsSelectors, (xsSelector) => {\r\n      xsSelector.classList.remove(this.options.openClass);\r\n    });\r\n\r\n    [].forEach.call(xsTargets, (xsTarget) => {\r\n      xsTarget.style.display = '';\r\n      xsTarget.classList.add(this.options.openClass);\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Slide up or down functionality\r\n   * Velocity doesn't handle stress sliding very well, so we had to remake\r\n   * the functionality.\r\n   *\r\n   * @param {HTMLElement} target\r\n   * @param {String} direction - values: 'up' or 'down'\r\n   */\r\n  async slide(target, direction) {\r\n    const self = this;\r\n    const selectorParent = this.options.selectorParent ? Instance.closest(target, this.options.selectorParent) : null;\r\n    const targetStyles = window.getComputedStyle(target);\r\n    let height = 0;\r\n    let paddingTop = 0;\r\n    let paddingBottom = 0;\r\n\r\n    // Stop any previous velocity animations\r\n    const Velocity = (await import('velocity-animate')).default;\r\n    Velocity.animate(target, 'stop');\r\n\r\n    if (direction === 'down') {\r\n      const prevHeight = target.offsetHeight;\r\n      const prevPaddingTop = prevHeight === 0 ? 0 : parseInt(targetStyles.getPropertyValue('padding-top') || 0, 10);\r\n      const prevPaddingBottom =\r\n        prevHeight === 0 ? 0 : parseInt(targetStyles.getPropertyValue('padding-bottom') || 0, 10);\r\n\r\n      target.style.display = this.options.rowDisplay;\r\n      target.style.height = '';\r\n      target.style.paddingTop = '';\r\n      target.style.paddingBottom = '';\r\n\r\n      height = target.offsetHeight;\r\n      paddingTop = parseInt(targetStyles.getPropertyValue('padding-top'), 10);\r\n      paddingBottom = parseInt(targetStyles.getPropertyValue('padding-bottom'), 10);\r\n\r\n      target.style.height = `${prevHeight}px`;\r\n      target.style.paddingTop = `${prevPaddingTop}px`;\r\n      target.style.paddingBottom = `${prevPaddingBottom}px`;\r\n    }\r\n\r\n    target.style.overflow = 'hidden';\r\n\r\n    Velocity.animate(\r\n      target,\r\n      {\r\n        height,\r\n        paddingTop,\r\n        paddingBottom,\r\n      },\r\n      {\r\n        duration: this.options.slideDuration,\r\n        easing: this.options.slideEasing,\r\n\r\n        complete() {\r\n          if (direction === 'up') {\r\n            target.style.display = '';\r\n\r\n            if (selectorParent) {\r\n              selectorParent.classList.remove(`${self.options.openClass}--parent`);\r\n            }\r\n          }\r\n\r\n          target.style.overflow = '';\r\n          target.style.height = '';\r\n          target.style.paddingTop = '';\r\n          target.style.paddingBottom = '';\r\n\r\n          if (\r\n            direction === 'down' &&\r\n            (self.options.scrollIntoView === true ||\r\n              (App.mq[self.options.scrollIntoView] &&\r\n                Modernizr.mq(`(max-width: ${App.mq[self.options.scrollIntoView] - 1}px)`)))\r\n          ) {\r\n            self.scrollIntoView(target);\r\n          }\r\n        },\r\n      }\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Scrolling the target into view.\r\n   *\r\n   * @param {HTMLElement} target\r\n   */\r\n  async scrollIntoView(target) {\r\n    const targetEl = this.options.item ? Instance.closest(target, this.options.item) : target;\r\n    const headerHeight = PubSub.request<number>(PubSubKeys.headerGetHeight);\r\n    const scrollTop = window.scrollY || window.pageYOffset;\r\n    const top = targetEl.getBoundingClientRect().top + scrollTop;\r\n    const bottom = top + targetEl.offsetHeight;\r\n    const windowTop = scrollTop + headerHeight;\r\n    const windowBottom = scrollTop + window.innerHeight;\r\n    if (top < windowTop || bottom > windowBottom) {\r\n      const Velocity = (await import('velocity-animate')).default;\r\n      Velocity.animate(targetEl, 'scroll', {\r\n        offset: (headerHeight + 50) * -1,\r\n        duration: this.options.slideDuration,\r\n        easing: 'easeOutQuad',\r\n      });\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Finding the closest element in the parent tree.\r\n   *\r\n   * @param {HTMLElement} el\r\n   * @param {String} target\r\n   */\r\n  static closest(el, target) {\r\n    let ancestor = el;\r\n\r\n    if (!document.documentElement.contains(el)) {\r\n      return null;\r\n    }\r\n\r\n    do {\r\n      if (ancestor.matches ? ancestor.matches(target) : ancestor.msMatchesSelector(target)) {\r\n        return ancestor;\r\n      }\r\n\r\n      ancestor = ancestor.parentElement;\r\n    } while (ancestor !== null);\r\n\r\n    return null;\r\n  }\r\n}\r\n\r\n/**\r\n * Setting up all accordion instances.\r\n * If the parent options is set as a string selector, then we'll loop\r\n * through all elements matching the selector and initialize a new instance\r\n * for that element. All items within that parent matching the selector\r\n * parameter will then get the accordion functionality attached.\r\n */\r\nclass Accordion {\r\n  constructor(options) {\r\n    this.options = _.extend({}, defaults, options);\r\n    this.instances = [];\r\n\r\n    if (this.options.parent instanceof NodeList) {\r\n      [].forEach.call(this.options.parent, (parent) => {\r\n        this.createInstance(parent);\r\n      });\r\n    } else if (this.options.parent && (_.isString(this.options.parent) || _.isArray(this.options.parent))) {\r\n      const parents = _.isString(this.options.parent)\r\n        ? document.querySelectorAll(this.options.parent)\r\n        : this.options.parent;\r\n\r\n      [].forEach.call(parents, (parent) => {\r\n        this.createInstance(parent);\r\n      });\r\n    } else if (this.options.parent) {\r\n      this.createInstance(this.options.parent);\r\n    }\r\n    return this;\r\n  }\r\n\r\n  createInstance(parent) {\r\n    const initializedClass = 'accordion--initialized';\r\n    if (parent.classList.contains(initializedClass)) {\r\n      return;\r\n    }\r\n\r\n    this.instances.push(\r\n      new Instance(\r\n        _.extend(\r\n          {\r\n            el: parent,\r\n            group: this,\r\n          },\r\n          this.options\r\n        )\r\n      )\r\n    );\r\n    parent.classList.add(initializedClass);\r\n  }\r\n\r\n  open(el, target) {\r\n    [].forEach.call(this.instances, (instance) => {\r\n      instance.clickOpen(el, target);\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Closing all accordions of all instances.\r\n   */\r\n  closeAll() {\r\n    [].forEach.call(this.instances, (instance) => {\r\n      instance.emit('close');\r\n    });\r\n  }\r\n}\r\n\r\nexport default Accordion;\r\n","/**\r\n * Server-side rendered View\r\n * Binding the Marionette View to all server-side rendered elements\r\n * matching the el selector.\r\n *\r\n * @author Daniel Kvistgaard <dkvistgaard@vertic.com>\r\n */\r\nimport _ from 'underscore';\r\nimport { Marionette } from './vendor';\r\n\r\nconst getNewView = function newView(view, extendView) {\r\n  const viewClone = _.clone(view);\r\n\r\n  // Creating a new view with the same functionality as this view\r\n  const NewView = extendView.extend();\r\n  _.extend(NewView.prototype, _.omit(viewClone, 'el'));\r\n\r\n  return NewView;\r\n};\r\n\r\nconst ServerView = Marionette.View.extend({\r\n  constructor: function constructor(options) {\r\n    // If the selector is a string and not an id selector\r\n    if (typeof this.el === 'string' && this.el.substr(0, 1) !== '#') {\r\n      const elems = document.querySelectorAll(this.el);\r\n      const hasViewClass = `has-view--${this.el.replace(/\\s/g, '-').replace(/[.,]/g, '')}`;\r\n\r\n      // Stop if no elements are found\r\n      if (!elems || elems.length === 0) {\r\n        return;\r\n      }\r\n\r\n      // Loop through all found elements to initialise a new view per element\r\n      [].forEach.call(elems, (elem) => {\r\n        if (elem.classList.contains(hasViewClass)) {\r\n          return;\r\n        }\r\n\r\n        // Creating a new view with the same functionality as this view\r\n        const ElView = getNewView(this, ServerView);\r\n        ElView.prototype.el = elem;\r\n\r\n        elem.classList.add(hasViewClass);\r\n\r\n        // Initialize the new view\r\n        new ElView(options); // eslint-disable-line no-new\r\n      });\r\n    } else {\r\n      this.triggerMethod('before:render');\r\n\r\n      // Initialize a normal Marionette View\r\n      Marionette.View.apply(this, [options]);\r\n\r\n      this.triggerMethod('render');\r\n    }\r\n  },\r\n});\r\n\r\nconst ServerCollection = Marionette.CollectionView.extend({\r\n  sort: false,\r\n\r\n  constructor: function constructor(options) {\r\n    // If the selector is a string and not an id selector\r\n    if (typeof this.el === 'string' && this.el.substr(0, 1) !== '#') {\r\n      const elems = document.querySelectorAll(this.el);\r\n      const hasViewClass = `has-view--${this.el.replace(/\\s/g, '-').replace(/[.,]/g, '')}`;\r\n\r\n      // Stop if no elements are found\r\n      if (!elems || elems.length === 0) {\r\n        return;\r\n      }\r\n\r\n      // Loop through all found elements to initialise a new view per element\r\n      [].forEach.call(elems, (elem) => {\r\n        if (elem.classList.contains(hasViewClass)) {\r\n          return;\r\n        }\r\n\r\n        // Creating a new view with the same functionality as this view\r\n        const ElView = getNewView(this, ServerCollection);\r\n        ElView.prototype.el = elem;\r\n\r\n        elem.classList.add(hasViewClass);\r\n\r\n        // Initialize the new view\r\n        new ElView(options); // eslint-disable-line no-new\r\n      });\r\n    } else {\r\n      this.triggerMethod('before:render');\r\n\r\n      // Initialize a normal Marionette CollectionView\r\n      Marionette.CollectionView.apply(this, [options]);\r\n\r\n      this.triggerMethod('render');\r\n    }\r\n  },\r\n\r\n  _showEmptyView() {\r\n    const ChildView = this.childView;\r\n    const childEl = _.clone(ChildView.prototype).el;\r\n    const children = this.el.querySelectorAll(childEl);\r\n\r\n    if (!children) {\r\n      Marionette.CollectionView.prototype._showEmptyView.apply(this);\r\n      return;\r\n    }\r\n\r\n    this.triggerMethod('before:render:children', this);\r\n    this._startBuffering();\r\n\r\n    [].forEach.call(children, (child, index) => {\r\n      const View = getNewView(ChildView.prototype, ServerView);\r\n      View.prototype.el = child;\r\n\r\n      const view = new View();\r\n\r\n      this.addChildView(view, index);\r\n    });\r\n\r\n    this.children._updateLength();\r\n\r\n    this._endBuffering();\r\n    this.triggerMethod('render:children', this);\r\n  },\r\n\r\n  buildChildView(child, ChildViewClass, childViewOptions) {\r\n    const options = _.extend({ model: child, banana: 'split' }, childViewOptions);\r\n    delete ChildViewClass.prototype.el;\r\n\r\n    return new ChildViewClass(options);\r\n  },\r\n});\r\n\r\nexport { ServerView, ServerCollection };\r\n"],"names":["View","ServerView","extend","el","onRender","userAgent","window","navigator","this","isIE","indexOf","tables","querySelectorAll","setupAccordionTable","addEventListener","onResize","bind","setTimeout","scrollableTables","fixIEAccordianImageWidth","accordionTargets","_","accordionTarget","accordianContainer","querySelector","img","imgStyle","getUnvisibleDimensions","accordionStyle","w","console","log","style","width","obj","clone","cloneNode","visibility","height","maxWidth","maxHeight","document","body","appendChild","offsetWidth","offsetHeight","removeChild","h","accordion","Accordion","parent","selectorParent","selector","indicatorSelector","targetIsNext","slideDuration","slideEasing","tableAccordion","target","closeSelector","beforeOpen","onBeforeTableAccordionOpen","accordionTargetsLinks","openAccordion","setShadowHeights","forEach","call","a","onClick","onClickLink","event","open","href","focus","preventDefault","isMobile","Modernizr","mq","App","tablet","targetElement","parentElement","nextElementSibling","contentOverlayId","closest","dataset","contentOverlay","hasAttribute","imgUrl","mobileImg","imgElement","src","checkScroll","classList","contains","createEvent","initEvent","dispatchEvent","table","shadowEl","parentNode","setShadowHeight","tableEl","thead","children","child","tagName","toLowerCase","add","hideShadow","remove","scrollWidth","clientWidth","otherOpen","item","next","display","updatedMarkup","wrap","outerHTML","insertAdjacentHTML","triggerMethod","defaults","forceOpen","openClass","closeOthers","scrollIntoView","rowDisplay","Instance","EventEmitter","constructor","options","super","eventsNamespace","group","isDesktopSelectorName","desktop","mdTargetSelector","mdSelector","xsTargetSelector","xsSelector","mdEventsBound","xsEventsBound","isDesktop","on","allElems","elem","getElTarget","close","length","allMdElems","customFunctions","onClickClose","isTargetLink","toString","targetSelector","e","cancelable","stopPropagation","setElement","tableRow","tableRowChildren","element","initialWidth","getComputedStyle","getPropertyValue","_canOpenBasedOnVersion","clickOpen","className","substring","some","cl","includes","firstEl","parents","currentTarget","btnEl","opening","emit","containsTarget","replace","nextEl","nextIsElem","HTMLElement","targetEl","parentOpenClass","slide","beforeClose","clearMdSetup","mdSelectors","mdTargets","mdTarget","clearXsSetup","xsSelectors","xsTargets","xsTarget","direction","self","targetStyles","paddingTop","paddingBottom","Velocity","default","animate","prevHeight","prevPaddingTop","parseInt","prevPaddingBottom","overflow","duration","easing","complete","headerHeight","PubSub","request","PubSubKeys","headerGetHeight","scrollTop","scrollY","pageYOffset","top","getBoundingClientRect","bottom","windowTop","windowBottom","innerHeight","offset","ancestor","documentElement","matches","msMatchesSelector","instances","NodeList","createInstance","initializedClass","push","instance","closeAll","getNewView","view","extendView","viewClone","NewView","prototype","Marionette","substr","elems","hasViewClass","ElView","apply","ServerCollection","CollectionView","sort","_showEmptyView","ChildView","childView","childEl","_startBuffering","index","addChildView","_updateLength","_endBuffering","buildChildView","ChildViewClass","childViewOptions","model","banana"],"sourceRoot":""}