{"version":3,"sources":["webpack:///./app/components/m/table/table--scroll.js","webpack:///./app/components/m/table/table--sortable.js","webpack:///./app/components/m/table/index.js"],"names":["determineOverflow","content","container","containerMetrics","getBoundingClientRect","containerMetricsRight","Math","floor","right","containerMetricsLeft","left","contentMetrics","contentMetricsRight","contentMetricsLeft","scrollTable","selector","arguments","length","undefined","options","settings","Object","assign","navTravelling","navTravelDirection","navTravelDistance","focusable","elements","Array","from","document","querySelectorAll","resizeTimer","elem","scrolltableWrap","querySelector","table","navLeft","navRight","last_known_scroll_position","ticking","updateNav","setAttribute","addEventListener","window","scrollY","requestAnimationFrame","styleOfTransform","getComputedStyle","tr","getPropertyValue","amount","abs","parseInt","split","style","transform","classList","add","scrollLeft","tableDirection","availableScrollLeft","remove","navBarRightEdge","navBarScrollerRightEdge","availableScrollRight","onresize","clearTimeout","setTimeout","curElem","curSort","getCellValue","idx","children","innerText","textContent","comparer","asc","a","b","v1","v2","isNaN","toString","localeCompare","sortTable","svgSortIcon","tables","thead","forEach","_","insertAdjacentHTML","ev","target","matches","th","tbody","sort","parentNode","indexOf","appendChild","removeAttribute","className","icon","$","on"],"mappings":"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","file":"table.chunk.js","sourcesContent":["/**\r\n * Determine Overflow\r\n * @param {object} content\r\n * @param {object} container\r\n */\r\nfunction determineOverflow(content, container) {\r\n  const containerMetrics = container.getBoundingClientRect();\r\n  const containerMetricsRight = Math.floor(containerMetrics.right + 1); // +1 fix rounding errors\r\n  const containerMetricsLeft = Math.floor(containerMetrics.left);\r\n  const contentMetrics = content.getBoundingClientRect();\r\n  const contentMetricsRight = Math.floor(contentMetrics.right);\r\n  const contentMetricsLeft = Math.floor(contentMetrics.left);\r\n\r\n  if (containerMetricsLeft > contentMetricsLeft && containerMetricsRight < contentMetricsRight) {\r\n    return 'both';\r\n  } else if (contentMetricsLeft < containerMetricsLeft) {\r\n    return 'left';\r\n  } else if (contentMetricsRight > containerMetricsRight) {\r\n    return 'right';\r\n  } else {\r\n    return 'none';\r\n  }\r\n}\r\n\r\n/**\r\n * Add scroll indicator to large table\r\n * @param {string} selector\r\n * @param {object} opts\r\n */\r\nfunction scrollTable(selector = '.scrolltable', options = {}) {\r\n  const settings = Object.assign(\r\n    {},\r\n    {\r\n      navTravelling: false,\r\n      navTravelDirection: '',\r\n      navTravelDistance: 150,\r\n      focusable: true,\r\n    },\r\n    options\r\n  );\r\n  const elements = Array.from(document.querySelectorAll(selector));\r\n  let resizeTimer = null;\r\n\r\n  // Interate over all elements\r\n  for (const elem of elements) {\r\n    const scrolltableWrap = elem.querySelector('.scrolltable__wrap');\r\n    const table = elem.querySelector('.table');\r\n    const navLeft = elem.querySelector('.scrolltable__nav--left');\r\n    const navRight = elem.querySelector('.scrolltable__nav--right');\r\n    // Handle the scroll of the horizontal container\r\n    let last_known_scroll_position = 0;\r\n    let ticking = false;\r\n\r\n    // Check if all required DOM Elements given\r\n    if (scrolltableWrap === null || table === null || navLeft === null || navRight === null) {\r\n      continue;\r\n    }\r\n\r\n    /**\r\n     * Helper function, store overflowing direction with data attribute\r\n     */\r\n    const updateNav = function () {\r\n      elem.setAttribute('data-overflowing', determineOverflow(table, scrolltableWrap));\r\n    };\r\n\r\n    // Inital calls\r\n    updateNav();\r\n    settings.focusable && table.setAttribute('tabindex', '1');\r\n\r\n    // +++ Handler: Table scroll\r\n    scrolltableWrap.addEventListener('scroll', function () {\r\n      last_known_scroll_position = window.scrollY;\r\n      if (!ticking) {\r\n        window.requestAnimationFrame(function () {\r\n          updateNav();\r\n          ticking = false;\r\n        });\r\n      }\r\n      ticking = true;\r\n    });\r\n\r\n    // +++ Handler: Transition\r\n    table.addEventListener(\r\n      'transitionend',\r\n      function () {\r\n        // get the value of the transform, apply that to the current scroll position (so get the scroll pos first) and then remove the transform\r\n        const styleOfTransform = window.getComputedStyle(table, null);\r\n        const tr =\r\n          styleOfTransform.getPropertyValue('-webkit-transform') || styleOfTransform.getPropertyValue('transform');\r\n        // If there is no transition we want to default to 0 and not null\r\n        const amount = Math.abs(parseInt(tr.split(',')[4]) || 0);\r\n        table.style.transform = 'none';\r\n        table.classList.add('table--no-transition');\r\n        // Now lets set the scroll position\r\n        if (settings.navTravelDirection === 'left') {\r\n          scrolltableWrap.scrollLeft = scrolltableWrap.scrollLeft - amount;\r\n        } else {\r\n          scrolltableWrap.scrollLeft = scrolltableWrap.scrollLeft + amount;\r\n        }\r\n        settings.navTravelling = false;\r\n      },\r\n      false\r\n    );\r\n\r\n    // Handler: Left Arrow\r\n    navLeft.addEventListener('click', function () {\r\n      // If we have content overflowing both sides or on the left\r\n      const tableDirection = determineOverflow(table, scrolltableWrap);\r\n      if (tableDirection === 'left' || tableDirection === 'both') {\r\n        // Find how far this panel has been scrolled\r\n        const availableScrollLeft = scrolltableWrap.scrollLeft;\r\n        // If the space available is less than two lots of our desired distance, just move the whole amount\r\n        // otherwise, move by the amount in the settings\r\n        if (availableScrollLeft < settings.navTravelDistance * 2) {\r\n          table.style.transform = 'translateX(' + availableScrollLeft + 'px)';\r\n        } else {\r\n          table.style.transform = 'translateX(' + settings.navTravelDistance + 'px)';\r\n        }\r\n        // We do want a transition (this is set in CSS) when moving so remove the class that would prevent that\r\n        table.classList.remove('table--no-transition');\r\n        // Update our settings\r\n        settings.navTravelDirection = 'left';\r\n        settings.navTravelling = true;\r\n      }\r\n      // Now update the attribute in the DOM\r\n      updateNav();\r\n    });\r\n\r\n    // Handler: Right Arrow\r\n    navRight.addEventListener('click', function () {\r\n      // If in the middle of a move return\r\n      // If we have content overflowing both sides or on the right\r\n      const tableDirection = determineOverflow(table, scrolltableWrap);\r\n      if (tableDirection === 'right' || tableDirection === 'both') {\r\n        // Get the right edge of the container and content\r\n        const navBarRightEdge = table.getBoundingClientRect().right;\r\n        const navBarScrollerRightEdge = scrolltableWrap.getBoundingClientRect().right;\r\n        // Now we know how much space we have available to scroll\r\n        const availableScrollRight = Math.floor(navBarRightEdge - navBarScrollerRightEdge);\r\n        // If the space available is less than two lots of our desired distance, just move the whole amount\r\n        // otherwise, move by the amount in the settings\r\n        if (availableScrollRight < settings.navTravelDistance * 2) {\r\n          table.style.transform = 'translateX(-' + availableScrollRight + 'px)';\r\n        } else {\r\n          table.style.transform = 'translateX(-' + settings.navTravelDistance + 'px)';\r\n        }\r\n        // We do want a transition (this is set in CSS) when moving so remove the class that would prevent that\r\n        table.classList.remove('table--no-transition');\r\n        // Update our settings\r\n        settings.navTravelDirection = 'right';\r\n        settings.navTravelling = true;\r\n      }\r\n      // Now update the attribute in the DOM\r\n      updateNav();\r\n    });\r\n  }\r\n\r\n  window.onresize = () => {\r\n    clearTimeout(resizeTimer);\r\n    resizeTimer = setTimeout(() => {\r\n      for (const curElem of elements) {\r\n        const table = curElem.querySelector('.table');\r\n        const scrolltableWrap = curElem.querySelector('.scrolltable__wrap');\r\n\r\n        if (table && scrolltableWrap) {\r\n          curElem.setAttribute('data-overflowing', determineOverflow(table, scrolltableWrap));\r\n        }\r\n      }\r\n    }, 500);\r\n  };\r\n}\r\n\r\nexport default scrollTable;\r\n","// Sortable Table\r\n// Ideas taken from:\r\n// https://stackoverflow.com/questions/14267781/sorting-html-table-with-javascript\r\n\r\nconst curSort = {};\r\n\r\n/**\r\n * Return Text of cell\r\n * @param {object} tr - table row element\r\n * @param {number} idx - cell index\r\n */\r\nconst getCellValue = (tr, idx) => tr.children[idx].innerText || tr.children[idx].textContent;\r\n\r\n/**\r\n * Compare function\r\n * @param {number} idx - index\r\n * @param {string} asc - sort order (desc | asc)\r\n */\r\nconst comparer = (idx, asc) => (a, b) =>\r\n  ((v1, v2) => (v1 !== '' && v2 !== '' && !isNaN(v1) && !isNaN(v2) ? v1 - v2 : v1.toString().localeCompare(v2)))(\r\n    getCellValue(asc ? a : b, idx),\r\n    getCellValue(asc ? b : a, idx)\r\n  );\r\n\r\n// Click Handler for table header\r\nfunction sortTable(selector = '.table--sortable', options = {}) {\r\n  const settings = Object.assign(\r\n    {},\r\n    {\r\n      svgSortIcon: null,\r\n    },\r\n    options\r\n  );\r\n\r\n  const tables = document.querySelectorAll(selector);\r\n  for (let idx = 0; idx < tables.length; idx++) {\r\n    const table = tables[idx];\r\n    const thead = table.querySelector('thead');\r\n\r\n    if (settings.svgSortIcon) {\r\n      Array.from(thead.querySelectorAll('th')).forEach((elem, _) => {\r\n        elem.insertAdjacentHTML('beforeend', settings.svgSortIcon);\r\n      });\r\n    }\r\n\r\n    thead.addEventListener('click', (ev) => {\r\n      if (ev.target.matches('th')) {\r\n        const th = ev.target;\r\n        const tbody = table.querySelector('tbody');\r\n\r\n        Array.from(table.querySelectorAll('tbody tr'))\r\n          .sort(comparer(Array.from(th.parentNode.children).indexOf(th), (curSort.asc = !curSort.asc)))\r\n          .forEach((tr) => tbody.appendChild(tr));\r\n        Array.from(thead.querySelectorAll('th')).forEach((elem, _) => {\r\n          elem.removeAttribute('class');\r\n        });\r\n        th.className = curSort.asc ? 'asc' : 'desc';\r\n      }\r\n    });\r\n  }\r\n}\r\n\r\nexport default sortTable;\r\n","import { icon } from '../../a/icon';\r\nimport scrollTable from './table--scroll';\r\nimport sortTable from './table--sortable';\r\n\r\nif (document.querySelector('.scrolltable')) {\r\n  scrollTable('.scrolltable', {\r\n    navTravelDistance: 300,\r\n    focusable: false,\r\n  });\r\n}\r\n\r\nif (document.querySelector('.table--sortable')) {\r\n  sortTable('.table--sortable', {\r\n    svgSortIcon: icon('sorting'),\r\n  });\r\n}\r\n\r\nif (document.querySelector('.accordion')) {\r\n  $('.collapse').on('shown.bs.collapse', function () {\r\n    if (document.querySelector('.scrolltable')) {\r\n      scrollTable('.scrolltable', {\r\n        navTravelDistance: 300,\r\n        focusable: false,\r\n      });\r\n    }\r\n  });\r\n}\r\n"],"sourceRoot":""}