{"version":3,"file":"app/module/module.pagination.js","sources":["module.pagination.js"],"sourcesContent":["/*----------------------------------------------------------------------------*\\\r\n module.pagination\r\n Simple pagination object\r\n\\*----------------------------------------------------------------------------*/\r\n\r\n/**\r\n * Use strict as per:\r\n * http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/\r\n */\r\n'use strict';\r\n\r\n\r\n/**\r\n * Check if oy object exists, otherwise create it\r\n */\r\nvar oy = oy || {};\r\noy.module = oy.module || {};\r\n\r\n\r\n/**\r\n * Jshint global references\r\n * Please define all third party plugins that you use to not break jshinting\r\n */\r\n\r\n\r\n\r\n/* Component\r\n\\*----------------------------------------------------------------------------*/\r\n\r\noy.module.pagination = {\r\n name: 'pagination', // name of object for debugging purposes\r\n\r\n init: () => {\r\n const self = oy.module.pagination;\r\n // console.log(`${self.name}: init`);\r\n self.setupContainer();\r\n },\r\n\r\n setupContainer: ($context) => {\r\n const self = oy.module.pagination;\r\n\r\n // Always have a working context\r\n const $workingContext = $context || document.body;\r\n\r\n const $containers = $workingContext.querySelectorAll(`[data-module=${self.name}]`);\r\n\r\n [].forEach.call($containers, ($container) => {\r\n self.initPagination($container);\r\n });\r\n },\r\n\r\n initPagination: ($container) => {\r\n if (!$container) {\r\n return false;\r\n }\r\n\r\n // const self = oy.module.pagination;\r\n\r\n\r\n $container.classList.add('is-initialised');\r\n let itemsAround = 2;\r\n if ($container.getAttribute('data-pagination-items-around')) {\r\n itemsAround = parseFloat($container.getAttribute('data-pagination-items-around'));\r\n }\r\n\r\n var paginationSelector = $container.querySelector('.js--pagination__pane .is-active');\r\n\r\n if (paginationSelector && paginationSelector.parentNode) {\r\n const $activeItem = paginationSelector.parentNode;\r\n $activeItem.classList.remove('u-visuallyhidden');\r\n let $nextItem = $activeItem.nextElementSibling;\r\n let iNext = 1;\r\n let showDotsNext = false;\r\n let $prevItem = $activeItem.previousElementSibling;\r\n let iPrev = 1;\r\n let showDotsPrev = false;\r\n\r\n while ($nextItem) {\r\n $nextItem.classList.remove('u-visuallyhidden');\r\n\r\n if (iNext > itemsAround) {\r\n $nextItem.classList.add('u-visuallyhidden');\r\n showDotsNext = true;\r\n }\r\n if ($nextItem.classList.contains('js--pagination__pane--last')) {\r\n break;\r\n }\r\n if ($nextItem.classList.contains('js--pagination__dots')) {\r\n $nextItem.classList.add('u-visuallyhidden');\r\n iNext--;\r\n }\r\n $nextItem = $nextItem.nextElementSibling;\r\n iNext++;\r\n }\r\n\r\n var $dotsLast = $container.querySelector('.js--pagination__dots--last');\r\n\r\n if (showDotsNext) {\r\n if ($dotsLast.previousElementSibling.classList.contains('u-visuallyhidden')) {\r\n $dotsLast.classList.remove('u-visuallyhidden');\r\n }\r\n $container.querySelector('.js--pagination__pane--last').classList.remove('u-visuallyhidden');\r\n } else {\r\n $dotsLast.classList.add('u-visuallyhidden');\r\n }\r\n\r\n while ($prevItem) {\r\n $prevItem.classList.remove('u-visuallyhidden');\r\n\r\n if (iPrev > itemsAround) {\r\n $prevItem.classList.add('u-visuallyhidden');\r\n showDotsPrev = true;\r\n }\r\n if ($prevItem.classList.contains('js--pagination__pane--first')) {\r\n break;\r\n }\r\n if ($prevItem.classList.contains('js--pagination__dots')) {\r\n $prevItem.classList.add('u-visuallyhidden');\r\n iPrev--;\r\n }\r\n $prevItem = $prevItem.previousElementSibling;\r\n iPrev++;\r\n }\r\n\r\n var $dotsFirst = $container.querySelector('.js--pagination__dots--first');\r\n\r\n if (showDotsPrev) {\r\n if ($dotsFirst.nextElementSibling.classList.contains('u-visuallyhidden')) {\r\n $dotsFirst.classList.remove('u-visuallyhidden');\r\n }\r\n $container.querySelector('.js--pagination__pane--first').classList.remove('u-visuallyhidden');\r\n } else {\r\n $dotsFirst.classList.add('u-visuallyhidden');\r\n }\r\n }\r\n\r\n }\r\n\r\n};\r\n\r\n"],"names":["const","let"],"mappings":"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","sourceRoot":"/source/"}