{"version":3,"file":"dds-all.js","sources":["src/js/utilities.js","src/js/alert.js","src/js/helpers/inputMask.js","src/js/select.js","src/js/button.js","src/js/overflow.js","src/js/carousel.js","src/js/collapse.js","src/js/contact-drawer.js","src/js/dropdown.js","src/js/fileupload.js","src/js/modal.js","src/js/filter.js","src/js/form.js","src/js/linkpicker.js","src/js/masthead.js","src/js/helpers/resizeElement.js","src/js/nav.js","src/js/pagination.js","src/js/popover.js","src/js/product-stack.js","src/js/progress.js","src/js/slider.js","src/js/tab.js","src/js/helpers/columns.js","src/js/helpers/rows.js","src/js/table.js","src/js/tooltip.js","src/js/dds-all.js"],"sourcesContent":["// parse the package.json file to get needed variables\r\nimport { ddsSpace, ddsToken } from \"../../package.json\";\r\n\r\nexport const DOC = document;\r\nexport const HTML = DOC.documentElement;\r\nexport const globalObject = typeof global !== \"undefined\" ? global : window;\r\nexport const prefix = ddsSpace + ddsToken;\r\nexport const supportTransitions =\r\n \"Webkit\" + \"Transition\" in HTML[\"style\"] || \"Transition\"[\"toLowerCase\"]() in HTML[\"style\"];\r\nexport const transitionEndEvent =\r\n \"Webkit\" + \"Transition\" in HTML[\"style\"]\r\n ? \"Webkit\"[\"toLowerCase\"]() + \"Transition\" + \"End\"\r\n : \"Transition\"[\"toLowerCase\"]() + \"end\";\r\nexport const transitionDuration =\r\n \"Webkit\" + \"Duration\" in HTML[\"style\"]\r\n ? \"Webkit\"[\"toLowerCase\"]() + \"Transition\" + \"Duration\"\r\n : \"Transition\"[\"toLowerCase\"]() + \"Duration\";\r\nexport const tipPositions = /\\b(top|bottom|left|right)+/;\r\nexport const isIPhone = /(IPhone)/i.test(navigator.platform);\r\nexport const isIOS =\r\n (/iPad|iPhone|iPod|Macintosh/i.test(navigator.userAgent) ||\r\n (navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1)) &&\r\n !window.MSStream; // /(/(IPad)/i.test(navigator.platform)) || (/(IPhone)/i.test(navigator.platform));\r\nexport const isIE = /msie|trident|Windows Phone/i.test(navigator.userAgent);\r\nexport const isSafari = /Version\\/[\\d.]+.*Safari/i.test(navigator.userAgent);\r\nexport const isEdge = /Edge\\/\\d./i.test(navigator.userAgent);\r\nexport const isFirefox = /firefox/i.test(navigator.userAgent);\r\nexport const isChrome = !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);\r\nexport const direction = {\r\n UP: 1,\r\n RIGHT: 2,\r\n DOWN: 3,\r\n LEFT: 4,\r\n NONE: 5,\r\n};\r\n\r\n// selection methods\r\nexport function getFullScreenOverlay() {\r\n var overlay = DOC.getElementById(prefix + \"full-screen-overlay\");\r\n if (!overlay) {\r\n console.warn(\r\n \"OFF-CANVAS: Overlay requested. Corresponding HTML missing. Please apply id 'dds__full-screen-overlay' and class 'dds__overlay' to an empty div\"\r\n );\r\n return false;\r\n }\r\n return overlay;\r\n}\r\n\r\nexport function getElementsByClassName(element, classNAME) {\r\n // returns Array\r\n return [].slice.call(element[\"getElementsByClassName\"](classNAME));\r\n}\r\n\r\nexport function getSibling(element, selector) {\r\n var firstChar = selector.charAt(0);\r\n var selectorSubstring = selector.substr(1);\r\n\r\n if (firstChar === \".\") {\r\n if (element.nextElementSibling && element.nextElementSibling.classList) {\r\n if (element.nextElementSibling.classList.contains(selectorSubstring)) {\r\n return element.nextElementSibling;\r\n } else {\r\n return getSibling(element.nextElementSibling, selector);\r\n }\r\n }\r\n } else if (firstChar === \"#\") {\r\n if (element.nextElementSibling && element.nextElementSibling.id) {\r\n if (element.nextElementSibling.id === selectorSubstring) {\r\n return element.nextElementSibling;\r\n } else {\r\n return getSibling(element.nextElementSibling, selector);\r\n }\r\n }\r\n } else {\r\n if (element.nextElementSibling && element.nextElementSibling.tagName) {\r\n if (element.nextElementSibling.tagName.toLowerCase() === selector.toLowerCase()) {\r\n return element.nextElementSibling;\r\n } else {\r\n return getSibling(element.nextElementSibling, selector);\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport function getFocusableElements(element) {\r\n var arr = Array.prototype.slice.call(\r\n element.querySelectorAll(\r\n \"*:not([aria-expanded='false']) a[href],*:not([aria-expanded='false']) area[href],*:not([aria-expanded='false']) input:not([disabled]),*:not([aria-expanded='false']) select:not([disabled]),*:not([aria-expanded='false']) textarea:not([disabled]),*:not([aria-expanded='false']) button:not([disabled]):not(.dds__d-none), *:not([aria-expanded='false']) > .dds__accordion-card-body > ul > [tabindex='0']\"\r\n )\r\n );\r\n return arr.filter(filterCollapsedParents);\r\n}\r\n\r\nfunction filterCollapsedParents(element) {\r\n for (; element && element !== DOC; element = element.parentElement) {\r\n if (element.parentElement) {\r\n if (\r\n (element.parentElement.classList.contains(\"dds__collapse\") &&\r\n element.parentElement.getAttribute(\"aria-expanded\") == \"false\") ||\r\n element.parentElement.classList.contains(prefix + \"d-none\")\r\n ) {\r\n return false;\r\n }\r\n } else {\r\n return element; //if scaled entire DOM tree and no parents are collapsed, element is focusable\r\n }\r\n }\r\n}\r\n\r\nexport function getNextFocusableElement(element) {\r\n for (; element && element !== DOC; element = element.nextElementSibling) {\r\n if (element.nextElementSibling) {\r\n if (window.getComputedStyle(element.nextElementSibling).getPropertyValue(\"display\") != \"none\") {\r\n if (\r\n [\"A\", \"AREA\", \"INPUT\", \"SELECT\", \"TEXTAREA\", \"BUTTON\"].indexOf(\r\n element.nextElementSibling.tagName\r\n ) != -1 &&\r\n element.nextElementSibling.tabIndex >= 0\r\n ) {\r\n return element.nextElementSibling;\r\n } else {\r\n var focusable = getFocusableElements(element.nextElementSibling);\r\n if (focusable && focusable.length > 0) {\r\n return focusable[0];\r\n }\r\n }\r\n }\r\n } else {\r\n return getNextFocusableElement(element.parentElement);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Creates a temporary, assertive element to announce a message for text reader clients, then removes that element.\r\n * @param {String} theMessage The short text to announce. Consider translation requirements.\r\n * @return void\r\n */\r\nexport function ariaAnnounce(theMessage) {\r\n var msgEl,\r\n randomNum = Math.floor(Math.random() * 999999999) + 1;\r\n document.body.appendChild(\r\n createElement(\"div\", {\r\n style: \"position:absolute; left:-1000px; width: 0px; height: 0px;\",\r\n id: \"ariaAnnouncement\" + randomNum,\r\n \"aria-live\": \"assertive\",\r\n })\r\n );\r\n msgEl = document.getElementById(\"ariaAnnouncement\" + randomNum);\r\n window.setTimeout(function () {\r\n msgEl.textContent = theMessage;\r\n }, 15);\r\n window.setTimeout(function () {\r\n msgEl.parentElement.removeChild(msgEl);\r\n }, 5000);\r\n}\r\n\r\n/**\r\n * @method getClosest Crawls the DOM to find the closest targeted element\r\n * @param element {DOM element} the DOM element from which to start searching\r\n * @param selector {string} the class, ID, or tag name for which to search\r\n * @param parentsOnly {boolean} if false or not set, modifies TAG search to include children elements of the currently-inspected target\r\n * @return {element} or false\r\n */\r\nexport function getClosest(element, selector, parentsOnly) {\r\n // source http://gomakethings.com/climbing-up-and-down-the-dom-tree-with-vanilla-javascript/\r\n var firstChar = selector.charAt(0);\r\n\r\n var selectorSubstring = selector.substr(1);\r\n if (firstChar === \".\") {\r\n // If selector is a class\r\n for (; element && element !== DOC; element = element.parentNode) {\r\n // Get closest match\r\n if (\r\n element[\"parentNode\"].querySelector(selector) !== null &&\r\n // hasClass(element, selectorSubstring)) {\r\n element.classList[\"contains\"](selectorSubstring)\r\n ) {\r\n return element;\r\n } else if (parentsOnly === false) {\r\n if (element.querySelector(selector)) {\r\n return element.querySelector(selector);\r\n }\r\n }\r\n }\r\n } else if (firstChar === \"#\") {\r\n // If selector is an ID\r\n for (; element && element !== DOC; element = element.parentNode) {\r\n // Get closest match\r\n if (element.id === selectorSubstring) {\r\n return element;\r\n } else if (parentsOnly === false) {\r\n if (element.querySelector(selector)) {\r\n return element.querySelector(selector);\r\n }\r\n }\r\n }\r\n } else {\r\n // If selector is a tagName\r\n for (; element && element !== DOC; element = element.parentNode) {\r\n // Get closest match\r\n if (element.tagName && element.tagName.toLowerCase() === selector.toLowerCase()) {\r\n return element;\r\n } else if (\r\n element.previousElementSibling &&\r\n element.previousElementSibling.tagName.toLowerCase() === selector.toLowerCase()\r\n ) {\r\n return element.previousElementSibling;\r\n } else if (parentsOnly === false) {\r\n if (element.querySelector(selector)) {\r\n return element.querySelector(selector);\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nexport function one(element, event, handler) {\r\n element.addEventListener(\r\n event,\r\n function handlerWrapper(e) {\r\n handler(e);\r\n element.removeEventListener(event, handlerWrapper, false);\r\n },\r\n false\r\n );\r\n}\r\n\r\nexport function getTransitionDurationFromElement(element) {\r\n var duration = supportTransitions ? globalObject[\"getComputedStyle\"](element)[transitionDuration] : 0;\r\n duration = parseFloat(duration);\r\n duration = typeof duration === \"number\" && !isNaN(duration) ? duration * 1000 : 0;\r\n return duration + 50; // we take a short offset to make sure we fire on the next frame after animation\r\n}\r\n\r\nexport function getAnimationDurationFromElement(element) {\r\n var duration = supportTransitions ? globalObject[\"getComputedStyle\"](element)[\"animationDuration\"] : 0;\r\n duration = parseFloat(duration);\r\n duration = typeof duration === \"number\" && !isNaN(duration) ? duration * 1000 : 0;\r\n return duration + 50; // we take a short offset to make sure we fire on the next frame after animation\r\n}\r\n\r\nexport function emulateTransitionEnd(element, handler) {\r\n // emulateTransitionEnd since 2.0.4\r\n var called = 0;\r\n\r\n var duration = getTransitionDurationFromElement(element);\r\n supportTransitions &&\r\n one(element, transitionEndEvent, function (e) {\r\n handler(e);\r\n called = 1;\r\n });\r\n setTimeout(function () {\r\n !called && handler();\r\n }, duration);\r\n}\r\n\r\nexport function emulateAnimationnEnd(element, handler) {\r\n // emulateTransitionEnd since 2.0.4\r\n var called = 0;\r\n\r\n var duration = getAnimationDurationFromElement(element);\r\n supportTransitions &&\r\n one(element, transitionEndEvent, function (e) {\r\n handler(e);\r\n called = 1;\r\n });\r\n setTimeout(function () {\r\n !called && handler();\r\n }, duration);\r\n}\r\n\r\nexport function uicoreCustomEvent(componentName, eventName, related, details) {\r\n var evt;\r\n if (isIE) {\r\n evt = document.createEvent(\"CustomEvent\");\r\n evt.initCustomEvent(\"uic\" + componentName + eventName, true, true, details);\r\n } else {\r\n evt = new CustomEvent(\"uic\" + componentName + eventName, {\r\n bubbles: true,\r\n detail: details,\r\n });\r\n }\r\n evt.proceed = true;\r\n evt.relatedTarget = related;\r\n related.dispatchEvent(evt);\r\n return evt;\r\n}\r\n\r\n// tooltip / popover stuff\r\nexport function getScroll() {\r\n // also Affix and ScrollSpy uses it\r\n return {\r\n y: globalObject.pageYOffset || HTML[\"scrollTop\"],\r\n x: globalObject.pageXOffset || HTML[\"scrollLeft\"],\r\n };\r\n}\r\n\r\n// set new focus element since 2.0.3\r\nexport function setFocus(element) {\r\n element.focus ? element.focus() : element.setActive();\r\n}\r\n\r\nexport function offWindowLeft(element, link) {\r\n var elementDimensions = {\r\n w: element[\"offsetWidth\"],\r\n h: element[\"offsetHeight\"],\r\n };\r\n var rect = link[\"getBoundingClientRect\"]();\r\n if (elementDimensions.w < 50) {\r\n elementDimensions.w = 50;\r\n }\r\n return rect[\"left\"] - elementDimensions.w < 0;\r\n}\r\n\r\nexport function styleTip(link, element, position, parent, useArrow) {\r\n // both popovers and tooltips (target,tooltip,placement,elementToAppendTo)\r\n\r\n // element.style.height = elementDimensions.h + 'px';\r\n // element.style.width = elementDimensions.w + 'px';\r\n element.style.maxWidth = \"125px\";\r\n\r\n useArrow = typeof useArrow === \"boolean\" ? useArrow : true;\r\n\r\n var windowWidth = HTML[\"clientWidth\"] || DOC[\"body\"][\"clientWidth\"];\r\n\r\n var windowHeight = HTML[\"clientHeight\"] || DOC[\"body\"][\"clientHeight\"];\r\n\r\n var rect = link[\"getBoundingClientRect\"]();\r\n\r\n var scroll =\r\n parent === DOC[\"body\"]\r\n ? getScroll()\r\n : {\r\n y: parent[\"offsetTop\"] + parent[\"scrollTop\"],\r\n x: parent[\"offsetLeft\"] + parent[\"scrollLeft\"],\r\n };\r\n\r\n var linkDimensions = {\r\n w: link.offsetWidth,\r\n h: link.offsetHeight,\r\n };\r\n\r\n var maxWidth = 125;\r\n while (element[\"offsetHeight\"] >= maxWidth) {\r\n maxWidth = maxWidth * 1.5;\r\n element.style.maxWidth = maxWidth + \"px\";\r\n }\r\n\r\n var elementDimensions = {\r\n w: element[\"offsetWidth\"],\r\n h: element[\"offsetHeight\"],\r\n };\r\n\r\n var isPopover = element.classList[\"contains\"](\"dds__popover\");\r\n\r\n var topPosition;\r\n\r\n var leftPosition;\r\n\r\n var arrow = element.querySelector(\".dds__arrow\");\r\n\r\n var arrowTop;\r\n\r\n var arrowLeft;\r\n\r\n var arrowWidth;\r\n\r\n var arrowHeight;\r\n\r\n var halfTopExceed = rect[\"top\"] + linkDimensions.h / 2 - elementDimensions.h / 2 < 0;\r\n\r\n var halfLeftExceed = rect[\"left\"] + linkDimensions.w / 2 - elementDimensions.w / 2 < 0;\r\n\r\n var halfRightExceed = rect[\"left\"] + elementDimensions.w / 2 + linkDimensions.w / 2 >= windowWidth;\r\n\r\n var halfBottomExceed = rect[\"top\"] + elementDimensions.h / 2 + linkDimensions.h / 2 >= windowHeight;\r\n\r\n var topExceed = rect[\"top\"] - elementDimensions.h < 0;\r\n\r\n var leftExceed = rect[\"left\"] - elementDimensions.w < 0;\r\n\r\n var bottomExceed = rect[\"top\"] + elementDimensions.h + linkDimensions.h >= windowHeight;\r\n\r\n var rightExceed = rect[\"left\"] + elementDimensions.w + linkDimensions.w >= windowWidth;\r\n\r\n // recompute position\r\n var posChanged;\r\n if (position === \"right\") {\r\n if (!rightExceed && !halfTopExceed && !halfBottomExceed) {\r\n position === \"right\";\r\n } else if (rightExceed && !leftExceed && !halfTopExceed && !halfBottomExceed) {\r\n //If exceeds right, but fits on the left\r\n posChanged = true;\r\n position = \"left\";\r\n } else if ((!halfTopExceed || !halfBottomExceed) && (!halfRightExceed || !halfLeftExceed)) {\r\n //If half of top or bottom doesnt fit, try to fit top or bottom\r\n if (!topExceed) {\r\n posChanged = true;\r\n position = \"top\";\r\n } else if (!bottomExceed) {\r\n posChanged = true;\r\n position = \"bottom\";\r\n }\r\n }\r\n } else if (position === \"left\") {\r\n if (!leftExceed && !halfTopExceed && !halfBottomExceed) {\r\n position === \"left\";\r\n } else if (leftExceed && !rightExceed && !halfTopExceed && !halfBottomExceed) {\r\n posChanged = true;\r\n position = \"right\";\r\n } else if ((!halfTopExceed || !halfBottomExceed) && (!halfRightExceed || !halfLeftExceed)) {\r\n if (!topExceed) {\r\n posChanged = true;\r\n position = \"top\";\r\n } else if (!bottomExceed) {\r\n posChanged = true;\r\n position = \"bottom\";\r\n }\r\n }\r\n } else if (position === \"top\") {\r\n if (!topExceed && !halfRightExceed && !halfLeftExceed) {\r\n position === \"top\";\r\n } else if (topExceed && !bottomExceed && !halfRightExceed && !halfLeftExceed) {\r\n posChanged = true;\r\n position = \"bottom\";\r\n } else if ((!halfRightExceed || !halfLeftExceed) && (!halfTopExceed || !halfBottomExceed)) {\r\n //If half of right or left doesnt fit, try to fit right or left\r\n if (!rightExceed) {\r\n posChanged = true;\r\n position = \"right\";\r\n } else if (!leftExceed) {\r\n posChanged = true;\r\n position = \"left\";\r\n }\r\n }\r\n } else if (position === \"bottom\") {\r\n if (!bottomExceed && !halfRightExceed && !halfLeftExceed) {\r\n position === \"bottom\";\r\n } else if (bottomExceed && !topExceed && !halfRightExceed && !halfLeftExceed) {\r\n posChanged = true;\r\n position = \"top\";\r\n } else if ((!halfRightExceed || !halfLeftExceed) && (!halfTopExceed || !halfBottomExceed)) {\r\n //Can't be top\r\n if (!rightExceed) {\r\n posChanged = true;\r\n position = \"right\";\r\n } else if (!leftExceed) {\r\n posChanged = true;\r\n position = \"left\";\r\n }\r\n }\r\n }\r\n\r\n // update tooltip/popover class\r\n element.className[\"indexOf\"](position) === -1 &&\r\n (element.className = element.className.replace(tipPositions, position));\r\n\r\n // update tooltip/popover dimensions\r\n if (posChanged) {\r\n elementDimensions = {\r\n w: element[\"offsetWidth\"],\r\n h: element[\"offsetHeight\"],\r\n };\r\n }\r\n // we check the computed width & height and update here\r\n var elMargin;\r\n try {\r\n elMargin = Number(window.getComputedStyle(element).margin.match(/\\d+/)[0]); // get the margin value from style as a number\r\n } catch (e) {\r\n elMargin = 0;\r\n }\r\n arrowWidth = arrow[\"offsetWidth\"] + elMargin * 2;\r\n arrowHeight = arrow[\"offsetHeight\"] + elMargin * 2;\r\n\r\n var rectLeft = rect[\"left\"],\r\n rectTop = rect[\"top\"];\r\n if (!useArrow) {\r\n if (position === \"left\") {\r\n rectLeft = rect[\"left\"] + arrowWidth;\r\n } else if (position === \"right\") {\r\n rectLeft = rect[\"left\"] - arrowWidth;\r\n } else if (position === \"top\") {\r\n rectTop = rect[\"top\"] + arrowHeight;\r\n } else if (position === \"bottom\") {\r\n rectTop = rect[\"top\"] - arrowHeight;\r\n }\r\n }\r\n\r\n // apply styling to tooltip or popover\r\n if (position === \"left\" || position === \"right\") {\r\n // secondary|side positions\r\n if (position === \"left\") {\r\n // LEFT\r\n leftPosition = rectLeft + scroll.x - elementDimensions.w - (isPopover ? arrowWidth : 3); // subtract to move more left\r\n window.addEventListener(\"resize\", function () {\r\n arrow[\"style\"][\"left\"] = \"initial\";\r\n });\r\n } else {\r\n // RIGHT\r\n leftPosition = rectLeft + linkDimensions.w + (isPopover ? 0 : 3); // add to move more right\r\n }\r\n\r\n topPosition = rect[\"top\"] - elementDimensions.h / 2 + linkDimensions.h / 2 + scroll.y;\r\n arrowTop = elementDimensions.h / 2 - (isPopover ? arrowHeight * 0.9 : arrowHeight / 2);\r\n } else if (position === \"top\" || position === \"bottom\") {\r\n // primary|vertical positions\r\n if (position === \"top\") {\r\n // TOP\r\n topPosition = rectTop + scroll.y - elementDimensions.h - (isPopover ? arrowHeight : 3); // subtract to move more up\r\n } else {\r\n // BOTTOM\r\n topPosition = rectTop + linkDimensions.h + scroll.y + (isPopover ? 0 : 3);\r\n }\r\n leftPosition = rect[\"left\"] - elementDimensions.w / 2 + linkDimensions.w / 2 + scroll.x;\r\n arrowLeft = elementDimensions.w / 2 - arrowWidth / 2;\r\n }\r\n\r\n // apply style to tooltip/popover and its arrow\r\n element[\"style\"][\"top\"] = topPosition + \"px\";\r\n element[\"style\"][\"left\"] = leftPosition + \"px\";\r\n\r\n arrowTop && (arrow[\"style\"][\"top\"] = arrowTop + \"px\");\r\n arrowLeft && (arrow[\"style\"][\"left\"] = arrowLeft + \"px\");\r\n}\r\n\r\nexport function handleFirstTab(e) {\r\n if (e.keyCode === 9) {\r\n document.body.classList.add(\"user-is-tabbing\");\r\n\r\n window.removeEventListener(\"keydown\", handleFirstTab);\r\n window.addEventListener(\"mousedown\", handleMouseDownOnce);\r\n }\r\n}\r\n\r\nexport function handleMouseDownOnce(e) {\r\n //NVDA in browse mode swallows the enter key as mouse click: https://github.com/nvaccess/nvda/issues/4903\r\n //This breaks our visual focus toggle. Enter key event has x,y values of 0,0 whereas click has positive x,y values.\r\n //Capture enter key when treated as mousedown by NVDA browse mode.\r\n if (e.x === 0 && e.y === 0) {\r\n return;\r\n }\r\n document.body.classList.remove(\"user-is-tabbing\");\r\n\r\n window.removeEventListener(\"mousedown\", handleMouseDownOnce);\r\n window.addEventListener(\"keydown\", handleFirstTab);\r\n}\r\n\r\n// Form--passwords validation\r\n//================================================================\r\nexport function passwordVerification() {\r\n var myInput = document.getElementById(\"psw\");\r\n var letter = document.getElementById(\"letter\");\r\n var capital = document.getElementById(\"capital\");\r\n var number = document.getElementById(\"number\");\r\n var length = document.getElementById(\"length\");\r\n\r\n // When the user clicks on the password field, show the message box\r\n myInput.onfocus = function () {\r\n document.getElementById(\"message\").style.display = \"block\";\r\n };\r\n\r\n // When the user clicks outside of the password field, hide the message box\r\n myInput.onblur = function () {\r\n document.getElementById(\"message\").style.display = \"none\";\r\n };\r\n\r\n // When the user starts to type something inside the password field\r\n myInput.onkeyup = function () {\r\n // Validate lowercase letters\r\n var lowerCaseLetters = /[a-z]/g;\r\n if (myInput.value.match(lowerCaseLetters)) {\r\n letter.classList.add(\"valid\");\r\n letter.classList.remove(\"invalid\");\r\n } else {\r\n letter.classList.remove(\"valid\");\r\n letter.classList.add(\"invalid\");\r\n }\r\n\r\n // Validate capital letters\r\n var upperCaseLetters = /[A-Z]/g;\r\n if (myInput.value.match(upperCaseLetters)) {\r\n capital.classList.remove(\"invalid\");\r\n capital.classList.add(\"valid\");\r\n } else {\r\n capital.classList.remove(\"valid\");\r\n capital.classList.add(\"invalid\");\r\n }\r\n\r\n // Validate numbers\r\n var numbers = /[0-9]/g;\r\n if (myInput.value.match(numbers)) {\r\n number.classList.remove(\"invalid\");\r\n number.classList.add(\"valid\");\r\n } else {\r\n number.classList.remove(\"valid\");\r\n number.classList.add(\"invalid\");\r\n }\r\n\r\n // Validate length\r\n if (myInput.value.length >= 8) {\r\n length.classList.remove(\"invalid\");\r\n length.classList.add(\"valid\");\r\n } else {\r\n length.classList.remove(\"valid\");\r\n length.classList.add(\"invalid\");\r\n }\r\n };\r\n}\r\n\r\n/**\r\n * Check is item is object\r\n * @return {Boolean}\r\n */\r\nexport function isObject(val) {\r\n return Object.prototype.toString.call(val) === \"[object Object]\";\r\n}\r\n\r\n/**\r\n * Check is item is array\r\n * @return {Boolean}\r\n */\r\nexport function isArray(val) {\r\n return Array.isArray(val);\r\n}\r\n\r\n/**\r\n * Check for valid JSON string\r\n * @param {String} str\r\n * @return {Boolean|Array|Object}\r\n */\r\nexport function isJson(str) {\r\n var t = !1;\r\n try {\r\n t = JSON.parse(str);\r\n } catch (e) {\r\n return !1;\r\n }\r\n return !(null === t || (!isArray(t) && !isObject(t))) && t;\r\n}\r\n\r\n/**\r\n * Iterator helper\r\n * @param {(Array|Object)} arr Any object, array or array-like collection.\r\n * @param {Function} fn Callback\r\n * @param {Object} scope Change the value of this\r\n * @return {Void}\r\n */\r\nexport function each(arr, fn, scope) {\r\n var n;\r\n if (arr) {\r\n if (isObject(arr)) {\r\n for (n in arr) {\r\n if (Object.prototype.hasOwnProperty.call(arr, n)) {\r\n fn.call(scope, arr[n], n);\r\n }\r\n }\r\n } else if (arr.length > 0) {\r\n for (n = 0; n < arr.length; n++) {\r\n fn.call(scope, arr[n], n);\r\n }\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\n/**\r\n * Bubble sort algorithm\r\n */\r\nexport function sortItems(a, b) {\r\n var c, d;\r\n if (1 === b) {\r\n c = 0;\r\n d = a.length;\r\n } else {\r\n if (b === -1) {\r\n c = a.length - 1;\r\n d = -1;\r\n }\r\n }\r\n for (var e = !0; e; ) {\r\n e = !1;\r\n for (var f = c; f != d; f += b) {\r\n if (a[f + b] && a[f].value > a[f + b].value) {\r\n var g = a[f],\r\n h = a[f + b],\r\n i = g;\r\n a[f] = h;\r\n a[f + b] = i;\r\n e = !0;\r\n }\r\n }\r\n }\r\n return a;\r\n}\r\n\r\n/**\r\n * Create DOM element node\r\n * @param {String} a nodeName\r\n * @param {Object} b properties and attributes\r\n * @return {Object}\r\n */\r\nexport function createElement(a, b) {\r\n var d = DOC.createElement(a);\r\n if (b && \"object\" == typeof b) {\r\n var e;\r\n for (e in b) {\r\n if (\"html\" === e) {\r\n d.innerHTML = b[e];\r\n } else {\r\n if (e.slice(0, 5) === \"aria_\" || e.slice(0, 5) === \"data_\") {\r\n var attr = e.slice(0, 4) + \"-\" + e.slice(5);\r\n d.setAttribute(attr, b[e]);\r\n } else {\r\n d.setAttribute(e, b[e]);\r\n }\r\n }\r\n }\r\n }\r\n return d;\r\n}\r\n\r\nexport function loadURLSVGs(paths, lazyload) {\r\n var lazyloading = typeof lazyload === \"boolean\" ? lazyload : true,\r\n execute = function (paths) {\r\n if (paths.length > 0 && !Array.isArray(paths)) {\r\n paths = new Array(paths);\r\n }\r\n if (!paths || paths.length < 1) {\r\n console.error(\"The File path(s) supplied were either empty or null.\");\r\n return false;\r\n }\r\n var defs,\r\n style,\r\n svg,\r\n handleSVGResponse = function (response) {\r\n if (response.match(/ swipe.start.x ||\r\n swipe.end.x + swipe.params.min.x < swipe.start.x) &&\r\n swipe.end.y < swipe.start.y + swipe.params.max.y &&\r\n swipe.start.y > swipe.end.y - swipe.params.max.y\r\n ) {\r\n if (swipe.end.x > swipe.start.x) {\r\n swipe.direction = direction.RIGHT;\r\n } else {\r\n swipe.direction = direction.LEFT;\r\n }\r\n }\r\n if (\r\n (swipe.end.y - swipe.params.min.y > swipe.start.y ||\r\n swipe.end.y + swipe.params.min.y < swipe.start.y) &&\r\n swipe.end.x < swipe.start.x + swipe.params.max.x &&\r\n swipe.start.x > swipe.end.x - swipe.params.max.x\r\n ) {\r\n if (swipe.end.y > swipe.start.y) {\r\n swipe.direction = direction.DOWN;\r\n } else {\r\n swipe.direction = direction.UP;\r\n }\r\n }\r\n if (swipe.direction !== direction.NONE) {\r\n if (typeof callback === \"function\") {\r\n callback(el, swipe.direction);\r\n }\r\n }\r\n swipe.direction = direction.NONE;\r\n };\r\n if (isEdge) {\r\n el.addEventListener(\"mousedown\", downListener);\r\n el.addEventListener(\"mousemove\", moveListener);\r\n el.addEventListener(\"mouseup\", upListener);\r\n } else if (isIE) {\r\n el.addEventListener(\"pointerdown\", downListener);\r\n el.addEventListener(\"pointermove\", moveListener);\r\n el.addEventListener(\"pointerup\", upListener);\r\n } else {\r\n el.addEventListener(\"touchstart\", downListener);\r\n el.addEventListener(\"touchmove\", moveListener);\r\n el.addEventListener(\"touchend\", upListener);\r\n }\r\n}\r\nexport function renderSvg(svg, attributes) {\r\n var svgWrapper = DOC.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\r\n svgWrapper.setAttribute(\"focusable\", false);\r\n classAdd(svgWrapper, prefix + \"svg-icons\");\r\n classAdd(svgWrapper, prefix + \"icon-svg\");\r\n if (!isArray(svg)) {\r\n svg = [svg];\r\n }\r\n each(svg, function (elm) {\r\n var svgElem = DOC.createElementNS(\"http://www.w3.org/2000/svg\", \"use\");\r\n\r\n svgElem.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"xlink:href\", \"#\" + prefix + elm.name);\r\n classAdd(svgElem, [prefix + \"svg-icons-item\"]); //are these two classes the same\r\n classAdd(svgElem, prefix + \"icon-svg-item\");\r\n svgElem.setAttribute(\"tabindex\", \"-1\"); //does this do anything\r\n if (elm.show) {\r\n classAdd(svgElem, [prefix + \"show\"]);\r\n }\r\n\r\n svgWrapper.appendChild(svgElem);\r\n });\r\n\r\n for (var key in attributes) {\r\n if (Object.prototype.hasOwnProperty.call(attributes, key)) {\r\n svgWrapper.setAttribute(key, attributes[key]);\r\n }\r\n }\r\n return svgWrapper;\r\n}\r\n\r\nexport function flush(el, ie) {\r\n if (el instanceof NodeList) {\r\n each(el, function (e) {\r\n flush(e, ie);\r\n });\r\n } else {\r\n if (ie) {\r\n while (el.hasChildNodes()) {\r\n el.removeChild(el.firstChild);\r\n }\r\n } else {\r\n el.innerHTML = \"\";\r\n }\r\n }\r\n}\r\n\r\nexport function getText(value) {\r\n var text,\r\n div = DOC.createElement(\"div\");\r\n div.innerHTML = value;\r\n\r\n function findText(div) {\r\n each(\r\n div.childNodes,\r\n function (cNode) {\r\n if (cNode.nodeType === 3) {\r\n text = cNode.data;\r\n }\r\n findText(cNode);\r\n },\r\n this\r\n );\r\n }\r\n findText(div);\r\n return text;\r\n}\r\n\r\n/**\r\n * Extends source object adding properties from probs object\r\n * @param {object} src\r\n * @param {object} props\r\n * @returns\r\n */\r\nexport function extend(src, props) {\r\n for (var prop in props) {\r\n if (Object.prototype.hasOwnProperty.call(props, prop)) {\r\n // if (props.hasOwnProperty(prop)) {\r\n var val = props[prop];\r\n if (val && isObject(val)) {\r\n src[prop] = src[prop] || {};\r\n extend(src[prop], val);\r\n } else {\r\n src[prop] = val;\r\n }\r\n }\r\n }\r\n return src;\r\n}\r\n\r\n/**\r\n * Transform a CSV line in a javascript array according the RFC 4180 rules.\r\n * @param {string} text\r\n * @returns {array}\r\n */\r\nexport function singleLineCSVtoArray(text) {\r\n var ret = [\"\"],\r\n i = 0,\r\n p = \"\",\r\n s = true;\r\n for (var l in text) {\r\n l = text[l];\r\n if ('\"' === l) {\r\n s = !s;\r\n if ('\"' === p) {\r\n ret[i] += '\"';\r\n l = \"-\";\r\n } else if (\"\" === p) {\r\n l = \"-\";\r\n }\r\n } else if (s && \",\" === l) {\r\n l = ret[++i] = \"\";\r\n } else {\r\n ret[i] += l;\r\n }\r\n p = l;\r\n }\r\n return ret;\r\n}\r\n","import { prefix, uicoreCustomEvent } from \"./utilities.js\";\r\n\r\nexport default function Alert(element) {\r\n // initialization element\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n // bind, target alert, duration and stuff\r\n var self = this,\r\n stringAlert = \"Alert\",\r\n closeButton = element.querySelector(\".\" + prefix + \"close-x\"),\r\n dismissMessage = element.querySelector(\".\" + prefix + \"dismiss\"),\r\n // handlers\r\n clickHandler = function (e) {\r\n if (\r\n closeButton === e.target ||\r\n closeButton.contains(e.target) ||\r\n dismissMessage === e.target ||\r\n dismissMessage.contains(e.target)\r\n ) {\r\n self.toggle();\r\n }\r\n };\r\n\r\n // public method\r\n this.toggle = function () {\r\n if (element) {\r\n if (element.getAttribute(\"aria-expanded\") === \"true\") {\r\n element.setAttribute(\"aria-expanded\", \"false\");\r\n dismissMessage.focus();\r\n uicoreCustomEvent(\"Alert\", \"DismissEvent\", element);\r\n } else {\r\n element.setAttribute(\"aria-expanded\", \"true\");\r\n closeButton.focus();\r\n uicoreCustomEvent(\"Alert\", \"OpenEvent\", element);\r\n }\r\n }\r\n };\r\n\r\n // init\r\n if (!(stringAlert in element)) {\r\n // prevent adding event handlers twice\r\n closeButton.addEventListener(\"click\", clickHandler, false);\r\n dismissMessage.addEventListener(\"click\", clickHandler, false);\r\n }\r\n\r\n element[stringAlert] = self;\r\n}\r\n","import { prefix, getSibling, isIE, createElement } from \"../utilities\";\r\n\r\nexport default function InputMask(element) {\r\n //, opts ) {\r\n // initialization element\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n var wrap,\r\n stringInputMask = \"InputMask\",\r\n mNum = \"XdDmMyY9\",\r\n mChar = \"_\",\r\n spacing = 0,\r\n hasValue = false,\r\n charSet = element.dataset.charset,\r\n cursorMin = 0,\r\n createShell = function (t) {\r\n wrap = createElement(\"span\", {\r\n class: prefix + \"input-shell\",\r\n });\r\n spacing = !t.getAttribute(\"set-cursor\")\r\n ? spacing\r\n : isNaN(parseInt(t.getAttribute(\"set-cursor\")))\r\n ? spacing\r\n : parseInt(t.getAttribute(\"set-cursor\")) != 1\r\n ? spacing\r\n : 1;\r\n var mask = createElement(\"span\", {\r\n aria_hidden: \"true\",\r\n id: t.getAttribute(\"id\") + \"Mask\",\r\n }),\r\n emphasis = createElement(\"i\"),\r\n tClass = t.getAttribute(\"class\"),\r\n pTxt = hasValue ? t.value : t.getAttribute(\"placeholder\"),\r\n placeholder = document.createTextNode(pTxt),\r\n errorDiv = getSibling(t, \"#\" + t.getAttribute(\"id\") + \"Feedback\");\r\n\r\n t.setAttribute(\"maxlength\", placeholder.length);\r\n t.setAttribute(\"data-placeholder\", pTxt);\r\n t.removeAttribute(\"placeholder\");\r\n\r\n if (!tClass || (tClass && tClass.indexOf(\"masked\") === -1)) {\r\n t.setAttribute(\"class\", tClass + \" masked\");\r\n }\r\n\r\n mask.appendChild(emphasis);\r\n mask.appendChild(placeholder);\r\n\r\n wrap.appendChild(mask);\r\n t.parentNode.insertBefore(wrap, t);\r\n wrap.appendChild(t);\r\n if (errorDiv) {\r\n wrap.appendChild(errorDiv);\r\n }\r\n },\r\n setValueOfMask = function (e) {\r\n var value = e.target.value,\r\n placeholder = e.target.getAttribute(\"data-placeholder\");\r\n\r\n return \"\" + value + \"\" + placeholder.substr(value.length);\r\n },\r\n handleFocusEvent = function (e) {\r\n for (var s = 0; s < spacing; s++) {\r\n var char = e.target.getAttribute(\"data-placeholder\").charAt(s);\r\n element.value += char;\r\n var evt;\r\n if (!isIE) {\r\n evt = new KeyboardEvent(\"keyup\", {\r\n bubbles: true,\r\n cancelable: true,\r\n char: char,\r\n key: \"[\",\r\n shiftKey: true,\r\n });\r\n } else {\r\n evt = document.createEvent(\"KeyboardEvent\");\r\n evt.initKeyboardEvent(\"keyup\", true, true, null, char, null, \"\", false, \"\");\r\n }\r\n element.dispatchEvent(evt);\r\n }\r\n },\r\n handleValueChange = function (e) {\r\n var id = e.target.getAttribute(\"id\"),\r\n mask = wrap.querySelector(\"#\" + id + \"Mask\"),\r\n italic = wrap.querySelector(\"#\" + id + \"Mask i\"),\r\n cursor;\r\n\r\n if (e.target.value == italic.innerHTML) {\r\n return; // Continue only if value hasn't changed\r\n }\r\n\r\n setTimeout(function () {\r\n cursor = element.selectionEnd;\r\n e.target.value = handleCurrentValue(e);\r\n mask.innerHTML = setValueOfMask(e);\r\n\r\n if (e.keyCode != 8) {\r\n //if the user is backspacing and then switches back to typing forward\r\n if (!charSet.charAt(cursor - 1).match(\".*[\" + mNum + mChar + \"].*\")) {\r\n while (\r\n !charSet.charAt(cursor - 1).match(\".*[\" + mNum + mChar + \"].*\") &&\r\n cursor < charSet.length\r\n ) {\r\n cursor++;\r\n }\r\n } else {\r\n //if the user is typing forward\r\n while (!charSet.charAt(cursor).match(\".*[\" + mNum + mChar + \"].*\") && cursor < charSet.length) {\r\n cursor++;\r\n }\r\n }\r\n } else {\r\n //if the user is backspacing\r\n while (!charSet.charAt(cursor - 1).match(\".*[\" + mNum + mChar + \"].*\") && cursor > cursorMin) {\r\n cursor--;\r\n }\r\n cursor = Math.max(cursor, cursorMin);\r\n }\r\n element.setSelectionRange(cursor, cursor);\r\n }, 50);\r\n },\r\n handleCurrentValue = function (e) {\r\n var isCharsetPresent = e.target.getAttribute(\"data-charset\"),\r\n placeholder = isCharsetPresent || e.target.getAttribute(\"data-placeholder\"),\r\n value = e.target.value,\r\n l = placeholder.length,\r\n newValue = \"\",\r\n i,\r\n j,\r\n isInt,\r\n isLetter,\r\n strippedValue;\r\n\r\n // strip special characters\r\n strippedValue = isCharsetPresent ? value.replace(/\\W/g, \"\") : value.replace(/\\D/g, \"\");\r\n\r\n for (i = 0, j = 0; i < l; i++) {\r\n isInt = !isNaN(parseInt(strippedValue[j]));\r\n isLetter = strippedValue[j] ? strippedValue[j].match(/[A-Z]/i) : false;\r\n var matchesNumber = mNum.indexOf(placeholder[i]) >= 0;\r\n var matchesLetter = mChar.indexOf(placeholder[i]) >= 0;\r\n if ((matchesNumber && isInt) || (isCharsetPresent && matchesLetter && isLetter)) {\r\n newValue += strippedValue[j++];\r\n } else if (\r\n (!isCharsetPresent && !isInt && matchesNumber) ||\r\n (isCharsetPresent && ((matchesLetter && !isLetter) || (matchesNumber && !isInt)))\r\n ) {\r\n return newValue;\r\n } else {\r\n newValue += placeholder[i];\r\n }\r\n // break if no characters left and the pattern is non-special character\r\n if (strippedValue[j] == undefined) {\r\n if (i + 1 >= l || charSet.charAt(i + 1).match(\".*[\" + mNum + mChar + \"].*\") || e.keyCode == 8) {\r\n break;\r\n }\r\n }\r\n }\r\n if (e.target.getAttribute(\"data-valid-example\")) {\r\n return validateProgress(e, newValue);\r\n }\r\n return newValue;\r\n },\r\n validateProgress = function (e, value) {\r\n var validExample = e.target.getAttribute(\"data-valid-example\"),\r\n pattern = new RegExp(e.target.getAttribute(\"pattern\")),\r\n placeholder = e.target.getAttribute(\"data-placeholder\"),\r\n l = value.length,\r\n testValue = \"\";\r\n\r\n //convert to months\r\n if (l == 1 && placeholder.toUpperCase().substr(0, 2) == \"MM\") {\r\n if (value > 1 && value < 10) {\r\n value = \"0\" + value;\r\n }\r\n return value;\r\n }\r\n // test the value, removing the last character, until what you have is a submatch\r\n for (var i = l; i >= 0; i--) {\r\n testValue = value + validExample.substr(value.length);\r\n if (pattern.test(testValue)) {\r\n return value;\r\n } else {\r\n value = value.substr(0, value.length - 1);\r\n }\r\n }\r\n\r\n return value;\r\n };\r\n\r\n // add event listeners\r\n // init\r\n if (!(stringInputMask in element)) {\r\n var parentNode = element.parentNode;\r\n element.value ? (hasValue = true) : (hasValue = false);\r\n if (!charSet) {\r\n throw new Error(\"Data charset is missing or invalid\");\r\n }\r\n if (!charSet.charAt(0).match(\".*[\" + mNum + mChar + \"].*\")) {\r\n while (!charSet.charAt(cursorMin).match(\".*[\" + mNum + mChar + \"].*\")) {\r\n cursorMin++;\r\n }\r\n }\r\n if (!parentNode || !parentNode.classList.contains(prefix + \"input-shell\")) {\r\n createShell(element);\r\n element.addEventListener(\"change\", handleValueChange, false);\r\n element.addEventListener(\"keyup\", handleValueChange, false);\r\n if (spacing > 0) {\r\n element.addEventListener(\"focus\", handleFocusEvent, false);\r\n }\r\n }\r\n }\r\n\r\n element[stringInputMask] = self;\r\n}\r\n","import {\r\n prefix,\r\n debounce,\r\n jsonOptionsInit,\r\n getFullScreenOverlay,\r\n validateNum,\r\n uicoreCustomEvent,\r\n each,\r\n getFocusableElements,\r\n getClosest,\r\n isIE,\r\n isEdge,\r\n isFirefox,\r\n DOC,\r\n createElement,\r\n globalObject,\r\n} from \"./utilities.js\";\r\nimport InputMask from \"./helpers/inputMask.js\";\r\n\r\nexport function Spinbox(element, options) {\r\n // initialization element\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n options = options || {};\r\n options = jsonOptionsInit(element, options);\r\n options.spinmin = element.dataset.spinmin\r\n ? validateNum(element.dataset.spinmin, 0)\r\n : validateNum(options.spinmin, 0);\r\n options.spindefault = element.dataset.spindefault\r\n ? validateNum(element.dataset.spindefault, 0)\r\n : validateNum(options.spindefault, 0);\r\n options.spinmax = element.dataset.spinmax\r\n ? validateNum(element.dataset.spinmax, 100)\r\n : validateNum(options.spinmax, 100);\r\n options.spinstep = element.dataset.spinstep\r\n ? validateNum(element.dataset.spinstep, 1)\r\n : validateNum(options.spinstep, 1);\r\n\r\n var msg = \"\";\r\n if (isNaN(options.spinmin)) {\r\n msg += \"Min value is not a number.\\n\";\r\n }\r\n if (isNaN(options.spinmax)) {\r\n msg += \"Max value is not a number.\\n\";\r\n }\r\n if (isNaN(options.spindefault)) {\r\n msg += \"Default value is not a number.\\n\";\r\n } else if (options.spindefault < options.spinmin || options.spindefault > options.spinmax) {\r\n msg += \"Default value falls outside of the min max values.\\n\";\r\n }\r\n if (isNaN(options.spinstep)) {\r\n msg += \"Step value is not a number.\\n\";\r\n }\r\n if (msg.length) {\r\n throw new Error(msg);\r\n }\r\n\r\n var self = this,\r\n stringSpinbox = \"Spinbox\",\r\n updateValue = function (value) {\r\n input.value = value;\r\n input.setAttribute(\"aria-valuenow\", value);\r\n //the attr size is what defines an input width\r\n var size = Math.max(2, value.toString().length);\r\n input.setAttribute(\"size\", size.toString());\r\n if (isIE && size > 2) {\r\n if (size > 3) {\r\n element.setAttribute(\"style\", \"min-width:\" + size + \"rem\");\r\n } else {\r\n element.removeAttribute(\"style\");\r\n }\r\n }\r\n },\r\n input,\r\n plusCtrl,\r\n minusCtrl,\r\n // horizontal\r\n // handlers\r\n handleKeypressEvent = debounce(function (e) {\r\n var charCode = e.which ? e.which : e.keyCode;\r\n // if not a number\r\n if (input.value.length > options.spinmax.length || (charCode > 31 && (charCode < 48 || charCode > 57))) {\r\n if (charCode == 13) {\r\n input.blur();\r\n } else if (input.value.length == 0 && options.spinmin < 0 && charCode == 45) {\r\n // allow minus when input empty and spinmin less than zero\r\n return;\r\n } else {\r\n e.preventDefault();\r\n }\r\n } else {\r\n var newInput = input.value;\r\n if (parseInt(newInput) > options.spinmax) {\r\n updateValue(options.spinmax);\r\n e.preventDefault();\r\n } else if (parseInt(newInput) < options.spinmin) {\r\n updateValue(options.spinmin);\r\n e.preventDefault();\r\n } else {\r\n if (input.value == \"-\" && e.charCode == 48) {\r\n // dont allow -0\r\n e.preventDefault();\r\n } else {\r\n if (charCode == 13) {\r\n // Enter key\r\n if (Math.abs(parseInt(input.value)) % options.spinstep > 0) {\r\n input.value =\r\n parseInt(input.value) - (Math.abs(parseInt(input.value)) % options.spinstep);\r\n }\r\n input.blur();\r\n } else {\r\n updateValue(input.value);\r\n }\r\n }\r\n }\r\n }\r\n }, 500),\r\n handleCtrlClickEvent = function (e, control) {\r\n var temp;\r\n if (control === minusCtrl) {\r\n temp = parseInt(input.value) - options.spinstep;\r\n } else {\r\n temp = parseInt(input.value) + options.spinstep;\r\n }\r\n if (!(temp < options.spinmin) && !(temp > options.spinmax)) {\r\n updateValue(temp);\r\n handleDisabling();\r\n uicoreCustomEvent(\"Spinbox\", \"ValueChangeEvent\", element, {\r\n value: input.value,\r\n });\r\n }\r\n },\r\n handleDisabling = function () {\r\n if (input.value == options.spinmin || parseInt(input.value) - options.spinstep < options.spinmin) {\r\n minusCtrl.setAttribute(\"disabled\", \"\");\r\n } else if (minusCtrl.hasAttribute(\"disabled\")) {\r\n minusCtrl.removeAttribute(\"disabled\");\r\n }\r\n if (input.value == options.spinmax || parseInt(input.value) + options.spinstep > options.spinmax) {\r\n plusCtrl.setAttribute(\"disabled\", \"\");\r\n } else if (plusCtrl.hasAttribute(\"disabled\")) {\r\n plusCtrl.removeAttribute(\"disabled\");\r\n }\r\n },\r\n handleFocusOut = function () {\r\n // if input is empty, negative, or NaN\r\n if (input.value.length == 0 || input.value == \"-\" || !/^\\d+$/.test(input.value)) {\r\n input.value = options.spindefault;\r\n } else if (parseInt(input.value) < options.spinmin) {\r\n input.value = options.spinmin;\r\n } else if (parseInt(input.value) > options.spinmax) {\r\n input.value = options.spinmax;\r\n } else if (Math.abs(parseInt(input.value)) % options.spinstep > 0) {\r\n input.value = parseInt(input.value) - (Math.abs(parseInt(input.value)) % options.spinstep);\r\n } else if (input.value.match(/^0+/g)) {\r\n var match = input.value.match(/^0+/g);\r\n var temp = input.value.replace(match, \"\");\r\n if (temp.length == 0) {\r\n input.value = \"0\";\r\n } else {\r\n input.value = temp;\r\n }\r\n }\r\n handleDisabling();\r\n uicoreCustomEvent(\"Spinbox\", \"ValueChangeEvent\", element, {\r\n value: input.value,\r\n });\r\n },\r\n handleArrowEvent = function (e) {\r\n switch (e.keyCode) {\r\n case 35: // end\r\n e.preventDefault();\r\n input.value = options.spinmax;\r\n uicoreCustomEvent(\"Spinbox\", \"ValueChangeEvent\", element, {\r\n value: input.value,\r\n });\r\n break;\r\n case 36: // home\r\n e.preventDefault();\r\n input.value = options.spinmin;\r\n uicoreCustomEvent(\"Spinbox\", \"ValueChangeEvent\", element, {\r\n value: input.value,\r\n });\r\n break;\r\n case 38: // up\r\n e.preventDefault();\r\n if (input.value.length) {\r\n plusCtrl.click();\r\n } else {\r\n var v = options.spinmin + options.spinstep;\r\n updateValue(v);\r\n uicoreCustomEvent(\"Spinbox\", \"ValueChangeEvent\", element, { value: v });\r\n }\r\n break;\r\n case 40: // down\r\n e.preventDefault();\r\n minusCtrl.click();\r\n break;\r\n case 37: // left\r\n case 39: // right\r\n e.preventDefault();\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n // init\r\n if (!(stringSpinbox in element)) {\r\n input = element.querySelector(\".\" + prefix + \"spinbox-input\");\r\n input.addEventListener(\"keypress\", handleKeypressEvent);\r\n input.addEventListener(\"keyup\", handleDisabling);\r\n input.addEventListener(\"focusout\", handleFocusOut);\r\n element.addEventListener(\"keydown\", handleArrowEvent);\r\n\r\n input.value = options.spindefault;\r\n input.setAttribute(\"aria-valuenow\", options.spindefault);\r\n input.setAttribute(\"aria-valuemin\", options.spinmin);\r\n input.setAttribute(\"aria-valuemax\", options.spinmax);\r\n\r\n var controls = element.querySelectorAll(\"button.\" + prefix + \"spinbox-btn\");\r\n if (element.classList.contains(prefix + \"spinbox-horizontal\")) {\r\n // horizontal spinbox\r\n // horizontal = true;\r\n minusCtrl = controls[0];\r\n plusCtrl = controls[1];\r\n } else {\r\n // horizontal = false;\r\n minusCtrl = controls[1];\r\n plusCtrl = controls[0];\r\n }\r\n\r\n minusCtrl.addEventListener(\"click\", function (e) {\r\n handleCtrlClickEvent(e, minusCtrl);\r\n });\r\n plusCtrl.addEventListener(\"click\", function (e) {\r\n handleCtrlClickEvent(e, plusCtrl);\r\n });\r\n handleDisabling();\r\n updateValue(parseInt(input.value, 10));\r\n }\r\n\r\n element[stringSpinbox] = self;\r\n}\r\n\r\nexport function DatePicker(element, options) {\r\n // initialization element\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n // set option\r\n options = options || {};\r\n options = jsonOptionsInit(element, options);\r\n options.datesFilter = options.datesFilter ? options.datesFilter : false;\r\n options.pastDates = options.pastDates ? options.pastDates === true : false;\r\n options.availableWeekDays = options.availableWeekDays\r\n ? options.availableWeekDays\r\n : [\r\n { day: \"monday\" },\r\n { day: \"tuesday\" },\r\n { day: \"wednesday\" },\r\n { day: \"thursday\" },\r\n { day: \"friday\" },\r\n { day: \"saturday\" },\r\n { day: \"sunday\" },\r\n ];\r\n options.notBeforeDate = options.notBeforeDate ? new Date(options.notBeforeDate) : null;\r\n options.notAfterDate = options.notAfterDate ? new Date(options.notAfterDate) : null;\r\n options.button_prev = options.button_prev ? options.button_prev : null;\r\n options.button_next = options.button_next ? options.button_next : null;\r\n\r\n var self = this,\r\n stringDatePicker = \"DatePicker\",\r\n calendarBtn = element.querySelector(\".\" + prefix + \"datepicker-btn\"),\r\n target = element[\"getAttribute\"](\"data-target\"),\r\n dateInput = element.querySelector(\".\" + prefix + \"form-control\"),\r\n calendar = element.querySelector(target),\r\n form = null,\r\n monthEl = null,\r\n focusableEls,\r\n currentSelected,\r\n overlay = getFullScreenOverlay(),\r\n smallMedia = window.matchMedia(\"(max-width: 767.98px)\"),\r\n calendarWrapper,\r\n tempSelected = new Date(),\r\n todaysDate = new Date(),\r\n monthLabel = null,\r\n // holds the current month in calendar presentation\r\n datePtr = new Date(),\r\n monthsTexts = [\r\n \"January\",\r\n \"February\",\r\n \"March\",\r\n \"April\",\r\n \"May\",\r\n \"June\",\r\n \"July\",\r\n \"August\",\r\n \"September\",\r\n \"October\",\r\n \"November\",\r\n \"December\",\r\n ],\r\n weekDays = [\"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\"],\r\n keyCode = Object.freeze({\r\n TAB: 9,\r\n ENTER: 13,\r\n ESC: 27,\r\n SPACE: 32,\r\n PAGEUP: 33,\r\n PAGEDOWN: 34,\r\n END: 35,\r\n HOME: 36,\r\n LEFT: 37,\r\n UP: 38,\r\n RIGHT: 39,\r\n DOWN: 40,\r\n }),\r\n getMonthName = function (date) {\r\n return monthsTexts[(date || new Date()).getMonth()];\r\n },\r\n setFocusableElements = function () {\r\n focusableEls = getFocusableElements(calendar);\r\n },\r\n toggleCalendar = function () {\r\n if (calendar.classList.contains(prefix + \"d-none\")) {\r\n calendar.classList.remove(prefix + \"d-none\");\r\n calendarWrapper.classList.remove(prefix + \"hide\");\r\n if (smallMedia.matches) {\r\n resetPosition();\r\n createOverlay();\r\n } else {\r\n repositionIfNeeded();\r\n }\r\n\r\n globalObject.addEventListener(\"resize\", toggleCalendar);\r\n //check if calendar is within confines of page\r\n var dateText = dateInput.value;\r\n // !! new Date(dateText) risk of bug when browser l10n/i18n <> en_US\r\n if (dateText && dateInput.validity.valid && checkDateValidity(new Date(dateText))) {\r\n currentSelected = new Date(dateText);\r\n tempSelected = new Date(dateText);\r\n if (datePtr.getFullYear() != currentSelected.getFullYear()) {\r\n datePtr.setFullYear(currentSelected.getFullYear());\r\n }\r\n if (datePtr.getMonth() != currentSelected.getMonth()) {\r\n datePtr.setMonth(currentSelected.getMonth());\r\n }\r\n createMonth();\r\n var newDateElem = element.querySelector('[data-calendar-date=\"' + currentSelected + '\"]');\r\n if (!newDateElem.classList.contains(prefix + \"datepicker-date-disabled\")) {\r\n newDateElem.classList.add(prefix + \"datepicker-date-selected\");\r\n var nextBtn = newDateElem.querySelector(\".\" + prefix + \"datepicker-calendar-day\");\r\n nextBtn.removeAttribute(\"tabindex\");\r\n nextBtn.focus();\r\n }\r\n tempSelected = new Date(currentSelected.getTime());\r\n } else {\r\n resetToDefaultDate();\r\n }\r\n calendar.addEventListener(\"focusout\", blurHandler, false);\r\n } else {\r\n calendar.classList.add(prefix + \"d-none\");\r\n calendarWrapper.classList.add(prefix + \"hide\");\r\n globalObject.removeEventListener(\"resize\", toggleCalendar);\r\n removeActiveClass();\r\n calendarBtn.focus();\r\n calendar.removeEventListener(\"focusout\", blurHandler, false);\r\n removeOverlay();\r\n }\r\n },\r\n createWrapper = function () {\r\n var wrapper = createElement(\"div\", {\r\n class: prefix + \"calendar-wrapper \" + prefix + \"hide\",\r\n });\r\n calendar.parentNode.appendChild(wrapper);\r\n wrapper.appendChild(calendar);\r\n return wrapper;\r\n },\r\n resetPosition = function () {\r\n calendar.style.top = \"\";\r\n calendar.style.right = \"\";\r\n calendar.style.bottom = \"\";\r\n },\r\n repositionIfNeeded = function () {\r\n resetPosition();\r\n var elementRect = element.getBoundingClientRect();\r\n var calendarRect = calendar.getBoundingClientRect();\r\n\r\n if (calendarRect.right > document.body.offsetWidth) {\r\n calendar.style.right = document.body.offsetWidth - calendarBtn.getBoundingClientRect().right + \"px\";\r\n }\r\n\r\n var elementCenterPercent = parseInt(\r\n (100 * (elementRect.top + elementRect.height / 2)) / window.innerHeight\r\n );\r\n var elementExceedsTop = elementRect.top < 0;\r\n var elementExceedsBottom = elementRect.top + elementRect.height > window.innerHeight;\r\n\r\n var scrHeightRemain = Math.max(window.innerHeight - calendarRect.height, 0);\r\n var scrHeightRemainProportional = parseInt(scrHeightRemain * (elementCenterPercent / 100));\r\n\r\n var calendarExceedsBottom = calendarRect.bottom >= window.innerHeight;\r\n var calendarExceedsTop = elementRect.top - calendarRect.height <= 0;\r\n var calendarFitScr = calendarRect.height <= window.innerHeight;\r\n var calendarTopToReachProportion = Math.max(elementRect.top - scrHeightRemainProportional, 0);\r\n\r\n if (!calendarExceedsBottom) {\r\n calendar.style.top = \"100%\";\r\n } else if (!calendarExceedsTop) {\r\n calendar.style.bottom = \"100%\";\r\n } else if (calendarFitScr && elementExceedsTop) {\r\n calendar.style.top = Math.abs(elementRect.top) + \"px\";\r\n } else if (calendarFitScr && elementExceedsBottom) {\r\n calendar.style.bottom = Math.abs(elementRect.top + elementRect.height - window.innerHeight) + \"px\";\r\n } else if (calendarFitScr) {\r\n calendar.style.top = \"-\" + calendarTopToReachProportion + \"px\";\r\n } else {\r\n calendar.style.top = \"-\" + Math.abs(elementRect.top) + \"px\";\r\n }\r\n },\r\n blurHandler = function () {\r\n setTimeout(function () {\r\n if (\r\n calendar &&\r\n !calendar.contains(document.activeElement) &&\r\n !calendarBtn.contains(document.activeElement)\r\n ) {\r\n toggleCalendar();\r\n calendarBtn.focus();\r\n }\r\n }, 10);\r\n },\r\n getWeekDay = function (day) {\r\n return [\"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\"][day];\r\n },\r\n __formatDate = function (d, mask) {\r\n function pad(n, z) {\r\n var v = String(n);\r\n while (v.length < z) {\r\n v = \"0\" + v;\r\n }\r\n return v;\r\n }\r\n\r\n if (!mask || mask.length === 0) {\r\n mask = \"YMD\";\r\n }\r\n var o = \"\";\r\n for (var i = 0; i < mask.length; i++) {\r\n switch (mask[i]) {\r\n case \"Y\":\r\n o = o + pad(d.getFullYear(), 4);\r\n break;\r\n case \"M\":\r\n o = o + pad(d.getMonth(), 2);\r\n break;\r\n case \"D\":\r\n o = o + pad(d.getDate(), 2);\r\n break;\r\n }\r\n }\r\n return o;\r\n },\r\n __createDayWrapper = function (date) {\r\n var div = document.createElement(\"div\");\r\n div.className = prefix + \"datepicker-date\";\r\n div.setAttribute(\"data-calendar-date\", date);\r\n return div;\r\n },\r\n __createDayBtn = function (date) {\r\n var btn = document.createElement(\"button\");\r\n btn.setAttribute(\"type\", \"button\");\r\n btn.setAttribute(\"tabindex\", \"-1\");\r\n btn.className = prefix + \"datepicker-calendar-day\";\r\n btn.addEventListener(\"keydown\", dateKeydownHandler, false);\r\n btn.innerHTML = date.getDate();\r\n btn.setAttribute(\"aria-label\", [weekDays[date.getDay()], getMonthName(date), date.getDate()].join(\" \"));\r\n return btn;\r\n },\r\n __generateDateRange = function (startDate, endDate) {\r\n var dates = [];\r\n var idate = new Date(startDate);\r\n var udate = new Date(endDate);\r\n while (idate <= udate) {\r\n dates.push(new Date(idate));\r\n idate.setDate(idate.getDate() + 1);\r\n }\r\n return dates;\r\n },\r\n // generate date series pertaining a calendar in base date's month/year\r\n // base must be a Date object!\r\n __generateCalendar = function (base) {\r\n var baseDate = !base ? new Date() : base;\r\n\r\n var year = baseDate.getFullYear(),\r\n month = baseDate.getMonth();\r\n\r\n var firstDay = new Date(year, month, 1);\r\n if (firstDay.getDay() > 0) {\r\n firstDay.setDate(firstDay.getDate() - firstDay.getDay());\r\n }\r\n\r\n var lastDay = new Date(year, month + 1, 1);\r\n lastDay.setDate(lastDay.getDate() - 1);\r\n\r\n lastDay.setDate(lastDay.getDate() + (6 - lastDay.getDay()));\r\n // generate the list of dates\r\n return __generateDateRange(firstDay, lastDay);\r\n },\r\n createDay = function (date) {\r\n var isAvailable = true;\r\n\r\n var dateElem = __createDayBtn(date);\r\n var newDayElem = __createDayWrapper(date);\r\n\r\n if (date.getMonth() != datePtr.getMonth()) {\r\n newDayElem.classList.add(prefix + \"datepicker-date-outdated\");\r\n }\r\n\r\n var available_week_day = options.availableWeekDays.filter(function (f) {\r\n return f.day === date.getDay() || f.day === getWeekDay(date.getDay());\r\n });\r\n if (date <= options.defaultDate && date.getDate() < options.defaultDate.getDate() && !options.pastDates) {\r\n newDayElem.classList.add(prefix + \"datepicker-date-disabled\");\r\n dateElem.setAttribute(\"disabled\", \"\");\r\n } else {\r\n if (options.datesFilter) {\r\n if (options.notBeforeDate && date <= options.notBeforeDate) {\r\n isAvailable = false;\r\n }\r\n if (options.notAfterDate && date > options.notAfterDate) {\r\n isAvailable = false;\r\n }\r\n if (available_week_day.length && isAvailable) {\r\n newDayElem.classList.add(prefix + \"datepicker-date-active\");\r\n newDayElem.setAttribute(\"data-calendar-data\", JSON.stringify(available_week_day[0]));\r\n newDayElem.setAttribute(\"data-calendar-status\", \"active\");\r\n } else {\r\n newDayElem.classList.add(prefix + \"datepicker-date-disabled\");\r\n dateElem.setAttribute(\"disabled\", \"\");\r\n }\r\n } else {\r\n newDayElem.classList.add(prefix + \"datepicker-date-active\");\r\n newDayElem.setAttribute(\"data-calendar-status\", \"active\");\r\n }\r\n }\r\n //set current selected date\r\n if (\r\n currentSelected &&\r\n date.toString() == currentSelected.toString() &&\r\n !newDayElem.classList.contains(prefix + \"datepicker-date-disabled\")\r\n ) {\r\n newDayElem.classList.add(prefix + \"datepicker-date-selected\");\r\n }\r\n //if textbox is empty\r\n if (\r\n date.toString() == tempSelected.toString() &&\r\n !newDayElem.classList.contains(prefix + \"datepicker-date-disabled\")\r\n ) {\r\n newDayElem.classList.add(prefix + \"datepicker-date-temp-selected\");\r\n dateElem.removeAttribute(\"tabindex\");\r\n }\r\n //add date to the calendar\r\n newDayElem.appendChild(dateElem);\r\n return newDayElem;\r\n },\r\n createOverlay = function () {\r\n DOC.body.style.overflow = \"hidden\";\r\n if (overlay && !overlay.classList.contains(prefix + \"show\")) {\r\n overlay.classList.add(prefix + \"show\");\r\n overlay.removeAttribute(\"hidden\");\r\n if (overlay.style.visibility == \"hidden\") {\r\n overlay.style.visibility = \"\";\r\n }\r\n } else {\r\n console.warn(\r\n \"MODAL: Overlay requested. Corresponding HTML missing. Please apply id 'dds__full-screen-overlay' and class 'dds__overlay' to an empty div\"\r\n );\r\n }\r\n },\r\n removeOverlay = function () {\r\n DOC.body.style.overflow = \"\";\r\n if (overlay) {\r\n overlay.classList.remove(prefix + \"show\");\r\n }\r\n },\r\n removeActiveClass = function () {\r\n each(element.querySelectorAll(\".\" + prefix + \"datepicker-date-selected\"), function (day) {\r\n day.classList.remove(prefix + \"datepicker-date-selected\");\r\n });\r\n },\r\n removeTempClass = function () {\r\n each(element.querySelectorAll(\".\" + prefix + \"datepicker-date-temp-selected\"), function (day) {\r\n day.classList.remove(prefix + \"datepicker-date-temp-selected\");\r\n day.firstElementChild.setAttribute(\"tabindex\", \"-1\");\r\n });\r\n },\r\n resetToDefaultDate = function () {\r\n currentSelected = null;\r\n var defaultDate = getNearestAvailableDay(\r\n new Date(options.defaultDate),\r\n options.notBeforeDate,\r\n options.notAfterDate\r\n );\r\n if (!defaultDate) {\r\n /* eslint-disable no-console */\r\n console.warn(\r\n \"Can't define a valid date range. Check options.defaultDate options.notBeforeDate options.notAfterDate\"\r\n );\r\n return;\r\n }\r\n //todaysDate = getNearestAvailableDay(todaysDate);\r\n tempSelected = new Date(defaultDate.getTime());\r\n if (datePtr.getFullYear() != tempSelected.getFullYear()) {\r\n datePtr.setFullYear(tempSelected.getFullYear());\r\n }\r\n if (datePtr.getMonth() != tempSelected.getMonth()) {\r\n datePtr.setMonth(tempSelected.getMonth());\r\n }\r\n createMonth();\r\n var newDateElem = element.querySelector('[data-calendar-date=\"' + tempSelected + '\"]');\r\n newDateElem.classList.add(prefix + \"datepicker-date-temp-selected\");\r\n var nextBtn = newDateElem.querySelector(\".\" + prefix + \"datepicker-calendar-day\");\r\n nextBtn.removeAttribute(\"tabindex\");\r\n nextBtn.focus();\r\n },\r\n selectDate = function () {\r\n var activeDates = element.querySelectorAll(\"[data-calendar-status=active]\");\r\n each(activeDates, function (date) {\r\n date.addEventListener(\"click\", function () {\r\n removeActiveClass();\r\n removeTempClass();\r\n var datas = this.dataset;\r\n this.classList.add(prefix + \"datepicker-date-selected\");\r\n currentSelected = new Date(datas.calendarDate);\r\n setNewDate();\r\n });\r\n });\r\n },\r\n createMonth = function () {\r\n clearCalendar();\r\n monthLabel.innerHTML = monthsTexts[datePtr.getMonth()] + \" \" + datePtr.getFullYear();\r\n\r\n // clone current date\r\n var previousPtr = new Date(datePtr.getTime()),\r\n nextPtr = new Date(datePtr.getTime());\r\n\r\n // adjust new datePtr in previous & next month\r\n previousPtr.setMonth(previousPtr.getMonth() - 1);\r\n nextPtr.setMonth(nextPtr.getMonth() + 1);\r\n\r\n //check to see if previous month is out of range\r\n if (\r\n (options.notBeforeDate &&\r\n __formatDate(previousPtr, \"YM\") < __formatDate(options.notBeforeDate, \"YM\")) ||\r\n (!options.pastDates && __formatDate(previousPtr, \"YM\") < __formatDate(todaysDate, \"YM\"))\r\n ) {\r\n options.button_prev.classList.add(prefix + \"disabled\");\r\n options.button_prev.setAttribute(\"disabled\", \"\");\r\n } else {\r\n options.button_prev.classList.remove(prefix + \"disabled\");\r\n options.button_prev.removeAttribute(\"disabled\");\r\n }\r\n //check to see if next month is out of range\r\n if (options.notAfterDate && __formatDate(nextPtr, \"YM\") > __formatDate(options.notAfterDate, \"YM\")) {\r\n options.button_next.classList.add(prefix + \"disabled\");\r\n options.button_next.setAttribute(\"disabled\", \"\");\r\n } else {\r\n options.button_next.classList.remove(prefix + \"disabled\");\r\n options.button_next.removeAttribute(\"disabled\");\r\n }\r\n //add next month days onto calendar\r\n\r\n var dates = __generateCalendar(datePtr);\r\n each(dates, function (d) {\r\n monthEl.appendChild(createDay(d));\r\n });\r\n\r\n datePtr.setDate(1);\r\n selectDate();\r\n setFocusableElements();\r\n },\r\n updateMonthNavLabel = function (date) {\r\n //update label with prev month\r\n var prevMonthDate = new Date(date);\r\n prevMonthDate.setMonth(prevMonthDate.getMonth() - 1);\r\n options.button_prev &&\r\n options.button_prev.setAttribute(\r\n \"aria-label\",\r\n [\"previous month \", getMonthName(prevMonthDate)].join(\" \")\r\n );\r\n\r\n //update label with next month\r\n var nextMonthDate = new Date(date);\r\n nextMonthDate.setMonth(nextMonthDate.getMonth() + 1);\r\n options.button_next &&\r\n options.button_next.setAttribute(\"aria-label\", [\"next month \", getMonthName(nextMonthDate)].join(\" \"));\r\n },\r\n monthPrev = function (e) {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n datePtr.setMonth(datePtr.getMonth() - 1);\r\n createMonth();\r\n },\r\n monthNext = function (e) {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n datePtr.setMonth(datePtr.getMonth() + 1);\r\n createMonth();\r\n },\r\n checkDateValidity = function (date) {\r\n if (isNaN(date.getTime())) {\r\n return false;\r\n }\r\n var available_week_day = options.availableWeekDays.filter(function (f) {\r\n return f.day === date.getDay() || f.day === getWeekDay(date.getDay());\r\n });\r\n //check if valid weekday\r\n if (available_week_day.length == 0) {\r\n return false;\r\n }\r\n //check if not before\r\n if (options.notBeforeDate && date <= options.notBeforeDate) {\r\n return false;\r\n }\r\n //check if not after\r\n if (options.notAfterDate && date > options.notAfterDate) {\r\n return false;\r\n }\r\n // check if before today\r\n if (!options.pastDates && date < options.defaultDate && date.getDate() < options.defaultDate.getDate()) {\r\n return false;\r\n }\r\n return true;\r\n },\r\n clearCalendar = function () {\r\n monthEl.innerHTML = \"\";\r\n },\r\n createCalendar = function () {\r\n element.setAttribute(\"aria-modal\", \"true\");\r\n element.setAttribute(\"role\", \"dialog\");\r\n /* eslint-disable */\r\n element.querySelector(target).innerHTML = [\r\n '
',\r\n ' \",\r\n '
',\r\n ' \",\r\n \"
\",\r\n '
',\r\n '
',\r\n '
',\r\n ].join(\"\");\r\n\r\n element.querySelector(\".\" + prefix + \"datepicker-week\").innerHTML = [\r\n 'SUN',\r\n 'MON',\r\n ' TUE',\r\n ' WED',\r\n ' THU',\r\n ' FRI',\r\n ' SAT',\r\n ].join(\"\");\r\n\r\n var bottomMenu = element.querySelector(\".\" + prefix + \"calendar-buttons\");\r\n //eslint-disable-next-line\r\n bottomMenu.innerHTML =\r\n '';\r\n bottomMenu.querySelector(\".\" + prefix + \"btn-secondary\").addEventListener(\"click\", toggleCalendar, false);\r\n bottomMenu\r\n .querySelector(\".\" + prefix + \"btn-secondary\")\r\n .addEventListener(\"keydown\", buttonKeydownHandler, false);\r\n },\r\n setNewDate = function () {\r\n var deliminator = \"/\";\r\n dateInput.value =\r\n (\"0\" + (currentSelected.getMonth() + 1)).slice(-2) +\r\n deliminator +\r\n (\"0\" + currentSelected.getDate()).slice(-2) +\r\n deliminator +\r\n currentSelected.getFullYear();\r\n var e = document.createEvent(\"Event\");\r\n e.initEvent(\"change\", false, false);\r\n dateInput.dispatchEvent(e);\r\n dateInput.focus();\r\n uicoreCustomEvent(\"DatePicker\", \"SelectedDate\", element, {\r\n date: currentSelected,\r\n });\r\n toggleCalendar();\r\n },\r\n setNewTempDate = function (prevDate, currentDate) {\r\n //look for the new date\r\n tempSelected = getNextAvailableDay(prevDate, currentDate);\r\n //remove current selected\r\n var oldSelected = element.querySelector('[data-calendar-date=\"' + prevDate + '\"]');\r\n if (oldSelected) {\r\n oldSelected.children[0].setAttribute(\"tabindex\", \"-1\");\r\n oldSelected.classList.remove(prefix + \"datepicker-date-temp-selected\");\r\n }\r\n var newDateElem = element.querySelector('[data-calendar-date=\"' + tempSelected + '\"]');\r\n var nextBtn = newDateElem.querySelector(\".\" + prefix + \"datepicker-calendar-day\");\r\n nextBtn.removeAttribute(\"tabindex\");\r\n nextBtn.parentElement.classList.add(prefix + \"datepicker-date-temp-selected\");\r\n nextBtn.focus();\r\n updateMonthNavLabel(currentDate);\r\n },\r\n getNextAvailableDay = function (prevDate, currentDate) {\r\n var newDate = element.querySelector(\r\n \":not(.dds__datepicker-date-disabled):not(.dds__datepicker-date-outdated)[data-calendar-date='\" +\r\n currentDate +\r\n \"']\"\r\n );\r\n var direction = prevDate < currentDate ? 1 : -1;\r\n //check day\r\n if (newDate) {\r\n return currentDate;\r\n } else {\r\n //check if not before\r\n if (options.notBeforeDate && currentDate <= options.notBeforeDate) {\r\n return prevDate;\r\n }\r\n //check if not after\r\n if (options.notAfterDate && currentDate >= options.notAfterDate) {\r\n return prevDate;\r\n }\r\n // check if before today\r\n if (currentDate.getTime() <= todaysDate.getTime() - 1 && !options.pastDates) {\r\n return prevDate;\r\n }\r\n if (currentDate.getMonth() != prevDate.getMonth()) {\r\n if (direction == 1) {\r\n monthNext();\r\n }\r\n if (direction == -1) {\r\n monthPrev();\r\n }\r\n if (\r\n element.querySelector(\r\n \":not(.dds__datepicker-date-disabled)[data-calendar-date='\" + currentDate + \"']\"\r\n )\r\n ) {\r\n return currentDate;\r\n } else {\r\n prevDate = new Date(currentDate.getTime());\r\n currentDate.setDate(currentDate.getDate() + direction);\r\n return getNextAvailableDay(prevDate, currentDate);\r\n }\r\n } else {\r\n prevDate = new Date(currentDate.getTime());\r\n currentDate.setDate(currentDate.getDate() + direction);\r\n return getNextAvailableDay(prevDate, currentDate);\r\n }\r\n }\r\n },\r\n getNearestAvailableDay = function (currentDate, notBeforeDate, notAfterDate) {\r\n // the date is valid... so no calculation\r\n if (checkDateValidity(currentDate)) {\r\n return currentDate;\r\n }\r\n // no limits to find nearest day set limites notBefore=currentDate-1; notAfter=currentDate+30;\r\n\r\n if (!notBeforeDate) {\r\n notBeforeDate = new Date(currentDate).setDate(currentDate.getDate() - 7);\r\n }\r\n if (!notAfterDate) {\r\n notAfterDate = new Date(currentDate).setDate(currentDate.getDate() + 30);\r\n }\r\n // generate the list of possible dates\r\n var possibleDates = __generateDateRange(notBeforeDate, notAfterDate).filter(checkDateValidity);\r\n\r\n //reducer to find if the $date is on array\r\n //ignoring timestamp\r\n var hasDate = function (date) {\r\n return function (acc, val) {\r\n if (!acc && date && val) {\r\n acc =\r\n val.getDate() === date.getDate() &&\r\n val.getMonth() === date.getMonth() &&\r\n val.getFullYear() === date.getFullYear();\r\n }\r\n return acc;\r\n };\r\n };\r\n\r\n if (possibleDates.reduce(hasDate(currentDate), false)) {\r\n //test if the current day is inside available dates\r\n return currentDate;\r\n }\r\n\r\n //the first available date closest to currentDate\r\n return possibleDates.filter(function (value) {\r\n return value >= currentDate;\r\n })[0];\r\n },\r\n dateKeydownHandler = function (e) {\r\n if (!e.preventDefault) {\r\n e.preventDefault = function () {\r\n return (e.returnValue = false);\r\n };\r\n }\r\n var prevSelected = new Date(tempSelected.getTime());\r\n switch (e.keyCode) {\r\n case keyCode.UP: // up key\r\n e.preventDefault();\r\n tempSelected.setDate(tempSelected.getDate() - 7);\r\n setNewTempDate(prevSelected, tempSelected);\r\n break;\r\n case keyCode.DOWN: // down key\r\n e.preventDefault();\r\n tempSelected.setDate(tempSelected.getDate() + 7);\r\n setNewTempDate(prevSelected, tempSelected);\r\n break;\r\n case keyCode.LEFT: // left key\r\n e.preventDefault();\r\n tempSelected.setDate(tempSelected.getDate() - 1);\r\n setNewTempDate(prevSelected, tempSelected);\r\n break;\r\n case keyCode.RIGHT: // right key\r\n e.preventDefault();\r\n tempSelected.setDate(tempSelected.getDate() + 1);\r\n setNewTempDate(prevSelected, tempSelected);\r\n break;\r\n case keyCode.ESC: // esc key\r\n var oldSelected = element.querySelector(\".\" + prefix + \"datepicker-date-selected\");\r\n if (oldSelected) {\r\n oldSelected.classList.remove(prefix + \"datepicker-date-selected\");\r\n oldSelected.children[0].setAttribute(\"tabindex\", \"-1\");\r\n }\r\n toggleCalendar();\r\n break;\r\n case keyCode.TAB: // tab key\r\n if (focusableEls.length === 1) {\r\n e.preventDefault();\r\n break;\r\n }\r\n if (e.shiftKey) {\r\n if (document.activeElement === focusableEls[0]) {\r\n e.preventDefault();\r\n focusableEls[focusableEls.length - 1].focus();\r\n }\r\n } else {\r\n if (document.activeElement === focusableEls[focusableEls.length - 1]) {\r\n e.preventDefault();\r\n focusableEls[0].focus();\r\n }\r\n }\r\n break;\r\n }\r\n },\r\n buttonKeydownHandler = function (e) {\r\n switch (e.keyCode) {\r\n case keyCode.ESC: // esc key\r\n toggleCalendar();\r\n break;\r\n case keyCode.TAB: // tab key\r\n if (focusableEls.length === 1) {\r\n e.preventDefault();\r\n break;\r\n }\r\n if (e.shiftKey) {\r\n if (document.activeElement === focusableEls[0]) {\r\n e.preventDefault();\r\n focusableEls[focusableEls.length - 1].focus();\r\n }\r\n } else {\r\n if (document.activeElement === focusableEls[focusableEls.length - 1]) {\r\n e.preventDefault();\r\n focusableEls[0].focus();\r\n }\r\n }\r\n break;\r\n }\r\n },\r\n inputHandler = function () {\r\n if (checkDateValidity(new Date(dateInput.value)) && getComputedStyle(errorMsg).display == \"block\") {\r\n errorMsg.style.display = \"none\";\r\n dateInput.setCustomValidity(\"\");\r\n } else if (!checkDateValidity(new Date(dateInput.value))) {\r\n if (\r\n !isEdge ||\r\n (isEdge && calendar.classList.contains(prefix + \"d-none\") && document.activeElement !== calendarBtn)\r\n ) {\r\n toggleCalendar();\r\n }\r\n if (getComputedStyle(errorMsg).display == \"none\") {\r\n errorMsg.style.display = \"block\";\r\n dateInput.setCustomValidity(\"Invalid Date\");\r\n }\r\n }\r\n },\r\n submitHandler = function (event) {\r\n var formValidationErrorSuffix = \"Feedback\";\r\n if (form.checkValidity() === false) {\r\n each(form, function (el) {\r\n if (el.tagName == \"INPUT\") {\r\n var errorMsg = form.querySelector(\"#\" + el.getAttribute(\"id\") + formValidationErrorSuffix);\r\n setTimeout(function () {\r\n if (el.classList.contains(\"dds__datepicker-input\")) {\r\n if (checkDateValidity(new Date(el.value))) {\r\n el.setCustomValidity(\"\");\r\n } else {\r\n el.setCustomValidity(\"Invalid Date\");\r\n }\r\n }\r\n if (!el.validity.valid) {\r\n //if error message has not been turned on yet\r\n if (errorMsg && !(getComputedStyle(errorMsg)[\"display\"] == \"block\")) {\r\n errorMsg.style.display = \"block\";\r\n }\r\n el.setAttribute(\"aria-invalid\", \"true\");\r\n el.setAttribute(\"aria-describedby\", el.getAttribute(\"id\") + formValidationErrorSuffix);\r\n } else {\r\n //if error message has not been turned off yet\r\n if (errorMsg && getComputedStyle(errorMsg)[\"display\"] == \"block\") {\r\n errorMsg.style.display = \"none\";\r\n }\r\n el.setAttribute(\"aria-invalid\", \"false\");\r\n el.setAttribute(\"aria-describedby\", \"\");\r\n }\r\n }, 10);\r\n }\r\n });\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n form.classList.add(\"dds__was-validated\");\r\n };\r\n //public functions\r\n this.init = function () {\r\n createCalendar();\r\n options.button_prev = document.querySelector(target + \" [data-calendar-toggle=previous]\");\r\n options.button_next = document.querySelector(target + \" [data-calendar-toggle=next]\");\r\n monthEl = document.querySelector(target + \" [data-calendar-area=month]\");\r\n monthLabel = document.querySelector(target + \" [data-calendar-label=month]\");\r\n datePtr.setDate(1);\r\n createMonth();\r\n calendarWrapper = element.querySelector(\".\" + prefix + \"calendar-wrapper\")\r\n ? element.querySelector(\".\" + prefix + \"calendar-wrapper\")\r\n : createWrapper();\r\n options.button_prev.addEventListener(\r\n \"click\",\r\n function () {\r\n monthPrev();\r\n removeTempClass();\r\n var prevMonthDate = new Date(tempSelected.getTime());\r\n prevMonthDate.setMonth(prevMonthDate.getMonth() - 1);\r\n prevMonthDate.setDate(1);\r\n setNewTempDate(\r\n prevMonthDate,\r\n getNearestAvailableDay(prevMonthDate, options.notBeforeDate, options.notAfterDate)\r\n );\r\n if (!options.button_prev.classList.contains(prefix + \"disabled\")) {\r\n options.button_prev.focus();\r\n }\r\n updateMonthNavLabel(prevMonthDate);\r\n },\r\n false\r\n );\r\n options.button_next.addEventListener(\r\n \"click\",\r\n function () {\r\n monthNext();\r\n removeTempClass();\r\n var nextMonthDate = new Date(tempSelected.getTime());\r\n nextMonthDate.setMonth(nextMonthDate.getMonth() + 1);\r\n nextMonthDate.setDate(1);\r\n setNewTempDate(\r\n nextMonthDate,\r\n getNearestAvailableDay(nextMonthDate, options.notBeforeDate, options.notAfterDate)\r\n );\r\n if (!options.button_next.classList.contains(prefix + \"disabled\")) {\r\n options.button_next.focus();\r\n }\r\n updateMonthNavLabel(nextMonthDate);\r\n },\r\n false\r\n );\r\n updateMonthNavLabel(tempSelected);\r\n options.button_prev.addEventListener(\"keydown\", buttonKeydownHandler, false);\r\n options.button_next.addEventListener(\"keydown\", buttonKeydownHandler, false);\r\n };\r\n\r\n this.destroy = function () {\r\n options.button_prev.removeEventListener(\"click\", monthPrev, false);\r\n options.button_next.removeEventListener(\"click\", monthNext, false);\r\n options.button_prev.removeEventListener(\"keydown\", buttonKeydownHandler, false);\r\n options.button_next.removeEventListener(\"keydown\", buttonKeydownHandler, false);\r\n clearCalendar();\r\n document.querySelector(target).innerHTML = \"\";\r\n };\r\n this.reset = function () {\r\n this.destroy();\r\n this.init();\r\n };\r\n // this.set = function (options) {\r\n // for (var k in options) {\r\n // if (opts.hasOwnProperty(k)) {\r\n // opts[k] = options[k];\r\n // }\r\n // }\r\n // createMonth();\r\n // }\r\n if (!(stringDatePicker in element)) {\r\n // validate options\r\n if (calendarBtn == null) {\r\n throw new Error(\"There was a problem found with date picker button, please correct and try again\");\r\n }\r\n if (target == null) {\r\n throw new Error(\"There was a problem found with date picker target, please correct and try again\");\r\n }\r\n if (calendar == null) {\r\n throw new Error(\"There was a problem found with calendar, please correct and try again\");\r\n }\r\n //remove time from date\r\n datePtr.setHours(0, 0, 0, 0);\r\n todaysDate.setHours(0, 0, 0, 0);\r\n calendarBtn.addEventListener(\"click\", toggleCalendar, false);\r\n if (isEdge) {\r\n calendarBtn.addEventListener(\"click\", inputHandler, false);\r\n dateInput.addEventListener(\"focusout\", inputHandler, false);\r\n }\r\n if (!dateInput.hasAttribute(\"placeholder\")) {\r\n console.warn(\r\n \"Placeholder was not set. Please set a placeholder value if you plan to use form validation. Setting to default placeholder value.\"\r\n );\r\n dateInput.setAttribute(\"placeholder\", \"__/__/____\");\r\n }\r\n if (dateInput) {\r\n new InputMask(dateInput);\r\n var errorMsg = element.querySelector(\".\" + prefix + \"invalid-feedback\");\r\n dateInput.addEventListener(\"change\", inputHandler, false);\r\n }\r\n form = getClosest(element, \"FORM\", false);\r\n form.addEventListener(\"submit\", submitHandler);\r\n setFocusableElements();\r\n // //set input mask\r\n options.defaultDate = options.defaultDate\r\n ? checkDateValidity(new Date(options.defaultDate))\r\n ? options.defaultDate\r\n : \"\"\r\n : \"\";\r\n if (!options.defaultDate) {\r\n options.defaultDate = new Date();\r\n options.defaultDate.setHours(0, 0, 0, 0);\r\n } else {\r\n var defaultDate = (options.defaultDate = new Date(options.defaultDate));\r\n var defaultDay = defaultDate.getDate() < 10 ? \"0\" + defaultDate.getDate() : defaultDate.getDate();\r\n var defaultMonth =\r\n defaultDate.getMonth() + 1 < 10 ? \"0\" + (defaultDate.getMonth() + 1) : defaultDate.getMonth() + 1;\r\n\r\n dateInput.setAttribute(\"value\", defaultMonth + \"/\" + defaultDay + \"/\" + defaultDate.getFullYear());\r\n var e = document.createEvent(\"Event\");\r\n e.initEvent(\"change\", false, false);\r\n dateInput.dispatchEvent(e);\r\n if (isIE || isEdge) {\r\n element.style.display = \"none\"; //IE needs a small timeout or cursor will appear in input box\r\n setTimeout(function () {\r\n dateInput.blur();\r\n element.style.display = \"block\";\r\n }, 300);\r\n }\r\n }\r\n this.init();\r\n }\r\n element[stringDatePicker] = self;\r\n}\r\n\r\nexport function BarSelect(element) {\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n var self = this,\r\n stringBarSelect = \"BarSelect\",\r\n selects = null,\r\n value = 0,\r\n clickHandler = function (e) {\r\n var input = e.target.classList.contains(prefix + \"bar-select\")\r\n ? e.target.querySelector(\"input\")\r\n : e.target.tagName == \"LABEL\"\r\n ? e.target.previousElementSibling\r\n : e.target;\r\n value = parseInt(input.getAttribute(\"value\"));\r\n each(selects, function (select) {\r\n if (parseInt(select.querySelector(\"input\").getAttribute(\"value\")) <= value) {\r\n select.classList.remove(prefix + \"bar-select-hover\");\r\n select.classList.add(prefix + \"bar-select-selected\");\r\n } else {\r\n select.classList.remove(prefix + \"bar-select-hover\");\r\n select.classList.remove(prefix + \"bar-select-selected\");\r\n }\r\n });\r\n uicoreCustomEvent(\"BarSelect\", \"SelectedValue\", element, {\r\n value: value,\r\n });\r\n },\r\n mouseOverHandler = function (e) {\r\n var input = e.target.classList.contains(prefix + \"bar-select\")\r\n ? e.target.querySelector(\"input\")\r\n : e.target.tagName == \"LABEL\"\r\n ? e.target.previousElementSibling\r\n : e.target;\r\n value = parseInt(input.getAttribute(\"value\"));\r\n each(selects, function (select) {\r\n if (parseInt(select.querySelector(\"input\").getAttribute(\"value\")) <= value) {\r\n select.classList.add(prefix + \"bar-select-hover\");\r\n } else {\r\n select.classList.remove(prefix + \"bar-select-hover\");\r\n }\r\n });\r\n },\r\n mouseOutHandler = function () {\r\n each(selects, function (select) {\r\n select.classList.remove(prefix + \"bar-select-hover\");\r\n });\r\n },\r\n focusHandler = function (e) {\r\n var input = e.currentTarget.nextElementSibling;\r\n if (!isInViewport(input)) {\r\n input.scrollIntoView(false);\r\n }\r\n },\r\n isInViewport = function (element) {\r\n var bounding = element.getBoundingClientRect();\r\n return (\r\n bounding.top >= 0 &&\r\n bounding.left >= 0 &&\r\n bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n bounding.right <= (window.innerWidth || document.documentElement.clientWidth)\r\n );\r\n };\r\n\r\n if (!(stringBarSelect in element)) {\r\n selects = element.querySelectorAll(\".\" + prefix + \"bar-select\");\r\n element.addEventListener(\"mouseout\", mouseOutHandler, false);\r\n each(selects, function (select) {\r\n select.addEventListener(\"click\", clickHandler, false);\r\n select.addEventListener(\"mouseover\", mouseOverHandler, false);\r\n if (isIE || isFirefox) {\r\n select.querySelector(\"input\").addEventListener(\"focusin\", focusHandler, false);\r\n }\r\n });\r\n }\r\n\r\n element[stringBarSelect] = self;\r\n}\r\n","import {\r\n DOC,\r\n getElementsByClassName,\r\n prefix,\r\n uicoreCustomEvent,\r\n getTransitionDurationFromElement,\r\n each,\r\n getClosest,\r\n} from \"./utilities.js\";\r\n\r\nexport function Button(element) {\r\n // initialization element\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n // constant\r\n var self = this,\r\n stringButton = \"Button\",\r\n toggled = false, // toggled makes sure to prevent triggering twice the change.bs.button events\r\n pxToMove,\r\n btnWidth,\r\n checked = \"checked\",\r\n LABEL = \"LABEL\",\r\n onEl,\r\n offEl,\r\n circleEl,\r\n btnToggle,\r\n // private methods\r\n keyHandler = function (e) {\r\n var key = e.which || e.keyCode;\r\n key === 32 && e[\"target\"] === DOC.activeElement && toggle(e);\r\n },\r\n preventScroll = function (e) {\r\n var key = e.which || e.keyCode;\r\n key === 32 && e[\"preventDefault\"]();\r\n },\r\n toggle = function (e) {\r\n var label =\r\n e[\"target\"].tagName === LABEL\r\n ? e[\"target\"]\r\n : e[\"target\"][\"parentNode\"].tagName === LABEL\r\n ? e[\"target\"][\"parentNode\"]\r\n : null; // the .btn label\r\n\r\n if (!label) return; //react if a label or its immediate child is clicked\r\n\r\n var eventTarget = e[\"target\"], // the button itself, the target of the handler function\r\n labels = getElementsByClassName(eventTarget[\"parentNode\"], \"btn\"), // all the button group buttons\r\n input = label[\"getElementsByTagName\"](\"INPUT\")[0];\r\n\r\n if (!input) return; //return if no input found\r\n\r\n // manage the dom manipulation\r\n if (input.type === \"checkbox\") {\r\n //checkboxes\r\n if (!input[checked]) {\r\n label.classList.add(prefix + \"active\");\r\n input[\"getAttribute\"](checked);\r\n input[\"setAttribute\"](checked, checked);\r\n input[checked] = true;\r\n } else {\r\n label.classList.remove(prefix + \"active\");\r\n input[\"getAttribute\"](checked);\r\n input.removeAttribute(checked);\r\n input[checked] = false;\r\n }\r\n\r\n if (!toggled) {\r\n // prevent triggering the event twice\r\n toggled = true;\r\n // bootstrapCustomEvent.call(input, \"change\", component); //trigger the change for the input\r\n // bootstrapCustomEvent.call(element, \"change\", component); //trigger the change for the btn-group\r\n }\r\n }\r\n\r\n if (input.type === \"radio\" && !toggled) {\r\n // radio buttons\r\n if (!input[checked]) {\r\n // don't trigger if already active\r\n label.classList.add(prefix + \"active\");\r\n input[\"setAttribute\"](checked, checked);\r\n input[checked] = true;\r\n // bootstrapCustomEvent.call(input, \"change\", component); //trigger the change for the input\r\n // bootstrapCustomEvent.call(element, \"change\", component); //trigger the change for the btn-group\r\n\r\n toggled = true;\r\n each(labels, function (otherLabel) {\r\n var otherInput = otherLabel[\"getElementsByTagName\"](\"INPUT\")[0];\r\n if (otherLabel !== label && otherLabel.classList[\"contains\"](prefix + \"active\")) {\r\n label.classList.remove(prefix + \"active\");\r\n otherInput.removeAttribute(checked);\r\n otherInput[checked] = false;\r\n // bootstrapCustomEvent.call(otherInput, \"change\", component); // trigger the change\r\n }\r\n });\r\n }\r\n }\r\n setTimeout(function () {\r\n toggled = false;\r\n }, 50);\r\n },\r\n clickHandler = function () {\r\n // going from on to off\r\n if (btnToggle.getAttribute(\"aria-checked\") === \"true\") {\r\n self.toggleOff();\r\n // going from off to on\r\n } else {\r\n self.toggleOn();\r\n }\r\n };\r\n\r\n // public methods\r\n this.toggleOff = function () {\r\n circleEl.style.transform = \"translateX(0px)\";\r\n setTimeout(function () {\r\n btnToggle.setAttribute(\"aria-checked\", \"false\");\r\n }, getTransitionDurationFromElement(circleEl) / 2 - 25);\r\n offEl.setAttribute(\"aria-hidden\", \"false\");\r\n onEl.setAttribute(\"aria-hidden\", \"true\");\r\n uicoreCustomEvent(\"ButtonToggle\", \"Off\", element);\r\n };\r\n this.toggleOn = function () {\r\n circleEl.style.transform = \"translateX(\" + pxToMove + \"px)\";\r\n setTimeout(function () {\r\n btnToggle.setAttribute(\"aria-checked\", \"true\");\r\n }, getTransitionDurationFromElement(circleEl) / 2 - 25);\r\n offEl.setAttribute(\"aria-hidden\", \"true\");\r\n onEl.setAttribute(\"aria-hidden\", \"false\");\r\n uicoreCustomEvent(\"ButtonToggle\", \"On\", element);\r\n };\r\n\r\n // init\r\n if (!(stringButton in element)) {\r\n // prevent adding event handlers twice\r\n if (element.classList.contains(prefix + \"btn-toggle-container\")) {\r\n btnToggle =\r\n element.firstElementChild.tagName === \"LABEL\"\r\n ? element.querySelector(\".\" + prefix + \"btn-toggle\")\r\n : element;\r\n\r\n offEl = btnToggle.querySelector(\".\" + prefix + \"toggle-txt-off\");\r\n onEl = btnToggle.querySelector(\".\" + prefix + \"toggle-txt-on\");\r\n circleEl = btnToggle.querySelector(\".\" + prefix + \"toggle-circle\");\r\n\r\n if (element.firstElementChild.tagName === \"SPAN\") {\r\n offEl.style.display = \"block\";\r\n onEl.style.display = \"block\";\r\n var widthOff = offEl.getBoundingClientRect().width;\r\n var widthOn = onEl.getBoundingClientRect().width;\r\n offEl.removeAttribute(\"style\");\r\n onEl.removeAttribute(\"style\");\r\n btnWidth = Math.max(widthOff, widthOn);\r\n btnToggle.style.width = btnWidth + 24 + \"px\";\r\n }\r\n\r\n pxToMove = btnToggle.getBoundingClientRect().width - 28;\r\n\r\n if (btnToggle.getAttribute(\"aria-checked\") === \"true\") {\r\n circleEl.style.transform = \"translateX(\" + pxToMove + \"px)\";\r\n }\r\n btnToggle.style.visibility = \"visible\";\r\n element.addEventListener(\"click\", clickHandler);\r\n // bootstrap button js that needs to be checked on\r\n } else {\r\n element.addEventListener(\"click\", toggle, false);\r\n element[\"hasAttribute\"](\"tabindex\") && element.addEventListener(\"keyup\", keyHandler, false),\r\n element.addEventListener(\"keydown\", preventScroll, false);\r\n\r\n // activate items on load\r\n each(getElementsByClassName(element, prefix + \"btn\"), function (label) {\r\n !label.classList[\"contains\"](prefix + \"active\") &&\r\n label(\"hasAttribute\")(\"checked\") &&\r\n label.classList.add(prefix + \"active\");\r\n });\r\n }\r\n }\r\n\r\n element[stringButton] = self;\r\n}\r\n\r\nexport function ButtonFilter(element) {\r\n // initialization element\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n var stringButtonFilter = \"ButtonFilter\",\r\n lastActiveItem = null,\r\n inactiveFilterItem,\r\n activeFilterItem,\r\n // Event Handlers\r\n focusInEventHandler = function (e) {\r\n var filterItem = e[\"currentTarget\"];\r\n e.preventDefault();\r\n // Clicking or Tabbing on the active filter item\r\n var parentFieldset = getClosest(filterItem, \"fieldset\", false);\r\n if (\r\n filterItem == lastActiveItem ||\r\n filterItem.classList.contains(prefix + \"disabled\") ||\r\n (parentFieldset && parentFieldset.hasAttribute(\"disabled\"))\r\n ) {\r\n return;\r\n }\r\n\r\n activeFilterItem = filterItem;\r\n inactiveFilterItem = lastActiveItem;\r\n\r\n if (inactiveFilterItem.label) {\r\n inactiveFilterItem.label.classList.remove(prefix + \"active\");\r\n activeFilterItem.label.classList.add(prefix + \"active\");\r\n }\r\n if (inactiveFilterItem.input) {\r\n inactiveFilterItem.input.removeAttribute(\"checked\");\r\n activeFilterItem.input.setAttribute(\"checked\", \"\");\r\n }\r\n\r\n inactiveFilterItem.classList.remove(prefix + \"active\");\r\n activeFilterItem.classList.add(prefix + \"active\");\r\n lastActiveItem = activeFilterItem;\r\n\r\n // TODO\r\n // Emit filter event typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, detailArg: T\r\n uicoreCustomEvent(\"ButtonFilter\", \"Click\", activeFilterItem.label, {\r\n target: activeFilterItem.label.dataset[\"filterValue\"],\r\n });\r\n };\r\n\r\n if (!(stringButtonFilter in element)) {\r\n var filterItems = element.querySelectorAll(\".\" + prefix + \"filter-item\");\r\n lastActiveItem = element.querySelector(\".\" + prefix + \"active\");\r\n for (var f = 0; f < filterItems.length; f++) {\r\n filterItems[f].addEventListener(\"focusin\", focusInEventHandler, false);\r\n filterItems[f].label = filterItems[f].querySelector(\".\" + prefix + \"btn-filter\");\r\n filterItems[f].input = filterItems[f].querySelector(\".\" + prefix + \"btn-input\");\r\n }\r\n }\r\n\r\n element[stringButtonFilter] = self;\r\n}\r\n","import {\r\n each,\r\n prefix,\r\n debounce,\r\n createElement,\r\n classAdd,\r\n isArray,\r\n isIE,\r\n uicoreCustomEvent,\r\n emulateTransitionEnd,\r\n isEdge,\r\n renderSvg,\r\n} from \"./utilities\";\r\n\r\nexport default function Overflow(element, options) {\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n // set options\r\n options = options || {};\r\n if (element.dataset[\"type\"]) {\r\n options.type = element.dataset[\"type\"];\r\n }\r\n if (element.dataset[\"position\"]) {\r\n options.position = element.dataset[\"position\"];\r\n }\r\n if (element.dataset[\"top\"]) {\r\n options.top = parseInt(element.dataset[\"top\"]);\r\n }\r\n if (element.dataset[\"style\"]) {\r\n options.style = element.dataset[\"style\"];\r\n }\r\n\r\n options.type = options.type ? options.type : \"single\";\r\n options.style = options.style ? (options.style === \"svg\" ? (options.style = \"svg\") : \"button\") : \"button\";\r\n options.position = options.position && options.position === \"outset\" ? \"outset\" : \"inset\";\r\n options.top = options.top && typeof options.top === \"number\" ? options.top : null;\r\n options.lazyload = options.lazyload ? options.lazyload : false;\r\n options.responsive = options.responsive ? options.responsive : false;\r\n\r\n var self = this,\r\n stringOverflow = \"Overflow\",\r\n overflowElement, // The UL container div\r\n overflowContainer, // The UL element\r\n overflowChildren,\r\n overflowChildRight,\r\n overflowChildLeft,\r\n centered = false,\r\n leftCtrl,\r\n rightCtrl,\r\n atLeftEnd = true,\r\n atRightEnd = true,\r\n ctrlWidth,\r\n containerLeft,\r\n containerRight,\r\n centeredOffset = 0,\r\n containerHeight = 0,\r\n containerWidth = 0,\r\n // handlers\r\n handleSizeChange = function () {\r\n if (containerWidth == overflowElement.offsetWidth) return;\r\n if (containerHeight !== overflowChildren.children[0].offsetHeight) {\r\n handleResize();\r\n }\r\n setLeftAndRightIndex();\r\n containerWidth = overflowElement.offsetWidth;\r\n },\r\n handleResize = debounce(function () {\r\n getChildrenWidth();\r\n setLeftAndRightIndex();\r\n addHeightStyle([leftCtrl, rightCtrl]);\r\n if (Math.abs(overflowContainer.offsetLeft) + overflowContainer.offsetWidth > overflowChildren.width) {\r\n if (leftCtrl.hasAttribute(\"active\")) {\r\n var currentOffset = pageRight();\r\n overflowContainer.style.left = currentOffset + \"px\";\r\n }\r\n }\r\n }, 10),\r\n handleClickEvent = function (e) {\r\n var isRight = e.target.classList.contains(prefix + \"overflow-control-right\") ? true : false;\r\n controlClick(isRight);\r\n },\r\n controlClick = function (isRight) {\r\n var currentOffset = null;\r\n if (options.type == \"single\") {\r\n if (isRight) {\r\n atLeftEnd = false;\r\n var rightChild = overflowChildren.children[overflowChildRight + 1];\r\n var rightElementEdge =\r\n rightChild.offsetLeft +\r\n rightChild.offsetWidth -\r\n (Math.abs(overflowContainer.offsetLeft) + overflowContainer.offsetWidth);\r\n if (overflowChildRight + 1 >= overflowChildren.children.length - 1) {\r\n atRightEnd = true;\r\n }\r\n currentOffset =\r\n (Math.abs(overflowContainer.offsetLeft) +\r\n rightElementEdge +\r\n (options.position === \"inset\" && !atRightEnd ? ctrlWidth : 0)) *\r\n -1;\r\n } else {\r\n atRightEnd = false;\r\n var leftChild = overflowChildren.children[overflowChildLeft - 1];\r\n if (overflowChildLeft - 1 === 0) {\r\n atLeftEnd = true;\r\n currentOffset = 0;\r\n } else {\r\n currentOffset =\r\n (leftChild.offsetLeft - (options.position === \"inset\" && !atLeftEnd ? ctrlWidth : 0)) * -1;\r\n }\r\n }\r\n } else {\r\n if (isRight) {\r\n currentOffset = pageRight();\r\n } else {\r\n atRightEnd = false;\r\n if (overflowChildren.children[overflowChildLeft].offsetLeft < overflowContainer.offsetWidth) {\r\n atLeftEnd = true;\r\n currentOffset = 0;\r\n } else {\r\n var tabLeft =\r\n Math.abs(overflowContainer.offsetLeft) -\r\n overflowChildren.children[overflowChildLeft - 1].offsetLeft;\r\n var contSpace =\r\n overflowContainer.offsetWidth -\r\n (options.position === \"inset\" ? ctrlWidth : 0) -\r\n overflowChildren.children[overflowChildLeft - 1].offsetWidth;\r\n currentOffset = (Math.abs(overflowContainer.offsetLeft) - (tabLeft + contSpace)) * -1;\r\n }\r\n }\r\n }\r\n overflowContainer.style.left = currentOffset + \"px\";\r\n emulateTransitionEnd(overflowContainer, setLeftAndRightIndex);\r\n },\r\n pageRight = function () {\r\n var rightChild;\r\n atLeftEnd = overflowChildren.width < overflowContainer.offsetWidth ? true : false;\r\n var currentOffset = null;\r\n var remainder =\r\n overflowChildren.width - (Math.abs(overflowContainer.offsetLeft) + overflowContainer.offsetWidth);\r\n if (overflowContainer.offsetWidth >= remainder) {\r\n atRightEnd = true;\r\n rightChild = overflowChildren.children[overflowChildren.children.length - 1];\r\n var rightElementEdge =\r\n rightChild.offsetLeft +\r\n rightChild.offsetWidth -\r\n (Math.abs(overflowContainer.offsetLeft) + overflowContainer.offsetWidth);\r\n currentOffset = (Math.abs(overflowContainer.offsetLeft) + rightElementEdge) * -1;\r\n } else {\r\n atRightEnd = false;\r\n rightChild = overflowChildren.children[overflowChildRight + 1];\r\n currentOffset =\r\n (rightChild.offsetLeft - (options.position === \"inset\" && !atRightEnd ? ctrlWidth : 0)) * -1;\r\n }\r\n return currentOffset;\r\n },\r\n setLeftAndRightCtrl = function () {\r\n if (atRightEnd) {\r\n rightCtrl.removeAttribute(\"active\");\r\n if (isIE && centered && atLeftEnd) {\r\n setMinimumWidth();\r\n }\r\n } else if (!rightCtrl.hasAttribute(\"active\")) {\r\n rightCtrl.setAttribute(\"active\", \"\");\r\n if (isIE && centered) {\r\n overflowContainer.style.minWidth = \"\";\r\n }\r\n }\r\n if (atLeftEnd) {\r\n leftCtrl.removeAttribute(\"active\");\r\n } else if (!leftCtrl.hasAttribute(\"active\")) {\r\n leftCtrl.setAttribute(\"active\", \"\");\r\n }\r\n },\r\n createArrowHtml = function () {\r\n leftCtrl = createElement(\"button\", {\r\n class:\r\n prefix +\r\n \"overflow-control \" +\r\n prefix +\r\n \"overflow-control-left \" +\r\n (options.style === \"button\" ? prefix + \"overflow-control-btn\" : prefix + \"overflow-control-svg\"),\r\n tabIndex: \"-1\",\r\n \"aria-label\": \"Previous\",\r\n });\r\n leftCtrl.style.left = options.position === \"outset\" ? \"-8px\" : \"0px\";\r\n leftCtrl.addEventListener(\"click\", handleClickEvent, false);\r\n rightCtrl = createElement(\"button\", {\r\n class:\r\n prefix +\r\n \"overflow-control \" +\r\n prefix +\r\n \"overflow-control-right \" +\r\n (options.style === \"button\" ? prefix + \"overflow-control-btn\" : prefix + \"overflow-control-svg\"),\r\n tabIndex: \"-1\",\r\n \"aria-label\": \"Next\",\r\n });\r\n rightCtrl.style.right = options.position === \"outset\" ? \"-8px\" : \"0px\";\r\n rightCtrl.addEventListener(\"click\", handleClickEvent, false);\r\n if (options.top) {\r\n rightCtrl.style.top = options.top + \"px\";\r\n leftCtrl.style.top = options.top + \"px\";\r\n }\r\n var controls = [leftCtrl, rightCtrl];\r\n if (!options.responsive) {\r\n each(controls, function (control) {\r\n control.classList.add(prefix + \"overflow-unresponsive\");\r\n });\r\n }\r\n addHeightStyle(controls);\r\n\r\n var leftSvg = renderSvg([{ name: \"chevron-left\", show: true }], { \"aria-hidden\": true });\r\n classAdd(leftSvg, prefix + \"overflow-control-left\");\r\n var rightSvg = renderSvg([{ name: \"chevron-right\", show: true }], { \"aria-hidden\": true });\r\n classAdd(rightSvg, prefix + \"overflow-control-right\");\r\n leftCtrl.appendChild(leftSvg);\r\n rightCtrl.appendChild(rightSvg);\r\n\r\n element.insertBefore(leftCtrl, element.children[0]);\r\n element.insertBefore(rightCtrl, element.children[1]);\r\n setCtrlWidth();\r\n },\r\n getChildrenWidth = function () {\r\n overflowChildren.width = 0;\r\n overflowChildren.children = [];\r\n each(overflowContainer.children, function (child) {\r\n overflowChildren.width += child.offsetWidth + getMargin(child);\r\n overflowChildren.children.push(child);\r\n });\r\n overflowChildren.width -= isEdge ? overflowChildren.children.length - 1 : 0;\r\n },\r\n getMargin = function (child) {\r\n var style = child.currentStyle || window.getComputedStyle(child),\r\n margin;\r\n if (isIE) {\r\n margin =\r\n convertRemToPixels(style.getPropertyValue(\"margin-left\")) +\r\n convertRemToPixels(style.getPropertyValue(\"margin-right\"));\r\n } else {\r\n margin = parseInt(style.marginLeft) + parseInt(style.marginRight);\r\n }\r\n return margin;\r\n },\r\n addHeightStyle = function (els) {\r\n if (!isArray(els)) {\r\n els = [els];\r\n }\r\n each(els, function (el) {\r\n if (options.style === \"button\") {\r\n el.style.height = overflowChildren.children[0].offsetHeight + \"px\";\r\n containerHeight = overflowChildren.children[0].offsetHeight;\r\n }\r\n });\r\n },\r\n toggleCentered = function (offSet) {\r\n if (offSet < 0) {\r\n if (overflowContainer.parentElement.classList.contains(prefix + \"tabs-centered-container\")) {\r\n overflowContainer.parentElement.classList.remove(prefix + \"tabs-centered-container\");\r\n }\r\n if (overflowContainer.classList.contains(prefix + \"tab-centered\")) {\r\n overflowContainer.classList.remove(prefix + \"tab-centered\");\r\n }\r\n return false;\r\n } else {\r\n if (!overflowContainer.parentElement.classList.contains(prefix + \"tabs-centered-container\")) {\r\n overflowContainer.parentElement.classList.add(prefix + \"tabs-centered-container\");\r\n }\r\n if (!overflowContainer.classList.contains(prefix + \"tab-centered\")) {\r\n overflowContainer.classList.add(prefix + \"tab-centered\");\r\n }\r\n overflowContainer.style.left = \"0px\";\r\n return true;\r\n }\r\n },\r\n setContainerLeftRight = function (useCentered, offSet) {\r\n if (useCentered) {\r\n containerLeft = offSet > 0 ? 0 : offSet;\r\n containerRight = overflowElement.offsetWidth;\r\n centeredOffset = Math.floor(offSet);\r\n } else {\r\n containerLeft = Math.abs(overflowContainer.offsetLeft);\r\n containerLeft += options.position === \"inset\" && !atLeftEnd ? ctrlWidth : 0;\r\n containerRight = containerLeft + overflowContainer.offsetWidth;\r\n }\r\n },\r\n setLeftAndRightIndex = function () {\r\n overflowChildLeft = null;\r\n overflowChildRight = null;\r\n var overflowChildLeftSet = false,\r\n offSet = (overflowElement.offsetWidth - overflowChildren.width) / 2,\r\n useCentered = false;\r\n if (centered) {\r\n useCentered = toggleCentered(offSet);\r\n }\r\n setContainerLeftRight(useCentered, offSet);\r\n each(overflowChildren.children, function (child, idx) {\r\n var childLeft;\r\n if (useCentered) {\r\n childLeft =\r\n centeredOffset + Math.floor(overflowChildren.width / overflowChildren.children.length) * idx;\r\n } else {\r\n childLeft = child.offsetLeft;\r\n }\r\n if (!overflowChildLeftSet && childLeft >= containerLeft) {\r\n overflowChildLeft = idx;\r\n overflowChildLeftSet = true;\r\n }\r\n if (childLeft + child.offsetWidth <= containerRight) {\r\n overflowChildRight = idx;\r\n }\r\n });\r\n if (overflowChildLeft > 0) {\r\n atLeftEnd = false;\r\n } else {\r\n atLeftEnd = true;\r\n }\r\n if (overflowChildRight < overflowChildren.children.length - 1) {\r\n atRightEnd = false;\r\n } else {\r\n atRightEnd = true;\r\n }\r\n setLeftAndRightCtrl();\r\n uicoreCustomEvent(\"Overflow\", \"ChangeEvent\", element, {\r\n left: overflowChildLeft,\r\n right: overflowChildRight,\r\n totalItems: overflowChildren.children.length,\r\n hasRightControl: rightCtrl.hasAttribute(\"active\"),\r\n hasLeftControl: leftCtrl.hasAttribute(\"active\"),\r\n });\r\n },\r\n convertRemToPixels = function (rem) {\r\n if (rem.indexOf(\"rem\") > 0) {\r\n rem = rem.split(\"rem\")[0];\r\n var computed = rem * parseFloat(getComputedStyle(document.documentElement).fontSize);\r\n if (computed < 0) {\r\n return Math.floor(computed);\r\n } else {\r\n return Math.ceil(computed);\r\n }\r\n } else {\r\n return 0;\r\n }\r\n },\r\n setCtrlWidth = function () {\r\n var style = rightCtrl.currentStyle || window.getComputedStyle(rightCtrl, null);\r\n if (isIE) {\r\n ctrlWidth = convertRemToPixels(style.getPropertyValue(\"width\"));\r\n } else {\r\n ctrlWidth = parseInt(style.getPropertyValue(\"width\").match(/^\\d.?/g)[0]);\r\n }\r\n },\r\n setMinimumWidth = function () {\r\n var width = 0;\r\n each(overflowContainer.querySelectorAll(\"LI\"), function (child) {\r\n width += 120 + getMargin(child);\r\n });\r\n overflowContainer.style.minWidth = width - 5 + \"px\";\r\n },\r\n frameListener = function () {\r\n handleSizeChange();\r\n window.requestAnimationFrame(frameListener);\r\n },\r\n init = function () {\r\n getChildrenWidth();\r\n createArrowHtml();\r\n setLeftAndRightIndex();\r\n if (overflowChildRight < overflowChildren.children.length - 1) {\r\n rightCtrl.setAttribute(\"active\", \"\");\r\n }\r\n if (isIE && centered && atLeftEnd && atRightEnd) {\r\n setMinimumWidth();\r\n }\r\n window.addEventListener(\"resize\", handleResize, false);\r\n containerWidth = overflowElement.offsetWidth;\r\n window.requestAnimationFrame(frameListener);\r\n };\r\n\r\n this.lazyLoad = function () {\r\n if (stringOverflow in element) {\r\n init();\r\n }\r\n };\r\n\r\n this.getCurrentDetails = function () {\r\n return {\r\n left: overflowChildLeft,\r\n right: overflowChildRight,\r\n totalItems: overflowChildren.children.length,\r\n hasRightControl: rightCtrl.hasAttribute(\"active\"),\r\n hasLeftControl: leftCtrl.hasAttribute(\"active\"),\r\n };\r\n };\r\n this.clickRight = function () {\r\n controlClick(true);\r\n };\r\n\r\n this.clickLeft = function () {\r\n controlClick(false);\r\n };\r\n\r\n this.clickEnd = function () {\r\n atLeftEnd = overflowChildren.width < overflowContainer.offsetWidth ? true : false;\r\n atRightEnd = true;\r\n if (rightCtrl.hasAttribute(\"active\")) {\r\n overflowContainer.style.left =\r\n (overflowChildren.width -\r\n overflowContainer.offsetWidth +\r\n (options.position === \"inset\" && !atRightEnd ? ctrlWidth : 0)) *\r\n -1 +\r\n \"px\";\r\n }\r\n rightCtrl.removeAttribute(\"active\");\r\n emulateTransitionEnd(overflowContainer, setLeftAndRightIndex);\r\n };\r\n\r\n this.clickHome = function () {\r\n atLeftEnd = true;\r\n atRightEnd = false;\r\n if (leftCtrl.hasAttribute(\"active\")) {\r\n overflowContainer.style.left = \"0px\";\r\n }\r\n leftCtrl.removeAttribute(\"active\");\r\n emulateTransitionEnd(overflowContainer, setLeftAndRightIndex);\r\n };\r\n\r\n //init\r\n if (!(stringOverflow in element)) {\r\n overflowElement = element;\r\n if (element.children[0].classList.contains(prefix + \"tabs-centered-container\")) {\r\n centered = true;\r\n }\r\n\r\n overflowElement.style.overflow = \"hidden\";\r\n overflowContainer = overflowElement.querySelector(\"UL\");\r\n overflowContainer.classList.add(prefix + \"overflow-transition\");\r\n overflowContainer.setAttribute(\r\n \"style\",\r\n \"position: relative; flex-wrap: nowrap; white-space: nowrap; left: 0px\"\r\n );\r\n overflowChildren = {};\r\n // Some child elements contain images so wait for page load to initialize.\r\n if (!options.lazyload) {\r\n init();\r\n }\r\n }\r\n\r\n element[stringOverflow] = self;\r\n}\r\n","import {\r\n getElementsByClassName,\r\n globalObject,\r\n supportTransitions,\r\n HTML,\r\n DOC,\r\n getTransitionDurationFromElement,\r\n prefix,\r\n uicoreCustomEvent,\r\n isIE,\r\n ieMosaicPolyfill,\r\n each,\r\n validateNum,\r\n getClosest,\r\n jsonOptionsInit,\r\n swipeInit,\r\n direction,\r\n getFocusableElements,\r\n} from \"./utilities.js\";\r\nimport Overflow from \"./overflow.js\";\r\n\r\nexport function Carousel(element, options) {\r\n // initialization element\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n // set options\r\n options = options || {};\r\n options = jsonOptionsInit(element, options);\r\n options.interval = element.dataset.interval\r\n ? validateNum(element.dataset.interval, 5000)\r\n : validateNum(options.interval, 5000);\r\n options.pause = element.dataset.pause\r\n ? element.dataset.pause === \"hover\"\r\n ? element.dataset.pause\r\n : false\r\n : options.pause === \"hover\"\r\n ? options.pause\r\n : false;\r\n options.keyboard = element.dataset.keyboard\r\n ? element.dataset.keyboard === \"true\"\r\n ? true\r\n : false\r\n : options.keyboard === \"true\"\r\n ? true\r\n : false;\r\n options.mosaic = false;\r\n\r\n // DATA API\r\n var stringCarousel = \"Carousel\",\r\n visibilityState = \"visible\",\r\n smallMediaSize = window.matchMedia(\"(max-width: 767.98px)\"),\r\n // strings\r\n paused = \"paused\",\r\n dataSlideTo = \"data-slide-to\",\r\n mouseHover = \"onmouseleave\" in DOC ? [\"mouseenter\", \"mouseleave\"] : [\"mouseover\", \"mouseout\"];\r\n\r\n // bind, event targets\r\n var self = this,\r\n stopAutoRotate = false,\r\n index = (element.index = 0),\r\n timer = (element.timer = 0),\r\n isSliding = false, // isSliding prevents click event handlers when animation is running\r\n slides = getElementsByClassName(element, prefix + \"carousel-item\"),\r\n total = slides[\"length\"],\r\n slideDirection = (this[\"direction\"] = \"left\"),\r\n // Arrow capability\r\n leftArrow = getElementsByClassName(element, prefix + \"carousel-control-prev\")[0],\r\n rightArrow = getElementsByClassName(element, prefix + \"carousel-control-next\")[0],\r\n // SVG indicators\r\n svgIndicator = element.querySelector(\".\" + prefix + \"carousel-indicators\"),\r\n svgIndicators = (svgIndicator && svgIndicator[\"getElementsByTagName\"](\"LI\")) || [],\r\n // Button indicatos\r\n btnIndicator = element.querySelector(\".\" + prefix + \"carousel-indicators-btn\"),\r\n btnIndicators = (btnIndicator && btnIndicator[\"getElementsByTagName\"](\"LI\")) || [],\r\n indicators = svgIndicators[\"length\"] > 0 ? svgIndicators : btnIndicators,\r\n isFocused = false,\r\n politeElement = null;\r\n\r\n // invalidate when not enough items\r\n if (total < 2) {\r\n return;\r\n }\r\n\r\n // handlers\r\n var pauseHandler = function () {\r\n if (options.interval !== false && !element.classList[\"contains\"](paused)) {\r\n element.classList.add(paused);\r\n !isSliding && clearTimer(timer);\r\n }\r\n },\r\n resumeHandler = function () {\r\n if (options.interval !== false && element.classList[\"contains\"](paused)) {\r\n element.classList.remove(paused);\r\n !isSliding && clearTimer(timer);\r\n !isSliding && self.cycle();\r\n }\r\n },\r\n indicatorHandler = function (e) {\r\n e[\"preventDefault\"]();\r\n if (isSliding) return;\r\n\r\n var activeClassTarget = e.target.parentNode;\r\n var dataSlideAttr;\r\n if (svgIndicator) {\r\n dataSlideAttr = e.target.parentNode[\"getAttribute\"](dataSlideTo);\r\n } else {\r\n dataSlideAttr = e.target[\"getAttribute\"](dataSlideTo);\r\n }\r\n\r\n if (activeClassTarget && !activeClassTarget.classList[\"contains\"](prefix + \"active\") && dataSlideAttr) {\r\n index = parseInt(dataSlideAttr, 10);\r\n stopAutoRotate = true;\r\n } else {\r\n return false;\r\n }\r\n\r\n self.slideTo(index); //Do the slide\r\n },\r\n controlsHandler = function (e) {\r\n e[\"preventDefault\"]();\r\n if (isSliding) return;\r\n\r\n var eventTarget = e.currentTarget || e.srcElement;\r\n\r\n if (eventTarget === rightArrow) {\r\n index++;\r\n } else if (eventTarget === leftArrow) {\r\n index--;\r\n }\r\n\r\n self.slideTo(index); //Do the slide\r\n },\r\n keyHandler = function (e) {\r\n if (isSliding) return;\r\n switch (e.which) {\r\n case 39:\r\n index++;\r\n break;\r\n case 37:\r\n index--;\r\n break;\r\n default:\r\n return;\r\n }\r\n self.slideTo(index); //Do the slide\r\n },\r\n swipeHandler = function (el, d) {\r\n switch (d) {\r\n case direction.LEFT:\r\n self.slideTo(index + 1);\r\n break;\r\n case direction.RIGHT:\r\n self.slideTo(index - 1);\r\n break;\r\n }\r\n },\r\n // private methods\r\n isElementInScrollRange = function () {\r\n var rect = element[\"getBoundingClientRect\"](),\r\n viewportHeight = globalObject[innerHeight] || HTML[\"clientHeight\"];\r\n return rect[\"top\"] <= viewportHeight && rect[\"bottom\"] >= 0; // bottom && top\r\n },\r\n setActivePage = function (pageIndex) {\r\n //indicators\r\n each(indicators, function (indicator) {\r\n indicator.classList.remove(prefix + \"active\");\r\n });\r\n if (indicators[pageIndex]) indicators[pageIndex].classList.add(prefix + \"active\");\r\n },\r\n clearTimer = function (timer) {\r\n clearInterval(timer);\r\n timer = null;\r\n },\r\n toggleMosaic = function (e) {\r\n pauseHandler();\r\n if (e.matches) {\r\n stopAutoRotate = false;\r\n element.addEventListener(mouseHover[0], pauseHandler, false);\r\n element.addEventListener(mouseHover[1], resumeHandler, false);\r\n element.addEventListener(\"touchstart\", pauseHandler, false);\r\n element.addEventListener(\"touchend\", resumeHandler, false);\r\n resumeHandler();\r\n } else {\r\n stopAutoRotate = true;\r\n element.removeEventListener(mouseHover[0], pauseHandler, false);\r\n element.removeEventListener(mouseHover[1], resumeHandler, false);\r\n element.removeEventListener(\"touchstart\", pauseHandler, false);\r\n element.removeEventListener(\"touchend\", resumeHandler, false);\r\n }\r\n },\r\n buildIndicatorButtons = function () {\r\n if (svgIndicator) {\r\n each(indicators, function (indicator, indicatorIndex) {\r\n var spanSlide = document.createElement(\"span\");\r\n spanSlide.classList.add(\"dds__sr-only\");\r\n spanSlide.innerText = \"Slide \" + (indicatorIndex + 1);\r\n\r\n var spanCurrent = document.createElement(\"span\");\r\n spanCurrent.classList.add(prefix + \"carousel-indicator-current\");\r\n spanCurrent.classList.add(\"dds__sr-only\");\r\n\r\n var indicatorButton = document.createElement(\"button\");\r\n indicatorButton.appendChild(spanSlide);\r\n indicatorButton.appendChild(spanCurrent);\r\n indicator.appendChild(indicatorButton);\r\n });\r\n } else {\r\n each(indicators, function (indicator) {\r\n var spanCurrent = document.createElement(\"span\");\r\n spanCurrent.classList.add(prefix + \"carousel-indicator-current\");\r\n spanCurrent.classList.add(\"dds__sr-only\");\r\n indicator.appendChild(spanCurrent);\r\n });\r\n }\r\n },\r\n updateIndicatorButtonCurrent = function (slideIndex) {\r\n each(indicators, function (indicator, indicatorIndex) {\r\n var spanCurrent = indicator.getElementsByClassName(prefix + \"carousel-indicator-current\")[0];\r\n\r\n spanCurrent.innerHTML = \"\";\r\n\r\n if (slideIndex === indicatorIndex) {\r\n spanCurrent.innerHTML = \"Current item\";\r\n }\r\n });\r\n },\r\n buildPolite = function () {\r\n politeElement = document.createElement(\"div\");\r\n politeElement.setAttribute(\"aria-atomic\", true);\r\n politeElement.classList.add(\"dds__sr-only\");\r\n element.appendChild(politeElement);\r\n },\r\n updatePolite = function (slideIndex) {\r\n politeElement.innerText = slideIndex + 1 + \" of \" + total + \" slides\";\r\n },\r\n togglePolite = function (activePolite) {\r\n if (activePolite) {\r\n politeElement.setAttribute(\"aria-live\", \"polite\");\r\n } else {\r\n politeElement.removeAttribute(\"aria-live\");\r\n }\r\n },\r\n handleFocusIn = function (e) {\r\n if (!element.contains(e.relatedTarget)) {\r\n isFocused = true;\r\n togglePolite(true);\r\n }\r\n },\r\n handleFocusOut = function (e) {\r\n if (!element.contains(e.relatedTarget)) {\r\n isFocused = false;\r\n togglePolite(false);\r\n }\r\n },\r\n setNextFocusableAfterSlide = function (nextSlide) {\r\n // Need to keep the carousel focused when the slide changes for aria-live work properly\r\n // If the content has some focusable element, when the slide happens, the slide and focused itens are turned into display none\r\n // This would trigger a focusout, so to avoid that the bellow code was implemented\r\n var indicator = svgIndicator || btnIndicator;\r\n\r\n if (isFocused && !indicator.contains(document.activeElement)) {\r\n var nextFocusableElements = getFocusableElements(nextSlide);\r\n nextFocusableElements && nextFocusableElements[0] && nextFocusableElements[0].focus();\r\n }\r\n };\r\n\r\n // public methods\r\n this.cycle = function () {\r\n if (!stopAutoRotate) {\r\n if (timer) {\r\n clearTimer(timer);\r\n }\r\n timer = setInterval(function () {\r\n isElementInScrollRange() && (index++, self.slideTo(index));\r\n }, options.interval);\r\n } else {\r\n if (timer) {\r\n clearTimer(timer);\r\n }\r\n }\r\n };\r\n\r\n this.slideTo = function (next) {\r\n if (isSliding) return; // when controled via methods, make sure to check again\r\n\r\n var activeItem = this.getActiveIndex(); // the current active\r\n // orientation;\r\n // chaeck to see if we need to reset carousel\r\n\r\n // first return if we're on the same item #227\r\n if (activeItem === next) {\r\n return;\r\n }\r\n\r\n // determine slide direction\r\n if (activeItem < next) {\r\n slideDirection = \"right\";\r\n } else {\r\n slideDirection = \"left\";\r\n }\r\n\r\n // find the right next index\r\n if (next < 0) {\r\n next = total - 1;\r\n } else if (next >= total) {\r\n next = 0;\r\n }\r\n\r\n // update index\r\n index = next;\r\n\r\n updatePolite(next);\r\n updateIndicatorButtonCurrent(next);\r\n\r\n uicoreCustomEvent(\"Carousel\", \"SlideEvent\", element, { direction: slideDirection, \"slide-to\": next });\r\n\r\n isSliding = true;\r\n clearTimer(timer);\r\n setActivePage(next);\r\n\r\n if (supportTransitions && element.classList[\"contains\"](\"slide\")) {\r\n // apply appropriate animation\r\n if (slideDirection === \"right\") {\r\n slides[next].classList.add(prefix + \"carousel-item-next\");\r\n slides[next][\"offsetWidth\"];\r\n slides[next].classList.add(prefix + \"carousel-item-left\");\r\n slides[activeItem].classList.add(prefix + \"carousel-item-left\");\r\n } else {\r\n slides[next].classList.add(prefix + \"carousel-item-prev\");\r\n slides[next][\"offsetWidth\"];\r\n slides[next].classList.add(prefix + \"carousel-item-right\");\r\n slides[activeItem].classList.add(prefix + \"carousel-item-right\");\r\n }\r\n var timeout = getTransitionDurationFromElement(slides[next]);\r\n\r\n isSliding &&\r\n setTimeout(function () {\r\n isSliding = false;\r\n\r\n setNextFocusableAfterSlide(slides[next]);\r\n\r\n slides[next].classList.add(prefix + \"active\");\r\n slides[activeItem].classList.remove(prefix + \"active\");\r\n\r\n slides[next].classList.remove(prefix + \"carousel-item-next\");\r\n slides[next].classList.remove(prefix + \"carousel-item-prev\");\r\n slides[next].classList.remove(prefix + \"carousel-item-left\");\r\n slides[next].classList.remove(prefix + \"carousel-item-right\");\r\n slides[activeItem].classList.remove(prefix + \"carousel-item-left\");\r\n uicoreCustomEvent(\"Carousel\", \"SlideEvent\", element, {\r\n direction: slideDirection,\r\n \"slide-to\": next,\r\n });\r\n\r\n if (!(visibilityState === \"hidden\") && options.interval && !element.classList[\"contains\"](paused)) {\r\n self.cycle();\r\n } else {\r\n if (visibilityState === \"hidden\") {\r\n pauseHandler();\r\n }\r\n }\r\n }, timeout);\r\n } else {\r\n setNextFocusableAfterSlide(slides[next]);\r\n\r\n slides[next].classList.add(prefix + \"active\");\r\n slides[next][\"offsetWidth\"];\r\n slides[activeItem].classList.remove(prefix + \"active\");\r\n setTimeout(function () {\r\n isSliding = false;\r\n if (options.interval && !element.classList[\"contains\"](paused)) {\r\n self.cycle();\r\n }\r\n uicoreCustomEvent(\"Carousel\", \"SlideEvent\", element, { direction: slideDirection, \"slide-to\": next });\r\n }, 100);\r\n }\r\n };\r\n\r\n this.getActiveIndex = function () {\r\n return (\r\n slides[\"indexOf\"](getElementsByClassName(element, prefix + \"carousel-item\" + \" \" + prefix + \"active\")[0]) ||\r\n 0\r\n );\r\n };\r\n\r\n // init\r\n if (!(stringCarousel in element)) {\r\n if (element.classList.contains(prefix + \"mosaic\")) {\r\n options.mosaic = true;\r\n }\r\n\r\n buildPolite();\r\n updatePolite(index);\r\n buildIndicatorButtons();\r\n updateIndicatorButtonCurrent(index);\r\n\r\n element.addEventListener(\"focusin\", handleFocusIn);\r\n element.addEventListener(\"focusout\", handleFocusOut);\r\n\r\n DOC.addEventListener(\"visibilitychange\", function () {\r\n if (visibilityState === \"hidden\" && document.visibilityState === \"visible\") {\r\n resumeHandler();\r\n }\r\n visibilityState = document.visibilityState;\r\n });\r\n\r\n if (options.pause && options.interval) {\r\n if (!options.mosaic || (options.mosaic && smallMediaSize.matches)) {\r\n element.addEventListener(mouseHover[0], pauseHandler, false);\r\n element.addEventListener(mouseHover[1], resumeHandler, false);\r\n element.addEventListener(\"touchstart\", pauseHandler, false);\r\n element.addEventListener(\"touchend\", resumeHandler, false);\r\n }\r\n if (options.mosaic) {\r\n if (isIE) {\r\n ieMosaicPolyfill(slides);\r\n }\r\n if (!smallMediaSize.matches) {\r\n stopAutoRotate = true;\r\n }\r\n smallMediaSize.addListener(toggleMosaic);\r\n }\r\n }\r\n\r\n swipeInit(element, swipeHandler);\r\n\r\n rightArrow && rightArrow.addEventListener(\"click\", controlsHandler, false);\r\n leftArrow && leftArrow.addEventListener(\"click\", controlsHandler, false);\r\n\r\n // indicator && indicator.addEventListener(\"click\", indicatorHandler, false);\r\n\r\n if (svgIndicator) {\r\n each(indicators, function (indicator) {\r\n indicator.querySelector(\"button\").addEventListener(\"click\", indicatorHandler, false);\r\n });\r\n } else {\r\n each(indicators, function (indicator) {\r\n each(indicator.children, function (childIndicator) {\r\n if (childIndicator.tagName === \"BUTTON\") childIndicator.addEventListener(\"click\", indicatorHandler);\r\n });\r\n });\r\n }\r\n\r\n options.keyboard === true && globalObject.addEventListener(\"keydown\", keyHandler, false);\r\n if (self.getActiveIndex() < 0) {\r\n slides[length] && slides[0].classList.add(prefix + \"active\");\r\n indicators[length] && setActivePage(0);\r\n }\r\n\r\n if (options.interval) {\r\n self.cycle();\r\n }\r\n }\r\n element[stringCarousel] = self;\r\n}\r\n\r\nexport function FilmstripCarousel(element, options) {\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n options = options || {};\r\n options = jsonOptionsInit(element, options);\r\n options.lazyload = typeof options.lazyload === \"boolean\" ? options.lazyload : false;\r\n\r\n var stringFilmstrip = \"Filmstrip\",\r\n activeElement,\r\n itemsView,\r\n overflow = {},\r\n overflowContainer,\r\n // handlers\r\n handleOverflowChange = function (e) {\r\n overflow.detail = e.detail;\r\n updateItemsView();\r\n },\r\n clickEventHandler = function (e) {\r\n e.preventDefault();\r\n var target = e.target;\r\n if (target && target.parentElement.tagName === \"BUTTON\") {\r\n target = target.parentElement;\r\n }\r\n if (activeElement) {\r\n activeElement.classList.remove(prefix + \"active\");\r\n activeElement.setAttribute(\"aria-pressed\", \"false\");\r\n }\r\n target.classList.add(prefix + \"active\");\r\n target.setAttribute(\"aria-pressed\", \"true\");\r\n activeElement = target;\r\n // Emit filter event\r\n uicoreCustomEvent(\"FilmstripCarousel\", \"ItemClick\", element, { target: target.dataset[\"filterValue\"] });\r\n },\r\n updateItemsView = function () {\r\n if (itemsView) {\r\n var rightNumber = overflow.detail.hasRightControl\r\n ? overflow.detail.right + 1\r\n : overflow.detail.totalItems,\r\n leftNumber = overflow.detail.hasLeftControl ? overflow.detail.left + 1 : 1;\r\n itemsView.innerHTML =\r\n \"Viewing \" +\r\n leftNumber +\r\n (leftNumber < rightNumber ? \" - \" + rightNumber : \"\") +\r\n \" of \" +\r\n overflow.detail.totalItems +\r\n \" items \";\r\n }\r\n };\r\n\r\n this.lazyLoad = function () {\r\n if (options.lazyload && overflow) {\r\n overflow.lazyLoad();\r\n overflow.detail = overflow.getCurrentDetails();\r\n updateItemsView();\r\n overflowContainer.addEventListener(\"uicOverflowChangeEvent\", handleOverflowChange, false);\r\n uicoreCustomEvent(\"FilmstripCarousel\", \"LazyLoadEvent\", element, { success: true });\r\n } else {\r\n uicoreCustomEvent(\"FilmstripCarousel\", \"LazyLoadEvent\", element, {\r\n success: false,\r\n msg: \"Carousel cannot be lazy loaded. Check usage or avoid mulitple lazy loads.\",\r\n });\r\n }\r\n };\r\n\r\n // prevent adding event handlers twice\r\n if (!(stringFilmstrip in element)) {\r\n itemsView = element.parentElement.querySelector(\"div.dds__items-view\");\r\n\r\n each(element.querySelector(\"ul\").querySelectorAll(\"li button\"), function (el) {\r\n if (el.classList.contains(prefix + \"active\")) activeElement = el;\r\n el.addEventListener(\"click\", clickEventHandler, false);\r\n });\r\n\r\n overflowContainer = getClosest(element, \".\" + prefix + \"container-overflow\");\r\n if (overflowContainer) {\r\n overflow = new Overflow(overflowContainer, {\r\n position: \"outset\",\r\n style: \"svg\",\r\n top: 50,\r\n lazyload: options.lazyload,\r\n });\r\n if (!options.lazyload) {\r\n overflow.detail = overflow.getCurrentDetails();\r\n updateItemsView();\r\n overflowContainer.addEventListener(\"uicOverflowChangeEvent\", handleOverflowChange, false);\r\n }\r\n }\r\n }\r\n\r\n element[stringFilmstrip] = self;\r\n}\r\n","import { uicoreCustomEvent, prefix, emulateTransitionEnd, getClosest, DOC, jsonOptionsInit } from \"./utilities.js\";\r\n\r\nexport default function Collapse(element, options) {\r\n // initialization element\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n // set options\r\n options = options || {};\r\n options = jsonOptionsInit(element, options);\r\n options.target = element.dataset.target\r\n ? element.dataset.target\r\n : options.target\r\n ? options.target\r\n : element.href && element.getAttribute(\"href\")\r\n ? element.getAttribute(\"href\")\r\n : false;\r\n options.parent = element.dataset.parent ? element.dataset.parent : options.parent ? options.parent : false;\r\n\r\n // validate options\r\n (function () {\r\n if (!options.target || !(options.target.charAt(0) === \"#\")) {\r\n throw new Error(\"There was a problem found with target value, please correct and try again\");\r\n }\r\n })();\r\n\r\n // event targets and constants\r\n var self = this,\r\n accordion = null,\r\n stringCollapse = \"Collapse\",\r\n collapse = null,\r\n activeCollapse,\r\n activeElement,\r\n showAllBtn,\r\n hideAllBtn,\r\n isClickable = true,\r\n // private methods\r\n openAction = function (collapseElement, toggle) {\r\n uicoreCustomEvent(\"ShowHide\", \"ShowEvent\", collapseElement);\r\n collapseElement.isAnimating = true;\r\n collapseElement.classList.add(prefix + \"collapsing\");\r\n collapseElement.classList.remove(prefix + \"collapse\");\r\n collapseElement.style.height = collapseElement.scrollHeight + \"px\";\r\n collapseElement.children[0].focus();\r\n toggle.setAttribute(\"aria-expanded\", \"true\");\r\n\r\n emulateTransitionEnd(collapseElement, function () {\r\n if (!toggle.classList.contains(prefix + \"collapsed\")) {\r\n collapseElement.isAnimating = false;\r\n collapseElement.setAttribute(\"aria-expanded\", \"true\");\r\n collapseElement.classList.remove(prefix + \"collapsing\");\r\n collapseElement.classList.add(prefix + \"collapse\");\r\n collapseElement.classList.add(prefix + \"show\");\r\n collapseElement.style.height = \"\";\r\n uicoreCustomEvent(\"ShowHide\", \"Shown\", collapseElement);\r\n }\r\n });\r\n },\r\n closeAction = function (collapseElement, toggle) {\r\n uicoreCustomEvent(\"ShowHide\", \"HideEvent\", collapseElement);\r\n collapseElement.isAnimating = true;\r\n collapseElement.style.height = collapseElement.scrollHeight + \"px\"; // set height first\r\n collapseElement.classList.remove(prefix + \"collapse\");\r\n collapseElement.classList.remove(prefix + \"show\");\r\n collapseElement.classList.add(prefix + \"collapsing\");\r\n collapseElement.offsetWidth; // force reflow to enable transition\r\n collapseElement.style.height = \"0rem\";\r\n toggle.setAttribute(\"aria-expanded\", \"false\");\r\n\r\n emulateTransitionEnd(collapseElement, function () {\r\n collapseElement.isAnimating = false;\r\n collapseElement.setAttribute(\"aria-expanded\", \"false\");\r\n collapseElement.classList.remove(prefix + \"collapsing\");\r\n collapseElement.classList.add(prefix + \"collapse\");\r\n collapseElement.style.height = \"\";\r\n uicoreCustomEvent(\"ShowHide\", \"Hidden\", collapseElement);\r\n });\r\n },\r\n showAll = function () {\r\n // this function will be called by all the sub accordions individually\r\n // thus, achieve the goal to show all\r\n if (element.classList.contains(prefix + \"collapsed\")) {\r\n self.show();\r\n }\r\n },\r\n hideAll = function () {\r\n if (!element.classList.contains(prefix + \"collapsed\")) {\r\n self.hide();\r\n }\r\n },\r\n handleBeginShow = function () {\r\n isClickable = false;\r\n },\r\n handleEndShow = function () {\r\n isClickable = true;\r\n };\r\n\r\n // public methods\r\n this.toggle = function (e) {\r\n if (!isClickable) {\r\n return;\r\n }\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n if (!collapse.classList.contains(prefix + \"show\")) {\r\n self.show();\r\n } else {\r\n self.hide();\r\n }\r\n };\r\n this.hide = function () {\r\n if (collapse.isAnimating) return;\r\n closeAction(collapse, element);\r\n element.classList.add(prefix + \"collapsed\");\r\n };\r\n this.show = function () {\r\n if (accordion && options.parent) {\r\n activeCollapse =\r\n accordion.querySelector(\".\" + prefix + \"collapse\" + \".\" + prefix + \"show\") ||\r\n accordion.querySelector(\".\" + prefix + \"collapsing\");\r\n activeElement =\r\n activeCollapse &&\r\n (accordion.querySelector(\r\n \"[data-toggle='\" + prefix + \"collapse\" + \"'][data-target='#\" + activeCollapse.id + \"']\"\r\n ) ||\r\n accordion.querySelector(\r\n \"[data-toggle='\" + prefix + \"collapse\" + \"'][href='#\" + activeCollapse.id + \"']\"\r\n ));\r\n }\r\n\r\n if (!collapse.isAnimating || (activeCollapse && !activeCollapse.isAnimating)) {\r\n if (activeElement && activeCollapse !== collapse) {\r\n closeAction(activeCollapse, activeElement);\r\n activeElement.classList.add(prefix + \"collapsed\");\r\n }\r\n openAction(collapse, element);\r\n element.classList.remove(prefix + \"collapsed\");\r\n }\r\n };\r\n\r\n // init\r\n if (!(stringCollapse in element)) {\r\n element.addEventListener(\"click\", self.toggle, false);\r\n\r\n collapse = DOC.getElementById(options.target.substr(1));\r\n if (collapse) {\r\n collapse.isAnimating = false; //// when true it will prevent click handlers\r\n }\r\n accordion =\r\n (options.parent && getClosest(element, options.parent)) || getClosest(element, \".\" + prefix + \"accordion\");\r\n\r\n if (accordion) {\r\n var showHideAll = accordion.querySelector(\".dds__show-hide-container\");\r\n if (showHideAll) {\r\n showAllBtn = showHideAll.querySelector(\".dds__show-all\");\r\n if (showAllBtn) {\r\n showAllBtn.addEventListener(\"click\", showAll, false);\r\n }\r\n hideAllBtn = showHideAll.querySelector(\".dds__hide-all\");\r\n if (hideAllBtn) {\r\n hideAllBtn.addEventListener(\"click\", hideAll, false);\r\n }\r\n }\r\n }\r\n document.addEventListener(\"uicShowHideShowEvent\", handleBeginShow);\r\n document.addEventListener(\"uicShowHideShown\", handleEndShow);\r\n }\r\n\r\n element[stringCollapse] = self;\r\n}\r\n","import { prefix, uicoreCustomEvent, jsonOptionsInit } from \"./utilities.js\";\r\n\r\nexport default function ContactDrawer(element, options) {\r\n // initialization element\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n // set options\r\n options = options || {};\r\n options = jsonOptionsInit(element, options);\r\n options.openTime = options.openTime ? options.openTime : 5000; // milliseconds\r\n options.closedTime = options.closedTime ? options.closedTime : 7000; // milliseconds\r\n options.transitionTime = options.transitionTime ? options.transitionTime : 500; // milliseconds\r\n\r\n // bind, elements\r\n var self = this,\r\n stringContactDrawer = \"ContactDrawer\",\r\n tab = element.querySelector(\".\" + prefix + \"drawer-tab\"),\r\n closeButton = element.querySelector(\".\" + prefix + \"close-x\"),\r\n content = element.querySelector(\".\" + prefix + \"drawer-content\"),\r\n visible = true,\r\n cancelAutomation = false;\r\n\r\n // handlers\r\n var clickHandler = function (e) {\r\n e.preventDefault();\r\n if (!cancelAutomation) {\r\n cancelAutomation = true;\r\n }\r\n toggleAction();\r\n };\r\n\r\n // private methods\r\n var openAction = function () {\r\n visible = true;\r\n element.classList.add(prefix + \"drawer-open\");\r\n uicoreCustomEvent(\"ContactDrawer\", \"OpenEvent\", element);\r\n content.hidden = false;\r\n content.setAttribute(\"aria-hidden\", false);\r\n },\r\n closeAction = function () {\r\n visible = false;\r\n element.classList.remove(prefix + \"drawer-open\");\r\n uicoreCustomEvent(\"ContactDrawer\", \"CloseEvent\", element);\r\n setTimeout(function () {\r\n content.hidden = true;\r\n }, options.transitionTime);\r\n content.setAttribute(\"aria-hidden\", true);\r\n },\r\n toggleAction = function () {\r\n if (visible) {\r\n closeAction();\r\n } else {\r\n openAction();\r\n }\r\n },\r\n setDrawerToggleOptions = function () {\r\n var toggleOptionsStr = content.dataset.contactDrawer;\r\n if (toggleOptionsStr) {\r\n var toggleOptions = JSON.parse(toggleOptionsStr);\r\n\r\n if (toggleOptions) {\r\n if (toggleOptions.OpenTimeInSeconds) options.openTime = toggleOptions.OpenTimeInSeconds * 1000;\r\n if (toggleOptions.CloseTimeInSeconds) options.closedTime = toggleOptions.CloseTimeInSeconds * 1000;\r\n if (toggleOptions.TransitionTimeInMilliseconds)\r\n options.transitionTime = toggleOptions.TransitionTimeInMilliseconds;\r\n }\r\n }\r\n },\r\n setTransitionTime = function () {\r\n if (options.transitionTime > options.openTime || options.transitionTime > options.closedTime) {\r\n //console.warn(\"contact drawer transition time is too large\");\r\n return;\r\n }\r\n\r\n if (element) {\r\n element.style.transition = \"all \" + options.transitionTime + \"ms ease\";\r\n }\r\n };\r\n\r\n // public methods\r\n this.timerAction = function () {\r\n if (!cancelAutomation) {\r\n if (visible) {\r\n closeAction();\r\n if (options.closedTime) {\r\n setTimeout(function () {\r\n return self.timerAction();\r\n }, options.closedTime);\r\n }\r\n } else {\r\n openAction();\r\n if (options.openTime) {\r\n setTimeout(function () {\r\n return self.timerAction();\r\n }, options.openTime);\r\n }\r\n }\r\n }\r\n };\r\n\r\n // init\r\n if (!(stringContactDrawer in element)) {\r\n tab.addEventListener(\"click\", clickHandler, false);\r\n closeButton.addEventListener(\"click\", clickHandler, false);\r\n\r\n setDrawerToggleOptions();\r\n setTransitionTime();\r\n }\r\n\r\n if (!cancelAutomation) {\r\n self.timerAction();\r\n }\r\n element[stringContactDrawer] = self;\r\n}\r\n","import { prefix, uicoreCustomEvent, DOC, setFocus, createElement, each, jsonOptionsInit } from \"./utilities.js\";\r\n\r\nexport default function Dropdown(element, options) {\r\n // initialization element\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n // set option\r\n options = options || {};\r\n options = jsonOptionsInit(element, options);\r\n options.persist = element.dataset.persist ? element.dataset.persist : options.persist ? options.persist : false;\r\n // constants, event targets, strings\r\n var self = this,\r\n stringDropdown = \"Dropdown\",\r\n parent = element.parentNode,\r\n isMultiSelect = false,\r\n relatedTarget = null,\r\n menu = parent.querySelector(\".\" + prefix + \"button-dropdown-container\"),\r\n menuItems,\r\n itemsChecked,\r\n currentText,\r\n filters,\r\n // preventDefault on empty anchor links\r\n preventEmptyAnchor = function (anchor) {\r\n if (\r\n (anchor && anchor.tagName === \"A\" && anchor.href && anchor.href.slice(-1) === \"#\") ||\r\n (anchor &&\r\n anchor.parentNode &&\r\n anchor.parentNode.tagName === \"A\" &&\r\n anchor.parentNode.href &&\r\n anchor.parentNode.href.slice(-1) === \"#\")\r\n ) {\r\n this.preventDefault();\r\n }\r\n },\r\n // toggle dismissible events\r\n toggleDismiss = function () {\r\n if (element.open) {\r\n element.addEventListener(\"click\", dismissHandler, false);\r\n element.addEventListener(\"keydown\", preventScroll, false);\r\n menu.addEventListener(\"keydown\", preventScroll, false);\r\n menu.addEventListener(\"click\", dismissHandler, false);\r\n window.addEventListener(\"click\", windowClickHandler, true);\r\n } else {\r\n element.removeEventListener(\"click\", dismissHandler, false);\r\n element.removeEventListener(\"keydown\", preventScroll, false);\r\n menu.removeEventListener(\"keydown\", preventScroll, false);\r\n menu.removeEventListener(\"click\", dismissHandler, false);\r\n window.removeEventListener(\"click\", windowClickHandler, true);\r\n }\r\n },\r\n // handlers\r\n dismissHandler = function (e) {\r\n var eventTarget = e.target,\r\n hasData = eventTarget && (stringDropdown in eventTarget || stringDropdown in eventTarget.parentNode);\r\n if ((eventTarget === menu || menu.contains(eventTarget)) && (options.persist || hasData)) {\r\n return;\r\n } else {\r\n relatedTarget = eventTarget === element || element.contains(eventTarget) ? element : null;\r\n\r\n if (!eventTarget.classList.contains(prefix + \"disabled\")) {\r\n hide();\r\n }\r\n }\r\n element.focus();\r\n preventEmptyAnchor.call(e, eventTarget);\r\n },\r\n formatDisplayCount = function () {\r\n var displayTxt;\r\n if (itemsChecked > 0) {\r\n displayTxt = \" (\" + itemsChecked + \")\";\r\n } else {\r\n displayTxt = \" \";\r\n }\r\n var checkedCounter = element.querySelector(\".\" + prefix + \"checked-presentation\");\r\n if (checkedCounter != null) {\r\n checkedCounter.innerHTML = checkedCounter.innerHTML.replace(currentText, displayTxt);\r\n currentText = displayTxt;\r\n } else {\r\n checkedCounter = createElement(\"span\", {\r\n class: prefix + \"checked-presentation \" + prefix + \"ml-1\",\r\n html: displayTxt,\r\n });\r\n currentText = checkedCounter.innerHTML;\r\n // element.insertBefore(checkedCounter,element.querySelector(\"svg.\" + prefix + \"arrow-tri-solid-right\"));\r\n element.querySelector(\".dds__text-truncate\").appendChild(checkedCounter);\r\n }\r\n },\r\n clickHandler = function (e) {\r\n relatedTarget = element;\r\n\r\n if (isMultiSelect && e.target.tagName === \"INPUT\") {\r\n if (e.target.checked) {\r\n filters.push(e.target.name);\r\n e.target.parentElement.parentElement.setAttribute(\"aria-checked\", \"true\");\r\n uicoreCustomEvent(\"Dropdown\", \"AddEvent\", element, {\r\n filters: filters,\r\n filter: e.target.name,\r\n filterInput: e.target,\r\n });\r\n } else {\r\n var index = filters.indexOf(e.target.name);\r\n filters.splice(index, 1);\r\n e.target.parentElement.parentElement.setAttribute(\"aria-checked\", \"false\");\r\n uicoreCustomEvent(\"Dropdown\", \"RemoveEvent\", element, {\r\n filters: filters,\r\n filter: e.target.name,\r\n filterInput: e.target,\r\n });\r\n }\r\n self.recountChecked();\r\n\r\n // element.innerHTML = element.innerHTML.replace(currentText, displayTxt);\r\n // currentText = displayTxt;\r\n element.focus();\r\n } else if (\r\n e.target.tagName == \"BUTTON\" ||\r\n e.target.parentElement.tagName == \"BUTTON\" ||\r\n e.target.parentElement.parentElement.tagName == \"BUTTON\"\r\n ) {\r\n self.toggle();\r\n preventEmptyAnchor.call(e, e.target);\r\n }\r\n },\r\n preventScroll = function (e) {\r\n var key = e.which || e.keyCode;\r\n if (key === 38 || key === 40) {\r\n e.preventDefault();\r\n }\r\n },\r\n keyHandler = function (e) {\r\n var key = e.which || e.keyCode,\r\n activeItem = DOC.activeElement,\r\n isMenuOpen = menu.classList.contains(prefix + \"show\"),\r\n isSameElement = activeItem === element || activeItem.parentNode === menu,\r\n isInsideMenu = menu.contains(activeItem),\r\n isMenuItem = activeItem.parentNode === menu || activeItem.parentNode.parentNode === menu;\r\n\r\n if (isMenuItem || (isMenuOpen && isSameElement)) {\r\n // checking element with enter or spacebar\r\n if (isInsideMenu && (key === 13 || key === 32)) {\r\n activeItem.firstElementChild.click();\r\n }\r\n\r\n // navigate up | down\r\n var idx = menuItems.indexOf(activeItem);\r\n idx =\r\n key === 38\r\n ? idx >= 1\r\n ? idx - 1\r\n : 0\r\n : key === 40\r\n ? idx < menuItems.length - 1\r\n ? idx + 1\r\n : menuItems.length - 1\r\n : idx;\r\n menuItems[idx] && setFocus(menuItems[idx]);\r\n }\r\n if (\r\n ((menuItems.length && isMenuItem) || // menu has items\r\n (!menuItems.length && (isInsideMenu || isSameElement)) || // menu might be a form\r\n !isInsideMenu) && // or the focused element is not in the menu at all\r\n element.open &&\r\n key === 27 // menu must be open\r\n ) {\r\n self.toggle();\r\n relatedTarget = null;\r\n element.focus();\r\n }\r\n if (!isMenuOpen && !isMenuItem && (key === 40 || key === 13 || key === 32)) {\r\n //if menu is closed and hit enter or space on arrow btn, open menu and set focus to first item\r\n e.preventDefault();\r\n self.toggle();\r\n menuItems[0] && setFocus(menuItems[0]);\r\n relatedTarget = null;\r\n }\r\n if (isMenuOpen && (key === 9 || (e.shiftKey && e.keyCode == 9))) {\r\n //if menu is open then close menu on tab\r\n e.preventDefault();\r\n self.toggle();\r\n element.focus();\r\n }\r\n },\r\n // private methods\r\n show = function () {\r\n if (element.classList.contains(prefix + \"btn-split-arrow\")) {\r\n menu.style.minWidth = parent.offsetWidth + \"px\";\r\n } else if (element.classList.contains(prefix + \"btn\")) {\r\n menu.style.minWidth = element.offsetWidth + \"px\";\r\n }\r\n uicoreCustomEvent(\"DropDown\", \"ShowEvent\", element);\r\n menu.classList.add(prefix + \"show\");\r\n parent.classList.add(prefix + \"show\");\r\n element.setAttribute(\"aria-expanded\", true);\r\n uicoreCustomEvent(\"DropDown\", \"Shown\", element);\r\n element.open = true;\r\n\r\n setTimeout(function () {\r\n toggleDismiss();\r\n }, 100);\r\n },\r\n hide = function () {\r\n uicoreCustomEvent(\"DropDown\", \"HideEvent\", element);\r\n menu.classList.remove(prefix + \"show\");\r\n parent.classList.remove(prefix + \"show\");\r\n element.setAttribute(\"aria-expanded\", false);\r\n uicoreCustomEvent(\"DropDown\", \"Hidden\", element);\r\n element.open = false;\r\n\r\n setTimeout(function () {\r\n toggleDismiss();\r\n element.addEventListener(\"click\", clickHandler, false);\r\n }, 100);\r\n },\r\n focusOutHandler = function (e) {\r\n var target = e.relatedTarget ? e.relatedTarget : e.target ? e.target : DOC.activeElement;\r\n if (!e.currentTarget.contains(target)) {\r\n if (e.currentTarget.classList.contains(prefix + \"btn-dropdown\")) {\r\n relatedTarget = parent = e.currentTarget;\r\n } else {\r\n relatedTarget = parent = e.currentTarget.parentNode;\r\n }\r\n } else {\r\n return;\r\n }\r\n hide();\r\n preventEmptyAnchor.call(e, relatedTarget);\r\n },\r\n windowClickHandler = function (e) {\r\n if (!parent.contains(e.target) || parent === e.target) {\r\n hide();\r\n preventEmptyAnchor.call(e, relatedTarget);\r\n }\r\n };\r\n\r\n // public methods\r\n this.toggle = function () {\r\n if (parent.classList.contains(prefix + \"show\") && element.open) {\r\n hide();\r\n } else {\r\n show();\r\n }\r\n };\r\n\r\n this.recountChecked = function () {\r\n itemsChecked = element.parentElement.querySelectorAll(\".\" + prefix + \"form-check-input:checked\").length;\r\n formatDisplayCount();\r\n };\r\n\r\n // init\r\n if (!(stringDropdown in element)) {\r\n // set initial state to closed\r\n element.open = false;\r\n // prevent adding event handlers twice\r\n !(\"tabIndex\" in menu) && menu.setAttribute(\"tabindex\", \"0\"); // Fix onblur on Chrome | Safari\r\n element.addEventListener(\"click\", clickHandler, false);\r\n parent.addEventListener(\"focusout\", focusOutHandler, true);\r\n element.addEventListener(\"keydown\", keyHandler, false);\r\n menu.addEventListener(\"keydown\", keyHandler, false);\r\n if (element.parentElement.classList.contains(\"dds__multi-select\")) {\r\n isMultiSelect = true;\r\n }\r\n\r\n var dropdownEls = menu.children;\r\n menuItems = [];\r\n each(dropdownEls, function (dropdownEl) {\r\n if (\r\n dropdownEl.children.length &&\r\n dropdownEl.children[0].tagName === \"LI\" &&\r\n !dropdownEl.children[0].firstElementChild.classList.contains(prefix + \"disabled\")\r\n ) {\r\n menuItems.push(dropdownEl.children[0]);\r\n } else if (\r\n dropdownEl.tagName === \"LI\" &&\r\n !dropdownEl.firstElementChild.classList.contains(prefix + \"disabled\")\r\n ) {\r\n menuItems.push(dropdownEl);\r\n }\r\n });\r\n if (isMultiSelect) {\r\n each(menuItems, function (menuItem) {\r\n menuItem.firstElementChild.addEventListener(\"click\", clickHandler, true);\r\n });\r\n itemsChecked = 0;\r\n filters = [];\r\n }\r\n }\r\n\r\n element[stringDropdown] = self;\r\n}\r\n","/* eslint-disable quotes */\r\nimport { jsonOptionsInit, createElement, uicoreCustomEvent } from \"./utilities.js\";\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nexport default function FileUpload(element, options) {\r\n // initialization element\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n // set options\r\n options = options || {};\r\n options = jsonOptionsInit(element, options);\r\n options.extensionErrorMessage = options.extensionErrorMessage || \"File must be of type {extensions}.\";\r\n options.sizeErrorMessage = options.sizeErrorMessage || \"File must be smaller than {max-size}.\";\r\n\r\n // constants, event targets, strings\r\n var self = this,\r\n stringFileUpload = \"FileUpload\",\r\n parent = element.parentNode,\r\n input = null,\r\n uploadButton = null,\r\n target = null,\r\n placeholder = null,\r\n maxSize = null,\r\n maxSizeLabel = null,\r\n fileNameLimitSize = 22,\r\n fileNameCropSize = 8,\r\n // unused\r\n // feedBackBlock = null,\r\n hasBeforeDelete = options.beforeDelete && options.beforeDelete instanceof Function,\r\n hasAfterDelete = options.afterDelete && options.afterDelete instanceof Function,\r\n hasUploadAction = options.uploadAction && options.uploadAction instanceof Function,\r\n hasProgressAction = options.progressAction && options.progressAction instanceof Function,\r\n hasErrorAction = options.errorAction && options.errorAction instanceof Function,\r\n hasBeforeUpload = options.beforeUpload && options.beforeUpload instanceof Function,\r\n sizeToBytes = function (size) {\r\n var originalSize = size.replace(/[^0-9]*/gi, \"\"),\r\n suffix = size.replace(/[0-9]*/gi, \"\").toUpperCase(),\r\n factor = 1;\r\n switch (suffix) {\r\n case \"BYTES\":\r\n case \"\":\r\n break;\r\n case \"KB\":\r\n factor = 1024;\r\n break;\r\n case \"MB\":\r\n factor = 1024000;\r\n break;\r\n default:\r\n break;\r\n }\r\n return originalSize * factor;\r\n },\r\n bytesToSize = function (size) {\r\n var suffix = \"bytes\";\r\n var isKB = size >= 1024 && size < 1024000;\r\n var isMB = size >= 1024000;\r\n if (isKB) {\r\n suffix = \"KB\";\r\n size = getRounded(size, 1024);\r\n } else if (isMB) {\r\n suffix = \"MB\";\r\n size = getRounded(size, 1024000);\r\n }\r\n return { suffix: suffix, size: size };\r\n },\r\n getRounded = function (size, value) {\r\n return Math.round((size / value) * 100) / 100;\r\n },\r\n removeFile = function (e) {\r\n e.preventDefault();\r\n var tempName = element.files[0] ? element.files[0].name : \"\";\r\n if (hasBeforeDelete) {\r\n options.beforeDelete(tempName);\r\n uicoreCustomEvent(\"FileUpload\", \"BeforeDeleteEvent\", element, tempName);\r\n }\r\n element.value = \"\";\r\n renderFileList();\r\n if (hasAfterDelete) {\r\n options.afterDelete(tempName);\r\n uicoreCustomEvent(\"FileUpload\", \"AfterDeleteEvent\", element, tempName);\r\n }\r\n return true;\r\n },\r\n loaded = function (evt) {\r\n var fileString = evt.target.result;\r\n if (hasUploadAction) {\r\n options.uploadAction(fileString);\r\n uicoreCustomEvent(\"FileUpload\", \"UploadActionEvent\", element, fileString);\r\n }\r\n },\r\n updateProgress = function (evt) {\r\n if (evt.lengthComputable) {\r\n var loaded = evt.loaded / evt.total;\r\n if (hasProgressAction) {\r\n options.progressAction({ loaded: loaded, total: evt.total });\r\n uicoreCustomEvent(\"FileUpload\", \"ProgressActionEvent\", element, {\r\n loaded: loaded,\r\n total: evt.total,\r\n });\r\n }\r\n }\r\n },\r\n errorHandler = function (evt) {\r\n if (hasErrorAction) {\r\n options.errorAction(evt.target.error);\r\n uicoreCustomEvent(\"FileUpload\", \"ErrorActionEvent\", element, evt.target.error);\r\n }\r\n },\r\n loadFile = function (readFile) {\r\n var beforeEventReturn = true;\r\n if (hasBeforeUpload) {\r\n beforeEventReturn = options.beforeUpload(readFile) !== false;\r\n uicoreCustomEvent(\"FileUpload\", \"BeforeUploadEvent\", element, readFile);\r\n }\r\n if (window.File && window.FileReader && beforeEventReturn) {\r\n var reader = new FileReader();\r\n switch (options.loadFormat) {\r\n case \"binary\":\r\n reader.readAsBinaryString(readFile, \"UTF-8\");\r\n break;\r\n case \"buffer\":\r\n reader.readAsArrayBuffer(readFile, \"UTF-8\");\r\n break;\r\n case \"dataUrl\":\r\n reader.readAsDataURL(readFile, \"UTF-8\");\r\n break;\r\n default:\r\n reader.readAsText(readFile, \"UTF-8\");\r\n break;\r\n }\r\n reader.onprogress = updateProgress;\r\n reader.onload = loaded;\r\n reader.onerror = errorHandler;\r\n }\r\n },\r\n errorTemplate = function (message) {\r\n var Container = createElement(\"div\", {\r\n class: \"dds__alert\",\r\n role: \"alert\",\r\n });\r\n\r\n var bodyAlign = createElement(\"div\", {\r\n class: \"dds__d-flex dds__justify-content-between\",\r\n });\r\n\r\n var body = createElement(\"div\", {\r\n class: \"dds__error-default-body\",\r\n });\r\n\r\n var icon = createElement(\"i\", {\r\n class: \"dds__icons dds__alert-notice\",\r\n aria_hidden: \"true\",\r\n });\r\n\r\n var messageBox = createElement(\"p\", { class: \"dds__alert-body\" });\r\n var messageText = document.createTextNode(message);\r\n\r\n Container.appendChild(bodyAlign);\r\n bodyAlign.appendChild(body);\r\n body.appendChild(icon);\r\n body.appendChild(messageBox);\r\n messageBox.appendChild(messageText);\r\n\r\n return Container;\r\n },\r\n validateSize = function (file) {\r\n var isTooBig = maxSize && file && maxSize < file.size;\r\n if (isTooBig) {\r\n return errorTemplate(\r\n options.sizeErrorMessage.replace(\"{max-size}\", maxSizeLabel.size + \"\" + maxSizeLabel.suffix)\r\n );\r\n }\r\n return false;\r\n },\r\n validateExtension = function (fileName) {\r\n var isInvalidExtension =\r\n options.allowedExensions &&\r\n fileName &&\r\n options.allowedExensions.indexOf(fileName.replace(/^.*\\.(.+)$/i, \"$1\").toLowerCase()) == -1;\r\n if (isInvalidExtension) {\r\n return errorTemplate(\r\n options.extensionErrorMessage.replace(\r\n \"{extensions}\",\r\n options.allowedExensions.join(\", \").replace(/^(.+), (.+)$/, \"$1 or $2\")\r\n )\r\n );\r\n }\r\n return false;\r\n },\r\n getFileName = function (name) {\r\n return name.length < fileNameLimitSize\r\n ? name\r\n : name.substr(0, fileNameCropSize) + \"...\" + name.substr(-fileNameCropSize);\r\n },\r\n renderFileList = function () {\r\n target.innerHTML = \"\";\r\n for (var index = 0; index < element.files.length; index++) {\r\n var file = element.files[index],\r\n bytesToSizeInfo = bytesToSize(file.size),\r\n size = bytesToSizeInfo.size,\r\n suffix = bytesToSizeInfo.suffix,\r\n name = getFileName(file.name);\r\n\r\n loadFile(file);\r\n\r\n var resultLine = createElement(\"div\", {\r\n class: \"dds__form-text\",\r\n data_key: index,\r\n aria_labelledby: \"Selected file \" + name,\r\n });\r\n\r\n var icon = createElement(\"i\", {\r\n class: \"dds__icons dds__paper-clip\",\r\n aria_hidden: \"true\",\r\n });\r\n\r\n var fileSizeBox = createElement(\"span\", {\r\n class: \"dds__form-upload-file-size dds__text-muted\",\r\n arial_label: size + \"\" + suffix,\r\n });\r\n\r\n var iconDelete = createElement(\"i\", {\r\n class: \"dds__icons dds__trash\",\r\n aria_hidden: \"true\",\r\n });\r\n\r\n var fileSizeText = document.createTextNode(size + \"\" + suffix);\r\n var fileNameText = document.createTextNode(name);\r\n var buttonRemoveText = document.createTextNode(\"Delete\");\r\n\r\n var buttonRemove = createElement(\"button\", {\r\n class: \"dds__btn dds__form-upload-file-delete dds__btn-link\",\r\n aria_labelledby: \"Delete the file \" + name,\r\n });\r\n\r\n resultLine.appendChild(icon);\r\n resultLine.appendChild(fileNameText);\r\n fileSizeBox.appendChild(fileSizeText);\r\n resultLine.appendChild(fileSizeBox);\r\n buttonRemove.appendChild(iconDelete);\r\n buttonRemove.appendChild(buttonRemoveText);\r\n resultLine.appendChild(buttonRemove);\r\n\r\n buttonRemove.addEventListener(\"click\", removeFile);\r\n\r\n var sizeError = validateSize(file);\r\n if (sizeError) {\r\n resultLine.appendChild(sizeError);\r\n } else {\r\n var extensionError = validateExtension(file.name);\r\n if (extensionError) {\r\n resultLine.appendChild(extensionError);\r\n }\r\n }\r\n\r\n target.appendChild(resultLine);\r\n }\r\n },\r\n uploadButtonClick = function () {\r\n input.click();\r\n };\r\n\r\n // init\r\n if (!(stringFileUpload in element)) {\r\n if (element.dataset.maxSize) {\r\n maxSize = sizeToBytes(element.dataset.maxSize);\r\n maxSizeLabel = bytesToSize(maxSize);\r\n }\r\n\r\n input = parent.querySelector(\".dds__form-upload\");\r\n uploadButton = parent.querySelector(\".dds__form-upload-btn\");\r\n uploadButton.addEventListener(\"click\", uploadButtonClick);\r\n\r\n // unused\r\n // feedBackBlock = parent.querySelector(\".dds__invalid-feedback\");\r\n\r\n target = createElement(\"div\");\r\n target.classList.add(\"dds__form-upload-target\");\r\n parent.parentNode.appendChild(target);\r\n element.addEventListener(\"change\", renderFileList, false);\r\n\r\n if (element.dataset.placeholder) {\r\n placeholder = createElement(\"div\", {\r\n class: \"dds__form-upload-placeholder dds__text-muted\",\r\n });\r\n\r\n var placeholderText = document.createTextNode(element.dataset.placeholder);\r\n placeholder.appendChild(placeholderText);\r\n\r\n parent.appendChild(placeholder);\r\n }\r\n }\r\n\r\n element[stringFileUpload] = self;\r\n}\r\n","import {\r\n DOC,\r\n emulateTransitionEnd,\r\n getFocusableElements,\r\n getFullScreenOverlay,\r\n getTransitionDurationFromElement,\r\n prefix,\r\n supportTransitions,\r\n uicoreCustomEvent,\r\n isSafari,\r\n isIOS,\r\n each,\r\n setFocus,\r\n jsonOptionsInit,\r\n getClosest,\r\n} from \"./utilities.js\";\r\n\r\nexport default function Modal(element, options) {\r\n // element can be the modal/triggering button\r\n\r\n // the modal (both JavaScript / DATA API init) / triggering button element (DATA API)\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n // set options\r\n options = options || {};\r\n options = jsonOptionsInit(element, options);\r\n options.static = options.backdrop === \"static\" ? true : false;\r\n options.target = element.dataset.target\r\n ? DOC.getElementById(element.dataset[\"target\"].substr(1))\r\n : options.target\r\n ? DOC.getElementById(options.target.substr(1))\r\n : null;\r\n // validate options\r\n (function () {\r\n if (options.target == null || options.target === \"\") {\r\n throw new Error(\"There was a problem found with target value, please correct and try again\");\r\n }\r\n });\r\n // determine modal, triggering element\r\n var self = this,\r\n stringModal = \"Modal\",\r\n focusableEls,\r\n header,\r\n origRightPadding,\r\n scrollbarWidth,\r\n modalElement = options.target,\r\n overlayDelay,\r\n overlay = getFullScreenOverlay(),\r\n // private methods\r\n setFocusableElements = function () {\r\n focusableEls = getFocusableElements(modalElement);\r\n modalElement.firstFocusableEl = focusableEls[0];\r\n modalElement.lastFocusableEl = focusableEls[focusableEls.length - 1];\r\n },\r\n focusFirstDescendant = function () {\r\n if (modalElement.loading) {\r\n //if loading indicator modal- trap focus so can't tab out\r\n modalElement.focus();\r\n } else {\r\n setFocusableElements();\r\n if (focusableEls.length > 0) {\r\n //if there is something to focus\r\n setFocus(focusableEls[0]);\r\n }\r\n }\r\n },\r\n handleKeyDown = function (e) {\r\n if (!modalElement.loading) {\r\n setFocusableElements();\r\n\r\n var KEY_TAB = 9;\r\n var KEY_ESC = 27;\r\n\r\n // For loading modal which has no focusable elements\r\n if (focusableEls.length == 0) {\r\n e.preventDefault();\r\n }\r\n\r\n switch (e.keyCode) {\r\n case KEY_TAB:\r\n if (focusableEls.length === 1) {\r\n e.preventDefault();\r\n break;\r\n }\r\n if (e.shiftKey) {\r\n handleBackwardTab(e);\r\n } else {\r\n handleForwardTab(e);\r\n }\r\n break;\r\n case KEY_ESC:\r\n self.hide();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n },\r\n handleBackwardTab = function (e) {\r\n if (document.activeElement === modalElement.firstFocusableEl) {\r\n e.preventDefault();\r\n setFocus(modalElement.lastFocusableEl);\r\n }\r\n if (header) focusVisibilityHandler();\r\n },\r\n handleForwardTab = function (e) {\r\n if (header) focusVisibilityHandler();\r\n\r\n if (document.activeElement === modalElement.lastFocusableEl) {\r\n e.preventDefault();\r\n setFocus(modalElement.firstFocusableEl);\r\n }\r\n },\r\n createOverlay = function () {\r\n if (overlay && !overlay.classList.contains(prefix + \"show\")) {\r\n overlayDelay = getTransitionDurationFromElement(overlay);\r\n overlay.classList.add(prefix + \"show\");\r\n overlay.removeAttribute(\"hidden\");\r\n if (overlay.style.visibility == \"hidden\") {\r\n overlay.style.visibility = \"\";\r\n }\r\n } else {\r\n console.warn(\r\n \"MODAL: Overlay requested. Corresponding HTML missing. Please apply id 'dds__full-screen-overlay' and class 'dds__overlay' to an empty div\"\r\n );\r\n }\r\n\r\n if (!options.static) {\r\n window.addEventListener(\r\n \"click\",\r\n function (e) {\r\n if (\r\n modalElement.classList.contains(prefix + \"show\") &&\r\n e.target != modalElement &&\r\n !modalElement.contains(e.target)\r\n ) {\r\n self.hide();\r\n }\r\n },\r\n false\r\n );\r\n }\r\n DOC.body.style.paddingRight = scrollbarWidth + origRightPadding + \"px\";\r\n DOC.body.style.overflow = \"hidden\";\r\n },\r\n removeOverlay = function () {\r\n if (overlay) {\r\n overlay.classList.remove(prefix + \"show\");\r\n overlay.setAttribute(\"hidden\", \"\");\r\n }\r\n\r\n if (!options.static) {\r\n modalElement.removeEventListener(\r\n \"click\",\r\n function (e) {\r\n if (e.target == modalElement) {\r\n self.hide();\r\n }\r\n },\r\n false\r\n );\r\n }\r\n if (origRightPadding == 0) {\r\n DOC.body.style.paddingRight = \"\";\r\n } else {\r\n DOC.body.style.paddingRight = origRightPadding + \"px\";\r\n }\r\n DOC.body.style.overflow = \"\";\r\n if (DOC.body.style.length == 0) {\r\n DOC.body.removeAttribute(\"style\");\r\n }\r\n uicoreCustomEvent(\"Modal\", \"Hidden\", modalElement);\r\n },\r\n keydownHandlerToggle = function () {\r\n if (modalElement.classList.contains(prefix + \"show\")) {\r\n DOC.addEventListener(\"keydown\", keyHandler, false);\r\n } else {\r\n DOC.removeEventListener(\"keydown\", keyHandler, false);\r\n }\r\n },\r\n triggerShow = function () {\r\n //resizeHandlerToggle();\r\n keydownHandlerToggle();\r\n setFocus(modalElement);\r\n focusFirstDescendant();\r\n uicoreCustomEvent(\"Modal\", \"Shown\", modalElement);\r\n },\r\n triggerHide = function () {\r\n setTimeout(function () {\r\n modalElement.style.display = \"\";\r\n }, getTransitionDurationFromElement(modalElement));\r\n //check if parent is dropdown, and set focus on appropriate element\r\n var isInDropdown = getClosest(element, \".\" + prefix + \"btn-dropdown\", true);\r\n var isInSplitBtn = isInDropdown && isInDropdown.classList.contains(prefix + \"btn-group\");\r\n element &&\r\n (isInDropdown\r\n ? isInSplitBtn\r\n ? setFocus(isInDropdown.querySelector(\".\" + prefix + \"btn-split-arrow\"))\r\n : setFocus(isInDropdown.querySelector(\".\" + prefix + \"btn\"))\r\n : setFocus(element));\r\n\r\n if (modalElement.classList.contains(prefix + \"show\")) {\r\n keydownHandlerToggle();\r\n }\r\n },\r\n // handlers\r\n clickHandler = function (e) {\r\n if (\r\n (e.target === element || e.target.parentElement === element) &&\r\n !modalElement.classList.contains(prefix + \"show\")\r\n ) {\r\n self.show();\r\n e.preventDefault();\r\n }\r\n },\r\n keyHandler = function (e) {\r\n if (self.keyboard && e.which == 27 && modalElement.classList.contains(prefix + \"show\")) {\r\n self.hide();\r\n }\r\n },\r\n dismissHandler = function (e) {\r\n if (modalElement.classList.contains(prefix + \"show\")) {\r\n self.hide();\r\n e.preventDefault();\r\n }\r\n },\r\n focusVisibilityHandler = function () {\r\n // minimum distance from \"to be focused\" element to the bottom of fixed header\r\n var minDistance = header.parentElement.clientHeight;\r\n var activeElementIdx = focusableEls.indexOf(document.activeElement);\r\n\r\n // handles shift tab loop, and get next element to receive focus - going back\r\n var prevFocusableEl =\r\n activeElementIdx === 0 ? focusableEls[focusableEls.length - 1] : focusableEls[activeElementIdx - 1];\r\n\r\n // handles tab loop, and get next element to receive focus - going forward\r\n var nextFocusableEl =\r\n activeElementIdx === focusableEls.length - 1 ? focusableEls[0] : focusableEls[activeElementIdx + 1];\r\n\r\n if (event.shiftKey && event.keyCode === 9) {\r\n scrollToElement(prevFocusableEl, minDistance, header);\r\n } else if (!event.shiftKey && event.keyCode === 9) {\r\n scrollToElement(nextFocusableEl, minDistance, header);\r\n }\r\n },\r\n scrollToElement = function (element, minDistance, header) {\r\n if (\r\n !header.contains(element) && // prevents scroll if header will receive focus\r\n element.getBoundingClientRect().top < minDistance\r\n ) {\r\n // element is behind fixed header\r\n\r\n // scroll to top of \"to be focused\" element\r\n modalElement.scrollTop = element.getBoundingClientRect().top - minDistance * 2 + modalElement.scrollTop;\r\n }\r\n };\r\n\r\n // public methods\r\n this.toggle = function () {\r\n if (modalElement.classList.contains(prefix + \"show\")) {\r\n this.hide();\r\n } else {\r\n this.show();\r\n }\r\n };\r\n this.show = function () {\r\n uicoreCustomEvent(\"Modal\", \"ShowEvent\", modalElement);\r\n\r\n createOverlay();\r\n\r\n modalElement.style.display = \"block\";\r\n\r\n if (isSafari && isIOS) {\r\n modalElement.classList.add(prefix + \"is-safari\");\r\n }\r\n\r\n setTimeout(function () {\r\n modalElement.classList.add(prefix + \"show\");\r\n }, 5);\r\n modalElement.setAttribute(\"aria-hidden\", false);\r\n modalElement.classList.contains(prefix + \"fade\")\r\n ? emulateTransitionEnd(modalElement, triggerShow)\r\n : triggerShow();\r\n\r\n supportTransitions && modalElement.loading ? overlayDelay : 0;\r\n };\r\n this.hide = function () {\r\n uicoreCustomEvent(\"Modal\", \"HideEvent\", modalElement);\r\n\r\n modalElement.classList.remove(prefix + \"show\");\r\n modalElement.setAttribute(\"aria-hidden\", true);\r\n\r\n if (isSafari && isIOS && modalElement.classList.contains(prefix + \"is-safari\")) {\r\n modalElement.classList.remove(prefix + \"is-safari\");\r\n }\r\n\r\n setTimeout(function () {\r\n removeOverlay();\r\n }, getTransitionDurationFromElement(modalElement));\r\n\r\n modalElement.classList.contains(prefix + \"fade\")\r\n ? emulateTransitionEnd(modalElement, triggerHide)\r\n : triggerHide();\r\n supportTransitions && overlay ? overlayDelay : 0;\r\n };\r\n\r\n //init\r\n if (!(stringModal in element)) {\r\n if (!modalElement) {\r\n return false;\r\n } else {\r\n origRightPadding = DOC.body.style.paddingRight ? DOC.body.style.paddingRight.split(\"px\")[0] : 0;\r\n scrollbarWidth = window.innerWidth - DOC.documentElement.clientWidth;\r\n modalElement.loading = modalElement.classList.contains(prefix + \"loading-modal\") ? true : false;\r\n\r\n if (!modalElement.loading) {\r\n element.addEventListener(\"click\", clickHandler, false);\r\n modalElement.addEventListener(\"keydown\", handleKeyDown);\r\n each(modalElement.querySelectorAll(\"[data-dismiss='\" + prefix + \"modal']\"), function (dissmissEl) {\r\n dissmissEl.addEventListener(\"click\", dismissHandler, false);\r\n });\r\n var modalContent = modalElement.querySelector(\".\" + prefix + \"modal-content\");\r\n var potentialHeader = modalContent.firstElementChild;\r\n if (\r\n potentialHeader.classList.contains(prefix + \"container-fluid\") &&\r\n !potentialHeader.classList.contains(prefix + \"modal-body\")\r\n ) {\r\n potentialHeader.firstElementChild.classList.add(prefix + \"offcanvas-modal-topbar\");\r\n }\r\n header = modalElement.querySelector(\".\" + prefix + \"offcanvas-modal-topbar\");\r\n }\r\n }\r\n }\r\n\r\n element[stringModal] = self;\r\n}\r\n","import {\r\n uicoreCustomEvent,\r\n prefix,\r\n debounce,\r\n createElement,\r\n getClosest,\r\n classAdd,\r\n getFocusableElements,\r\n getAnimationDurationFromElement,\r\n altFind,\r\n renderSvg,\r\n each,\r\n setFocus,\r\n ariaAnnounce,\r\n} from \"./utilities\";\r\nimport Collapse from \"./collapse.js\";\r\nimport Dropdown from \"./dropdown.js\";\r\nimport Modal from \"./modal.js\";\r\n\r\nexport function FilterKeyword(element) {\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n // bind, target alert, duration and stuff\r\n var self = this,\r\n stringFilterKeyword = \"FilterKeyword\",\r\n addButton,\r\n filterInput,\r\n filterCntr,\r\n // handlers\r\n handleClickEvent = function (e) {\r\n if ((e.target == addButton || addButton.contains(e.target)) && filterInput.value.trim() != \"\") {\r\n uicoreCustomEvent(\"FilterKeyword\", \"CreateEvent\", element, { filter: filterInput.value });\r\n filterInput.value = \"\";\r\n filterInput.focus();\r\n window.removeEventListener(\"click\", clickOutHandler, true);\r\n }\r\n },\r\n handleKeyEvent = debounce(function (e) {\r\n window.addEventListener(\"click\", clickOutHandler, true);\r\n if (e.keyCode == 13) {\r\n uicoreCustomEvent(\"FilterKeyword\", \"CreateEvent\", element, { filter: filterInput.value });\r\n filterInput.value = \"\";\r\n filterInput.focus();\r\n }\r\n }, 50),\r\n clickOutHandler = function (e) {\r\n if (filterCntr.contains(e.target)) {\r\n return;\r\n }\r\n filterInput.value = \"\";\r\n window.removeEventListener(\"click\", clickOutHandler, true);\r\n };\r\n\r\n // init\r\n if (!(stringFilterKeyword in element)) {\r\n addButton = element.querySelector(\".\" + prefix + \"filter-btn\");\r\n filterInput = element.querySelector(\".\" + prefix + \"filter-input\");\r\n filterCntr = element.querySelector(\".\" + prefix + \"filter-container\");\r\n\r\n addButton.addEventListener(\"click\", handleClickEvent, true);\r\n filterInput.addEventListener(\"keydown\", handleKeyEvent, false);\r\n }\r\n\r\n element[stringFilterKeyword] = self;\r\n}\r\n\r\nexport function FilterCollection(element) {\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n var horizontal = true;\r\n\r\n // bind, target alert, duration and stuff\r\n var self = this,\r\n stringFilterCollection = \"FilterCollection\",\r\n filterResults,\r\n filterOffCanvasResults,\r\n clearAllItem,\r\n clearAllOffCanvas,\r\n resultsLabelDesktop,\r\n filters = [],\r\n filtersTemp = [],\r\n filterOffCanvas,\r\n keywordFilter,\r\n visibileIdx,\r\n mediaIncrementforDropdowns,\r\n showMoreDiv,\r\n mobileModal,\r\n dropdownObjects = [],\r\n accordionObjects = [],\r\n digit = \"digit\",\r\n collectionInputsContainer,\r\n dropdowns,\r\n collectionInputs,\r\n targetCollection,\r\n filterCollection,\r\n isOffCanvasState = false,\r\n isApplyingState = false,\r\n smallWindow,\r\n smallMediaSize = window.matchMedia(\"(max-width: 767.98px)\"),\r\n mediumMediaSize = window.matchMedia(\"(max-width: 991.98px)\"),\r\n // handlers\r\n handleAddEvent = function (e) {\r\n if (e.type === \"uicDropdownAddEvent\" || e.type === \"uicFilterKeywordCreateEvent\") {\r\n if (!isOffCanvasState) {\r\n createDesktopFilterItem(e.detail.filter, e.detail.filterInput);\r\n } else {\r\n createOffCanvasFilterItem(e.detail.filter, e.detail.filterInput);\r\n }\r\n } else {\r\n var checkbox = e.srcElement;\r\n if (checkbox.tagName != \"INPUT\") {\r\n if (checkbox.tagName === \"SPAN\" && checkbox.previousElementSibling.tagName === \"INPUT\") {\r\n checkbox = checkbox.previousElementSibling;\r\n } else {\r\n checkbox = checkbox.querySelector(\"input\");\r\n }\r\n }\r\n createDesktopFilterItem(checkbox.nextElementSibling.innerText, checkbox);\r\n if (\r\n (!horizontal && element.getBoundingClientRect().y && element.getBoundingClientRect().y < 0) ||\r\n (element.getBoundingClientRect().top && element.getBoundingClientRect().top < 0)\r\n ) {\r\n //Edge FF use top, not y\r\n element.scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n }\r\n },\r\n handleClearAllEvent = function (e) {\r\n if (\r\n e.target == clearAllOffCanvas ||\r\n clearAllOffCanvas.contains(e.target) ||\r\n e.target === clearAllItem ||\r\n clearAllItem.contains(e.target)\r\n ) {\r\n toggleClearAllButtons(false);\r\n ariaAnnounce(\r\n document.querySelector(\".\" + prefix + \"filter-btn-clear\").innerText // will say \"Clear all\"\r\n );\r\n } else {\r\n ariaAnnounce(\r\n getClosest(e.target, \".\" + prefix + \"svg-close-x\", false).getAttribute(\"aria-label\") // will say filter-close\r\n );\r\n }\r\n each(filterResults.querySelectorAll(\"button.\" + prefix + \"filter-item\"), function (filter) {\r\n clearFilter(filter);\r\n });\r\n resultsLabelDesktop.classList.add(prefix + \"d-none\");\r\n if (horizontal) {\r\n clearMultiSelects();\r\n }\r\n updateFiltersCount();\r\n uicoreCustomEvent(\"FilterCollection\", \"RemoveAllEvent\", element, { filters: filtersAsStrings() });\r\n },\r\n handleDesktopCheckboxClick = function (e) {\r\n if (e.type === \"uicDropdownAddEvent\" || e.type === \"uicDropdownRemoveEvent\") {\r\n if (e.detail.filterInput.checked === true) {\r\n handleAddEvent(e);\r\n } else {\r\n var deselected = filterResults.querySelector(\r\n \"#\" + e.detail.filter.replace(/\\s/g, \"\").toLowerCase()\r\n );\r\n clearFilter(deselected);\r\n if (filters && filters.length === 0) {\r\n toggleClearAllButtons(false);\r\n uicoreCustomEvent(\"FilterCollection\", \"RemoveAllEvent\", element, {\r\n filters: filtersAsStrings(),\r\n });\r\n }\r\n }\r\n } else if (e.type === \"click\") {\r\n e.preventDefault();\r\n var checkbox = e.srcElement;\r\n if (checkbox.tagName != \"INPUT\") {\r\n if (checkbox.tagName === \"SPAN\" && checkbox.previousElementSibling.tagName === \"INPUT\") {\r\n checkbox = checkbox.previousElementSibling;\r\n } else {\r\n checkbox = checkbox.querySelector(\"input\");\r\n }\r\n }\r\n if (!checkbox.hasAttribute(\"disabled\") && !checkbox.classList.contains(prefix + \"disabled\")) {\r\n setTimeout(function () {\r\n if (checkbox.checked) {\r\n checkbox.checked = false;\r\n getClosest(checkbox, \"li\", true).setAttribute(\"aria-checked\", \"false\");\r\n } else {\r\n checkbox.checked = true;\r\n getClosest(checkbox, \"li\", true).setAttribute(\"aria-checked\", \"true\");\r\n }\r\n if (checkbox.checked === true) {\r\n handleAddEvent(e);\r\n } else {\r\n var value = checkbox.name.toLowerCase();\r\n var deselected = filterResults.querySelector('[value=\"' + value + '\"]');\r\n clearFilter(deselected);\r\n if (filters && filters.length === 0) {\r\n toggleClearAllButtons(false);\r\n uicoreCustomEvent(\"FilterCollection\", \"RemoveAllEvent\", element, {\r\n filters: filtersAsStrings(),\r\n });\r\n }\r\n }\r\n }, 25);\r\n }\r\n }\r\n },\r\n handleFilterItemClickEvent = function (e) {\r\n var target = e.target.classList.contains(\".\" + prefix + \"filter-item\")\r\n ? e.target\r\n : getClosest(e.target, \".\" + prefix + \"filter-item\");\r\n if (filters.length && filters.length === 1) {\r\n handleClearAllEvent(e);\r\n resultsLabelDesktop.classList.add(prefix + \"d-none\");\r\n accordionObjects[0] ? setFocus(accordionObjects[0]) : setFocus(collectionInputs[0]);\r\n } else {\r\n ariaAnnounce(\r\n getClosest(e.target, \".\" + prefix + \"svg-close-x\", false).getAttribute(\"aria-label\") // will say filter-close\r\n );\r\n var nextFocusableEl =\r\n target.previousElementSibling &&\r\n target.previousElementSibling.classList.contains(prefix + \"filter-item\")\r\n ? target.previousElementSibling\r\n : target.nextElementSibling &&\r\n target.nextElementSibling.classList.contains(prefix + \"filter-item\")\r\n ? target.nextElementSibling\r\n : accordionObjects\r\n ? accordionObjects[0]\r\n : collectionInputs[0];\r\n setTimeout(function () {\r\n clearFilter(target);\r\n uicoreCustomEvent(\"FilterCollection\", \"RemoveEvent\", element, {\r\n filters: filtersAsStrings(),\r\n removedFilter: target.innerText,\r\n });\r\n setFocus(nextFocusableEl);\r\n }, 50);\r\n }\r\n },\r\n handleOffCanvasApplyEvent = function () {\r\n isApplyingState = true;\r\n isOffCanvasState = false;\r\n\r\n // add label\r\n if (filtersTemp.length > 1) {\r\n resultsLabelDesktop.classList.remove(prefix + \"d-none\");\r\n }\r\n // if temp filter isn't in filters (create)\r\n each(filtersTemp, function (filterTemp) {\r\n if (!arrayOfObjectsContains(filters, filterTemp.value.toLowerCase())) {\r\n var newFilter = filterTemp.cloneNode(true);\r\n newFilter.origin = filterTemp.origin;\r\n newFilter.offCanvasOrigin = filterTemp.offCanvasOrigin;\r\n newFilter.value = filterTemp.value;\r\n newFilter.addEventListener(\"click\", handleFilterItemClickEvent, false);\r\n horizontal\r\n ? filterResults.insertBefore(newFilter, clearAllItem)\r\n : filterResults.appendChild(newFilter);\r\n if (newFilter.origin) {\r\n newFilter.origin.checked = true;\r\n getClosest(newFilter.origin, \"li\", true).setAttribute(\"aria-checked\", \"true\");\r\n }\r\n }\r\n });\r\n\r\n // if filter is no longer in temp filters (delete)\r\n each(filters.slice(), function (temp) {\r\n if (!arrayOfObjectsContains(filtersTemp, temp.value.toLowerCase())) {\r\n var filterToRemove = altFind(filters, function (result) {\r\n return result.value === temp.value;\r\n });\r\n clearFilter(filterToRemove);\r\n }\r\n });\r\n filters = filtersTemp.slice();\r\n\r\n // reset\r\n isApplyingState = false;\r\n\r\n if (filters.length > 0) {\r\n resultsLabelDesktop.classList.remove(prefix + \"d-none\");\r\n toggleClearAllButtons(true);\r\n } else {\r\n resultsLabelDesktop.classList.add(prefix + \"d-none\");\r\n toggleClearAllButtons(false);\r\n }\r\n\r\n // update html filter count values\r\n updateFiltersCount();\r\n if (horizontal) {\r\n each(dropdownObjects, function (dropdown) {\r\n dropdown.recountChecked();\r\n });\r\n } else {\r\n updateVerticalDesktopAccordionCount();\r\n }\r\n\r\n mobileModal.hide();\r\n uicoreCustomEvent(\"FilterCollection\", \"UpdateEvent\", element, { filters: filtersAsStrings() });\r\n },\r\n handleOffCanvasCancelEvent = function () {\r\n //clear off canvas and reset to filters\r\n handleOffCanvasClearAllEvent();\r\n each(filters, function (filter) {\r\n if (filter.offCanvasOrigin) {\r\n filter.offCanvasOrigin.click();\r\n } else {\r\n createOffCanvasFilterItem(filter, filter.origin);\r\n }\r\n });\r\n if (filters.length === 0) {\r\n toggleClearAllButtons(false);\r\n }\r\n\r\n isOffCanvasState = false;\r\n },\r\n handleOffCanvasCheckboxClick = function (e) {\r\n var checkboxId = e.target.id.replace(\"OffCanvas\", \"\");\r\n var desktopCheckbox = document.getElementById(checkboxId);\r\n getClosest(e.target, \"li\", true).setAttribute(\"aria-checked\", e.target.checked);\r\n if (!e.target.hasAttribute(\"disabled\") && !e.target.classList.contains(prefix + \"disabled\")) {\r\n //create new off canvas filter\r\n if (e.target.checked) {\r\n createOffCanvasFilterItem(e.target.name, desktopCheckbox);\r\n toggleClearAllButtons(true);\r\n }\r\n // remove off canvas filter\r\n else {\r\n var checkboxFilter;\r\n var value = e.target.name.toLowerCase();\r\n checkboxFilter = filterOffCanvasResults.querySelector('[value=\"' + value + '\"]');\r\n var currentFilter = altFind(filtersTemp, function (result) {\r\n var check =\r\n result.innerText.toLowerCase().replace(/\\s/g, \"\") ==\r\n checkboxFilter.innerText.toLowerCase().replace(/\\s/g, \"\");\r\n return check;\r\n });\r\n // remove from temp array\r\n var index = filtersTemp.indexOf(currentFilter);\r\n filtersTemp.splice(index, 1);\r\n\r\n if (checkboxFilter) {\r\n setTimeout(function () {\r\n filterOffCanvasResults.removeChild(checkboxFilter);\r\n setTimeout(function () {\r\n //if no more filters turn off Clear All Item\r\n if (self.numOfFilters(true) < 1) {\r\n toggleClearAllButtons(false);\r\n }\r\n }, 10);\r\n }, 1);\r\n }\r\n }\r\n updateOffCanvasAccordionCount(e.target); //horizontal multi-selects don't have updated count at this point\r\n }\r\n },\r\n handleOffCanvasClearAllClick = function () {\r\n var focusableEls = getFocusableElements(filterOffCanvas);\r\n // after hitting \"offcanvas\" clear all button set focus on the previous focusable element\r\n if (focusableEls.indexOf(clearAllOffCanvas) > 0) {\r\n focusableEls[focusableEls.indexOf(clearAllOffCanvas) - 1].focus();\r\n }\r\n handleOffCanvasClearAllEvent();\r\n },\r\n handleOffCanvasClearAllEvent = function () {\r\n each(\r\n element.querySelectorAll(\".\" + prefix + \"modal-offcanvas input.\" + prefix + \"form-check-input\"),\r\n function (checkbox) {\r\n checkbox.checked = false;\r\n getClosest(checkbox, \"li\", true).setAttribute(\"aria-checked\", \"false\");\r\n updateOffCanvasAccordionCount(checkbox);\r\n }\r\n );\r\n each(\r\n element.querySelectorAll(\".\" + prefix + \"modal-offcanvas button.\" + prefix + \"filter-item\"),\r\n function (filter) {\r\n filterOffCanvasResults.removeChild(filter);\r\n }\r\n );\r\n filtersTemp = [];\r\n toggleClearAllButtons(false);\r\n },\r\n handleOffCanvasFilterItemClickEvent = function (e) {\r\n var target = e.target.classList.contains(\".\" + prefix + \"filter-item\")\r\n ? e.target\r\n : getClosest(e.target, \".\" + prefix + \"filter-item\"),\r\n currentFilter = altFind(filtersTemp, function (result) {\r\n return (\r\n result.value.toLowerCase().replace(/\\s+/g, \"\") ===\r\n target.innerText.toLowerCase().replace(/\\s+/g, \"\")\r\n );\r\n });\r\n\r\n // uncheck the corresponding checkbox\r\n if (currentFilter.offCanvasOrigin) {\r\n currentFilter.offCanvasOrigin.checked = false;\r\n getClosest(currentFilter.offCanvasOrigin, \"li\", true).setAttribute(\"aria-checked\", \"false\");\r\n updateOffCanvasAccordionCount(currentFilter.offCanvasOrigin);\r\n }\r\n\r\n // remove from temp array\r\n var index = filtersTemp.indexOf(currentFilter);\r\n filtersTemp.splice(index, 1);\r\n\r\n //set focus on next element if it exists\r\n target.nextElementSibling\r\n ? target.nextElementSibling.focus()\r\n : target.previousElementSibling &&\r\n target.previousElementSibling.classList.contains(prefix + \"filter-item\")\r\n ? target.previousElementSibling.focus()\r\n : setFocus(getFocusableElements(filterOffCanvas)[0]);\r\n // getFocusableElements(filterOffCanvas)[0].focus();\r\n\r\n // remove filter button from DOM\r\n if (filterOffCanvasResults.contains(target)) {\r\n setTimeout(function () {\r\n filterOffCanvasResults.removeChild(target);\r\n setTimeout(function () {\r\n //if no more filters turn off Clear All Item\r\n if (self.numOfFilters(true) < 1) {\r\n toggleClearAllButtons(false);\r\n }\r\n }, 10);\r\n }, 1);\r\n }\r\n },\r\n handleOffCanvasOpen = function () {\r\n isOffCanvasState = true;\r\n filtersTemp = filters.slice();\r\n },\r\n handleResizeSmall = function (e) {\r\n //change vertical clear all button\r\n if (!e.matches) {\r\n //going from small to big\r\n mobileModal.hide();\r\n smallWindow = false;\r\n if (!horizontal) {\r\n if (clearAllItem.classList.contains(\"dds__d-flex\")) {\r\n clearAllItem.classList.remove(\"dds__d-flex\");\r\n clearAllItem.classList.add(\"dds__d-none\");\r\n clearAllItem = element.querySelector(\r\n \".\" + prefix + \"filter-collector-accordion .\" + prefix + \"filter-btn-clear\"\r\n );\r\n clearAllItem.classList.remove(\"dds__d-none\");\r\n clearAllItem.classList.add(\"dds__d-flex\");\r\n } else {\r\n clearAllItem = element.querySelector(\r\n \".\" + prefix + \"filter-collector-accordion .\" + prefix + \"filter-btn-clear\"\r\n );\r\n }\r\n clearAllItem.addEventListener(\"click\", handleClearAllEvent, false);\r\n clearAllItem.addEventListener(\"touchstart\", handleClearAllEvent, false);\r\n }\r\n } else if (e.matches && !horizontal) {\r\n smallWindow = true;\r\n if (clearAllItem.classList.contains(\"dds__d-flex\")) {\r\n clearAllItem.classList.remove(\"dds__d-flex\");\r\n clearAllItem.classList.add(\"dds__d-none\");\r\n clearAllItem = element.querySelector(\".dds__filter-label-results .dds__filter-btn-clear\");\r\n clearAllItem.classList.remove(\"dds__d-none\");\r\n clearAllItem.classList.add(\"dds__d-flex\");\r\n } else {\r\n clearAllItem = element.querySelector(\".dds__filter-label-results .dds__filter-btn-clear\");\r\n }\r\n clearAllItem.addEventListener(\"click\", handleClearAllEvent, false);\r\n clearAllItem.addEventListener(\"touchstart\", handleClearAllEvent, false);\r\n }\r\n updateFiltersCount();\r\n },\r\n handleResizeMedium = function (e) {\r\n var numOfDropdowns, rows;\r\n if (e.matches) {\r\n mediaIncrementforDropdowns = 3;\r\n\r\n rows = Math.max(Math.ceil((visibileIdx + 1) / 4), 2);\r\n numOfDropdowns = rows * 3 - 2;\r\n if (numOfDropdowns < dropdowns.length - 1) {\r\n showMoreDiv.classList.remove(prefix + \"d-none\");\r\n }\r\n visibileIdx = numOfDropdowns - 1;\r\n toggleDropdown(visibileIdx);\r\n } else {\r\n mediaIncrementforDropdowns = 4;\r\n if (visibileIdx === dropdowns.length) {\r\n return;\r\n }\r\n rows = Math.max(Math.ceil((visibileIdx + 1) / 3), 2);\r\n numOfDropdowns = rows * 4 - 2;\r\n if (numOfDropdowns > dropdowns.length - 1) {\r\n numOfDropdowns = dropdowns.length;\r\n showMoreDiv.classList.add(prefix + \"d-none\");\r\n }\r\n visibileIdx = numOfDropdowns - 1;\r\n toggleDropdown(visibileIdx);\r\n }\r\n },\r\n handleShowMore = function () {\r\n visibileIdx = Math.min(visibileIdx + mediaIncrementforDropdowns, dropdowns.length - 1);\r\n if (visibileIdx === dropdowns.length - 1) {\r\n showMoreDiv.classList.add(prefix + \"d-none\");\r\n }\r\n toggleDropdown(visibileIdx);\r\n setTimeout(function () {\r\n setFocus(dropdowns[visibileIdx].querySelector(\".\" + prefix + \"btn-secondary\"));\r\n }, 1);\r\n },\r\n arrayOfObjectsContains = function (arr, value) {\r\n var results = arr.filter(function (obj) {\r\n return obj.value === value;\r\n });\r\n return results.length > 0;\r\n },\r\n clearMultiSelects = function () {\r\n each(collectionInputs, function (input) {\r\n if (input.querySelector(\".\" + prefix + \"checked-presentation\")) {\r\n input.firstElementChild.removeChild(input.querySelector(\".\" + prefix + \"checked-presentation\"));\r\n }\r\n\r\n var typeofInput = input[\"getAttribute\"](\"data-filter\");\r\n if (typeofInput == prefix + \"multi-select\") {\r\n var ul = input[\"getAttribute\"](\"data-target\");\r\n each(element.querySelector(ul).children, function (option) {\r\n option.setAttribute(\"aria-checked\", false);\r\n option.querySelector(\"input\").checked = false;\r\n });\r\n }\r\n });\r\n },\r\n clearFilter = function (filter) {\r\n if (filter === null || filter === undefined) {\r\n return;\r\n }\r\n\r\n // finder filter, if found no match in the filters, return\r\n var targetValue = filter.innerText,\r\n results = filters.filter(function (obj) {\r\n targetValue = targetValue.toLowerCase().replace(/\\n/g, \"\");\r\n return obj.value === targetValue;\r\n });\r\n\r\n if (results.length < 1) {\r\n return;\r\n }\r\n\r\n // if it's a checkbox, uncheck\r\n var deselectTarget = results[0];\r\n if (deselectTarget.origin.tagName === \"INPUT\" && deselectTarget.origin.checked === true) {\r\n deselectTarget.origin.checked = false;\r\n getClosest(deselectTarget.origin, \"li\", true).setAttribute(\"aria-checked\", \"false\");\r\n }\r\n if (\r\n deselectTarget.offCanvasOrigin &&\r\n deselectTarget.offCanvasOrigin.tagName === \"INPUT\" &&\r\n deselectTarget.offCanvasOrigin.checked === true\r\n ) {\r\n deselectTarget.offCanvasOrigin.checked = false;\r\n getClosest(deselectTarget.offCanvasOrigin, \"li\", true).setAttribute(\"aria-checked\", \"false\");\r\n updateOffCanvasAccordionCount(deselectTarget.offCanvasOrigin);\r\n }\r\n if (!horizontal) {\r\n updateVerticalDesktopAccordionCount(deselectTarget.origin);\r\n }\r\n\r\n var value = filter.value.toLowerCase();\r\n var index;\r\n\r\n if (filterResults.contains(filter)) {\r\n var filterOffCanvas;\r\n\r\n filterResults.removeChild(filter);\r\n filterOffCanvas = filterOffCanvasResults.querySelector('[value=\"' + value + '\"]');\r\n if (filterOffCanvasResults.contains(filterOffCanvas)) {\r\n filterOffCanvasResults.removeChild(filterOffCanvas);\r\n\r\n //remove from filter temp\r\n var offCanvasFilterObj = altFind(filtersTemp, function (result) {\r\n return result.value === targetValue.toLowerCase().replace(/\\n/g, \"\");\r\n });\r\n index = filtersTemp.indexOf(offCanvasFilterObj);\r\n filtersTemp.splice(index, 1);\r\n }\r\n }\r\n\r\n //if selecting an offcanvas filter\r\n else if (filterOffCanvasResults.contains(filter) || filterResults.querySelector(\"#\" + filter.id) != null) {\r\n // filterOffCanvasResults.removeChild(filter);\r\n var filterDesktop = filterResults.querySelector(\"#\" + filter.id);\r\n filterResults.removeChild(filterDesktop);\r\n }\r\n\r\n index = filters.indexOf(results[0]);\r\n filters.splice(index, 1);\r\n if (\r\n (!horizontal && element.getBoundingClientRect().y && element.getBoundingClientRect().y < 0) ||\r\n (element.getBoundingClientRect().top && element.getBoundingClientRect().top < 0)\r\n ) {\r\n //Edge FF use top, not y\r\n element.scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n if (filters.length === 0) {\r\n toggleClearAllButtons(false);\r\n }\r\n // reset text (count) values in dropdowns\r\n each(dropdownObjects, function (dropdown) {\r\n dropdown.recountChecked();\r\n });\r\n },\r\n createShowMoreButton = function () {\r\n showMoreDiv = createElement(\"div\", {\r\n class: prefix + \"col-xs-12 \" + prefix + \"col-sm-6 \" + prefix + \"col-md-4 \" + prefix + \"col-lg-3\",\r\n });\r\n var showMore = createElement(\"button\", {\r\n class:\r\n prefix +\r\n \"filter-btn-show \" +\r\n prefix +\r\n \"btn \" +\r\n prefix +\r\n \"btn-secondary \" +\r\n prefix +\r\n \"d-flex \" +\r\n prefix +\r\n \"text-truncate\",\r\n id: \"showMorefilters\",\r\n html: \"Show More Filters\",\r\n });\r\n showMore.addEventListener(\"click\", handleShowMore, false);\r\n showMoreDiv.appendChild(showMore);\r\n collectionInputsContainer.appendChild(showMoreDiv);\r\n },\r\n createOffCanvasFilterItem = function (filterItem, origin) {\r\n if (filterAlreadyExists(filterItem.value ? filterItem.value : filterItem, true)) {\r\n return;\r\n }\r\n\r\n var filterOffCanvasItem;\r\n var isDigit = false;\r\n if (origin === null || origin === undefined) {\r\n origin = \"\";\r\n }\r\n if (typeof filterItem === \"object\") {\r\n // it's an object so clone it\r\n filterOffCanvasItem = filterItem.cloneNode(true);\r\n } else {\r\n // id's can't have a digit as first number\r\n if (filterItem[0].match(/\\d/)) {\r\n filterItem = digit.concat(filterItem);\r\n isDigit = true;\r\n }\r\n filterItem = filterItem.replace(/\\s+/g, \" \").trim();\r\n // need to create an object\r\n filterOffCanvasItem = createFilter(filterItem, true, isDigit);\r\n }\r\n if (!isApplyingState) {\r\n filterOffCanvasItem.addEventListener(\"click\", handleOffCanvasFilterItemClickEvent, false);\r\n filterOffCanvasResults.appendChild(filterOffCanvasItem); // DOM Add New Filter to OffCanvas\r\n }\r\n var filterValue = filterItem.value ? filterItem.value : filterItem.replace(/^digit/, \"\");\r\n if (isOffCanvasState) {\r\n var offCanvasOriginId = origin.id + \"OffCanvas\";\r\n var offCanvasOrigin = document.getElementById(offCanvasOriginId);\r\n filterOffCanvasItem.value = origin.name ? origin.name.toLowerCase() : filterValue.toLowerCase();\r\n filterOffCanvasItem.origin = origin;\r\n filterOffCanvasItem.offCanvasOrigin = offCanvasOrigin;\r\n filtersTemp.push(filterOffCanvasItem);\r\n }\r\n\r\n if (clearAllOffCanvas.classList.contains(prefix + \"d-none\")) {\r\n toggleClearAllButtons(true);\r\n }\r\n },\r\n createDesktopFilterItem = function (filter, origin) {\r\n var isDigit = false;\r\n if (origin === null || origin === undefined) {\r\n origin = \"\";\r\n }\r\n // id's can't have a digit as first number\r\n if (filter[0].match(/\\d/)) {\r\n filter = digit.concat(filter);\r\n isDigit = true;\r\n }\r\n filter = filter.replace(/\\s+/g, \" \").trim();\r\n\r\n if (filterAlreadyExists(filter, false)) {\r\n return;\r\n }\r\n\r\n if (filters.length <= 0) {\r\n resultsLabelDesktop.classList.remove(prefix + \"d-none\");\r\n }\r\n\r\n if (clearAllItem.classList.contains(prefix + \"d-none\")) {\r\n toggleClearAllButtons(true);\r\n }\r\n\r\n var filterItem = createFilter(filter, true, isDigit);\r\n var offCanvasOriginId = origin.id + \"OffCanvas\";\r\n var offCanvasOrigin = document.getElementById(offCanvasOriginId);\r\n\r\n filterItem.origin = origin;\r\n (filterItem.offCanvasOrigin = offCanvasOrigin),\r\n (filterItem.value = origin.name\r\n ? origin.name.toLowerCase()\r\n : filter.replace(/^digit/, \"\").toLowerCase());\r\n filterItem.addEventListener(\"click\", handleFilterItemClickEvent, false);\r\n\r\n if (!isOffCanvasState) {\r\n filters.push(filterItem);\r\n if (offCanvasOrigin) {\r\n offCanvasOrigin.checked = true; // Keep offCanvas checkbox in sync\r\n getClosest(offCanvasOrigin, \"li\", true).setAttribute(\"aria-checked\", \"true\");\r\n updateOffCanvasAccordionCount(offCanvasOrigin);\r\n }\r\n if (horizontal) {\r\n filterResults.insertBefore(filterItem, clearAllItem);\r\n } else {\r\n filterResults.appendChild(filterItem); // DOM Add new filter to Desktop\r\n updateVerticalDesktopAccordionCount(origin);\r\n }\r\n if (!isApplyingState) {\r\n createOffCanvasFilterItem(filterItem, filterItem.origin);\r\n }\r\n updateFiltersCount();\r\n uicoreCustomEvent(\"FilterCollection\", \"CreateEvent\", filterItem, {\r\n filters: filtersAsStrings(),\r\n addedFilter: filterItem.innerText,\r\n });\r\n }\r\n },\r\n // creates the HTML filterItem button\r\n createFilter = function (filter, useX, isDigit) {\r\n var filterText = filter;\r\n if (isDigit) {\r\n filterText = filter.replace(/^digit/, \"\");\r\n }\r\n var filterId = filter.replace(/([^A-Za-z0-9._:/-])/g, \"\"); // =need to delete instances of special characters\r\n var filterItem = createElement(\"button\", {\r\n class:\r\n prefix +\r\n \"filter-item \" +\r\n prefix +\r\n \"btn \" +\r\n prefix +\r\n \"btn-secondary \" +\r\n prefix +\r\n \"btn-sm \" +\r\n prefix +\r\n \"text-truncate\",\r\n id: filterId.toLowerCase().replace(/\\s/g, \"\").trim(),\r\n });\r\n\r\n var filterLabel = createElement(\"label\", {\r\n html: filterText,\r\n class: prefix + \"text-truncate\",\r\n });\r\n\r\n filterItem.appendChild(filterLabel);\r\n\r\n // create filterItem SVG\r\n if (useX) {\r\n var filterIcon = renderSvg([{ name: \"close-x\", show: true }]);\r\n classAdd(filterIcon, prefix + \"svg-close-x\");\r\n classAdd(filterIcon, prefix + \"align-self-center\");\r\n classAdd(filterIcon, prefix + \"m1-1\");\r\n filterIcon.setAttribute(\"tabindex\", \"-1\");\r\n filterIcon.setAttribute(\"focusable\", \"false\");\r\n filterIcon.setAttribute(\"aria-label\", \"filter-close\");\r\n\r\n // put everything together\r\n filterItem.appendChild(filterIcon);\r\n }\r\n return filterItem;\r\n },\r\n filterAlreadyExists = function (filter, isOffCanvasFilter) {\r\n var whichFilters = isOffCanvasFilter ? filtersTemp : filters;\r\n var whichParent = isOffCanvasFilter ? filterOffCanvas : element;\r\n\r\n if (filter === null || filter === undefined || filter == \"\") {\r\n console.warn(\"Not a valid filter tag\");\r\n return true;\r\n }\r\n if (arrayOfObjectsContains(whichFilters, filter.toLowerCase())) {\r\n each(whichParent.querySelectorAll(\".dds__filter-item\"), function (htmlFilter) {\r\n if (htmlFilter.value.toLowerCase() == filter.toLowerCase()) {\r\n htmlFilter.classList.add(prefix + \"shakey\");\r\n\r\n setTimeout(function () {\r\n htmlFilter.classList.remove(prefix + \"shakey\");\r\n }, getAnimationDurationFromElement(htmlFilter));\r\n }\r\n });\r\n console.warn(\"This filter has already been added\");\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n updateOffCanvasAccordionCount = function (origin) {\r\n var accordionParent = getClosest(origin, \".\" + prefix + \"collapse\").id;\r\n var accordionBtn = element.querySelector(\"[data-target='#\" + accordionParent + \"']\"); //[data-target='#\" + activeCollapse.id + \"']\"\r\n var accordionBody = getClosest(origin, \".\" + prefix + \"accordion-card-body\");\r\n var itemsChecked = accordionBody.querySelectorAll(\".\" + prefix + \"form-check-input:checked\").length;\r\n\r\n var displayTxt;\r\n if (itemsChecked > 0) {\r\n displayTxt = \"(\" + itemsChecked + \")\";\r\n } else {\r\n displayTxt = \" \";\r\n }\r\n\r\n var checkedCounter = accordionBtn.querySelector(\".\" + prefix + \"checked-presentation\");\r\n if (checkedCounter != null) {\r\n checkedCounter.innerHTML = displayTxt;\r\n // currentText = displayTxt;\r\n } else {\r\n checkedCounter = createElement(\"span\", {\r\n class: prefix + \"checked-presentation \" + prefix + \"ml-1\",\r\n html: displayTxt,\r\n });\r\n accordionBtn.appendChild(checkedCounter);\r\n }\r\n },\r\n updateVerticalDesktopAccordionCount = function (origin) {\r\n if (origin) {\r\n var accordionParent = getClosest(origin, \".\" + prefix + \"collapse\").id;\r\n var accordionBtn = element.querySelector(\"[data-target='#\" + accordionParent + \"']\"); //[data-target='#\" + activeCollapse.id + \"']\"\r\n var accordionBody = getClosest(origin, \".\" + prefix + \"secondary-accordion\");\r\n var itemsChecked = accordionBody.querySelectorAll(\".\" + prefix + \"form-check-input:checked\").length;\r\n\r\n var displayTxt;\r\n if (itemsChecked > 0) {\r\n displayTxt = \"(\" + itemsChecked + \")\";\r\n } else {\r\n displayTxt = \" \";\r\n }\r\n\r\n var checkedCounter = accordionBtn.querySelector(\".\" + prefix + \"checked-presentation\");\r\n if (checkedCounter != null) {\r\n checkedCounter.innerHTML = displayTxt;\r\n } else {\r\n checkedCounter = createElement(\"span\", {\r\n class: prefix + \"checked-presentation \" + prefix + \"ml-1 \" + prefix + \"font-weight-bold\",\r\n html: displayTxt,\r\n });\r\n accordionBtn.insertBefore(\r\n checkedCounter,\r\n accordionBtn.querySelector(\".\" + prefix + \"arrow-tri-solid-right\")\r\n );\r\n }\r\n } else {\r\n accordionObjects.forEach(function (accordion) {\r\n var itemsChecked = accordion.parentNode.querySelectorAll(\".\" + prefix + \"form-check-input:checked\")\r\n .length;\r\n\r\n var displayTxt;\r\n if (itemsChecked > 0) {\r\n displayTxt = \"(\" + itemsChecked + \")\";\r\n } else {\r\n displayTxt = \" \";\r\n }\r\n\r\n var checkedCounter = accordion.querySelector(\".\" + prefix + \"checked-presentation\");\r\n if (checkedCounter != null) {\r\n checkedCounter.innerHTML = displayTxt;\r\n } else {\r\n checkedCounter = createElement(\"span\", {\r\n class: prefix + \"checked-presentation \" + prefix + \"ml-1\",\r\n html: displayTxt,\r\n });\r\n accordion.querySelector(\"span\").appendChild(checkedCounter);\r\n }\r\n });\r\n }\r\n },\r\n updateFiltersCount = function () {\r\n var itemsChecked = filters.length;\r\n var filteringMobileBtn = element.querySelectorAll(\".\" + prefix + \"filter-btn-mobile\")[0];\r\n\r\n var displayTxt;\r\n if (itemsChecked > 0) {\r\n displayTxt = \"(\" + itemsChecked + \")\";\r\n } else {\r\n displayTxt = \" \";\r\n }\r\n var checkedCounter = filteringMobileBtn.querySelector(\".\" + prefix + \"checked-presentation\");\r\n if (checkedCounter != null) {\r\n checkedCounter.innerHTML = displayTxt;\r\n } else {\r\n checkedCounter = createElement(\"span\", {\r\n class: prefix + \"checked-presentation \" + prefix + \"ml-1\",\r\n html: displayTxt,\r\n });\r\n filteringMobileBtn.appendChild(checkedCounter);\r\n }\r\n },\r\n filtersAsStrings = function () {\r\n var stringArray = [];\r\n each(filters, function (filter) {\r\n stringArray.push(filter.value);\r\n });\r\n return stringArray;\r\n },\r\n toggleClearAllButtons = function (onState) {\r\n if (smallWindow && !horizontal) {\r\n clearAllItem = element.querySelector(\r\n \".\" + prefix + \"filter-label-results .\" + prefix + \"filter-btn-clear\"\r\n );\r\n }\r\n if (onState == true && clearAllItem.classList.contains(prefix + \"d-none\")) {\r\n clearAllOffCanvas.classList.remove(prefix + \"d-none\");\r\n clearAllItem.classList.add(prefix + \"d-flex\");\r\n clearAllItem.classList.remove(prefix + \"d-none\");\r\n clearAllItem.addEventListener(\"click\", handleClearAllEvent, false);\r\n clearAllItem.addEventListener(\"touchstart\", handleClearAllEvent, false);\r\n } else if ((onState == false) & !clearAllItem.classList.contains(prefix + \"d-none\")) {\r\n clearAllOffCanvas.classList.add(prefix + \"d-none\");\r\n clearAllItem.classList.remove(prefix + \"d-flex\");\r\n clearAllItem.classList.add(prefix + \"d-none\");\r\n clearAllItem.removeEventListener(\"click\", handleClearAllEvent, false);\r\n clearAllItem.removeEventListener(\"touchstart\", handleClearAllEvent, false);\r\n }\r\n },\r\n toggleDropdown = function (index) {\r\n var i;\r\n if (dropdowns[index].classList.contains(prefix + \"d-none\")) {\r\n for (i = 0; i <= index; i++) {\r\n dropdowns[i].classList.remove(prefix + \"d-none\");\r\n }\r\n } else {\r\n for (i = index + 1; i < dropdowns.length; i++) {\r\n dropdowns[i].classList.add(prefix + \"d-none\");\r\n }\r\n }\r\n };\r\n\r\n this.numOfFilters = function (OffCanvas) {\r\n if (OffCanvas) {\r\n return filterOffCanvasResults.querySelectorAll(\".\" + prefix + \"filter-item\").length;\r\n }\r\n };\r\n\r\n this.updateResultsLabel = function (resultCount) {\r\n if (!resultCount || typeof resultCount !== \"string\") {\r\n console.warn(\"This is not a valid input for updateResultsLabel.\");\r\n return;\r\n }\r\n element.querySelector(\".\" + prefix + \"resultCount\").innerText = resultCount;\r\n };\r\n\r\n // init\r\n if (!(stringFilterCollection in element)) {\r\n if (element.classList.contains(prefix + \"filter-collection-vertical\")) {\r\n horizontal = false;\r\n }\r\n if (horizontal) {\r\n clearAllItem = element.querySelector(\r\n \".\" + prefix + \"filter-collection-wrapper .\" + prefix + \"filter-btn-clear\"\r\n );\r\n } else if (smallMediaSize.matches) {\r\n clearAllItem = element.querySelector(\".\" + prefix + \"filter-label-results .\" + prefix + \"filter-btn-clear\");\r\n } else {\r\n clearAllItem = element.querySelector(\r\n \".\" + prefix + \"filter-collector-accordion .\" + prefix + \"filter-btn-clear\"\r\n );\r\n }\r\n\r\n collectionInputsContainer = element.querySelector(\".\" + prefix + \"filter-input-container\");\r\n dropdowns = collectionInputsContainer.querySelectorAll(\"div.\" + prefix + \"btn-dropdown\");\r\n collectionInputs = element.querySelectorAll(\"[data-filter]\");\r\n targetCollection = element[\"getAttribute\"](\"data-target\");\r\n filterCollection = element.querySelector(targetCollection);\r\n\r\n if (filterCollection == null) {\r\n console.error(\"Found no filter collection to output results to.\");\r\n return false;\r\n }\r\n if (collectionInputs == null) {\r\n console.error(\"Found no data-filter element(s) available to use\");\r\n return false;\r\n }\r\n\r\n //off canvas inits\r\n if (element.querySelector(\".\" + prefix + \"filter-btn-mobile\")) {\r\n var modalBtn = element.querySelector(\".\" + prefix + \"filter-btn-mobile\");\r\n mobileModal = new Modal(modalBtn);\r\n modalBtn.addEventListener(\"click\", handleOffCanvasOpen);\r\n filterOffCanvas = element.querySelector(\".\" + prefix + \"modal-offcanvas\");\r\n\r\n if (element.querySelectorAll(\"[data-toggle='\" + prefix + \"collapse\" + \"']\")) {\r\n each(element.querySelectorAll(\"[data-toggle='\" + prefix + \"collapse\" + \"']\"), function (accordion) {\r\n new Collapse(accordion);\r\n });\r\n }\r\n if (filterOffCanvas.querySelector(\".\" + prefix + \"text-right .\" + prefix + \"btn-primary\")) {\r\n var applyBtn = filterOffCanvas.querySelector(\".\" + prefix + \"text-right .\" + prefix + \"btn-primary\");\r\n applyBtn.addEventListener(\"click\", handleOffCanvasApplyEvent);\r\n }\r\n if (filterOffCanvas.querySelector(\".\" + prefix + \"text-right .\" + prefix + \"dds__btn-secondary-primary\")) {\r\n var clearAllBtn = filterOffCanvas.querySelector(\r\n \".\" + prefix + \"text-right .\" + prefix + \"dds__btn-secondary\"\r\n );\r\n clearAllBtn.addEventListener(\"click\", handleClearAllEvent);\r\n }\r\n if (filterOffCanvas.querySelector(\".\" + prefix + \"text-right .\" + prefix + \"btn-secondary\")) {\r\n clearAllOffCanvas = filterOffCanvas.querySelector(\r\n \".\" + prefix + \"text-right .\" + prefix + \"btn-secondary\"\r\n );\r\n clearAllOffCanvas.addEventListener(\"click\", handleOffCanvasClearAllClick, false);\r\n }\r\n if (filterOffCanvas.querySelector(\"[data-dismiss]\")) {\r\n var backOffCanvas = filterOffCanvas.querySelector(\"[data-dismiss]\");\r\n backOffCanvas.addEventListener(\"click\", handleOffCanvasCancelEvent, false);\r\n }\r\n each(filterOffCanvas.querySelectorAll(\".\" + prefix + \"form-check-input\"), function (checkbox) {\r\n checkbox.addEventListener(\"click\", handleOffCanvasCheckboxClick, false);\r\n });\r\n }\r\n if (horizontal) {\r\n if (!mediumMediaSize.matches) {\r\n if (collectionInputs.length > 8) {\r\n visibileIdx = 5;\r\n mediaIncrementforDropdowns = 4;\r\n for (var i = visibileIdx + 1; i < dropdowns.length; i++) {\r\n dropdowns[i].classList.add(prefix + \"d-none\");\r\n }\r\n createShowMoreButton();\r\n }\r\n } else if (mediumMediaSize.matches) {\r\n if (collectionInputs.length > 6) {\r\n visibileIdx = 3;\r\n mediaIncrementforDropdowns = 3;\r\n for (i = visibileIdx + 1; i < dropdowns.length; i++) {\r\n dropdowns[i].classList.add(prefix + \"d-none\");\r\n }\r\n createShowMoreButton();\r\n }\r\n }\r\n }\r\n\r\n each(collectionInputs, function (input) {\r\n var typeofInput = input[\"getAttribute\"](\"data-filter\");\r\n if (typeofInput == prefix + \"keyword-filter\") {\r\n keywordFilter = input;\r\n new FilterKeyword(keywordFilter);\r\n keywordFilter.addEventListener(\"uicFilterKeywordCreateEvent\", handleAddEvent, false);\r\n } else if (typeofInput == prefix + \"multi-select\") {\r\n var multiSelect = input;\r\n dropdownObjects.push(new Dropdown(input));\r\n multiSelect.addEventListener(\"uicDropdownAddEvent\", handleDesktopCheckboxClick, false);\r\n multiSelect.addEventListener(\"uicDropdownRemoveEvent\", handleDesktopCheckboxClick, false);\r\n } else if (typeofInput == prefix + \"secondary-accordion\") {\r\n accordionObjects.push(input);\r\n var checkboxes = input.parentNode.querySelectorAll(\".\" + prefix + \"form-check\");\r\n each(checkboxes, function (checkbox) {\r\n checkbox.addEventListener(\"click\", handleDesktopCheckboxClick, true);\r\n });\r\n }\r\n });\r\n\r\n filterResults = filterCollection.querySelector(\"div.\" + prefix + \"filter-results\");\r\n filterOffCanvasResults = element.querySelector(\r\n \"div.\" + prefix + \"modal-offcanvas div.\" + prefix + \"filter-results\"\r\n );\r\n resultsLabelDesktop = element.querySelector(\"label.\" + prefix + \"filter-label-results\");\r\n\r\n if (horizontal) {\r\n mediumMediaSize.addListener(handleResizeMedium);\r\n }\r\n smallMediaSize.addListener(handleResizeSmall);\r\n }\r\n\r\n element[stringFilterCollection] = self;\r\n}\r\n","import { prefix, DOC, getElementsByClassName, each, jsonOptionsInit } from \"./utilities.js\";\r\nimport InputMask from \"./helpers/inputMask.js\";\r\n\r\nexport default function Forms(element, options) {\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n options = options || {};\r\n options = jsonOptionsInit(element, options);\r\n options.validate = element.dataset.validate\r\n ? element.dataset.validate === \"true\"\r\n ? true\r\n : false\r\n : options.validate\r\n ? options.validate\r\n : true;\r\n\r\n var self = this,\r\n stringForm = \"Form\",\r\n togglePassword = function (e) {\r\n var passwordState = DOC.getElementById(e.target.dataset[\"target\"]);\r\n if (passwordState) {\r\n if (passwordState.type === \"password\") {\r\n passwordState.type = \"text\";\r\n } else {\r\n passwordState.type = \"password\";\r\n }\r\n } else {\r\n console.warn(\"The target password field does not exist.\");\r\n }\r\n },\r\n submitHandler = function (event) {\r\n var formValidationErrorSuffix = \"Feedback\";\r\n if (element.checkValidity() === false) {\r\n each(element, function (el) {\r\n if (el.tagName == \"INPUT\") {\r\n var errorMsg = element.querySelector(\"#\" + el.getAttribute(\"id\") + formValidationErrorSuffix);\r\n setTimeout(function () {\r\n if (!el.validity.valid) {\r\n //if error message has not been turned on yet\r\n if (errorMsg && !(getComputedStyle(errorMsg)[\"display\"] == \"block\")) {\r\n errorMsg.style.display = \"block\";\r\n }\r\n el.setAttribute(\"aria-invalid\", \"true\");\r\n el.setAttribute(\"aria-describedby\", el.getAttribute(\"id\") + formValidationErrorSuffix);\r\n } else {\r\n //if error message has not been turned off yet\r\n if (errorMsg && getComputedStyle(errorMsg)[\"display\"] == \"block\") {\r\n errorMsg.style.display = \"none\";\r\n }\r\n el.setAttribute(\"aria-invalid\", \"false\");\r\n el.setAttribute(\"aria-describedby\", \"\");\r\n }\r\n }, 10);\r\n }\r\n });\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n element.classList.add(\"dds__was-validated\");\r\n };\r\n\r\n //init\r\n if (!(stringForm in element)) {\r\n if (element.querySelectorAll(\"input\")) {\r\n each(element.querySelectorAll(\"input\"), function (child) {\r\n if (child.classList.contains(prefix + \"input-masked\")) {\r\n new InputMask(child);\r\n }\r\n });\r\n }\r\n if (!element.hasAttribute(\"novalidate\")) {\r\n element.setAttribute(\"novalidate\", \"\");\r\n }\r\n if (options.validate) {\r\n element.addEventListener(\"submit\", submitHandler);\r\n }\r\n\r\n var checkboxValidators = getElementsByClassName(element, prefix + \"form-check-input\");\r\n each(checkboxValidators, function (checkboxValidator) {\r\n if (checkboxValidator && !!checkboxValidator.dataset[\"target\"]) {\r\n checkboxValidator.addEventListener(\"click\", togglePassword);\r\n }\r\n });\r\n }\r\n element[stringForm] = self;\r\n}\r\n","import { each, createElement } from \"./utilities.js\";\r\n\r\nexport default function LinkPicker(element) {\r\n // initialization element\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n // constants, event targets, strings\r\n var self = this,\r\n stringLinkPicker = \"LinkPicker\",\r\n interestName = \"Interest\",\r\n touseName = \"ToUse\",\r\n interest = element.querySelector('select[name=\"' + stringLinkPicker + \"_\" + interestName + '\"]'),\r\n touse = element.querySelector('select[name=\"' + stringLinkPicker + \"_\" + touseName + '\"]'),\r\n interestData = JSON.parse(interest.getAttribute(\"data-select\")),\r\n touseData = JSON.parse(touse.getAttribute(\"data-select\")),\r\n findName = \"Find\",\r\n find = element.querySelector('button[name=\"' + stringLinkPicker + \"_\" + findName + '\"]'),\r\n // handlers\r\n onChangeHandler = function (e) {\r\n var eventTarget = e[\"target\"];\r\n if (eventTarget === interest) {\r\n if (interest.selectedIndex === 0) {\r\n touse.disabled = true;\r\n touse.classList.add(\"dds__disabled\"); //disabled attribute doesn't work on FF\r\n } else {\r\n touse.disabled = false;\r\n touse.classList.remove(\"dds__disabled\");\r\n }\r\n var obj = touseData[touseName][interest.value];\r\n removeAllOptions(touse, true);\r\n appendDataToSelect(touse, obj);\r\n find.classList.add(\"dds__disabled\");\r\n } else {\r\n if (touse.selectedIndex === 0) {\r\n find.disabled = true;\r\n find.classList.add(\"dds__disabled\");\r\n } else {\r\n find.disabled = false;\r\n find.classList.remove(\"dds__disabled\");\r\n }\r\n }\r\n },\r\n clickHandler = function () {\r\n var link = touse.options[touse.selectedIndex].value;\r\n find[\"setAttribute\"](\"href\", link);\r\n find.click();\r\n },\r\n removeAllOptions = function (sel, removeGrp) {\r\n var len, groups, par;\r\n if (removeGrp) {\r\n groups = sel.getElementsByTagName(\"optgroup\");\r\n len = groups.length;\r\n for (var i = len; i; i--) {\r\n sel.removeChild(groups[i - 1]);\r\n }\r\n }\r\n\r\n len = sel.options.length;\r\n for (i = len; i; i--) {\r\n par = sel.options[i - 1].parentNode;\r\n par.removeChild(sel.options[i - 1]);\r\n }\r\n },\r\n appendDataToSelect = function (sel, obj) {\r\n var f = document.createDocumentFragment();\r\n var labels = [],\r\n group,\r\n opts;\r\n\r\n function addOptions(obj) {\r\n var f = document.createDocumentFragment();\r\n var o;\r\n\r\n for (var i = 0, len = obj.text.length; i < len; i++) {\r\n o = createElement(\"option\");\r\n o.appendChild(document.createTextNode(obj.text[i]));\r\n\r\n if (obj.value) {\r\n o.value = obj.value[i];\r\n }\r\n\r\n f.appendChild(o);\r\n }\r\n return f;\r\n }\r\n\r\n if (obj.text) {\r\n opts = addOptions(obj);\r\n f.appendChild(opts);\r\n } else {\r\n for (var prop in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\r\n labels.push(prop);\r\n }\r\n }\r\n\r\n each(labels, function (label) {\r\n group = createElement(\"optgroup\", {\r\n label: label,\r\n });\r\n f.appendChild(group);\r\n opts = addOptions(obj[label]);\r\n group.appendChild(opts);\r\n });\r\n }\r\n sel.appendChild(f);\r\n };\r\n\r\n // init\r\n if (!(stringLinkPicker in element)) {\r\n appendDataToSelect(interest, interestData);\r\n interest.selectedIndex = 0;\r\n interest.addEventListener(\"change\", onChangeHandler, false);\r\n touse.addEventListener(\"change\", onChangeHandler, false);\r\n find.addEventListener(\"click\", clickHandler, false);\r\n var data = touseData[touseName][interest.value];\r\n appendDataToSelect(touse, data);\r\n }\r\n\r\n element[stringLinkPicker] = self;\r\n}\r\n","import {\r\n prefix,\r\n DOC,\r\n getClosest,\r\n each,\r\n getFullScreenOverlay,\r\n isSafari,\r\n isIPhone,\r\n isIOS,\r\n uicoreCustomEvent,\r\n setFocus,\r\n getFocusableElements,\r\n isIE,\r\n} from \"./utilities.js\";\r\nimport Collapse from \"./collapse.js\";\r\nimport Dropdown from \"./dropdown.js\";\r\n\r\nexport default function Masthead(element) {\r\n // initialization element\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n var self = this,\r\n stringMasthead = \"Masthead\",\r\n bottomMenu = element.querySelector(\".\" + prefix + \"msthd-bottom\"),\r\n mouseHover = [\"mouseenter\", \"mouseleave\"],\r\n activeContainerId,\r\n offCanvasMenuBtn,\r\n countryMenuBtn,\r\n fullScreenOverlay,\r\n overlay,\r\n signInText = element.querySelector(\"[data-target=msthd-signin-ctnr] .\" + prefix + \"msthd-label\")\r\n ? element.querySelector(\"[data-target=msthd-signin-ctnr] .\" + prefix + \"msthd-label\").innerHTML\r\n : \"Sign In\",\r\n mediaSize = window.matchMedia(\"(max-width: 991.98px)\"),\r\n // validate with Search Story\r\n // searchClass = \".\" + prefix + \"msthd-search\",\r\n // searchCtnrClass = \".\" + prefix + \"msthd-search-ctnr\",\r\n // search = element.querySelector(searchClass),\r\n // searchCtnr = element.querySelector(searchCtnrClass),\r\n // searchIconCtnr = element.querySelector(\"div[data-toggle='dds__msthd-search']\"),\r\n ////////////////////////////\r\n // handlers\r\n handleMenuItemEvent = function (e) {\r\n e.preventDefault();\r\n var target = e.target.tagName === \"LI\" ? e.target : getClosest(e.target, \"LI\", false);\r\n // openOverLay();\r\n updateMenuHeights(target);\r\n e.stopPropagation();\r\n },\r\n handleMenuCntrEvent = function (e) {\r\n e.preventDefault();\r\n var currentMenu = e.target.tagName === \"UL\" ? e.target : getClosest(e.target, \"UL\", false);\r\n updateMenuHeights(currentMenu);\r\n e.stopPropagation();\r\n },\r\n handleMenuCtnrBlurEvent = function (e) {\r\n var target = e.currentTarget;\r\n var relatedTarget = e.relatedTarget ? e.relatedTarget : DOC.activeElement;\r\n if (!e.currentTarget.contains(relatedTarget)) {\r\n closeMenu(target);\r\n if (\r\n !relatedTarget.classList.contains(prefix + \"msthd-menu-link\") &&\r\n !relatedTarget.classList.contains(prefix + \"msthd-menu-top-link\")\r\n ) {\r\n closeOverLay();\r\n }\r\n }\r\n },\r\n handleMenuHoverInEvent = function (e) {\r\n e.preventDefault();\r\n openOverLay();\r\n e.stopPropagation();\r\n },\r\n handleMenuHoverOutEvent = function (e) {\r\n e.preventDefault();\r\n closeOverLay();\r\n e.stopPropagation();\r\n },\r\n handleMenuItemKeyEvent = function (e) {\r\n var anchor = e.target ? e.target : DOC.activeElement,\r\n item = anchor.parentNode,\r\n menu = item.querySelector(\"ul\") ? item.querySelector(\"ul\") : undefined,\r\n isTop = item.classList.contains(prefix + \"msthd-menu-top-item\"),\r\n nextItem;\r\n switch (e.keyCode) {\r\n case 37: // left key\r\n e.preventDefault();\r\n if (isTop) {\r\n if (\r\n item.previousElementSibling &&\r\n (nextItem = item.previousElementSibling.querySelector(\"a\"))\r\n ) {\r\n nextItem.focus();\r\n }\r\n } else if (item.classList.contains(prefix + \"msthd-menu-item-img\") && item.previousElementSibling) {\r\n item.previousElementSibling.querySelector(\"a\").focus();\r\n } else {\r\n previousItem = closeMenu(item);\r\n\r\n if (previousItem.classList.contains(prefix + \"msthd-menu-top-item\")) {\r\n closeOverLay();\r\n if (previousItem.previousElementSibling) {\r\n previousItem.previousElementSibling.querySelector(\"a\").focus();\r\n } else {\r\n previousItem.querySelector(\"a\").focus();\r\n }\r\n } else {\r\n previousItem.querySelector(\"a\").focus();\r\n updateMenuHeights(previousItem);\r\n }\r\n }\r\n break;\r\n case 38: // up key\r\n e.preventDefault();\r\n if (!isTop) {\r\n if (\r\n item.previousElementSibling &&\r\n (nextItem = item.previousElementSibling.querySelector(\"a\"))\r\n ) {\r\n nextItem.focus();\r\n } else {\r\n item.parentNode.lastElementChild.querySelector(\"a\").focus();\r\n }\r\n }\r\n break;\r\n case 39: // right key\r\n e.preventDefault();\r\n if (isTop) {\r\n if (item.nextElementSibling && (nextItem = item.nextElementSibling.querySelector(\"a\"))) {\r\n nextItem.focus();\r\n }\r\n } else {\r\n if (anchor.querySelector(\"svg\")) {\r\n openMenu([item, menu, anchor]);\r\n if (!isTop) {\r\n updateMenuHeights(item);\r\n }\r\n menu.querySelector(\"a\").focus();\r\n } else if (item.classList.contains(prefix + \"msthd-menu-item-img\") && item.nextElementSibling) {\r\n item.nextElementSibling.querySelector(\"a\").focus();\r\n } else {\r\n do {\r\n previousItem = closeMenu(item);\r\n item = previousItem;\r\n } while (!item.classList.contains(prefix + \"msthd-menu-top-item\"));\r\n closeOverLay();\r\n if (item.nextElementSibling) {\r\n item.nextElementSibling.querySelector(\"a\").focus();\r\n } else {\r\n item.querySelector(\"a\").focus();\r\n }\r\n }\r\n }\r\n break;\r\n case 40: // down key\r\n e.preventDefault();\r\n if (isTop) {\r\n if (!menu) {\r\n item.focus();\r\n } else {\r\n openMenu([item, menu, anchor]);\r\n menu.querySelector(\"a\").focus();\r\n openOverLay();\r\n }\r\n } else {\r\n if (item.nextElementSibling && (nextItem = item.nextElementSibling.querySelector(\"a\"))) {\r\n nextItem.focus();\r\n } else {\r\n item.parentNode.firstElementChild.querySelector(\"a\").focus();\r\n }\r\n }\r\n break;\r\n case 27: // escape key\r\n if (!item.classList.contains(prefix + \"msthd-menu-top-item\")) {\r\n do {\r\n var previousItem = closeMenu(item);\r\n item = previousItem;\r\n } while (!item.classList.contains(prefix + \"msthd-menu-top-item\"));\r\n item.querySelector(\"a\").focus();\r\n }\r\n closeOverLay();\r\n break;\r\n case 13: // enter key\r\n case 32: // space key\r\n if (!menu) {\r\n if (e.keyCode === 13) {\r\n return false;\r\n } else if (e.keyCode === 32) {\r\n // Spacekey scroll down the screen by default, so we need to preventDefault to ensure that this will not happen\r\n e.preventDefault();\r\n e.target.click && e.target.click();\r\n }\r\n } else {\r\n e.preventDefault();\r\n if (item.hasAttribute(\"active\")) {\r\n closeMenu(item);\r\n updateMenuHeights(menu);\r\n } else {\r\n openMenu([item, menu, anchor]);\r\n openOverLay();\r\n if (!isTop) {\r\n updateMenuHeights(item);\r\n }\r\n }\r\n menu.querySelector(\"a\").focus();\r\n }\r\n break;\r\n case 9: //TAB\r\n if (e.shiftKey) {\r\n closeOverLay();\r\n }\r\n break;\r\n }\r\n },\r\n handleIconClickEvent = function (e) {\r\n var button = e.target.tagName === \"BUTTON\" || e.target.tagName === \"A\" ? e.target : e.target.parentNode,\r\n target = button.dataset.target,\r\n container = DOC.getElementById(target),\r\n origContainerId;\r\n\r\n if (activeContainerId) {\r\n origContainerId = activeContainerId;\r\n var activeContainer = DOC.getElementById(activeContainerId);\r\n var activeButton = getClosest(activeContainer, \"BUTTON\", false);\r\n closeContainer(activeButton, activeContainer);\r\n }\r\n if (origContainerId !== target) {\r\n openContainer(target, button, container);\r\n }\r\n },\r\n handleWindowClickEvent = function (e) {\r\n if (activeContainerId) {\r\n var container = DOC.getElementById(activeContainerId),\r\n button = getClosest(container, \"button\", false);\r\n if (!container.contains(e.target) && !button.contains(e.target)) {\r\n closeContainer(button, container);\r\n }\r\n }\r\n },\r\n handleFocusOutEvent = function (e) {\r\n var target = e.relatedTarget ? e.relatedTarget : e.target;\r\n if (activeContainerId) {\r\n var container = DOC.getElementById(activeContainerId),\r\n button = getClosest(container, \"button\", false);\r\n if (target === button) {\r\n return;\r\n } else if (!container.contains(target)) {\r\n closeContainer(button, container);\r\n } else {\r\n window.addEventListener(\"click\", handleWindowClickEvent, false);\r\n }\r\n }\r\n },\r\n handleKeyDownEvent = function (e) {\r\n if (activeContainerId) {\r\n var container = DOC.getElementById(activeContainerId);\r\n var button = getClosest(container, \"button\", false);\r\n\r\n switch (e.keyCode) {\r\n case 9: //TAB\r\n if (e.shiftKey) {\r\n if (\r\n e.target ===\r\n container.querySelectorAll(\r\n \"a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex='0']\"\r\n )[0]\r\n ) {\r\n closeContainer(button, container);\r\n break;\r\n }\r\n }\r\n setTimeout(function () {\r\n if (!container.contains(document.activeElement)) {\r\n closeContainer(button, container);\r\n }\r\n }, 200);\r\n break;\r\n case 27: //ESC\r\n closeContainer(button, container);\r\n button.focus();\r\n break;\r\n case 37:\r\n case 38:\r\n case 39:\r\n case 40:\r\n e.preventDefault();\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n },\r\n openOverLay = function () {\r\n if (overlay) {\r\n if (!overlay.classList.contains(prefix + \"show\")) {\r\n overlay.classList.add(prefix + \"show\");\r\n }\r\n } else {\r\n console.error(\"Please put the overlay in place!\");\r\n }\r\n },\r\n closeOverLay = function () {\r\n if (overlay) {\r\n if (overlay.classList.contains(prefix + \"show\")) {\r\n overlay.classList.remove(prefix + \"show\");\r\n }\r\n } else {\r\n console.error(\"Please put the overlay in place!\");\r\n }\r\n },\r\n closeMenu = function (item) {\r\n var previousMenu = item.tagName === \"LI\" ? item.parentNode : item,\r\n previousItem = previousMenu.parentNode,\r\n previousLink = previousItem.querySelector(\"a\");\r\n\r\n if (previousMenu.hasAttribute(\"style\")) {\r\n previousMenu.removeAttribute(\"style\");\r\n }\r\n\r\n previousItem.removeAttribute(\"active\");\r\n previousMenu.removeAttribute(\"active\");\r\n previousLink.removeAttribute(\"active\");\r\n previousLink.setAttribute(\"aria-expanded\", \"false\");\r\n\r\n return previousItem;\r\n },\r\n openMenu = function (items) {\r\n each(items, function (item) {\r\n item.setAttribute(\"active\", \"\");\r\n if (item.tagName === \"A\") item.setAttribute(\"aria-expanded\", \"true\");\r\n });\r\n },\r\n updateMenuHeights = function (target) {\r\n var currentMenu,\r\n nextMenu,\r\n previousMenu,\r\n prePreviousMenu,\r\n heights = [],\r\n max;\r\n\r\n // do not do logic on a list item image\r\n if (!target.classList.contains(prefix + \"msthd-menu-item-img\")) {\r\n // if a list item is passed\r\n if (target.tagName === \"LI\") {\r\n currentMenu = target.parentNode;\r\n nextMenu = target.querySelector(\"ul\") ? target.querySelector(\"ul\") : undefined;\r\n // if a unordered list is passed\r\n } else {\r\n currentMenu = target;\r\n }\r\n\r\n previousMenu = currentMenu.parentNode.parentNode.classList.contains(prefix + \"msthd-menu-top\")\r\n ? undefined\r\n : currentMenu.parentNode.parentNode;\r\n prePreviousMenu = previousMenu\r\n ? previousMenu.parentNode.parentNode.classList.contains(prefix + \"msthd-menu-top\")\r\n ? undefined\r\n : previousMenu.parentNode.parentNode\r\n : undefined;\r\n\r\n if (!previousMenu) {\r\n if (currentMenu.hasAttribute(\"style\")) {\r\n currentMenu.removeAttribute(\"style\");\r\n }\r\n }\r\n\r\n if (!nextMenu || !nextMenu.classList.contains(prefix + \"msthd-menu-tier-img\")) {\r\n // resst any height style\r\n if (currentMenu.hasAttribute(\"style\")) {\r\n currentMenu.removeAttribute(\"style\");\r\n }\r\n if (nextMenu && nextMenu.hasAttribute(\"style\")) {\r\n nextMenu.removeAttribute(\"style\");\r\n }\r\n if (previousMenu && previousMenu.hasAttribute(\"style\")) {\r\n previousMenu.removeAttribute(\"style\");\r\n }\r\n if (prePreviousMenu && prePreviousMenu.hasAttribute(\"style\")) {\r\n prePreviousMenu.removeAttribute(\"style\");\r\n }\r\n\r\n // find max height\r\n if (currentMenu) heights.push(currentMenu.offsetHeight);\r\n if (nextMenu) heights.push(nextMenu.offsetHeight);\r\n if (previousMenu) heights.push(previousMenu.offsetHeight);\r\n if (prePreviousMenu) heights.push(prePreviousMenu.offsetHeight);\r\n max = Math.max.apply(this, heights);\r\n\r\n // update height style\r\n if (max > 0) {\r\n currentMenu.setAttribute(\"style\", \"height: \" + max + \"px\");\r\n if (nextMenu) {\r\n nextMenu.setAttribute(\"style\", \"height: \" + max + \"px\");\r\n }\r\n if (previousMenu) {\r\n previousMenu.setAttribute(\"style\", \"height: \" + max + \"px\");\r\n }\r\n if (prePreviousMenu) {\r\n prePreviousMenu.setAttribute(\"style\", \"height: \" + max + \"px\");\r\n }\r\n }\r\n } else {\r\n var cBottom = currentMenu.getBoundingClientRect().bottom,\r\n cHeight = currentMenu.offsetHeight,\r\n nBottom = nextMenu.getBoundingClientRect().bottom,\r\n nHeight = nextMenu.offsetHeight;\r\n\r\n if (cHeight < nHeight) {\r\n if (currentMenu.hasAttribute(\"style\")) {\r\n currentMenu.removeAttribute(\"style\");\r\n }\r\n currentMenu.setAttribute(\"style\", \"height: \" + nHeight + \"px\");\r\n }\r\n if (cBottom < nBottom) {\r\n if (nextMenu.hasAttribute(\"style\")) {\r\n nextMenu.removeAttribute(\"style\");\r\n }\r\n nextMenu.setAttribute(\"style\", \"bottom: -4px\");\r\n }\r\n }\r\n }\r\n },\r\n // Top navigation methods\r\n openContainer = function (target, button, container) {\r\n activeContainerId = target;\r\n button.classList.add(prefix + \"active\");\r\n button.setAttribute(\"aria-expanded\", \"true\");\r\n container.classList.add(prefix + \"active\");\r\n if (container.classList.contains(prefix + \"msthd-offcanvas-menu\")) {\r\n toggleFullScreen(container, true);\r\n uicoreCustomEvent(\"Masthead\", \"OffCanvasOpen\", element);\r\n setTimeout(function () {\r\n setFocus(getFocusableElements(container)[0]);\r\n }, 200);\r\n } else {\r\n container\r\n .querySelectorAll(\r\n \"a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex='0']\"\r\n )[0]\r\n .focus();\r\n container.addEventListener(\"focusout\", handleFocusOutEvent, true);\r\n }\r\n container.addEventListener(\"keydown\", handleKeyDownEvent, false);\r\n },\r\n closeContainer = function (button, container) {\r\n activeContainerId = null;\r\n window.removeEventListener(\"click\", handleWindowClickEvent, false);\r\n button.classList.remove(prefix + \"active\");\r\n button.setAttribute(\"aria-expanded\", \"false\");\r\n if (container.classList.contains(prefix + \"msthd-offcanvas-menu\")) {\r\n toggleFullScreen(container, false);\r\n uicoreCustomEvent(\"Masthead\", \"OffCanvasClose\", element);\r\n } else {\r\n container.removeEventListener(\"focusout\", handleFocusOutEvent, true);\r\n container.removeEventListener(\"keydown\", handleKeyDownEvent, false);\r\n }\r\n container.classList.remove(prefix + \"active\");\r\n },\r\n toggleFullScreen = function (container, show) {\r\n if (show) {\r\n if (container) {\r\n container.hidden = false;\r\n }\r\n DOC.body.classList.add(prefix + \"active\");\r\n\r\n // container.addEventListener(\"keydown\", handle)\r\n\r\n if (fullScreenOverlay && !fullScreenOverlay.classList[\"contains\"](prefix + \"show\")) {\r\n fullScreenOverlay.classList.add(prefix + \"show\");\r\n fullScreenOverlay.hidden = false;\r\n }\r\n window.addEventListener(\"click\", handleWindowClickEvent, false);\r\n window.addEventListener(\"touchstart\", handleWindowClickEvent, false);\r\n } else {\r\n if (container) {\r\n container.hidden = true;\r\n }\r\n DOC.body.classList.remove(prefix + \"active\");\r\n if (fullScreenOverlay && fullScreenOverlay.classList[\"contains\"](prefix + \"show\")) {\r\n fullScreenOverlay.classList.remove(prefix + \"show\");\r\n fullScreenOverlay.hidden = true;\r\n }\r\n window.removeEventListener(\"touchstart\", handleWindowClickEvent, false);\r\n }\r\n },\r\n touchHandler = function (e) {\r\n if (!document.querySelector(\".\" + prefix + \"msthd-menu-top\").contains(e.target)) {\r\n closeOverLay();\r\n }\r\n };\r\n\r\n this.logIn = function (displayname) {\r\n var signInCtnr = element.querySelector(\".\" + prefix + \"msthd-icon-ctnr\" + \"[data-target='msthd-signin-ctnr']\"),\r\n signInBadge = signInCtnr.querySelector(\".\" + prefix + \"badge\"),\r\n label = signInCtnr.querySelector(\".\" + prefix + \"msthd-label\");\r\n\r\n if (signInBadge.hidden) {\r\n signInBadge.hidden = false;\r\n }\r\n\r\n if (label) {\r\n label.innerHTML = displayname;\r\n }\r\n signInCtnr.setAttribute(\"data-target\", \"msthd-signout-ctnr\");\r\n };\r\n this.logOut = function () {\r\n var signInCtnr = element.querySelector(\".\" + prefix + \"msthd-icon-ctnr\" + \"[data-target='msthd-signout-ctnr']\"),\r\n signInBadge = signInCtnr.querySelector(\".\" + prefix + \"badge\"),\r\n label = signInCtnr.querySelector(\".\" + prefix + \"msthd-label\");\r\n\r\n if (!signInBadge.hidden) {\r\n signInBadge.hidden = true;\r\n }\r\n\r\n if (label) {\r\n label.innerHTML = signInText;\r\n }\r\n signInCtnr.setAttribute(\"data-target\", \"msthd-signin-ctnr\");\r\n };\r\n this.cartCount = function (count) {\r\n var cartCtnr = element.querySelector(\".\" + prefix + \"msthd-icon-ctnr\" + \"[data-target='msthd-cart-ctnr']\"),\r\n cartBadge = cartCtnr.querySelector(\".\" + prefix + \"badge\");\r\n if (count && count > 0) {\r\n if (cartBadge.hidden) {\r\n cartBadge.hidden = false;\r\n }\r\n cartBadge.innerHTML = count;\r\n } else {\r\n cartBadge.hidden = true;\r\n cartBadge.innerHTML = 0;\r\n }\r\n };\r\n\r\n // init\r\n if (!(stringMasthead in element)) {\r\n document.addEventListener(\"uicLeftNavCloseEvent\", function (e) {\r\n closeContainer(e.detail.button, e.detail.container);\r\n });\r\n\r\n overlay = DOC.getElementById(prefix + \"msthd-overlay\");\r\n\r\n each(\r\n element.querySelectorAll(\"button.\" + prefix + \"msthd-icon-ctnr\", \"a.\" + prefix + \"msthd-icon-ctnr\"),\r\n function (button) {\r\n if (button.dataset.toggle && button.dataset.toggle === prefix + \"msthd-offcanvas\") {\r\n offCanvasMenuBtn = button;\r\n }\r\n if (button.dataset.target === \"msthd-country-ctnr\") {\r\n new Dropdown(button);\r\n countryMenuBtn = button;\r\n } else {\r\n button.addEventListener(\"click\", handleIconClickEvent, false);\r\n }\r\n }\r\n );\r\n\r\n if (countryMenuBtn) {\r\n countryMenuBtn.addEventListener(\"uicDropDownShowEvent\", function () {\r\n openOverLay();\r\n });\r\n\r\n countryMenuBtn.addEventListener(\"uicDropDownHideEvent\", function () {\r\n closeOverLay();\r\n });\r\n }\r\n\r\n if (offCanvasMenuBtn) {\r\n fullScreenOverlay = getFullScreenOverlay();\r\n if (!DOC.body.classList.contains(prefix + \"body-off-canvas\")) {\r\n DOC.body.classList.add(prefix + \"body-off-canvas\");\r\n }\r\n if (isIPhone && isSafari) {\r\n element.querySelector(\".\" + prefix + \"msthd-offcanvas-menu\").classList.add(prefix + \"safari-fix\");\r\n }\r\n each(element.querySelectorAll(\"[data-toggle='dds__collapse']\"), function (collapse) {\r\n new Collapse(collapse);\r\n });\r\n mediaSize.addListener(function () {\r\n if (!mediaSize.matches) {\r\n if (activeContainerId) {\r\n var container = DOC.getElementById(activeContainerId),\r\n button = getClosest(container, \"BUTTON\", false);\r\n closeContainer(button, container);\r\n }\r\n if (bottomMenu) {\r\n each(bottomMenu.querySelectorAll(\".\" + prefix + \"msthd-menu-top-item\"), function (topMenuItem) {\r\n if (topMenuItem.matches(\":hover\")) {\r\n openOverLay();\r\n }\r\n });\r\n }\r\n } else {\r\n closeOverLay();\r\n }\r\n });\r\n }\r\n if (bottomMenu) {\r\n each(bottomMenu.querySelectorAll(\".\" + prefix + \"msthd-menu-ctnr\"), function (menuCtnr) {\r\n if (!menuCtnr.classList.contains(prefix + \"msthd-menu-tier-img\")) {\r\n if (window.matchMedia(\"(any-hover: hover)\").matches || isIE) {\r\n //Device capable of hover + IE (IE Doesn't support media features)\r\n menuCtnr.addEventListener(mouseHover[0], handleMenuCntrEvent, false);\r\n menuCtnr.addEventListener(mouseHover[1], handleMenuCntrEvent, false);\r\n } else {\r\n //Device only capable of touch\r\n menuCtnr.addEventListener(\"touchstart\", handleMenuCntrEvent, false);\r\n }\r\n }\r\n menuCtnr.addEventListener(\"blur\", handleMenuCtnrBlurEvent, true);\r\n });\r\n each(bottomMenu.querySelectorAll(\".\" + prefix + \"msthd-menu-top-item > a\"), function (topMenuItem) {\r\n topMenuItem.addEventListener(\"keydown\", handleMenuItemKeyEvent, false);\r\n });\r\n each(\r\n bottomMenu.querySelectorAll(\".\" + prefix + \"msthd-menu-item , .\" + prefix + \"msthd-menu-item-img\"),\r\n function (menuItem) {\r\n menuItem.querySelector(\"a\").addEventListener(\"keydown\", handleMenuItemKeyEvent, false);\r\n if (window.matchMedia(\"(any-hover: hover)\").matches || isIE) {\r\n //Device capable of hover + IE (IE Doesn't support media features)\r\n menuItem.addEventListener(mouseHover[0], handleMenuItemEvent, false);\r\n menuItem.addEventListener(mouseHover[1], handleMenuItemEvent, false);\r\n } else {\r\n //Device only capable of touch\r\n menuItem.addEventListener(\"touchstart\", handleMenuItemEvent, false);\r\n }\r\n }\r\n );\r\n\r\n bottomMenu = element.querySelector(\".\" + prefix + \"msthd-menu-top\");\r\n if (window.matchMedia(\"(any-hover: hover)\").matches || isIE) {\r\n //Device capable of hover + IE (IE Doesn't support media features)\r\n bottomMenu.addEventListener(mouseHover[0], handleMenuHoverInEvent, false);\r\n bottomMenu.addEventListener(mouseHover[1], handleMenuHoverOutEvent, false);\r\n } else {\r\n //Device only capable of touch\r\n bottomMenu.addEventListener(\"touchstart\", handleMenuHoverInEvent, false);\r\n }\r\n\r\n if (isIOS) {\r\n window.addEventListener(\"touchstart\", touchHandler, false);\r\n }\r\n }\r\n }\r\n\r\n element[stringMasthead] = self;\r\n}\r\n","/**\r\n * Detect Element Resize\r\n *\r\n * https://github.com/sdecima/javascript-detect-element-resize\r\n * Sebastian Decima\r\n *\r\n * version: 0.5.3\r\n **/\r\nexport default function ResizeElement() {\r\n (function () {\r\n var attachEvent = document.attachEvent,\r\n stylesCreated = false;\r\n\r\n if (!attachEvent) {\r\n var requestFrame = (function () {\r\n var raf =\r\n window.requestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n function (fn) {\r\n return window.setTimeout(fn, 20);\r\n };\r\n return function (fn) {\r\n return raf(fn);\r\n };\r\n })();\r\n\r\n var cancelFrame = (function () {\r\n var cancel =\r\n window.cancelAnimationFrame ||\r\n window.mozCancelAnimationFrame ||\r\n window.webkitCancelAnimationFrame ||\r\n window.clearTimeout;\r\n return function (id) {\r\n return cancel(id);\r\n };\r\n })();\r\n\r\n var resetTriggers = function (element) {\r\n var triggers = element.__resizeTriggers__,\r\n expand = triggers.firstElementChild,\r\n contract = triggers.lastElementChild,\r\n expandChild = expand.firstElementChild;\r\n contract.scrollLeft = contract.scrollWidth;\r\n contract.scrollTop = contract.scrollHeight;\r\n expandChild.style.width = expand.offsetWidth + 1 + \"px\";\r\n expandChild.style.height = expand.offsetHeight + 1 + \"px\";\r\n expand.scrollLeft = expand.scrollWidth;\r\n expand.scrollTop = expand.scrollHeight;\r\n };\r\n\r\n var checkTriggers = function (element) {\r\n return (\r\n element.offsetWidth != element.__resizeLast__.width ||\r\n element.offsetHeight != element.__resizeLast__.height\r\n );\r\n };\r\n\r\n var scrollListener = function (e) {\r\n var element = this;\r\n resetTriggers(this);\r\n if (this.__resizeRAF__) cancelFrame(this.__resizeRAF__);\r\n this.__resizeRAF__ = requestFrame(function () {\r\n if (checkTriggers(element)) {\r\n element.__resizeLast__.width = element.offsetWidth;\r\n element.__resizeLast__.height = element.offsetHeight;\r\n element.__resizeListeners__.forEach(function (fn) {\r\n fn.call(element, e);\r\n });\r\n }\r\n });\r\n };\r\n\r\n /* Detect CSS Animations support to detect element display/re-attach */\r\n var animation = false,\r\n // animationstring = \"animation\",\r\n keyframeprefix = \"\",\r\n animationstartevent = \"animationstart\",\r\n domPrefixes = \"Webkit Moz O ms\".split(\" \"),\r\n startEvents = \"webkitAnimationStart animationstart oAnimationStart MSAnimationStart\".split(\" \"),\r\n pfx = \"\";\r\n {\r\n var elm = document.createElement(\"fakeelement\");\r\n if (elm.style.animationName !== undefined) {\r\n animation = true;\r\n }\r\n\r\n if (animation === false) {\r\n for (var i = 0; i < domPrefixes.length; i++) {\r\n if (elm.style[domPrefixes[i] + \"AnimationName\"] !== undefined) {\r\n pfx = domPrefixes[i];\r\n // animationstring = pfx + \"Animation\";\r\n keyframeprefix = \"-\" + pfx.toLowerCase() + \"-\";\r\n animationstartevent = startEvents[i];\r\n animation = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n var animationName = \"resizeanim\";\r\n var animationKeyframes =\r\n \"@\" + keyframeprefix + \"keyframes \" + animationName + \" { from { opacity: 0; } to { opacity: 0; } } \";\r\n var animationStyle = keyframeprefix + \"animation: 1ms \" + animationName + \"; \";\r\n }\r\n\r\n var createStyles = function () {\r\n if (!stylesCreated) {\r\n //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\r\n var css =\r\n (animationKeyframes ? animationKeyframes : \"\") +\r\n \".resize-triggers { \" +\r\n (animationStyle ? animationStyle : \"\") +\r\n \"visibility: hidden; opacity: 0; } \" +\r\n '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\r\n head = document.head || document.getElementsByTagName(\"head\")[0],\r\n style = document.createElement(\"style\");\r\n\r\n style.type = \"text/css\";\r\n if (style.styleSheet) {\r\n style.styleSheet.cssText = css;\r\n } else {\r\n style.appendChild(document.createTextNode(css));\r\n }\r\n\r\n head.appendChild(style);\r\n stylesCreated = true;\r\n }\r\n };\r\n\r\n window.addResizeListener = function (element, fn) {\r\n if (attachEvent) element.attachEvent(\"onresize\", fn);\r\n else {\r\n if (!element.__resizeTriggers__) {\r\n if (getComputedStyle(element).position == \"static\") element.style.position = \"relative\";\r\n createStyles();\r\n element.__resizeLast__ = {};\r\n element.__resizeListeners__ = [];\r\n (element.__resizeTriggers__ = document.createElement(\"div\")).className = \"resize-triggers\";\r\n element.__resizeTriggers__.innerHTML =\r\n '
' + '
';\r\n element.appendChild(element.__resizeTriggers__);\r\n resetTriggers(element);\r\n element.addEventListener(\"scroll\", scrollListener, true);\r\n\r\n /* Listen for a css animation to detect element display/re-attach */\r\n animationstartevent &&\r\n element.__resizeTriggers__.addEventListener(animationstartevent, function (e) {\r\n if (e.animationName == animationName) resetTriggers(element);\r\n });\r\n }\r\n element.__resizeListeners__.push(fn);\r\n }\r\n };\r\n\r\n window.removeResizeListener = function (element, fn) {\r\n if (attachEvent) element.detachEvent(\"onresize\", fn);\r\n else {\r\n element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\r\n if (!element.__resizeListeners__.length) {\r\n element.removeEventListener(\"scroll\", scrollListener);\r\n element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\r\n }\r\n }\r\n };\r\n })();\r\n}\r\n","import {\r\n ariaAnnounce,\r\n classAdd,\r\n classRemove,\r\n createElement,\r\n debounce,\r\n each,\r\n DOC,\r\n getClosest,\r\n getFocusableElements,\r\n getNextFocusableElement,\r\n isIE,\r\n isIOS,\r\n isSafari,\r\n jsonOptionsInit,\r\n one,\r\n prefix,\r\n setFocus,\r\n uicoreCustomEvent,\r\n} from \"./utilities.js\";\r\n\r\nimport Collapse from \"./collapse.js\";\r\nimport ResizeElement from \"./helpers/resizeElement.js\";\r\n\r\nexport function NavAnchored(element) {\r\n // initialization element, the element we spy on\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n var self = this,\r\n items,\r\n tabs,\r\n modalElement,\r\n backButton,\r\n activeTab = null,\r\n focusableEls,\r\n stringNav = \"Nav\",\r\n sticky,\r\n isSticky = false,\r\n targetItems,\r\n tabbing = false,\r\n targetNav,\r\n modalSize = window.matchMedia(\"(max-width: 767.98px)\"),\r\n exitFocus,\r\n // Event Handlers\r\n handleClickEvent = function (e) {\r\n activeTab = e.target;\r\n tabbing = false;\r\n if (modalSize.matches && modalElement && !modalElement.classList.contains(prefix + \"show\")) {\r\n showModal(activeTab);\r\n for (var index = 0; index < items[\"length\"]; index++) {\r\n var item = items[index];\r\n if (index == activeTab.idx) {\r\n activateTab(item);\r\n } else {\r\n deactivateTab(item);\r\n }\r\n }\r\n e.preventDefault();\r\n } else {\r\n window.addEventListener(\"scroll\", handleScrollEvent, false);\r\n if (!isSticky) {\r\n if (isIE) {\r\n element.scrollIntoView(true);\r\n } else {\r\n element.scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n }\r\n if (isIE) {\r\n targetItems[activeTab.idx].scrollIntoView(true);\r\n } else {\r\n targetItems[activeTab.idx].scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n }\r\n },\r\n handleScrollEvent = function () {\r\n var last_known_scroll_position = window.pageYOffset;\r\n stickNav(last_known_scroll_position);\r\n if (!tabbing) {\r\n window.requestAnimationFrame(updateItems);\r\n }\r\n },\r\n stickNav = function (itemTop) {\r\n var targetBottom = targetNav.getBoundingClientRect().bottom,\r\n spacer;\r\n if (itemTop > sticky && 0 <= targetBottom) {\r\n if (!isSticky) {\r\n if (isIE) {\r\n // bug fix for position fixed on IE\r\n spacer = createElement(\"div\", {\r\n class: prefix + \"nav-spacer\",\r\n });\r\n spacer.style.height = element.offsetHeight + \"px\";\r\n setElementWidth(element);\r\n element.parentElement.insertBefore(spacer, element);\r\n }\r\n element.style.zIndex = 1030;\r\n element.classList.add(prefix + \"active\");\r\n isSticky = true;\r\n }\r\n } else {\r\n if (isSticky) {\r\n if (isIE) {\r\n spacer = element.parentElement.querySelector(\".\" + prefix + \"nav-spacer\");\r\n if (spacer) {\r\n element.parentElement.removeChild(spacer);\r\n }\r\n removeElementWidth();\r\n }\r\n element.style.zIndex = \"\";\r\n element.classList.remove(prefix + \"active\");\r\n isSticky = false;\r\n }\r\n }\r\n },\r\n dismissHandler = function (e) {\r\n if (modalElement.classList.contains(prefix + \"show\")) {\r\n hideModal();\r\n e.preventDefault();\r\n setFocus(activeTab);\r\n }\r\n },\r\n handleModalKeydown = function (e) {\r\n var KEY_TAB = 9;\r\n var KEY_ESC = 27;\r\n\r\n switch (e.keyCode) {\r\n case KEY_TAB:\r\n if (focusableEls.length === 1) {\r\n e.preventDefault();\r\n break;\r\n }\r\n if (e.shiftKey) {\r\n handleBackwardTab(e);\r\n } else {\r\n handleForwardTab(e);\r\n }\r\n break;\r\n case KEY_ESC:\r\n hideModal();\r\n setFocus(activeTab);\r\n break;\r\n default:\r\n break;\r\n }\r\n },\r\n showModal = function (item) {\r\n createModal(item);\r\n modalElement.style.display = \"block\";\r\n modalElement.setAttribute(\"aria-hidden\", false);\r\n triggerShow();\r\n modalElement.classList.add(prefix + \"show\");\r\n\r\n if (isSafari && isIOS) {\r\n modalElement.classList.add(prefix + \"is-safari\");\r\n }\r\n\r\n DOC.body.classList.add(prefix + \"modal-open\");\r\n\r\n backButton = modalElement && modalElement.querySelector(\"[data-dismiss='\" + prefix + \"modal']\");\r\n backButton.addEventListener(\"click\", dismissHandler, false);\r\n setFocusableElements();\r\n setTimeout(function () {\r\n setFocus(backButton);\r\n }, 50);\r\n modalElement.addEventListener(\"keydown\", handleModalKeydown);\r\n },\r\n hideModal = function () {\r\n modalElement.classList.add(prefix + \"slide-right\");\r\n modalElement.classList.remove(prefix + \"show\");\r\n modalElement.setAttribute(\"aria-hidden\", true);\r\n if (isSafari && isIOS && modalElement.classList.contains(prefix + \"is-safari\")) {\r\n modalElement.classList.remove(prefix + \"is-safari\");\r\n }\r\n setTimeout(function () {\r\n triggerHide();\r\n\r\n DOC.body.classList.remove(prefix + \"modal-open\");\r\n if (backButton) {\r\n backButton.removeEventListener(\"click\", dismissHandler, false);\r\n }\r\n }, 200);\r\n },\r\n createModal = function (tab) {\r\n var controls = tab.getAttribute(\"aria-controls\");\r\n var isIconElement = tab === tab.parentElement.querySelector(\".dds__icons.dds__chevron-right.dds__tab-icon\");\r\n\r\n if (!controls && isIconElement) {\r\n controls = tab.parentElement.getAttribute(\"aria-controls\");\r\n }\r\n\r\n var tabContent = document.getElementById(controls).innerHTML;\r\n\r\n var modalBody = modalElement.querySelector(\".\" + prefix + \"modal-body\");\r\n modalBody.innerHTML = tabContent;\r\n },\r\n // triggers\r\n triggerShow = function () {\r\n setFocus(modalElement);\r\n },\r\n triggerHide = function () {\r\n modalElement.style.display = \"\";\r\n },\r\n setFocusableElements = function () {\r\n focusableEls = getFocusableElements(modalElement);\r\n modalElement.firstFocusableEl = focusableEls[0];\r\n modalElement.lastFocusableEl = focusableEls[focusableEls.length - 1];\r\n },\r\n handleBackwardTab = function (e) {\r\n if (document.activeElement === modalElement.firstFocusableEl) {\r\n e.preventDefault();\r\n setFocus(modalElement.lastFocusableEl);\r\n }\r\n },\r\n handleForwardTab = function (e) {\r\n if (document.activeElement === modalElement.lastFocusableEl) {\r\n e.preventDefault();\r\n setFocus(modalElement.firstFocusableEl);\r\n }\r\n },\r\n setElementWidth = function (el) {\r\n element.style.width = el.offsetWidth + \"px\";\r\n },\r\n removeElementWidth = function () {\r\n element.style.width = \"\";\r\n },\r\n toggleElementWidth = debounce(function () {\r\n if (isSticky) {\r\n setElementWidth(element.parentElement);\r\n } else {\r\n removeElementWidth();\r\n }\r\n }, 10),\r\n // takes a number to slighly adjust scroll offset if needed\r\n determineSection = function (scrollOffset) {\r\n scrollOffset = scrollOffset || 0;\r\n for (var i = 0; i < targetItems.length; i++) {\r\n if (targetItems[i].getBoundingClientRect().top + scrollOffset > 0) {\r\n return i;\r\n }\r\n }\r\n return targetItems.length >= 1 ? targetItems.length : 1;\r\n },\r\n handleEnterEvent = function (e) {\r\n var target = e.target;\r\n tabbing = true;\r\n if (e.keyCode == 9) {\r\n if (!modalSize.matches) {\r\n var currentSection = determineSection(-5) - 1;\r\n currentSection = currentSection < 0 ? 0 : currentSection;\r\n if (isIE) {\r\n targetItems[target.idx].scrollIntoView(true);\r\n } else {\r\n targetItems[target.idx].scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n toggleTab(tabs[currentSection], tabs[target.idx]);\r\n }\r\n }\r\n tabbing = false;\r\n },\r\n handleKeydownEvent = function (e) {\r\n var key = e.keyCode,\r\n idx = e.target.idx;\r\n\r\n switch (key) {\r\n case 9:\r\n if (!e.shiftKey) {\r\n if (modalSize.matches) {\r\n e.preventDefault();\r\n setFocus(exitFocus);\r\n } else {\r\n tabbing = true;\r\n var focusEl;\r\n each(targetItems, function (target, iter) {\r\n if (iter >= idx && target.focusableEls.length > 0 && !focusEl) {\r\n focusEl = target.focusableEls;\r\n }\r\n });\r\n if (focusEl) {\r\n e.preventDefault();\r\n setFocus(focusEl[0]);\r\n } else if (exitFocus) {\r\n e.preventDefault();\r\n setFocus(exitFocus);\r\n }\r\n }\r\n }\r\n break;\r\n case 13:\r\n case 32: // enter and spacebar keys\r\n e.preventDefault();\r\n tabbing = false;\r\n setFocus(e.target);\r\n e.target.click();\r\n break;\r\n case 35:\r\n e.preventDefault();\r\n setFocus(items[tabs.length - 1]);\r\n items[tabs.length - 1].click();\r\n break;\r\n case 36:\r\n e.preventDefault();\r\n setFocus(items[0]);\r\n items[0].click();\r\n break;\r\n case 39:\r\n e.preventDefault();\r\n if (idx === items.length - 1) {\r\n setFocus(items[0]);\r\n } else {\r\n setFocus(items[idx + 1]);\r\n }\r\n break;\r\n case 37:\r\n e.preventDefault();\r\n if (idx === 0) {\r\n setFocus(items[items.length - 1]);\r\n } else {\r\n setFocus(items[idx - 1]);\r\n }\r\n break;\r\n }\r\n },\r\n updateItems = function () {\r\n var section = determineSection(-5) - 1;\r\n section = section < 0 ? 0 : section;\r\n for (var index = 0; index < items[\"length\"]; index++) {\r\n var item = items[index];\r\n if (isSticky) {\r\n if (index == section) {\r\n activateTab(item);\r\n } else {\r\n deactivateTab(item);\r\n }\r\n } else {\r\n if (index == 0) {\r\n activateTab(item);\r\n } else {\r\n deactivateTab(item);\r\n }\r\n }\r\n }\r\n return item;\r\n },\r\n toggleTab = function (oldItem, newItem) {\r\n deactivateTab(oldItem);\r\n activateTab(newItem);\r\n },\r\n activateTab = function (item) {\r\n item.setAttribute(\"tabindex\", \"0\");\r\n item.classList.add(prefix + \"active\");\r\n item.setAttribute(\"aria-selected\", \"true\");\r\n },\r\n deactivateTab = function (item) {\r\n item.setAttribute(\"tabindex\", \"-1\");\r\n item.classList.remove(prefix + \"active\");\r\n item.setAttribute(\"aria-selected\", \"false\");\r\n },\r\n activateItems = function () {\r\n element.setAttribute(\"style\", \"display: none !important;\");\r\n each(targetItems, function (item) {\r\n item.setAttribute(\"style\", \"display: block;\");\r\n });\r\n };\r\n\r\n // init - prevent adding event handlers twice\r\n if (!(stringNav in element)) {\r\n modalElement = element.dataset[\"target\"] && DOC.getElementById(element.dataset[\"target\"].substr(1));\r\n\r\n targetNav = element.nextElementSibling;\r\n\r\n tabs = element.querySelectorAll(\"li button\");\r\n\r\n sticky = element.getBoundingClientRect().top;\r\n items = [];\r\n targetItems = [];\r\n\r\n if (isIE) {\r\n window.addEventListener(\"resize\", toggleElementWidth, false);\r\n }\r\n\r\n // populate items and targets\r\n for (var i = 0; i < tabs.length; i++) {\r\n tabs[i].idx = i;\r\n items.push(tabs[i]);\r\n items[i].addEventListener(\"click\", handleClickEvent, false);\r\n items[i].addEventListener(\"keydown\", handleKeydownEvent, false);\r\n var panel = document.getElementById(tabs[i].dataset[\"target\"].slice(1));\r\n panel.scrollTop += element.offsetHeight;\r\n panel.focusableEls = getFocusableElements(panel);\r\n each(panel.focusableEls, function (field) {\r\n field.addEventListener(\"keyup\", handleEnterEvent, false);\r\n field.idx = i;\r\n });\r\n targetItems.push(panel);\r\n }\r\n if (targetItems[targetItems.length - 1].focusableEls.length == 0) {\r\n // last panel and no focusable items\r\n DOC.addEventListener(\"DOMContentLoaded\", function () {\r\n // make sure all HTML is available prior to checking\r\n exitFocus = getNextFocusableElement(panel);\r\n });\r\n }\r\n\r\n if (modalSize.matches) {\r\n window.removeEventListener(\"scroll\", handleScrollEvent, false);\r\n if (!modalElement) {\r\n activateItems();\r\n }\r\n } else {\r\n window.addEventListener(\"scroll\", handleScrollEvent, false);\r\n }\r\n modalSize.addListener(function () {\r\n if (!modalSize.matches) {\r\n element.removeAttribute(\"style\");\r\n window.addEventListener(\"scroll\", handleScrollEvent, false);\r\n if (modalElement) {\r\n hideModal();\r\n }\r\n } else {\r\n element.classList.remove(prefix + \"active\");\r\n var spacer = element.parentElement.querySelector(\".\" + prefix + \"nav-spacer\");\r\n if (spacer) {\r\n element.parentElement.removeChild(spacer);\r\n }\r\n window.removeEventListener(\"scroll\", handleScrollEvent, false);\r\n if (!modalElement) {\r\n activateItems();\r\n }\r\n }\r\n });\r\n }\r\n\r\n element[stringNav] = self;\r\n}\r\n\r\nexport function NavSkip(element) {\r\n // initialization element\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n var self = this,\r\n stringNavSkip = \"NavSkip\",\r\n hiddenZindex = \"-1000\",\r\n visibleZindex = \"1080\",\r\n tabindex,\r\n borderStyle,\r\n dataInset,\r\n // handlers\r\n focusInHandler = function (e) {\r\n if (element === e.target || element.contains(e.target)) {\r\n element.style.zIndex = visibleZindex;\r\n element.style.opacity = \"1\";\r\n each(element.querySelectorAll(\"a.\" + prefix + \"btn\"), function (button) {\r\n button.addEventListener(\"click\", clickHandler, false);\r\n });\r\n }\r\n element.addEventListener(\"focusout\", focusOutHandler);\r\n },\r\n focusOutHandler = function (e) {\r\n var target = e.relatedTarget ? e.relatedTarget : DOC.activeElement;\r\n if (!element.contains(target) && !(element === target)) {\r\n toggleZindex();\r\n }\r\n },\r\n toggleZindex = function () {\r\n element.style.zIndex = hiddenZindex;\r\n element.style.opacity = \"0\";\r\n each(element.querySelectorAll(\"a.\" + prefix + \"btn\"), function (button) {\r\n button.removeEventListener(\"click\", clickHandler, false);\r\n });\r\n element.removeEventListener(\"focusout\", focusOutHandler);\r\n },\r\n clickHandler = function (e) {\r\n // element.style.zIndex = hiddenZindex;\r\n toggleZindex();\r\n var focusElement = document.getElementById(e.target.getAttribute(\"href\").substr(1));\r\n tabindex = focusElement.getAttribute(\"tabIndex\");\r\n if (tabindex !== 0) {\r\n focusElement.setAttribute(\"tabIndex\", \"0\");\r\n }\r\n focusElement.addEventListener(\"focusout\", blurHandler, false);\r\n setTimeout(function () {\r\n focusElement.focus();\r\n }, 100); //firefox needs a little timeout to register tabindex\r\n if (e.target.getAttribute(\"data-inset\") === \"true\") {\r\n //only add special border if pass in this attr\r\n dataInset = true;\r\n borderStyle = focusElement.style.border;\r\n setTimeout(function () {\r\n focusElement.style.border = \"2px inset #000000\";\r\n }, 10);\r\n } else {\r\n dataInset = false;\r\n }\r\n },\r\n blurHandler = function (e) {\r\n if (dataInset) {\r\n e.target.style.border = borderStyle;\r\n }\r\n if (tabindex !== 0) {\r\n tabindex == null ? e.target.removeAttribute(\"tabIndex\") : e.target.setAttribute(\"tabIndex\", tabindex);\r\n }\r\n e.target.removeEventListener(\"focusout\", blurHandler, false); //once one blur event occurs, we want to remove the event listener\r\n };\r\n\r\n // init\r\n if (!(stringNavSkip in element)) {\r\n // prevent adding event handlers twice\r\n element.addEventListener(\"focusin\", focusInHandler);\r\n // window.addEventListener(\"keyup\", keydownZindexHandler);\r\n // var focusableEls = document.querySelectorAll(\"a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex='0']\");\r\n // focusableEls[0].addEventListener(\"keyup\", keydownZindexHandler);\r\n // if using Mac, keyboard accessbility will only work if you set up this setting: https://stackoverflow.com/questions/11704828/how-to-allow-keyboard-focus-of-links-in-firefox\r\n // On Mac: In System Preferences → Keyboard, in the Shortcuts pane, check the “all controls” radio at the bottom.\r\n // Safari on Mac: additionally, go to safari preferences-> Advanced -> Accessibility \"Press Tab to highlight each item on a webpage\"\r\n // Firefox on Mac: additionally, type \"about:config\" in the URL bar. There is no accessibility.tabfocus preference on the mac, so you'll have to make one. Right click in the window, create a new \"integer\" pref, and set it to 7.\r\n }\r\n\r\n element[stringNavSkip] = self;\r\n}\r\n\r\nexport function NavAnchoredVertical(element, options) {\r\n // initialization element, the element we spy on\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n var opt = {};\r\n\r\n if (options && Object.keys(options).length) {\r\n opt.showModal = typeof options.showModal === \"boolean\" && options.showModal;\r\n }\r\n\r\n var self = this,\r\n activeCSSClassName = prefix + \"active\",\r\n activeTab = null,\r\n backButton,\r\n exitFocus,\r\n focusableEls,\r\n modalElement,\r\n modalSize = window.matchMedia(\"(max-width: 767.98px)\"),\r\n isSticky = false,\r\n items,\r\n stringNav = \"Nav\",\r\n sticky,\r\n tabs,\r\n targetItems,\r\n tabbing = false,\r\n targetNav,\r\n // Event Handlers\r\n handleClickEvent = function (e) {\r\n var scrollViewType = !isIE ? { behavior: \"smooth\" } : true;\r\n var shouldShowModal =\r\n opt.showModal && modalSize.matches && modalElement && !modalElement.classList.contains(prefix + \"show\");\r\n\r\n var isClickOnIconElement =\r\n e.target === e.target.parentElement.querySelector(\".dds__icons.dds__chevron-right.dds__tab-icon\");\r\n\r\n activeTab = isClickOnIconElement ? e.target.parentElement : e.target;\r\n tabbing = false;\r\n\r\n if (shouldShowModal) {\r\n showModal(activeTab);\r\n for (var index = 0; index < items[\"length\"]; index++) {\r\n var item = items[index];\r\n if (index == activeTab.idx) {\r\n activateTab(item);\r\n } else {\r\n deactivateTab(item);\r\n }\r\n }\r\n return e.preventDefault();\r\n }\r\n\r\n window.addEventListener(\"scroll\", handleScrollEvent, false);\r\n\r\n if (!isSticky) {\r\n element.scrollIntoView(scrollViewType);\r\n }\r\n\r\n targetItems[activeTab.idx].scrollIntoView(scrollViewType);\r\n },\r\n handleScrollEvent = function () {\r\n var lastKnownScrollPosition = window.pageYOffset;\r\n stickNav(lastKnownScrollPosition);\r\n if (!tabbing) {\r\n window.requestAnimationFrame(updateItems);\r\n }\r\n },\r\n stickNav = function (lastKnownScrollPosition) {\r\n // var lastTargetContent = targetItems[targetItems.length - 1];\r\n\r\n var target = targetNav.getBoundingClientRect();\r\n var navPositionCoords = element.parentElement.getBoundingClientRect();\r\n\r\n var navOnTopScreen = navPositionCoords.top <= 0;\r\n var elemClassList = element.classList;\r\n\r\n if (lastKnownScrollPosition > sticky && 0 <= target.bottom) {\r\n elemClassList.add(activeCSSClassName);\r\n element.style.zIndex = 1030;\r\n isSticky = true;\r\n } else if (isSticky) {\r\n elemClassList.remove(activeCSSClassName);\r\n element.style.zIndex = \"\";\r\n isSticky = false;\r\n }\r\n\r\n if (isIE) {\r\n var navItem = element.querySelectorAll(\".dds__nav-anchored-vertical-item\");\r\n var lastNavItem = navItem[navItem.length - 1];\r\n\r\n var positionOflastNavItemBottom = lastNavItem.getBoundingClientRect().bottom;\r\n var negativeTop = target.bottom - lastNavItem.parentElement.getBoundingClientRect().height;\r\n var isNavAfterLastContentBottom = target.bottom >= positionOflastNavItemBottom;\r\n\r\n if (navOnTopScreen) {\r\n element.style.top = isNavAfterLastContentBottom ? \"0px\" : negativeTop + \"px\";\r\n element.style.position = \"fixed\";\r\n element.style.height = target.bottom + \"px\";\r\n\r\n targetNav.style.marginLeft = \"270px\";\r\n return;\r\n }\r\n\r\n element.style.height = \"auto\";\r\n element.style.position = \"relative\";\r\n targetNav.style.marginLeft = \"0\";\r\n }\r\n },\r\n dismissHandler = function (e) {\r\n if (modalElement.classList.contains(prefix + \"show\")) {\r\n hideModal();\r\n e.preventDefault();\r\n setFocus(activeTab);\r\n }\r\n },\r\n handleModalKeydown = function (e) {\r\n var KEY_TAB = 9;\r\n var KEY_ESC = 27;\r\n\r\n switch (e.keyCode) {\r\n case KEY_TAB:\r\n if (focusableEls.length === 1) {\r\n e.preventDefault();\r\n break;\r\n }\r\n if (e.shiftKey) {\r\n handleBackwardTab(e);\r\n } else {\r\n handleForwardTab(e);\r\n }\r\n break;\r\n case KEY_ESC:\r\n hideModal();\r\n setFocus(activeTab);\r\n break;\r\n default:\r\n break;\r\n }\r\n },\r\n showModal = function (item) {\r\n createModal(item);\r\n modalElement.style.display = \"block\";\r\n modalElement.setAttribute(\"aria-hidden\", false);\r\n triggerShow();\r\n modalElement.classList.add(prefix + \"show\");\r\n\r\n if (isSafari && isIOS) {\r\n modalElement.classList.add(prefix + \"is-safari\");\r\n }\r\n\r\n DOC.body.classList.add(prefix + \"modal-open\");\r\n\r\n backButton = modalElement && modalElement.querySelector(\"[data-dismiss='\" + prefix + \"modal']\");\r\n backButton.addEventListener(\"click\", dismissHandler, false);\r\n setFocusableElements();\r\n setTimeout(function () {\r\n setFocus(backButton);\r\n }, 50);\r\n modalElement.addEventListener(\"keydown\", handleModalKeydown);\r\n },\r\n hideModal = function () {\r\n modalElement.classList.add(prefix + \"slide-right\");\r\n modalElement.classList.remove(prefix + \"show\");\r\n modalElement.setAttribute(\"aria-hidden\", true);\r\n if (isSafari && isIOS && modalElement.classList.contains(prefix + \"is-safari\")) {\r\n modalElement.classList.remove(prefix + \"is-safari\");\r\n }\r\n setTimeout(function () {\r\n triggerHide();\r\n\r\n DOC.body.classList.remove(prefix + \"modal-open\");\r\n if (backButton) {\r\n backButton.removeEventListener(\"click\", dismissHandler, false);\r\n }\r\n }, 200);\r\n },\r\n createModal = function (tab) {\r\n var controls = tab.getAttribute(\"aria-controls\");\r\n var isIconElement = tab === tab.parentElement.querySelector(\".dds__icons.dds__chevron-right.dds__tab-icon\");\r\n\r\n if (!controls && isIconElement) {\r\n controls = tab.parentElement.getAttribute(\"aria-controls\");\r\n }\r\n\r\n var tabContent = document.getElementById(controls).innerHTML;\r\n\r\n var modalBody = modalElement.querySelector(\".\" + prefix + \"modal-body\");\r\n modalBody.innerHTML = tabContent;\r\n },\r\n // triggers\r\n triggerShow = function () {\r\n setFocus(modalElement);\r\n },\r\n triggerHide = function () {\r\n modalElement.style.display = \"\";\r\n },\r\n setFocusableElements = function () {\r\n focusableEls = getFocusableElements(modalElement);\r\n modalElement.firstFocusableEl = focusableEls[0];\r\n modalElement.lastFocusableEl = focusableEls[focusableEls.length - 1];\r\n },\r\n handleBackwardTab = function (e) {\r\n if (document.activeElement === modalElement.firstFocusableEl) {\r\n e.preventDefault();\r\n setFocus(modalElement.lastFocusableEl);\r\n }\r\n },\r\n handleForwardTab = function (e) {\r\n if (document.activeElement === modalElement.lastFocusableEl) {\r\n e.preventDefault();\r\n setFocus(modalElement.firstFocusableEl);\r\n }\r\n },\r\n setElementWidth = function (el) {\r\n element.style.width = el.offsetWidth + \"px\";\r\n },\r\n removeElementWidth = function () {\r\n element.style.width = \"\";\r\n },\r\n toggleElementWidth = debounce(function () {\r\n if (isSticky) {\r\n setElementWidth(element.parentElement);\r\n } else {\r\n removeElementWidth();\r\n }\r\n }, 10),\r\n toogleContent = debounce(function () {\r\n each(targetItems, function (panel) {\r\n if (opt.showModal && !modalSize.matches) {\r\n panel.classList.remove(\"modal-off\");\r\n panel.classList.remove(\"modal-on\");\r\n } else {\r\n panel.classList.add(\"modal-off\");\r\n panel.classList.add(\"modal-on\");\r\n }\r\n });\r\n }, 10),\r\n // takes a number to slighly adjust scroll offset if needed\r\n determineSection = function (scrollOffset) {\r\n scrollOffset = scrollOffset || 0;\r\n for (var i = 0; i < targetItems.length; i++) {\r\n if (targetItems[i].getBoundingClientRect().top + scrollOffset > 0) {\r\n return i;\r\n }\r\n }\r\n\r\n return targetItems.length >= 1 ? targetItems.length : 1;\r\n },\r\n handleEnterEvent = function (e) {\r\n var target = e.target;\r\n tabbing = true;\r\n if (e.keyCode == 9) {\r\n if (!modalSize.matches) {\r\n var currentSection = determineSection(-5) - 1;\r\n currentSection = currentSection < 0 ? 0 : currentSection;\r\n if (isIE) {\r\n targetItems[target.idx].scrollIntoView(true);\r\n } else {\r\n targetItems[target.idx].scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n toggleTab(tabs[currentSection], tabs[target.idx]);\r\n }\r\n }\r\n tabbing = false;\r\n },\r\n handleKeydownEvent = function (e) {\r\n var key = e.keyCode,\r\n idx = e.target.idx;\r\n\r\n switch (key) {\r\n case 9:\r\n if (!e.shiftKey) {\r\n if (modalSize.matches) {\r\n e.preventDefault();\r\n setFocus(exitFocus);\r\n } else {\r\n tabbing = true;\r\n var focusEl;\r\n each(targetItems, function (target, iter) {\r\n if (iter >= idx && target.focusableEls.length > 0 && !focusEl) {\r\n focusEl = target.focusableEls;\r\n }\r\n });\r\n if (focusEl) {\r\n e.preventDefault();\r\n setFocus(focusEl[0]);\r\n } else if (exitFocus) {\r\n e.preventDefault();\r\n setFocus(exitFocus);\r\n }\r\n }\r\n }\r\n break;\r\n case 13:\r\n case 32: // enter and spacebar keys\r\n e.preventDefault();\r\n tabbing = false;\r\n setFocus(e.target);\r\n e.target.click();\r\n break;\r\n case 35:\r\n e.preventDefault();\r\n setFocus(items[tabs.length - 1]);\r\n items[tabs.length - 1].click();\r\n break;\r\n case 36:\r\n e.preventDefault();\r\n setFocus(items[0]);\r\n items[0].click();\r\n break;\r\n case 39:\r\n e.preventDefault();\r\n if (idx === items.length - 1) {\r\n setFocus(items[0]);\r\n } else {\r\n setFocus(items[idx + 1]);\r\n }\r\n break;\r\n case 37:\r\n e.preventDefault();\r\n if (idx === 0) {\r\n setFocus(items[items.length - 1]);\r\n } else {\r\n setFocus(items[idx - 1]);\r\n }\r\n break;\r\n }\r\n },\r\n updateItems = function () {\r\n var section = determineSection(-5) - 1;\r\n section = section < 0 ? 0 : section;\r\n for (var index = 0; index < items[\"length\"]; index++) {\r\n var item = items[index];\r\n if (isSticky) {\r\n if (index == section) {\r\n activateTab(item);\r\n } else {\r\n deactivateTab(item);\r\n }\r\n } else {\r\n if (index == 0) {\r\n activateTab(item);\r\n } else {\r\n deactivateTab(item);\r\n }\r\n }\r\n }\r\n return item;\r\n },\r\n toggleTab = function (oldItem, newItem) {\r\n deactivateTab(oldItem);\r\n activateTab(newItem);\r\n },\r\n activateTab = function (item) {\r\n item.setAttribute(\"tabindex\", \"0\");\r\n item.classList.add(prefix + \"active\");\r\n item.setAttribute(\"aria-selected\", \"true\");\r\n },\r\n deactivateTab = function (item) {\r\n item.setAttribute(\"tabindex\", \"-1\");\r\n item.classList.remove(prefix + \"active\");\r\n item.setAttribute(\"aria-selected\", \"false\");\r\n },\r\n activateItems = function () {\r\n element.setAttribute(\"style\", \"display: none !important;\");\r\n each(targetItems, function (item) {\r\n item.setAttribute(\"style\", \"display: none;\");\r\n });\r\n };\r\n\r\n // init - prevent adding event handlers twice\r\n if (!(stringNav in element)) {\r\n modalElement = element.dataset[\"target\"] && DOC.getElementById(element.dataset[\"target\"].substr(1));\r\n\r\n targetNav = element.nextElementSibling;\r\n\r\n tabs = element.querySelectorAll(\"li button\");\r\n sticky = element.getBoundingClientRect().top;\r\n items = [];\r\n targetItems = [];\r\n\r\n // populate items and targets\r\n for (var i = 0; i < tabs.length; i++) {\r\n tabs[i].idx = i;\r\n items.push(tabs[i]);\r\n items[i].addEventListener(\"click\", handleClickEvent, false);\r\n items[i].addEventListener(\"keydown\", handleKeydownEvent, false);\r\n\r\n var panel = document.getElementById(tabs[i].dataset[\"target\"].slice(1));\r\n panel.scrollTop += element.offsetHeight;\r\n panel.focusableEls = getFocusableElements(panel);\r\n\r\n each(panel.focusableEls, function (field) {\r\n field.addEventListener(\"keyup\", handleEnterEvent, false);\r\n field.idx = i;\r\n });\r\n\r\n targetItems.push(panel);\r\n\r\n if (opt.showModal && modalSize.matches) {\r\n panel.classList.add(\"modal-on\");\r\n panel.classList.remove(\"modal-off\");\r\n } else {\r\n panel.classList.add(\"modal-off\");\r\n panel.classList.remove(\"modal-off\");\r\n }\r\n }\r\n\r\n if (targetItems[targetItems.length - 1].focusableEls.length == 0) {\r\n // last panel and no focusable items\r\n DOC.addEventListener(\"DOMContentLoaded\", function () {\r\n // make sure all HTML is available prior to checking\r\n exitFocus = getNextFocusableElement(panel);\r\n });\r\n }\r\n\r\n if (modalSize.matches && !opt.showModal) {\r\n window.removeEventListener(\"scroll\", handleScrollEvent, false);\r\n\r\n if (!modalElement) {\r\n activateItems();\r\n }\r\n\r\n element.setAttribute(\"style\", \"display: none !important;\");\r\n } else {\r\n window.addEventListener(\"scroll\", handleScrollEvent, false);\r\n }\r\n\r\n window.addEventListener(\r\n \"resize\",\r\n function () {\r\n if (modalSize.matches && !opt.showModal) {\r\n return element.setAttribute(\"style\", \"display: none !important;\");\r\n }\r\n\r\n opt.showModal && toogleContent();\r\n\r\n if (isIE) {\r\n opt.showModal && stickNav(window.pageYOffset);\r\n toggleElementWidth();\r\n }\r\n },\r\n false\r\n );\r\n\r\n modalSize.addListener(function () {\r\n if (!modalSize.matches) {\r\n element.removeAttribute(\"style\");\r\n window.addEventListener(\"scroll\", handleScrollEvent, false);\r\n if (modalElement) {\r\n hideModal();\r\n }\r\n } else {\r\n element.classList.remove(prefix + \"active\");\r\n var spacer = element.parentElement.querySelector(\".\" + prefix + \"nav-spacer\");\r\n if (spacer) {\r\n element.parentElement.removeChild(spacer);\r\n }\r\n window.removeEventListener(\"scroll\", handleScrollEvent, false);\r\n if (!modalElement) {\r\n activateItems();\r\n }\r\n }\r\n });\r\n }\r\n\r\n element[stringNav] = self;\r\n}\r\n\r\nexport function NavLeft(element, options) {\r\n // initialization element, the element we spy on\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n // set options\r\n options = options || {};\r\n options = jsonOptionsInit(element, options);\r\n options.menu = element.dataset.menu ? element.dataset.menu : options.menu ? options.menu : \"navLeft-list\";\r\n options.main = element.dataset.main ? element.dataset.main : options.main ? options.main : null;\r\n options.suffix = element.dataset.suffix ? element.dataset.suffix : options.suffix ? options.suffix : null;\r\n options.arrows = element.dataset.arrows ? element.dataset.arrows : options.arrows ? options.arrows : \"right\"; // can be \"left\", \"right\", or \"center\"\r\n options.selected = element.dataset.selected ? element.dataset.selected : options.selected ? options.selected : null;\r\n options.altmenu = element.dataset.altmenu ? element.dataset.altmenu : options.altmenu ? options.altmenu : null;\r\n options.replace = element.dataset.replace\r\n ? element.dataset.replace == \"true\"\r\n : options.replace\r\n ? options.replace == \"true\"\r\n : false;\r\n\r\n // warn if required options are not provided\r\n if (!options.main) {\r\n throw new Error(\"Left Nav 'main' option must be set.\");\r\n }\r\n\r\n var self = this,\r\n stringNavLeft = \"NavLeft\",\r\n masthead,\r\n desktopLeftNav,\r\n siteBody,\r\n offCanvas,\r\n suffix,\r\n footer,\r\n buttonToggle,\r\n footerHeight,\r\n mastheadHeight,\r\n visibleFooter,\r\n parentAccordions = [],\r\n focusableElms,\r\n KEY_TAB = 9,\r\n KEY_ESC = 27,\r\n defaultMain = options.menu === \"navLeft-list\",\r\n adjustHeightForFooter = function () {\r\n if (!footer) {\r\n return;\r\n }\r\n visibleFooter = document.documentElement.clientHeight - footer.getBoundingClientRect().top;\r\n visibleFooter = visibleFooter < 0 ? 0 : visibleFooter;\r\n var calcHeight = document.documentElement.clientHeight - visibleFooter;\r\n if (visibleFooter > 0) {\r\n buttonToggle.style.height = element.style.height = calcHeight + \"px\";\r\n }\r\n if (suffix) {\r\n if (visibleFooter > 0) {\r\n suffix.style.bottom = visibleFooter + \"px\";\r\n }\r\n desktopLeftNav.style.maxHeight =\r\n document.documentElement.clientHeight - suffix.getBoundingClientRect().height - footerHeight + \"px\";\r\n }\r\n },\r\n adjustHeightForMasthead = function () {\r\n if (!masthead) {\r\n return;\r\n }\r\n var calcHeight;\r\n mastheadHeight = masthead.getBoundingClientRect().height;\r\n if (window.pageYOffset > mastheadHeight) {\r\n // if masthead not is visible\r\n element.style.top = \"0px\";\r\n if (!isFooterVisible()) {\r\n buttonToggle.style.height = element.style.height = document.documentElement.clientHeight + \"px\";\r\n } else {\r\n buttonToggle.style.height = element.style.height =\r\n document.documentElement.clientHeight - visibleFooter + \"px\";\r\n }\r\n } else {\r\n element.style.top = mastheadHeight - window.pageYOffset + \"px\";\r\n if (isFooterVisible()) {\r\n calcHeight =\r\n parseInt(window.getComputedStyle(element).height, 10) - (mastheadHeight - window.pageYOffset);\r\n buttonToggle.style.height = element.style.height = calcHeight + \"px\";\r\n } else {\r\n calcHeight = document.documentElement.clientHeight - mastheadHeight + window.pageYOffset;\r\n buttonToggle.style.height = element.style.height = calcHeight + \"px\";\r\n }\r\n }\r\n },\r\n alignChevrons = function (accordionButtons) {\r\n if (accordionButtons) {\r\n if (options.arrows === \"right\") {\r\n each(accordionButtons, function (accordionButton) {\r\n classAdd(accordionButton, prefix + \"navLeft-button-optionRight\");\r\n });\r\n } else if (options.arrows === \"center\") {\r\n each(accordionButtons, function (accordionButton) {\r\n classAdd(accordionButton, prefix + \"navLeft-button-optionCenter\");\r\n accordionButton.children[1].after(accordionButton.children[0]);\r\n });\r\n }\r\n }\r\n },\r\n cloneLeftNavToOffCanvas = function () {\r\n if (defaultMain && !options.altmenu) {\r\n return;\r\n }\r\n var offCanvasCloneSuffix = \"-offCanvas\";\r\n if (options.altmenu) {\r\n each(DOC.getElementById(options.altmenu).children, function (li) {\r\n offCanvas.leftMenu.querySelector(\"ul\").appendChild(li.cloneNode(true));\r\n });\r\n DOC.getElementById(options.altmenu).parentElement.removeChild(DOC.getElementById(options.altmenu));\r\n } else {\r\n each(element.querySelectorAll(\".\" + prefix + \"navLeft-list>li\"), function (li) {\r\n offCanvas.leftMenu.querySelector(\"ul\").appendChild(li.cloneNode(true));\r\n });\r\n }\r\n each(offCanvas.leftMenu.querySelectorAll(\".\" + prefix + \"accordion\"), function (lnAccordion) {\r\n lnAccordion.id = lnAccordion.id + offCanvasCloneSuffix;\r\n lnAccordion.querySelector(\".\" + prefix + \"accordion-btn\").setAttribute(\r\n \"data-parent\",\r\n lnAccordion\r\n .querySelector(\".\" + prefix + \"accordion-btn\")\r\n .getAttribute(\"data-parent\")\r\n .substr(1) + offCanvasCloneSuffix\r\n );\r\n });\r\n each(offCanvas.leftMenu.querySelectorAll(\".\" + prefix + \"accordion-card-header\"), function (lnCardHeader) {\r\n lnCardHeader.id = lnCardHeader.id + offCanvasCloneSuffix;\r\n lnCardHeader.nextElementSibling.setAttribute(\r\n \"aria-labelledby\",\r\n lnCardHeader.nextElementSibling.getAttribute(\"aria-labelledby\") + offCanvasCloneSuffix\r\n );\r\n });\r\n each(offCanvas.leftMenu.querySelectorAll(\".\" + prefix + \"collapse\"), function (lnCollapse) {\r\n lnCollapse.id = lnCollapse.id + offCanvasCloneSuffix;\r\n if (lnCollapse.previousElementSibling.querySelector(\".\" + prefix + \"accordion-btn\")) {\r\n lnCollapse.previousElementSibling\r\n .querySelector(\".\" + prefix + \"accordion-btn\")\r\n .setAttribute(\r\n \"data-target\",\r\n lnCollapse.previousElementSibling\r\n .querySelector(\".\" + prefix + \"accordion-btn\")\r\n .getAttribute(\"data-target\") + offCanvasCloneSuffix\r\n );\r\n lnCollapse.previousElementSibling\r\n .querySelector(\".\" + prefix + \"accordion-btn\")\r\n .setAttribute(\r\n \"aria-controls\",\r\n lnCollapse.previousElementSibling\r\n .querySelector(\".\" + prefix + \"accordion-btn\")\r\n .getAttribute(\"aria-controls\") + offCanvasCloneSuffix\r\n );\r\n }\r\n });\r\n each(offCanvas.leftMenu.querySelectorAll(\"a\"), function (lnAnchor) {\r\n if (lnAnchor.id) {\r\n lnAnchor.id = lnAnchor.id + offCanvasCloneSuffix;\r\n }\r\n });\r\n\r\n // define focusable offcanvas elements\r\n focusableElms = getFocusableElements(DOC.querySelector(\".\" + prefix + \"msthd-top .\" + prefix + \"navLeft\"));\r\n\r\n // reinit offcanvas collapses\r\n each(offCanvas.leftMenu.querySelectorAll(\"[data-toggle='\" + prefix + \"collapse']\"), function (collapse) {\r\n new Collapse(collapse);\r\n });\r\n },\r\n createOffCanvasMenu = function () {\r\n if (defaultMain && !options.altmenu) {\r\n return;\r\n }\r\n // remove header menu\r\n offCanvas = {\r\n mastheadMend: masthead.querySelectorAll(\".\" + prefix + \"msthd-offcanvas-menu\")[0],\r\n parent: undefined,\r\n storedId: undefined,\r\n leftMenu: element.querySelectorAll(\".\" + prefix + \"msthd-offcanvas-menu\")[0],\r\n };\r\n if (offCanvas.mastheadMend) {\r\n offCanvas.parent = offCanvas.mastheadMend.parentElement;\r\n offCanvas.storedId = offCanvas.mastheadMend.id;\r\n offCanvas.parent.removeChild(offCanvas.mastheadMend);\r\n } else {\r\n throw new Error(\"Left Nav cannot initialize without a masthead component in the header element.\");\r\n }\r\n\r\n // reassign ID to leftNav's offCanvas\r\n offCanvas.leftMenu.id = offCanvas.storedId;\r\n if (offCanvas.parent) {\r\n offCanvas.parent.appendChild(offCanvas.leftMenu);\r\n }\r\n },\r\n expandSelection = function () {\r\n if (!options.selected) {\r\n return;\r\n }\r\n each(parentAccordions, function (stepAccord) {\r\n var aButton = stepAccord.querySelector(\".\" + prefix + \"accordion-btn\"),\r\n aChevron = stepAccord.querySelector(\".\" + prefix + \"accordion-btn i\"),\r\n aCollapse = stepAccord.querySelector(\".\" + prefix + \"collapse\");\r\n aButton.setAttribute(\"aria-expanded\", true);\r\n classAdd(aChevron, prefix + \"navLeft-icon-rotate\");\r\n one(aButton, \"click\", function (event) {\r\n each(\r\n getClosest(event.target, \".\" + prefix + \"accordion\", true).querySelectorAll(\r\n \".\" + prefix + \"accordion-btn i\"\r\n ),\r\n function (thisChevron) {\r\n classRemove(thisChevron, prefix + \"navLeft-icon-rotate\");\r\n }\r\n );\r\n });\r\n aCollapse.setAttribute(\"aria-expanded\", true);\r\n classAdd(aCollapse, prefix + \"show\");\r\n });\r\n\r\n setTimeout(function () {\r\n each(element.querySelectorAll(\".\" + prefix + \"navLeft-list\"), function (list) {\r\n var selectedLink = list.querySelector(\".\" + prefix + \"navLeft-link-selected\");\r\n if (selectedLink) {\r\n selectedLink.scrollIntoView();\r\n }\r\n });\r\n }, 500);\r\n },\r\n handleAdjustmentEvent = function () {\r\n adjustHeightForFooter();\r\n adjustHeightForMasthead();\r\n },\r\n handleBackClick = function () {\r\n var activeContainer = masthead.querySelector(\".\" + prefix + \"msthd-offcanvas-menu\");\r\n var activeButton = masthead.querySelector(\"[data-toggle='\" + prefix + \"msthd-offcanvas']\");\r\n uicoreCustomEvent(\"LeftNav\", \"CloseEvent\", element, { button: activeButton, container: activeContainer });\r\n },\r\n handleOffCanvasKeyDown = function (e) {\r\n switch (e.keyCode) {\r\n case KEY_TAB:\r\n if (focusableElms.length === 1) {\r\n e.preventDefault();\r\n break;\r\n }\r\n if (e.shiftKey) {\r\n handleBackwardTab(e);\r\n } else {\r\n handleForwardTab(e);\r\n }\r\n break;\r\n case KEY_ESC: {\r\n handleBackClick();\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n },\r\n handleBackwardTab = function (e) {\r\n if (DOC.activeElement === focusableElms[0]) {\r\n e.preventDefault();\r\n focusableElms[focusableElms.length - 1].focus();\r\n }\r\n },\r\n handleForwardTab = function (e) {\r\n if (DOC.activeElement === focusableElms[focusableElms.length - 1]) {\r\n e.preventDefault();\r\n focusableElms[0].focus();\r\n }\r\n },\r\n handleOffCanvasItemEsc = function (e) {\r\n switch (e.keyCode) {\r\n case KEY_ESC: {\r\n handleBackClick();\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n },\r\n handleOffCanvasOpenEvent = function () {\r\n each(focusableElms, function (fElement) {\r\n // top level categories\r\n fElement.addEventListener(\"keydown\", handleOffCanvasKeyDown, false);\r\n });\r\n // add eventListener to offCanvas menu choices, but not categories\r\n each(offCanvas.leftMenu.querySelectorAll(\"li a\"), function (aItem) {\r\n aItem.addEventListener(\"keydown\", handleOffCanvasItemEsc);\r\n aItem.addEventListener(\"click\", handleBackClick);\r\n });\r\n each(offCanvas.leftMenu.querySelectorAll(\"li button\"), function (aItem) {\r\n aItem.addEventListener(\"keydown\", handleOffCanvasItemEsc);\r\n });\r\n if (DOC.body.classList.contains(\"user-is-tabbing\")) {\r\n setTimeout(function () {\r\n setFocus(focusableElms[0]);\r\n }, 200);\r\n }\r\n },\r\n handleOffCanvasCloseEvent = function () {\r\n each(focusableElms, function (fElement) {\r\n fElement.removeEventListener(\"keydown\", handleOffCanvasKeyDown, false);\r\n });\r\n each(offCanvas.leftMenu.querySelectorAll(\"li a\"), function (aItem) {\r\n aItem.removeEventListener(\"keydown\", handleOffCanvasItemEsc);\r\n aItem.removeEventListener(\"click\", handleBackClick);\r\n });\r\n each(offCanvas.leftMenu.querySelectorAll(\"li button\"), function (aItem) {\r\n aItem.removeEventListener(\"keydown\", handleOffCanvasItemEsc);\r\n });\r\n if (DOC.body.classList.contains(\"user-is-tabbing\")) {\r\n setTimeout(function () {\r\n setFocus(masthead.querySelector(\"[data-toggle='\" + prefix + \"msthd-offcanvas']\"));\r\n }, 200);\r\n }\r\n ariaAnnounce(\r\n masthead.querySelector(\"[data-toggle='\" + prefix + \"msthd-offcanvas']\").getAttribute(\"aria-label\") +\r\n \" \" +\r\n masthead\r\n .querySelector(\"[data-toggle='\" + prefix + \"msthd-offcanvas']\")\r\n .getAttribute(\"aria-expanded\")\r\n );\r\n },\r\n handleToggleClick = function () {\r\n // active in this case means the site body is fully expanded, or that the leftnav has been altered from its initial state (thus, collapsed)\r\n if (element.classList[\"contains\"](prefix + \"active\")) {\r\n classRemove(element, prefix + \"active\");\r\n classRemove(siteBody, prefix + \"active\");\r\n classRemove(buttonToggle.querySelector(\"svg\"), prefix + \"rotate-180\");\r\n buttonToggle.setAttribute(\"aria-expanded\", \"true\");\r\n element.querySelector(\"#navLeft-list\").style.display = \"\";\r\n } else {\r\n classAdd(element, prefix + \"active\");\r\n classAdd(siteBody, prefix + \"active\");\r\n classAdd(buttonToggle.querySelector(\"svg\"), prefix + \"rotate-180\");\r\n buttonToggle.setAttribute(\"aria-expanded\", \"false\");\r\n element.querySelector(\"#navLeft-list\").style.display = \"none\";\r\n }\r\n setTimeout(function () {\r\n adjustHeightForFooter();\r\n adjustHeightForMasthead();\r\n }, 200);\r\n },\r\n highlightSelection = function () {\r\n if (!options.selected) {\r\n return;\r\n }\r\n var anchortags = DOC.querySelectorAll(\"a[href*='\" + options.selected + \"']\");\r\n each(anchortags, function (tag) {\r\n var ps = tag.parentElement.previousElementSibling;\r\n if (ps && ps.tagName.toLowerCase() === \"li\") {\r\n classAdd(ps, prefix + \"navLeft-link-selectedPrev\");\r\n }\r\n classAdd(tag.parentElement, prefix + \"navLeft-link-selected\");\r\n // take note of parent accordions\r\n var parentAccordion = getClosest(tag, \".\" + prefix + \"accordion\", true);\r\n do {\r\n parentAccordions.push(parentAccordion);\r\n parentAccordion = getClosest(parentAccordion.parentElement, \".\" + prefix + \"accordion\", true);\r\n } while (parentAccordion);\r\n parentAccordions = parentAccordions.reverse();\r\n });\r\n },\r\n isFooterVisible = function () {\r\n return footer ? DOC.body.offsetHeight >= footer.getBoundingClientRect().top : false;\r\n };\r\n\r\n // init\r\n if (!(stringNavLeft in element)) {\r\n // prevents adding event handlers twice\r\n var pageReadyCount = 0,\r\n pageReadyInterval = 50,\r\n maxPageReadyTry = 5000;\r\n // assign global variables\r\n desktopLeftNav = element.querySelector(\".\" + prefix + \"navLeft\");\r\n siteBody = DOC.getElementById(options.main);\r\n buttonToggle = element.querySelector(\".\" + prefix + \"navLeft-btn-toggle\");\r\n\r\n // add event handlers\r\n window.addEventListener(\"scroll\", handleAdjustmentEvent);\r\n window.addEventListener(\"resize\", handleAdjustmentEvent);\r\n if (options.menu.length > 0 || options.altmenu.length > 0) {\r\n // otherwise let masthead continue to manage offcanvas\r\n DOC.addEventListener(\"uicMastheadOffCanvasOpen\", handleOffCanvasOpenEvent, false);\r\n DOC.addEventListener(\"uicMastheadOffCanvasClose\", handleOffCanvasCloseEvent, false);\r\n }\r\n buttonToggle.addEventListener(\"click\", handleToggleClick);\r\n\r\n // adjust initial page elements\r\n if (!defaultMain) {\r\n if (DOC.getElementById(options.menu)) {\r\n DOC.getElementById(options.menu).hidden = true;\r\n } else {\r\n throw new Error(\"Element not found by ID ('\" + options.menu + \"') for left nav menu choices.\");\r\n }\r\n }\r\n if (options.altmenu) {\r\n if (DOC.getElementById(options.altmenu)) {\r\n DOC.getElementById(options.altmenu).hidden = true;\r\n } else {\r\n throw new Error(\r\n \"Element not found by ID ('\" + options.altmenu + \"') for left nav (offcanvas) menu choices.\"\r\n );\r\n }\r\n }\r\n classAdd(siteBody, prefix + \"body-ml-20\");\r\n if (options.suffix) {\r\n suffix = DOC.getElementById(options.suffix);\r\n element.querySelector(\"nav\").appendChild(suffix);\r\n classAdd(suffix, prefix + \"navLeft-suffix\");\r\n }\r\n\r\n // move user's leftNav options into our HTML structure\r\n if (!defaultMain) {\r\n each(DOC.getElementById(\"navLeft-list\").querySelectorAll(\"li\"), function (oneLi) {\r\n oneLi.parentElement.removeChild(oneLi);\r\n });\r\n var developerLinks = DOC.querySelectorAll(\"#\" + options.menu + \">ul>li\").length\r\n ? DOC.querySelectorAll(\"#\" + options.menu + \">ul>li\")\r\n : DOC.querySelectorAll(\"#\" + options.menu + \">li\");\r\n each(developerLinks, function (thisLi) {\r\n element.querySelector(\".\" + prefix + \"navLeft-list\").appendChild(thisLi);\r\n });\r\n DOC.getElementById(options.menu).parentElement.removeChild(DOC.getElementById(options.menu));\r\n }\r\n\r\n // Remove masthead horizontal menu if it exists\r\n if (options.replace) {\r\n var headerHorizontalMenu = DOC.querySelector(\".\" + prefix + \"msthd-navbar-bottom\");\r\n if (headerHorizontalMenu) {\r\n headerHorizontalMenu.parentElement.removeChild(headerHorizontalMenu);\r\n }\r\n }\r\n\r\n // align accordion chevrons\r\n alignChevrons(element.querySelectorAll(\".\" + prefix + \"accordion button\"));\r\n if (options.altmenu) {\r\n alignChevrons(document.getElementById(options.altmenu).querySelectorAll(\".\" + prefix + \"accordion button\"));\r\n }\r\n\r\n // assign global variables that have dependencies\r\n var pageReady = function () {\r\n footer = DOC.querySelector(\"footer\");\r\n masthead = DOC.querySelector(\"header\");\r\n footerHeight = footer.getBoundingClientRect().height;\r\n createOffCanvasMenu();\r\n cloneLeftNavToOffCanvas();\r\n // set initial heights of elements\r\n adjustHeightForFooter();\r\n adjustHeightForMasthead();\r\n element.style.top = mastheadHeight;\r\n if (!isIE) {\r\n // this is a bonus check for guaranteed initial display. IE doesn't Promise, so it's skip IE, or use a polyfill.\r\n Promise.all(\r\n Array.from(DOC.images)\r\n .filter(function (img) {\r\n !img.complete;\r\n })\r\n .map(function (img) {\r\n new Promise(function (resolve) {\r\n {\r\n img.onload = img.onerror = resolve;\r\n }\r\n });\r\n })\r\n ).then(function () {\r\n adjustHeightForFooter();\r\n adjustHeightForMasthead();\r\n });\r\n }\r\n highlightSelection();\r\n expandSelection();\r\n ResizeElement();\r\n };\r\n\r\n // wait for header and footer. Will be instant unless page load time is abnormally lengthy\r\n var waitForLeftNav = function () {\r\n if (pageReadyCount < maxPageReadyTry) {\r\n if (DOC.querySelector(\"footer\") && DOC.querySelector(\"header\")) {\r\n setTimeout(pageReady, pageReadyInterval);\r\n } else {\r\n setTimeout(waitForLeftNav, pageReadyInterval);\r\n }\r\n pageReadyCount += pageReadyInterval;\r\n } else {\r\n throw new Error(\"Unable to initialize Left Nav component due to page load timeout.\");\r\n }\r\n };\r\n\r\n waitForLeftNav();\r\n }\r\n\r\n element[stringNavLeft] = self;\r\n}\r\n","import {\r\n DOC,\r\n prefix,\r\n createElement,\r\n isArray,\r\n uicoreCustomEvent,\r\n isIE,\r\n each,\r\n validateNum,\r\n renderSvg,\r\n flush,\r\n} from \"./utilities.js\";\r\n\r\nexport default function Pagination(element, options) {\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n var jsonParams = element.dataset.page;\r\n if (jsonParams) {\r\n options = JSON.parse(jsonParams);\r\n }\r\n\r\n // set options\r\n options = options || {};\r\n options.items = validateNum(options.items, 1);\r\n options.filter = element.classList.contains(prefix + \"pagination-justified-filter\") ? true : false;\r\n options.pageText = typeof options.pageText === \"string\" ? options.pageText : \"Page\";\r\n options.itemsPerPageText =\r\n typeof options.itemsPerPageText === \"string\" ? options.itemsPerPageText : \"Items per page\";\r\n options.perPageSelect = options.perPageSelect ? options.perPageSelect : [12, 24, 48, 96];\r\n if (isArray(options.perPageSelect)) {\r\n if (typeof options.perPageSelect[0] === \"number\") {\r\n options.perPageSelect = options.perPageSelect.map(function (i) {\r\n i = Math.abs(parseInt(i));\r\n return i;\r\n });\r\n } else if (validateNum(options.perPageSelect[0])) {\r\n options.perPageSelect = options.perPageSelect.map(function (i) {\r\n i = Math.abs(parseInt(i));\r\n return i;\r\n });\r\n } else {\r\n throw new Error(\"Invalid perPageSelect. Should be a non-empty array of integer\");\r\n }\r\n } else {\r\n options.perPageSelect = [12, 24, 28, 96];\r\n }\r\n options.perPage =\r\n options.perPageSelect.indexOf(options.perPage) > -1 ? validateNum(options.perPage) : options.perPageSelect[0];\r\n options.hidePages = options.hidePages && typeof options.hidePages === \"boolean\" ? options.hidePages : false;\r\n options.external = options.external != null && typeof options.external === \"boolean\" ? options.external : false;\r\n options.buttonLabelLeft = options.buttonLabelLeft ? options.buttonLabelLeft : \"Previous\";\r\n options.buttonLabelRight = options.buttonLabelRight ? options.buttonLabelRight : \"Next\";\r\n options.disablePaginationInput =\r\n options.disablePaginationInput != null && typeof options.disablePaginationInput === \"boolean\"\r\n ? options.disablePaginationInput\r\n : false;\r\n options.showTotal = options.showTotal && typeof options.showTotal === \"string\" ? options.showTotal : false;\r\n\r\n var self = this,\r\n stringPagination = \"Pagination\",\r\n template = \"{total}{pager}{select}\",\r\n pagination,\r\n prevText = options.buttonLabelLeft,\r\n nextText = options.buttonLabelRight,\r\n currentPage,\r\n origPerPage = options.perPage,\r\n previousPerPage,\r\n newPage,\r\n totalPages,\r\n newTotalPages,\r\n lastPage,\r\n onFirstPage,\r\n onLastPage,\r\n links,\r\n // handlers\r\n handlePaginationEvent = function (e) {\r\n var target;\r\n if (e.target.dataset[\"page\"]) {\r\n target = e.target;\r\n } else {\r\n target = e.target.parentNode;\r\n }\r\n var name = target.getAttribute(\"aria-label\");\r\n var focusBtn;\r\n\r\n var buttons = pagination.querySelectorAll(\"button\");\r\n for (var idx = 0; idx < buttons.length; idx++) {\r\n if (target === buttons[idx]) {\r\n focusBtn = buttons[idx];\r\n break;\r\n }\r\n }\r\n\r\n if (!options.external) {\r\n if (target.dataset[\"page\"]) {\r\n self.page(target.dataset[\"page\"]);\r\n }\r\n } else {\r\n uicoreCustomEvent(\"Pagination\", \"PageChangeEvent\", element, {\r\n page: target.dataset[\"page\"],\r\n perPage: options.perPage,\r\n pages: totalPages,\r\n });\r\n }\r\n\r\n (focusBtn = pagination.querySelector('[aria-label=\"' + name + '\"]')), focusBtn.focus();\r\n },\r\n handleKeydownEvent = function (e) {\r\n if (e.keyCode == 13) {\r\n if (e.target.value <= totalPages && e.target.value > 0) {\r\n if (!options.external) {\r\n self.page(e.target.value);\r\n } else {\r\n uicoreCustomEvent(\"Pagination\", \"PageChangeEvent\", element, {\r\n page: e.target.value,\r\n perPage: options.perPage,\r\n pages: totalPages,\r\n });\r\n }\r\n } else {\r\n e.target.value = currentPage;\r\n }\r\n var queryStr = e.target.tagName;\r\n each(e.target.classList, function (clazz) {\r\n queryStr += \".\" + clazz;\r\n });\r\n pagination.querySelector(queryStr).focus();\r\n }\r\n },\r\n handleFocusoutEvent = function (e) {\r\n if (e.target.value != currentPage) {\r\n e.target.value = currentPage;\r\n } else {\r\n e.preventDefault();\r\n }\r\n },\r\n handleChangeEvent = function (e) {\r\n if (e.target.value != options.perPage) {\r\n previousPerPage = options.perPage;\r\n options.perPage = parseInt(e.target.value);\r\n if (!options.external) {\r\n update();\r\n } else {\r\n renderPage();\r\n uicoreCustomEvent(\"Pagination\", \"PerPageChangeEvent\", element, {\r\n page: currentPage,\r\n perPage: options.perPage,\r\n pages: totalPages,\r\n });\r\n }\r\n var queryStr = e.target.tagName;\r\n each(e.target.classList, function (clazz) {\r\n queryStr += \".\" + clazz;\r\n });\r\n element.querySelector(queryStr).focus();\r\n }\r\n },\r\n // dynamic ui\r\n render = function () {\r\n if (options.showTotal) {\r\n var totalItems = createElement(\"div\", {\r\n class: prefix + \"pagination-total-items\",\r\n });\r\n var spanItems = createElement(\"span\", {\r\n html: options.items + \" \" + options.showTotal,\r\n });\r\n totalItems.appendChild(spanItems);\r\n template = template.replace(\"{total}\", totalItems.outerHTML);\r\n } else {\r\n template = template.replace(\"{total}\", \"\");\r\n }\r\n\r\n var paginator = createElement(\"ul\", {\r\n class: prefix + \"pagination-list\",\r\n role: \"presentation\",\r\n });\r\n\r\n // Pager placement\r\n template = template.replace(\"{pager}\", paginator.outerHTML);\r\n\r\n // Per Page Select placement\r\n if (options.filter) {\r\n var wrap = \"
\";\r\n\r\n // Selector placement\r\n template = template.replace(\"{select}\", wrap);\r\n } else {\r\n template = template.replace(\"{select}\", \"\");\r\n }\r\n\r\n element.innerHTML = template;\r\n\r\n pagination = element.querySelector(\".\" + prefix + \"pagination-list\");\r\n\r\n if (options.items < options.perPage) {\r\n pagination.classList.add(prefix + \"pagination-hidden\");\r\n }\r\n\r\n update();\r\n },\r\n renderPage = function () {\r\n var origCurrentPage = currentPage;\r\n\r\n if (newPage) {\r\n currentPage = newPage;\r\n newPage = null;\r\n } else if (previousPerPage) {\r\n var firstItemOnPage = (origCurrentPage - 1) * previousPerPage + 1;\r\n currentPage = Math.ceil(firstItemOnPage / options.perPage);\r\n previousPerPage = null;\r\n } else if (newTotalPages && currentPage > newTotalPages) {\r\n currentPage = newTotalPages;\r\n }\r\n\r\n onFirstPage = currentPage === 1;\r\n onLastPage = currentPage === lastPage;\r\n\r\n if (origCurrentPage != currentPage) {\r\n uicoreCustomEvent(\"Pagination\", \"PageUpdateEvent\", element, {\r\n page: currentPage,\r\n perPage: options.perPage,\r\n pages: totalPages,\r\n });\r\n }\r\n },\r\n renderPageInput = function () {\r\n var pageInputWrapper = createElement(\"li\", {\r\n class: prefix + \"pagination-input-ctnr\",\r\n });\r\n if (options.hidePages) {\r\n pageInputWrapper.classList.add(prefix + \"d-none\");\r\n }\r\n var pageInputTextBefore = createElement(\"label\", {\r\n html: options.pageText,\r\n });\r\n var pageInputField = createElement(\"input\", {\r\n class: prefix + \"form-control \" + prefix + \"text-center\",\r\n type: \"text\",\r\n value: currentPage,\r\n \"aria-label\": \"Page \" + currentPage + \" of \" + (newTotalPages ? newTotalPages : totalPages),\r\n });\r\n pageInputField.disabled = options.disablePaginationInput;\r\n var pageInputTextAfter = createElement(\"label\", {\r\n html: \"of \" + (newTotalPages ? newTotalPages : totalPages),\r\n });\r\n\r\n pageInputWrapper.appendChild(pageInputTextBefore);\r\n pageInputWrapper.appendChild(pageInputField);\r\n pageInputWrapper.appendChild(pageInputTextAfter);\r\n return pageInputWrapper;\r\n },\r\n renderPager = function () {\r\n var origTotalPages = totalPages,\r\n pages = newTotalPages ? newTotalPages : totalPages;\r\n\r\n flush(pagination, isIE);\r\n\r\n if (pages > 1) {\r\n var frag = DOC.createDocumentFragment(),\r\n prev = onFirstPage ? 1 : currentPage - 1,\r\n next = onLastPage ? pages : currentPage + 1;\r\n\r\n frag.appendChild(button(\"dds__btn dds__btn-secondary dds__page-item\", prev, prevText));\r\n\r\n each(links, function (p) {\r\n frag.appendChild(p);\r\n });\r\n\r\n frag.appendChild(button(\"dds__btn dds__btn-secondary dds__page-item\", next, nextText));\r\n\r\n pagination.appendChild(frag.cloneNode(true));\r\n // add in click and keydown listeners\r\n each(pagination.querySelectorAll(\"li\"), function (el) {\r\n var hasInput = el.querySelector(\"input\");\r\n var hasButton = el.querySelector(\"button\");\r\n if (hasButton) {\r\n el.addEventListener(\"click\", handlePaginationEvent, true);\r\n }\r\n if (hasInput) {\r\n hasInput.addEventListener(\"keydown\", handleKeydownEvent, false);\r\n hasInput.addEventListener(\"focusout\", handleFocusoutEvent, false);\r\n }\r\n });\r\n }\r\n\r\n if (pages != origTotalPages || newTotalPages) {\r\n totalPages = pages;\r\n newTotalPages = null;\r\n uicoreCustomEvent(\"Pagination\", \"PerPageUpdateEvent\", element, {\r\n page: currentPage,\r\n perPage: options.perPage,\r\n pages: totalPages,\r\n });\r\n }\r\n },\r\n renderSelect = function () {\r\n var el = element.querySelector(\".\" + prefix + \"perpage\");\r\n if (el) {\r\n flush(el, isIE);\r\n }\r\n var select = createElement(\"select\", {\r\n class: prefix + \"form-control\",\r\n });\r\n\r\n // Create the options\r\n each(options.perPageSelect, function (val) {\r\n var option;\r\n if (val == options.perPage) {\r\n option = new Option(val, val, true, true);\r\n } else {\r\n option = new Option(val, val, false, false);\r\n }\r\n select.add(option);\r\n });\r\n\r\n var label = createElement(\"label\", {\r\n html: options.itemsPerPageText,\r\n });\r\n\r\n // Custom label\r\n el.innerHTML = \"\";\r\n el.appendChild(select);\r\n el.appendChild(label);\r\n\r\n select.addEventListener(\"change\", handleChangeEvent, false);\r\n },\r\n renderTotalItems = function () {\r\n var totalItemsWrapper = element.querySelector(\".\" + prefix + \"pagination-total-items\");\r\n flush(totalItemsWrapper, isIE);\r\n totalItemsWrapper.appendChild(createElement(\"span\", { html: options.items + \" \" + options.showTotal }));\r\n },\r\n button = function (c, p, t) {\r\n var el = createElement(\"li\");\r\n\r\n var bEl = createElement(\"button\", {\r\n class: c + \" \" + prefix + \"pager-link\",\r\n\r\n \"aria-label\": t,\r\n \"data-page\": p,\r\n });\r\n\r\n var span = createElement(\"span\", {\r\n html: t,\r\n });\r\n bEl.appendChild(span);\r\n var svgElem;\r\n if (t === prevText) {\r\n svgElem = renderSvg([{ name: \"chevron-left\", show: true }]);\r\n svgElem.setAttribute(\"name\", \"chevron-left\");\r\n bEl.insertBefore(svgElem, span);\r\n if (onFirstPage) {\r\n bEl.setAttribute(\"disabled\", \"\");\r\n }\r\n } else if (t === nextText) {\r\n svgElem = renderSvg([{ name: \"chevron-right\", show: true }]);\r\n svgElem.setAttribute(\"name\", \"chevron-right\");\r\n bEl.appendChild(svgElem);\r\n if (onLastPage) {\r\n bEl.setAttribute(\"disabled\", \"\");\r\n }\r\n }\r\n el.appendChild(bEl);\r\n\r\n return el;\r\n },\r\n paginate = function () {\r\n var pages;\r\n\r\n if (options.items < options.perPage) {\r\n pages = 1;\r\n } else {\r\n pages = Math.ceil(options.items / options.perPage);\r\n }\r\n if (!totalPages) {\r\n totalPages = lastPage = pages;\r\n } else {\r\n newTotalPages = lastPage = pages;\r\n }\r\n },\r\n update = function () {\r\n if (options.items < options.perPage) {\r\n pagination.classList.add(prefix + \"pagination-hidden\");\r\n } else if (pagination.classList.contains(prefix + \"pagination-hidden\")) {\r\n pagination.classList.remove(prefix + \"pagination-hidden\");\r\n }\r\n\r\n paginate();\r\n\r\n renderPage();\r\n\r\n links = [renderPageInput()];\r\n\r\n renderPager();\r\n\r\n if (options.filter) {\r\n renderSelect();\r\n }\r\n\r\n if (options.showTotal) {\r\n renderTotalItems();\r\n }\r\n };\r\n\r\n /**\r\n * Changes the page to the number passed in\r\n * @param {int} num\r\n * @return {void}\r\n */\r\n this.page = function (num) {\r\n newPage = validateNum(num);\r\n\r\n if (!newPage || newPage == currentPage || newPage > totalPages || newPage < 0) {\r\n return false;\r\n }\r\n\r\n update();\r\n };\r\n\r\n /**\r\n * Changes the value chosen in the per-page selection input\r\n * @param {int} num\r\n * @return {void}\r\n */\r\n this.perPage = function (num) {\r\n var newPerPage = validateNum(num);\r\n\r\n if (!newPerPage) {\r\n return false;\r\n } else {\r\n options.perPage = newPerPage;\r\n }\r\n\r\n update();\r\n };\r\n\r\n /**\r\n * Adds the amount of items passed in\r\n * @param {int} num\r\n * @return {void}\r\n */\r\n this.addItems = function (num) {\r\n var addItems = validateNum(num);\r\n\r\n if (!addItems) {\r\n return false;\r\n } else {\r\n options.items += addItems;\r\n }\r\n\r\n update();\r\n };\r\n\r\n /**\r\n * Removes the amount of items passed in\r\n * @param {int} num\r\n * @return {void}\r\n */\r\n this.removeItems = function (num) {\r\n var remItems = validateNum(num);\r\n\r\n if (!remItems) {\r\n return false;\r\n } else {\r\n options.items -= remItems;\r\n }\r\n\r\n update();\r\n };\r\n\r\n /**\r\n * Sets the total number of items to the number passed in\r\n * @param {int} num\r\n * @return {void}\r\n */\r\n this.setItems = function (num) {\r\n var newItems = validateNum(num);\r\n if (newItems == undefined || newItems == null) {\r\n if (num === 0) options.items = 0;\r\n pagination.classList.add(prefix + \"pagination-hidden\");\r\n return false;\r\n } else {\r\n options.items = newItems;\r\n if (options.items === 0) {\r\n options.perPage = origPerPage;\r\n previousPerPage = null;\r\n }\r\n }\r\n\r\n update();\r\n };\r\n\r\n /**\r\n * Return the calculated pages\r\n * @return {int} totalPages\r\n */\r\n this.pages = function () {\r\n return totalPages;\r\n };\r\n\r\n //init\r\n if (!(stringPagination in element)) {\r\n currentPage = 1;\r\n render();\r\n }\r\n\r\n element[stringPagination] = self;\r\n}\r\n","import {\r\n DOC,\r\n emulateTransitionEnd,\r\n globalObject,\r\n getClosest,\r\n prefix,\r\n styleTip,\r\n uicoreCustomEvent,\r\n getFullScreenOverlay,\r\n createElement,\r\n jsonOptionsInit,\r\n} from \"./utilities.js\";\r\n\r\nexport default function Popover(element, options) {\r\n // initialization element\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n options = options || {};\r\n options = jsonOptionsInit(element, options);\r\n options.delay = element.dataset.delay\r\n ? parseInt(element.dataset.delay)\r\n : options.delay\r\n ? parseInt(options.delay)\r\n : 10;\r\n options.title = element.dataset.title ? element.dataset.title : options.data_title ? options.data_title : null;\r\n options.content = element.dataset.content\r\n ? element.dataset.content\r\n : options.data_content\r\n ? options.data_content\r\n : null;\r\n options.placement = element.dataset.placement\r\n ? element.dataset.placement\r\n : options.data_placement\r\n ? options.data_placement\r\n : null;\r\n options.container = element.dataset.container\r\n ? element.dataset.container\r\n : options.container\r\n ? options.container\r\n : DOC.body;\r\n\r\n // validate options\r\n (function () {\r\n if (options.title == null || options.title === \"\") {\r\n throw new Error(\"There was a problem found with title value, please correct and try again\");\r\n }\r\n if (options.content == null || options.content === \"\") {\r\n throw new Error(\"There was a problem found with content value, please correct and try again\");\r\n }\r\n if (options.placement == null) {\r\n throw new Error(\"There was a problem found with placement value, please correct and try again\");\r\n }\r\n var inOffCanvas = getClosest(element, \".\" + prefix + \"modal-offcanvas\");\r\n if (inOffCanvas) {\r\n options.container = inOffCanvas;\r\n } else {\r\n var inFixedTop = getClosest(element, \".fixed-top\");\r\n if (inFixedTop) {\r\n options.container = inFixedTop;\r\n } else {\r\n var inFixedBottom = getClosest(element, \".fixed-bottom\");\r\n if (inFixedBottom) {\r\n options.container = inFixedBottom;\r\n }\r\n }\r\n }\r\n })();\r\n\r\n // DATA API\r\n var self = this,\r\n popoverString = \"Popover\",\r\n container = DOC.body,\r\n overlay = getFullScreenOverlay(),\r\n popoverArrow = null,\r\n popoverCloseBtn = null,\r\n popoverFocusTrap = null,\r\n positionCalc = true,\r\n smallMedia = window.matchMedia(\"(max-width: 767.98px)\"),\r\n popover = null,\r\n popoverModal = null,\r\n visible = false,\r\n isHiding = false,\r\n showTimeout = null,\r\n hideTimeout = null,\r\n // handlers\r\n triggerHandler = function (e) {\r\n self.toggle();\r\n e.preventDefault();\r\n },\r\n blurHandler = function (e) {\r\n // setTimeout is important here because when you tab with keyboard,\r\n // activeElement is not consistently updated until the blur event has been processed\r\n setTimeout(function () {\r\n if (DOC.activeElement === element) return;\r\n if (popover && !popover.contains(DOC.activeElement)) {\r\n self.hide();\r\n element.focus();\r\n e.preventDefault();\r\n }\r\n }, 10);\r\n },\r\n windowBlurHandler = function () {\r\n self.hide();\r\n },\r\n closeBtnHandler = function (e) {\r\n self.hide();\r\n element.focus();\r\n e.preventDefault();\r\n e.stopPropagation();\r\n },\r\n focusTrapHandler = function (e) {\r\n self.hide();\r\n element.focus();\r\n e.preventDefault();\r\n },\r\n keyHandler = function (e) {\r\n if (e.keyCode === 27 && e.type === \"keydown\") {\r\n //esc\r\n element.focus();\r\n self.hide();\r\n e.preventDefault();\r\n } else if (e.keyCode === 13 && e.type === \"keydown\") {\r\n //enter\r\n if (e.currentTarget.classList.contains(prefix + \"close\")) {\r\n self.hide();\r\n element.focus();\r\n e.preventDefault();\r\n }\r\n } else if ((e.keyCode === 9) & (e.type === \"keydown\")) {\r\n //tab out\r\n if (e.shiftKey && e.srcElement.classList.contains(prefix + \"popover\")) {\r\n self.hide();\r\n element.focus();\r\n e.preventDefault();\r\n }\r\n }\r\n },\r\n createPopover = function () {\r\n //create popover divs\r\n var popoverDialog = null,\r\n popoverTitleDiv = null,\r\n popoverTitle = null,\r\n popoverContent = null,\r\n popoverParagraph = null;\r\n\r\n popover = createElement(\"div\", {\r\n class: prefix + \"modal-dialog\",\r\n tabindex: \"0\",\r\n role: \"dialog\",\r\n });\r\n\r\n popoverDialog = createElement(\"div\", {\r\n class: prefix + \"popover-dialog\",\r\n });\r\n popover.appendChild(popoverDialog);\r\n\r\n //create popover arrow\r\n popoverArrow = createElement(\"div\", {\r\n class: prefix + \"arrow\",\r\n });\r\n popover.appendChild(popoverArrow);\r\n\r\n //set popover title container\r\n popoverTitleDiv = createElement(\"div\", {\r\n class: prefix + \"popover-title-container \" + prefix + \"d-flex\",\r\n });\r\n\r\n popoverDialog.appendChild(popoverTitleDiv);\r\n\r\n popoverTitle = createElement(\"h3\", {\r\n class: prefix + \"popover-header \" + prefix + \"bold-16\",\r\n html: options.title,\r\n });\r\n popoverTitleDiv.appendChild(popoverTitle);\r\n\r\n //set popover body content\r\n popoverContent = createElement(\"div\", {\r\n class: prefix + \"popover-body\",\r\n });\r\n\r\n popoverParagraph = createElement(\"p\", {\r\n html: options.content,\r\n });\r\n\r\n popoverDialog.appendChild(popoverContent);\r\n popoverContent.appendChild(popoverParagraph);\r\n\r\n //create close button\r\n popoverCloseBtn = createElement(\"button\", {\r\n class: prefix + \"close\" + \" \" + prefix + \"icons \" + prefix + \"close-x \" + prefix + \"position-absolute\",\r\n tabindex: \"0\",\r\n aria_label: \"Close Popover\",\r\n data_dismiss: prefix + \"popover\",\r\n });\r\n\r\n popoverTitleDiv.appendChild(popoverCloseBtn);\r\n\r\n popoverFocusTrap = createElement(\"div\", {\r\n tabindex: \"0\",\r\n });\r\n\r\n popover.appendChild(popoverFocusTrap);\r\n\r\n //append to the container\r\n if (smallMedia.matches) {\r\n popoverModal = createElement(\"div\", {\r\n class: prefix + \"modal\",\r\n });\r\n popoverModal.style.display = \"block\";\r\n\r\n DOC.body.classList.add(prefix + \"modal-open\");\r\n popoverModal.appendChild(popover);\r\n element.parentNode.insertBefore(popoverModal, element);\r\n } else {\r\n container.insertBefore(popover, container.firstChild);\r\n }\r\n\r\n var popoverClasses = [\r\n prefix + \"popover\",\r\n prefix + \"bs-popover-\" + options.placement,\r\n prefix + \"fade\",\r\n prefix + \"rounded-0\",\r\n ];\r\n\r\n popover.setAttribute(\"class\", popoverClasses.join(\" \"));\r\n },\r\n removePopover = function () {\r\n var popoverParent = popover.parentNode;\r\n\r\n // if popover has the dds__modal, then access it's parent to remove the whole node\r\n if (popoverParent.getAttribute(\"class\") === prefix + \"modal\") {\r\n popoverParent.parentNode.removeChild(popoverParent);\r\n } else {\r\n container.removeChild(popover);\r\n }\r\n popover = null;\r\n DOC.body.classList.remove(prefix + \"modal-open\");\r\n },\r\n createOverlay = function () {\r\n if (overlay) {\r\n overlay.classList.add(prefix + \"show\");\r\n overlay.removeAttribute(\"hidden\");\r\n overlay.style.visibility = \"hidden\";\r\n } else {\r\n console.warn(\r\n \"POPOVER: Overlay requested. Corresponding HTML missing. Please apply 'dds__overlay' to a div\"\r\n );\r\n }\r\n },\r\n removeOverlay = function () {\r\n if (overlay) overlay.classList.remove(prefix + \"show\");\r\n },\r\n showPopover = function () {\r\n if (!popover.classList.contains(prefix + \"show\")) popover.classList.add(prefix + \"show\");\r\n },\r\n hidePopover = function () {\r\n if (popover.classList.contains(prefix + \"show\")) popover.classList.remove(prefix + \"show\");\r\n },\r\n updatePopover = function () {\r\n if (positionCalc) {\r\n styleTip(element, popover, options.placement, container);\r\n } else {\r\n popover.style.cssText = \"\";\r\n }\r\n },\r\n // triggers\r\n showTrigger = function () {\r\n uicoreCustomEvent(\"Popover\", \"Shown\", element);\r\n },\r\n hideTrigger = function () {\r\n if (visible) removePopover();\r\n visible = false;\r\n isHiding = false;\r\n uicoreCustomEvent(\"Popover\", \"Hidden\", element);\r\n },\r\n positionCalculation = function (e) {\r\n if (e.matches) {\r\n positionCalc = false;\r\n } else {\r\n positionCalc = true;\r\n }\r\n };\r\n\r\n // public methods / handlers\r\n this.toggle = function () {\r\n if (visible) {\r\n self.hide();\r\n } else {\r\n self.show();\r\n }\r\n };\r\n\r\n this.show = function () {\r\n if (visible || isHiding) return;\r\n visible = true;\r\n\r\n createPopover();\r\n createOverlay();\r\n updatePopover();\r\n\r\n clearTimeout(showTimeout);\r\n showTimeout = setTimeout(function () {\r\n showPopover();\r\n\r\n popover.focus();\r\n popover.addEventListener(\"blur\", blurHandler, false);\r\n popover.addEventListener(\"keydown\", keyHandler, false);\r\n popoverFocusTrap.addEventListener(\"focus\", focusTrapHandler, false);\r\n popoverCloseBtn.addEventListener(\"click\", closeBtnHandler, false);\r\n\r\n window.addEventListener(\"blur\", windowBlurHandler, false);\r\n globalObject.addEventListener(\"resize\", self.toggle, false);\r\n\r\n uicoreCustomEvent(\"Popover\", \"ShowEvent\", element);\r\n emulateTransitionEnd(popover, showTrigger);\r\n }, options.delay);\r\n };\r\n\r\n this.hide = function () {\r\n if (!visible || isHiding) return;\r\n isHiding = true;\r\n\r\n clearTimeout(hideTimeout);\r\n hideTimeout = setTimeout(function () {\r\n hidePopover();\r\n removeOverlay();\r\n\r\n popover.removeEventListener(\"blur\", blurHandler, false);\r\n popover.removeEventListener(\"keydown\", keyHandler, false);\r\n popoverFocusTrap.removeEventListener(\"focus\", focusTrapHandler, false);\r\n popoverCloseBtn.removeEventListener(\"click\", closeBtnHandler, false);\r\n\r\n window.removeEventListener(\"blur\", windowBlurHandler, false);\r\n globalObject.removeEventListener(\"resize\", self.toggle, false);\r\n\r\n uicoreCustomEvent(\"Popover\", \"HideEvent\", element);\r\n emulateTransitionEnd(popover, hideTrigger);\r\n }, options.delay);\r\n };\r\n\r\n this.update = function () {\r\n updatePopover();\r\n };\r\n\r\n // init\r\n if (!(popoverString in element)) {\r\n // prevent adding event handlers twice\r\n element.addEventListener(\"click\", triggerHandler, false);\r\n positionCalculation(smallMedia);\r\n smallMedia.addListener(positionCalculation);\r\n }\r\n\r\n element[popoverString] = self;\r\n}\r\n","import {\r\n createElement,\r\n prefix,\r\n uicoreCustomEvent,\r\n each,\r\n jsonOptionsInit,\r\n debounce,\r\n isIE,\r\n isSafari,\r\n isEdge,\r\n} from \"./utilities.js\";\r\n\r\nexport default function ProductStack(element, options) {\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n options = options || {};\r\n options = jsonOptionsInit(element, options);\r\n options.lazyload = typeof options.lazyload === \"boolean\" ? options.lazyload : false;\r\n options.type = options.type ? options.type : \"single\";\r\n\r\n var stringProductStack = \"ProductStack\",\r\n itemsView,\r\n currentOffset,\r\n overflowContainer,\r\n childrenWidth,\r\n productStacks,\r\n rightCtrls,\r\n leftCtrls,\r\n productStackID,\r\n // handlers\r\n resizeHandler = function () {\r\n updateSectionHeights();\r\n updateItemsView();\r\n },\r\n controlClick = function (e) {\r\n var increment = childrenWidth;\r\n if (options.type == \"page\") {\r\n // increment = overflowContainer.offsetWidth;\r\n var leftNumber = Math.ceil((overflowContainer.scrollLeft - 5) / childrenWidth) + 1;\r\n var rightNumber = Math.floor(\r\n (overflowContainer.scrollLeft + overflowContainer.offsetWidth + 5) / childrenWidth\r\n );\r\n if (rightNumber - leftNumber <= 0) {\r\n increment = childrenWidth;\r\n } else {\r\n increment = childrenWidth * (rightNumber - leftNumber + 1);\r\n }\r\n }\r\n\r\n var isRight =\r\n e.target.classList.contains(prefix + \"overflow-control-right\") ||\r\n e.target.parentElement.classList.contains(prefix + \"overflow-control-right\")\r\n ? true\r\n : false;\r\n\r\n if (isRight) {\r\n if (\r\n currentOffset + increment <\r\n childrenWidth * productStacks.length - overflowContainer.offsetWidth - 1\r\n ) {\r\n currentOffset += increment;\r\n } else {\r\n currentOffset = childrenWidth * productStacks.length - overflowContainer.offsetWidth;\r\n }\r\n } else {\r\n if (currentOffset - increment > 1) {\r\n currentOffset -= increment;\r\n } else {\r\n currentOffset = 0;\r\n }\r\n }\r\n if (isIE || isSafari || isEdge) {\r\n overflowContainer.scrollLeft = currentOffset;\r\n } else {\r\n overflowContainer.scroll({ top: 0, left: currentOffset, behavior: \"smooth\" });\r\n }\r\n updateItemsView();\r\n },\r\n updateSectionHeights = function () {\r\n element.getElementsByTagName(\"style\")[0].innerHTML = \"\";\r\n childrenWidth = productStacks[0].parentElement.offsetWidth;\r\n // tallestSections can be used in the future to optimize the performace on resize\r\n // var tallestSections = [];\r\n each(productStacks[0].sections, function (section) {\r\n // to optimize, we can extract querySelectorAll outside and save it somewhere instead of doing it over and over\r\n var sectionName = \".\" + section.className.replace(/\\s/g, \".\");\r\n var sectionMatches = element.querySelectorAll(sectionName);\r\n if (sectionMatches.length > 1) {\r\n var maxHeight = 0;\r\n each(sectionMatches, function (sectionMatch) {\r\n if (sectionMatches.style) {\r\n sectionMatches.removeAttribute(\"style\");\r\n }\r\n if (sectionMatch.offsetHeight > maxHeight) {\r\n maxHeight = sectionMatch.offsetHeight;\r\n } else if (sectionMatch.offsetHeight == 0) {\r\n sectionMatch.nextElementSibling.style.visibility = \"hidden\";\r\n }\r\n });\r\n var styleTag = element.getElementsByTagName(\"style\")[0].innerHTML;\r\n element.getElementsByTagName(\"style\")[0].innerHTML =\r\n styleTag + \"#\" + productStackID + \" \" + sectionName + \"{ height: \" + maxHeight + \"px }\";\r\n }\r\n });\r\n },\r\n updateItemsView = function () {\r\n //can be optimized later on to avoid cycling through all sections to generate stylesheet\r\n // adding and subtracting 5 pixels for flexibility on non-integer scrollLeft\r\n if (itemsView) {\r\n var leftNumber = Math.ceil((overflowContainer.scrollLeft - 5) / childrenWidth) + 1;\r\n var rightNumber = Math.floor(\r\n (overflowContainer.scrollLeft + overflowContainer.offsetWidth + 5) / childrenWidth\r\n );\r\n each(itemsView, function (view) {\r\n view.innerHTML =\r\n \"\" +\r\n leftNumber +\r\n (leftNumber < rightNumber ? \" - \" + Math.min(rightNumber, productStacks.length) : \"\") +\r\n \" of \" +\r\n productStacks.length +\r\n \"\";\r\n });\r\n uicoreCustomEvent(\"ProductStack\", \"ChangeEvent\", element, {\r\n left: leftNumber,\r\n right: rightNumber,\r\n totalItems: productStacks.length,\r\n });\r\n if (leftNumber <= 1) {\r\n each(leftCtrls, function (leftCtrl) {\r\n leftCtrl.setAttribute(\"disabled\", \"\");\r\n });\r\n } else {\r\n each(leftCtrls, function (leftCtrl) {\r\n leftCtrl.removeAttribute(\"disabled\");\r\n });\r\n }\r\n if (rightNumber >= productStacks.length) {\r\n each(rightCtrls, function (rightCtrl) {\r\n rightCtrl.setAttribute(\"disabled\", \"\");\r\n });\r\n } else {\r\n each(rightCtrls, function (rightCtrl) {\r\n rightCtrl.removeAttribute(\"disabled\");\r\n });\r\n }\r\n if (rightCtrls[0].disabled && leftCtrls[0].disabled) {\r\n each(rightCtrls, function (rightCtrl) {\r\n rightCtrl.style.display = \"none\";\r\n });\r\n each(leftCtrls, function (leftCtrl) {\r\n leftCtrl.style.display = \"none\";\r\n });\r\n each(itemsView, function (viewDiv) {\r\n viewDiv.style.display = \"none\";\r\n });\r\n } else {\r\n each(rightCtrls, function (rightCtrl) {\r\n rightCtrl.style.display = \"block\";\r\n });\r\n each(leftCtrls, function (leftCtrl) {\r\n leftCtrl.style.display = \"block\";\r\n });\r\n each(itemsView, function (viewDiv) {\r\n viewDiv.style.display = \"block\";\r\n });\r\n }\r\n }\r\n };\r\n\r\n this.lazyLoad = function () {\r\n if (options.lazyload) {\r\n updateSectionHeights();\r\n updateItemsView();\r\n uicoreCustomEvent(\"ProductStack\", \"LazyLoadEvent\", element, { success: true });\r\n } else {\r\n uicoreCustomEvent(\"ProductStack\", \"LazyLoadEvent\", element, {\r\n success: false,\r\n msg: \"Carousel cannot be lazy loaded. Check usage or avoid mulitple lazy loads.\",\r\n });\r\n }\r\n };\r\n\r\n // prevent adding event handlers twice\r\n if (!(stringProductStack in element)) {\r\n productStackID = element.id ? element.id : \"product-stack\";\r\n var style = createElement(\"style\");\r\n style.type = \"text/css\";\r\n element.insertBefore(style, element.firstElementChild);\r\n productStacks = element.querySelectorAll(\"UL.\" + prefix + \"product-stack\");\r\n each(productStacks, function (productStack) {\r\n productStack.sections = [];\r\n var i = 0;\r\n each(productStack.children, function (section) {\r\n if (section.tagName == \"LI\") {\r\n section.classList.add(prefix + \"ps-row-\" + i++);\r\n productStack.sections.push(section);\r\n }\r\n });\r\n });\r\n itemsView = element.parentElement.querySelectorAll(\"DIV.\" + prefix + \"items-view\");\r\n overflowContainer = element.querySelector(\".\" + prefix + \"product-stack-wrapper\");\r\n overflowContainer.addEventListener(\r\n \"scroll\",\r\n debounce(function () {\r\n if (overflowContainer.scrollLeft != currentOffset) {\r\n updateItemsView();\r\n currentOffset = overflowContainer.scrollLeft;\r\n }\r\n }),\r\n 15\r\n );\r\n window.addEventListener(\"load\", updateSectionHeights, false);\r\n window.addEventListener(\"resize\", debounce(resizeHandler, 15));\r\n childrenWidth = element.querySelector(\".\" + prefix + \"product-stack\").parentElement.offsetWidth;\r\n rightCtrls = element.querySelectorAll(\"[data-toggle='\" + prefix + \"product-stack-control-right']\");\r\n each(rightCtrls, function (rightCtrl) {\r\n rightCtrl.addEventListener(\"click\", controlClick, true);\r\n });\r\n leftCtrls = element.querySelectorAll(\"[data-toggle='\" + prefix + \"product-stack-control-left']\");\r\n each(leftCtrls, function (leftCtrl) {\r\n leftCtrl.addEventListener(\"click\", controlClick, true);\r\n leftCtrl.setAttribute(\"disabled\", \"\");\r\n });\r\n if (isEdge) {\r\n rightCtrls[0].addEventListener(\r\n \"keydown\",\r\n function (e) {\r\n setTimeout(function () {\r\n if ((e.keyCode == 13 || e.keyCode == 32) && rightCtrls[0].disabled) {\r\n e.preventDefault();\r\n leftCtrls[0].focus();\r\n }\r\n }, 100);\r\n },\r\n false\r\n );\r\n leftCtrls[0].addEventListener(\r\n \"keydown\",\r\n function (e) {\r\n setTimeout(function () {\r\n if ((e.keyCode == 13 || e.keyCode == 32) && leftCtrls[0].disabled) {\r\n e.preventDefault();\r\n rightCtrls[0].focus();\r\n }\r\n }, 100);\r\n },\r\n false\r\n );\r\n leftCtrls[1].addEventListener(\r\n \"keydown\",\r\n function (e) {\r\n setTimeout(function () {\r\n if ((e.keyCode == 13 || e.keyCode == 32) && leftCtrls[1].disabled) {\r\n e.preventDefault();\r\n rightCtrls[1].focus();\r\n }\r\n }, 100);\r\n },\r\n false\r\n );\r\n rightCtrls[1].addEventListener(\r\n \"keydown\",\r\n function (e) {\r\n setTimeout(function () {\r\n if ((e.keyCode == 13 || e.keyCode == 32) && rightCtrls[1].disabled) {\r\n e.preventDefault();\r\n leftCtrls[1].focus();\r\n }\r\n }, 100);\r\n },\r\n false\r\n );\r\n }\r\n currentOffset = overflowContainer.scrollLeft;\r\n updateItemsView();\r\n }\r\n\r\n element[stringProductStack] = self;\r\n}\r\n","import { validateNum, jsonOptionsInit } from \"./utilities\";\r\n\r\nexport default function Progress(element, options) {\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n // set options\r\n options = options || {};\r\n options = jsonOptionsInit(element, options);\r\n options.showText = element.dataset.showtext\r\n ? element.dataset.showtext == \"true\"\r\n ? true\r\n : false\r\n : options.showtext == \"true\"\r\n ? true\r\n : false;\r\n options.timeToComplete = element.dataset.timeToComplete\r\n ? validateNum(element.dataset.timeToComplete, 10000)\r\n : validateNum(options.timeToComplete, 10000);\r\n\r\n // this defines how chunky you want the increment block to be the smaller the increment, the smoother it is,\r\n // however, it will impact minimum time to complete depending on client's machine's performance\r\n var increment = 0.25,\r\n timeToComplete = options.timeToComplete,\r\n millisecondPerTick = timeToComplete / (100.0 / increment),\r\n width = 0,\r\n id,\r\n stringProgress = \"Progress\",\r\n frame = function () {\r\n if (width < 100.0) {\r\n width += increment;\r\n element.style.width = width + \"%\";\r\n element.setAttribute(\"aria-valuenow\", Math.round(width));\r\n } else {\r\n element.style.width = \"100%\";\r\n clearInterval(id);\r\n }\r\n if (options.showText) {\r\n element.innerHTML = width < 100 ? Math.round(width) + \"%\" : \"100%\";\r\n }\r\n };\r\n\r\n // init\r\n if (!(stringProgress in element)) {\r\n setInterval(frame, millisecondPerTick);\r\n }\r\n\r\n element[stringProgress] = self;\r\n}\r\n","import { uicoreCustomEvent, prefix, DOC, offWindowLeft, createElement, isIE, isArray, each } from \"./utilities\";\r\n\r\nexport default function Slider(element, optionsInput) {\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n var isJson = false,\r\n jsonParams = element.dataset.slider;\r\n if (jsonParams) {\r\n optionsInput = JSON.parse(jsonParams);\r\n isJson = true;\r\n }\r\n var options = optionsInput || {};\r\n\r\n // User supplied\r\n options.animate = typeof options.animate == \"boolean\" ? options.animate : true;\r\n options.animationDuration = typeof options.animationDuration == \"number\" ? options.animationDuration : 300;\r\n options.ort = options.orientation ? (options.orientation === \"vertical\" ? 1 : 0) : 0;\r\n options.dir = options.direction ? (options.direction === \"rtl\" ? 1 : 0) : options.ort == 1 ? 1 : 0;\r\n options.singleStep = typeof options.step == \"number\" ? options.step : undefined;\r\n options.percision = typeof options.percision == \"number\" ? (options.percision > 2 ? 2 : options.percision) : 0;\r\n // User supplied but heeds more calculations at see validateOptions\r\n options.behaviour = options.behaviour ? options.behaviour : \"tap\";\r\n options.margin = typeof options.margin == \"number\" ? options.margin : 1;\r\n options.limit = typeof options.limit == \"number\" ? options.limit : 0;\r\n options.padding = options.padding ? options.padding : 0;\r\n options.tooltips = typeof options.tooltips == \"boolean\" ? options.tooltips : true;\r\n options.content = typeof options.content == \"string\" ? options.content : false;\r\n options.showRange = typeof options.showRange == \"boolean\" ? options.showRange : false;\r\n // Formats at see validateOptions\r\n options.format = typeof options.format == \"object\" ? options.format : undefined;\r\n options.ariaFormat = typeof options.ariaFormat == \"object\" ? options.ariaFormat : undefined;\r\n\r\n var stringSlider = \"Slider\",\r\n slider,\r\n container,\r\n spectrum,\r\n optEvents = {},\r\n events = {},\r\n connects,\r\n handles,\r\n handleNumbers,\r\n sliderBase,\r\n parsed,\r\n actions,\r\n supportsPassive = isIE ? false : true,\r\n locations = [],\r\n values = [],\r\n tooltips,\r\n activeHandlesCount = 0,\r\n minContainers = [],\r\n maxContainers = [],\r\n // For horizontal sliders in standard ltr documents,\r\n // make .dds__slider-origin overflow to the left so the document doesn't scroll.\r\n dirOffset = options.dir == 1 || options.ort == 1 ? 0 : 100,\r\n msPrefix = element.style.msTransform !== undefined,\r\n noPrefix = element.style.transform !== undefined,\r\n transformRule = noPrefix ? \"transform\" : msPrefix ? \"msTransform\" : \"webkitTransform\",\r\n // Default formatter uses numbers only and supplies percision/decimal places\r\n defaultFormatter = {\r\n to: function (value) {\r\n return value !== undefined && value.toFixed(options.percision);\r\n },\r\n from: Number,\r\n },\r\n // Validation\r\n validateMargin = function (entry) {\r\n if (options.margin === 0) {\r\n return;\r\n }\r\n\r\n options.margin = spectrum.getMargin(entry);\r\n\r\n if (!options.margin) {\r\n throw new Error(\"Slider 'margin' option is only supported on linear sliders.\");\r\n }\r\n },\r\n validateOptions = function () {\r\n // Range always first initiates Spectrum\r\n if (options.range) {\r\n // Filter incorrect input.\r\n if (typeof options.range !== \"object\" || isArray(options.range)) {\r\n throw new Error(\"Slider 'range' is not an object.\");\r\n }\r\n\r\n // Update if only one handle\r\n if (options.range.min === undefined) {\r\n options.range.min = 0;\r\n }\r\n\r\n // Catch missing end.\r\n if (options.range.max === undefined) {\r\n throw new Error(\"Slider Missing 'max' in 'range'.\");\r\n }\r\n\r\n // Catch equal start or end.\r\n if (options.range.min === options.range.max) {\r\n throw new Error(\"Slider 'range' 'min' and 'max' cannot be equal.\");\r\n }\r\n\r\n spectrum = new Spectrum(options.range, options.snap, options.singleStep);\r\n } else {\r\n throw new RangeError(\r\n \"There was a problem found with the range option values, please correct and try again!\"\r\n );\r\n }\r\n // Start\r\n if (options.start) {\r\n var entry = asArray(options.start);\r\n\r\n // Validate input. Values aren't tested, as the public .val method\r\n // will always provide a valid location.\r\n if (!Array.isArray(entry) || !entry.length) {\r\n throw new Error(\"Slider 'start' option is incorrect.\");\r\n }\r\n\r\n // Store the number of handles.\r\n options.handles = entry.length;\r\n\r\n // When the slider is initialized, the .val method will\r\n // be called with the start options.\r\n options.start = entry;\r\n } else {\r\n if (options.range.min && options.range.max) {\r\n options.start = [options.range.min, options.range.max];\r\n options.handles = 2;\r\n } else {\r\n options.start = options.range.max;\r\n options.handles = 1;\r\n }\r\n }\r\n // Events\r\n if (options.behaviour) {\r\n // Make sure the input is a string.\r\n if (typeof options.behaviour !== \"string\") {\r\n throw new Error(\"Slider 'behaviour' must be a string containing options.\");\r\n }\r\n\r\n // Check if the string contains any keywords.\r\n // None are required.\r\n var tap = options.behaviour.indexOf(\"tap\") >= 0;\r\n var drag = options.behaviour.indexOf(\"drag\") >= 0;\r\n var fixed = options.behaviour.indexOf(\"fixed\") >= 0;\r\n var snap = options.behaviour.indexOf(\"snap\") >= 0;\r\n var hover = options.behaviour.indexOf(\"hover\") >= 0;\r\n var unconstrained = options.behaviour.indexOf(\"unconstrained\") >= 0;\r\n\r\n if (fixed) {\r\n if (parsed.handles !== 2) {\r\n throw new Error(\"Slider 'fixed' behaviour must be used with 2 handles\");\r\n }\r\n\r\n // Use margin to enforce fixed state\r\n validateMargin(options.start[1] - options.start[0]);\r\n }\r\n\r\n if (unconstrained && (parsed.margin || parsed.limit)) {\r\n throw new Error(\"Slider 'unconstrained' behaviour cannot be used with margin or limit\");\r\n }\r\n\r\n optEvents = {\r\n tap: tap || snap,\r\n drag: drag,\r\n fixed: fixed,\r\n snap: snap,\r\n hover: hover,\r\n unconstrained: unconstrained,\r\n };\r\n }\r\n // Margin\r\n if (optEvents.fixed == 0) {\r\n // at see validateBehaviour\r\n validateMargin(options.margin);\r\n }\r\n // Limit\r\n options.limit = spectrum.getMargin(options.limit);\r\n // Padding\r\n if (options.padding) {\r\n if (typeof options.padding == \"number\" && !Array.isArray(options.padding)) {\r\n throw new Error(\"Slider 'padding' option must be numeric or array of exactly 2 numbers.\");\r\n }\r\n\r\n if (\r\n Array.isArray(options.padding) &&\r\n !(\r\n options.padding.length == 2 ||\r\n typeof options.padding[0] != \"number\" ||\r\n typeof options.padding[1] != \"number\"\r\n )\r\n ) {\r\n throw new Error(\"Slider 'padding' option must be numeric or array of exactly 2 numbers.\");\r\n }\r\n\r\n if (options.padding === 0) {\r\n return;\r\n }\r\n\r\n if (!Array.isArray(options.padding)) {\r\n options.padding = [options.padding];\r\n }\r\n\r\n // 'getMargin' returns false for invalid values.\r\n options.padding = [spectrum.getMargin(options.padding[0]), spectrum.getMargin(options.padding[1])];\r\n\r\n if (options.padding[0] === false || options.padding[1] === false) {\r\n throw new Error(\"Slider 'padding' option is only supported on linear sliders.\");\r\n }\r\n\r\n if (options.padding[0] < 0 || options.padding[1] < 0) {\r\n throw new Error(\"Slider 'padding' option must be a positive number(s).\");\r\n }\r\n\r\n if (options.padding[0] + options.padding[1] > 100) {\r\n throw new Error(\"Slider 'padding' option must not exceed 100% of the range.\");\r\n }\r\n }\r\n // Tooltips\r\n if (options.tooltips) {\r\n var tooltips;\r\n if (options.tooltips === false) {\r\n return;\r\n }\r\n\r\n if (options.tooltips === true) {\r\n tooltips = [];\r\n\r\n for (var i = 0; i < options.handles; i++) {\r\n tooltips.push(true);\r\n }\r\n } else {\r\n tooltips = asArray(options.tooltips);\r\n\r\n if (tooltips.length !== handles) {\r\n throw new Error(\"Slider must pass a formatter for all handles.\");\r\n }\r\n\r\n tooltips.forEach(function (formatter) {\r\n if (\r\n typeof formatter !== \"boolean\" &&\r\n (typeof formatter !== \"object\" || typeof formatter.to !== \"function\")\r\n ) {\r\n throw new Error(\"Slider 'tooltips' must be passed a formatter or 'false'.\");\r\n }\r\n });\r\n }\r\n options.tooltips = tooltips;\r\n }\r\n // Formats\r\n if (!options.format) {\r\n if (isJson) {\r\n var inputs = JSON.parse(jsonParams);\r\n if (inputs.format) {\r\n var testJs;\r\n if (inputs.format.indexOf(\"(\") > -1) {\r\n testJs = inputs.format.substring(0, inputs.format.indexOf(\"(\")).trim();\r\n } else {\r\n testJs = inputs.format;\r\n }\r\n if (!window[testJs]) {\r\n throw new Error(\r\n \"The supplied format function \" +\r\n inputs.format +\r\n \" could not be accessed, please verify and try again!\"\r\n );\r\n } else {\r\n options.format = window[testJs];\r\n }\r\n } else {\r\n options.format = defaultFormatter;\r\n }\r\n } else {\r\n options.format = defaultFormatter;\r\n }\r\n }\r\n if (!options.ariaFormat) {\r\n if (isJson) {\r\n inputs = JSON.parse(jsonParams);\r\n if (inputs.ariaFormat) {\r\n if (inputs.ariaFormat.indexOf(\"(\") > -1) {\r\n testJs = inputs.ariaFormat.substring(0, inputs.ariaFormat.indexOf(\"(\")).trim();\r\n } else {\r\n testJs = inputs.ariaFormat;\r\n }\r\n if (!window[testJs]) {\r\n throw new Error(\r\n \"The supplied format function \" +\r\n inputs.ariaFormat +\r\n \" could not be accessed, please verify and try again!\"\r\n );\r\n } else {\r\n options.ariaFormat = window[testJs];\r\n }\r\n } else {\r\n options.ariaFormat = options.format;\r\n }\r\n } else {\r\n options.ariaFormat = options.format;\r\n }\r\n }\r\n if (options.format) {\r\n if (!options.format.to || !options.format.from) {\r\n throw new Error(\r\n \"The supplied format function \" +\r\n options.format +\r\n \" is missing required method to or from, please verify and try again!\"\r\n );\r\n }\r\n }\r\n if (options.ariaFormat) {\r\n if (!options.ariaFormat.to || !options.ariaFormat.from) {\r\n throw new Error(\r\n \"The supplied format function \" +\r\n options.format +\r\n \" is missing required method to or from, please verify and try again!\"\r\n );\r\n }\r\n }\r\n },\r\n // Event Handlers\r\n endEventHandler = function () {\r\n var data = get();\r\n if (!Array.isArray(data)) {\r\n data = asArray(data);\r\n }\r\n for (var d = 0; d < data.length; d++) {\r\n data[d] = typeof data[d] == \"string\" ? data[d] : options.format.to(data[d]);\r\n }\r\n var containers = null;\r\n if (handles.length == 1) {\r\n containers = maxContainers;\r\n } else {\r\n containers = minContainers;\r\n }\r\n\r\n for (var c = 0; containers.length > c; c++) {\r\n containers[c].innerHTML = data[0];\r\n }\r\n if (handles.length > 1) {\r\n for (var max = 0; maxContainers.length > max; max++) {\r\n maxContainers[max].innerHTML = data[1];\r\n }\r\n }\r\n var details = {};\r\n if (data[1]) {\r\n details.min = data[0];\r\n details.max = data[1];\r\n } else {\r\n details.value = data[0];\r\n }\r\n uicoreCustomEvent(\"Slider\", \"SlideEnd\", element, details);\r\n },\r\n focusEventHandler = function (e) {\r\n e[\"currentTarget\"].classList.add(prefix + \"slider-active\");\r\n },\r\n blurEventHandler = function (e) {\r\n e[\"currentTarget\"].classList.remove(prefix + \"slider-active\");\r\n },\r\n // Handles keydown on focused handles\r\n // Don't move the document when pressing arrow keys on focused handles\r\n eventKeydown = function (event, handleNumber) {\r\n if (isSliderDisabled() || isHandleDisabled(handleNumber)) {\r\n return false;\r\n }\r\n\r\n var horizontalKeys = [\"Left\", \"Right\"];\r\n var verticalKeys = [\"Down\", \"Up\"];\r\n var largeStepKeys = [\"PageDown\", \"PageUp\"];\r\n var edgeKeys = [\"Home\", \"End\"];\r\n\r\n if (options.dir && !options.ort) {\r\n // On an right-to-left slider, the left and right keys act inverted\r\n horizontalKeys.reverse();\r\n } else if (options.ort && !options.dir) {\r\n // On a top-to-bottom slider, the up and down keys act inverted\r\n verticalKeys.reverse();\r\n largeStepKeys.reverse();\r\n }\r\n\r\n // Strip \"Arrow\" for IE compatibility. https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key\r\n var key = event.key.replace(\"Arrow\", \"\");\r\n\r\n var isLargeDown = key === largeStepKeys[0];\r\n var isLargeUp = key === largeStepKeys[1];\r\n var isDown = key === verticalKeys[0] || key === horizontalKeys[0] || isLargeDown;\r\n var isUp = key === verticalKeys[1] || key === horizontalKeys[1] || isLargeUp;\r\n var isMin = key === edgeKeys[0];\r\n var isMax = key === edgeKeys[1];\r\n\r\n if (!isDown && !isUp && !isMin && !isMax) {\r\n return true;\r\n }\r\n\r\n event.preventDefault();\r\n\r\n var to;\r\n\r\n if (isUp || isDown) {\r\n var multiplier = 5;\r\n var direction = isDown ? 0 : 1;\r\n var steps = getNextStepsForHandle(handleNumber);\r\n var step = steps[direction];\r\n\r\n // At the edge of a slider, do nothing\r\n if (step === null) {\r\n return false;\r\n }\r\n\r\n // No step set, use the default of 10% of the sub-range\r\n if (step === false) {\r\n step = Spectrum.getDefaultStep(locations[handleNumber], isDown, 10);\r\n }\r\n\r\n if (isLargeUp || isLargeDown) {\r\n step *= multiplier;\r\n }\r\n\r\n // Step over zero-length ranges (#948);\r\n step = Math.max(step, 0.0000001);\r\n\r\n // Decrement for down steps\r\n step = (isDown ? -1 : 1) * step;\r\n\r\n to = values[handleNumber] + step;\r\n } else if (isMax) {\r\n // End key\r\n to = options.spectrum.xVal[options.spectrum.xVal.length - 1];\r\n } else {\r\n // Home key\r\n to = options.spectrum.xVal[0];\r\n }\r\n\r\n setHandle(handleNumber, spectrum.toStepping(to), true, true);\r\n\r\n fireEvent(\"slide\", handleNumber);\r\n fireEvent(\"update\", handleNumber);\r\n fireEvent(\"change\", handleNumber);\r\n fireEvent(\"set\", handleNumber);\r\n\r\n return false;\r\n },\r\n getNextStepsForHandle = function (handleNumber) {\r\n var location = locations[handleNumber];\r\n var nearbySteps = spectrum.getNearbySteps(location);\r\n var value = values[handleNumber];\r\n var increment = nearbySteps.thisStep.step;\r\n var decrement = null;\r\n\r\n // If snapped, directly use defined step value\r\n if (options.snap) {\r\n return [\r\n value - nearbySteps.stepBefore.startValue || null,\r\n nearbySteps.stepAfter.startValue - value || null,\r\n ];\r\n }\r\n\r\n // If the next value in this step moves into the next step,\r\n // the increment is the start of the next step - the current value\r\n if (increment !== false) {\r\n if (value + increment > nearbySteps.stepAfter.startValue) {\r\n increment = nearbySteps.stepAfter.startValue - value;\r\n }\r\n }\r\n\r\n // If the value is beyond the starting point\r\n if (value > nearbySteps.thisStep.startValue) {\r\n decrement = nearbySteps.thisStep.step;\r\n } else if (nearbySteps.stepBefore.step === false) {\r\n decrement = false;\r\n }\r\n\r\n // If a handle is at the start of a step, it always steps back into the previous step first\r\n else {\r\n decrement = value - nearbySteps.stepBefore.highestStep;\r\n }\r\n\r\n // Now, if at the slider edges, there is no in/decrement\r\n if (location === 100) {\r\n increment = null;\r\n } else if (location === 0) {\r\n decrement = null;\r\n }\r\n\r\n // As per #391, the comparison for the decrement step can have some rounding issues.\r\n var stepDecimals = spectrum.countStepDecimals();\r\n\r\n // Round per #391\r\n if (increment !== null && increment !== false) {\r\n increment = Number(increment.toFixed(stepDecimals));\r\n }\r\n\r\n if (decrement !== null && decrement !== false) {\r\n decrement = Number(decrement.toFixed(stepDecimals));\r\n }\r\n\r\n return [decrement, increment];\r\n },\r\n // Attach events to several slider parts.\r\n bindSliderEvents = function (behaviour) {\r\n // Attach the standard drag event to the handles.\r\n if (!behaviour.fixed) {\r\n handles.forEach(function (handle, index) {\r\n // These events are only bound to the visual handle\r\n // element, not the 'real' origin element.\r\n attachEvent(actions.start, handle.children[0], eventStart, {\r\n handleNumbers: [index],\r\n });\r\n });\r\n }\r\n\r\n // Attach the tap event to the slider base.\r\n if (behaviour.tap) {\r\n attachEvent(actions.start, sliderBase, eventTap, {});\r\n }\r\n\r\n // Fire hover events\r\n if (behaviour.hover) {\r\n // attachEvent(actions.move, sliderBase, eventHover, {\r\n // hover: true\r\n // });\r\n }\r\n\r\n // Make the range draggable.\r\n if (behaviour.drag) {\r\n connects.forEach(function (connect, index) {\r\n if (connect === false || index === 0 || index === connects.length - 1) {\r\n return;\r\n }\r\n\r\n var handleBefore = handles[index - 1];\r\n var handleAfter = handles[index];\r\n var eventHolders = [connect];\r\n\r\n connect.classList.add(prefix + \"slider-draggable\");\r\n\r\n // When the range is fixed, the entire range can\r\n // be dragged by the handles. The handle in the first\r\n // origin will propagate the start event upward,\r\n // but it needs to be bound manually on the other.\r\n if (behaviour.fixed) {\r\n eventHolders.push(handleBefore.children[0]);\r\n eventHolders.push(handleAfter.children[0]);\r\n }\r\n\r\n eventHolders.forEach(function (eventHolder) {\r\n attachEvent(actions.start, eventHolder, eventStart, {\r\n handles: [handleBefore, handleAfter],\r\n handleNumbers: [index - 1, index],\r\n });\r\n });\r\n });\r\n }\r\n },\r\n // Attach an event to this slider, possibly including a namespace\r\n bindEvent = function (namespacedEvent, callback) {\r\n events[namespacedEvent] = events[namespacedEvent] || [];\r\n events[namespacedEvent].push(callback);\r\n\r\n // If the event bound is 'update,' fire it immediately for all handles.\r\n if (namespacedEvent.split(\".\")[0] === \"update\") {\r\n handles.forEach(function (a, index) {\r\n fireEvent(\"update\", index);\r\n });\r\n }\r\n },\r\n // Helpers\r\n addNodeTo = function (addTarget, className) {\r\n var div = createElement(\"div\", {\r\n class: className ? className : \"\",\r\n });\r\n\r\n addTarget.appendChild(div);\r\n\r\n return div;\r\n },\r\n // Round a value to the closest 'to'.\r\n closest = function (value, to) {\r\n return Math.round(value / to) * to;\r\n },\r\n // Current position of an element relative to the document.\r\n offset = function (elem, orientation) {\r\n var rect = elem.getBoundingClientRect();\r\n var doc = elem.ownerDocument;\r\n var docElem = doc.documentElement;\r\n var pageOffset = getPageOffset(doc);\r\n\r\n // getBoundingClientRect contains left scroll in Chrome on Android.\r\n // I haven't found a feature detection that proves this. Worst case\r\n // scenario on mis-match: the 'tap' feature on horizontal sliders breaks.\r\n if (/webkit.*Chrome.*Mobile/i.test(navigator.userAgent)) {\r\n pageOffset.x = 0;\r\n }\r\n return orientation\r\n ? rect.top + pageOffset.y - docElem.clientTop\r\n : rect.left + pageOffset.x - docElem.clientLeft;\r\n },\r\n // Fire 'end' when a mouse or pen leaves the document.\r\n documentLeave = function (event, data) {\r\n if (event.type === \"mouseout\" && event.target.nodeName === \"HTML\" && event.relatedTarget === null) {\r\n eventEnd(event, data);\r\n }\r\n },\r\n // Handle movement on document for handle and range drag.\r\n eventMove = function (event, data) {\r\n // Check if we are moving up or down\r\n var movement = (options.dir ? -1 : 1) * (event.calcPoint - data.startCalcPoint);\r\n\r\n // Convert the movement into a percentage of the slider width/height\r\n var proposal = (movement * 100) / data.baseSize;\r\n\r\n moveHandles(movement > 0, proposal, data.locations, data.handleNumbers);\r\n },\r\n // Unbind move events on document, call callbacks.\r\n eventEnd = function (event, data) {\r\n // The handle is no longer active, so remove the class.\r\n if (data.handle) {\r\n data.handle.classList.remove(prefix + \"slider-active\");\r\n activeHandlesCount -= 1;\r\n }\r\n\r\n // Unbind the move and end events, which are added on 'start'.\r\n data.listeners.forEach(function (c) {\r\n DOC.removeEventListener(c[0], c[1]);\r\n });\r\n\r\n if (activeHandlesCount === 0) {\r\n // Remove dragging class.\r\n slider.classList.remove(prefix + \"slider-drag\");\r\n setZindex();\r\n\r\n // Remove cursor styles and text-selection events bound to the element.\r\n if (event.cursor) {\r\n element.style.cursor = \"\";\r\n }\r\n }\r\n\r\n data.handleNumbers.forEach(function (handleNumber) {\r\n fireEvent(\"change\", handleNumber);\r\n fireEvent(\"set\", handleNumber);\r\n fireEvent(\"end\", handleNumber);\r\n });\r\n },\r\n // Bind move events on document.\r\n eventStart = function (event, data) {\r\n // Ignore event if any handle is disabled\r\n if (data.handleNumbers.some(isHandleDisabled)) {\r\n return false;\r\n }\r\n\r\n var handle;\r\n\r\n if (data.handleNumbers.length === 1) {\r\n var handleOrigin = handles[data.handleNumbers[0]];\r\n\r\n handle = handleOrigin.children[0];\r\n activeHandlesCount += 1;\r\n\r\n // Mark the handle as 'active' so it can be styled.\r\n handle.classList.add(prefix + \"slider-active\");\r\n }\r\n\r\n // A drag should never propagate up to the 'tap' event.\r\n event.stopPropagation();\r\n\r\n // Record the event listeners.\r\n var listeners = [];\r\n\r\n // Attach the move and end events.\r\n var moveEvent = attachEvent(actions.move, DOC, eventMove, {\r\n // The event target has changed so we need to propagate the original one so that we keep\r\n // relying on it to extract target touches.\r\n target: event.target,\r\n handle: handle,\r\n listeners: listeners,\r\n startCalcPoint: event.calcPoint,\r\n baseSize: baseSize(),\r\n pageOffset: event.pageOffset,\r\n handleNumbers: data.handleNumbers,\r\n buttonsProperty: event.buttons,\r\n locations: locations.slice(),\r\n });\r\n\r\n var endEvent = attachEvent(actions.end, DOC, eventEnd, {\r\n target: event.target,\r\n handle: handle,\r\n listeners: listeners,\r\n doNotReject: true,\r\n handleNumbers: data.handleNumbers,\r\n });\r\n\r\n var outEvent = attachEvent(\"mouseout\", DOC, documentLeave, {\r\n target: event.target,\r\n handle: handle,\r\n listeners: listeners,\r\n doNotReject: true,\r\n handleNumbers: data.handleNumbers,\r\n });\r\n\r\n // We want to make sure we pushed the listeners in the listener list rather than creating\r\n // a new one as it has already been passed to the event handlers.\r\n listeners.push.apply(listeners, moveEvent.concat(endEvent, outEvent));\r\n\r\n // Text selection isn't an issue on touch devices,\r\n // so adding cursor styles can be skipped.\r\n if (event.cursor) {\r\n // Prevent the 'I' cursor and extend the range-drag cursor.\r\n element.style.cursor = getComputedStyle(event.target).cursor;\r\n\r\n // Mark the target with a dragging state.\r\n if (handles.length > 1) {\r\n slider.classList.add(prefix + \"slider-drag\");\r\n }\r\n }\r\n\r\n data.handleNumbers.forEach(function (handleNumber) {\r\n fireEvent(\"start\", handleNumber);\r\n });\r\n },\r\n // Move closest handle to tapped location.\r\n eventTap = function (event) {\r\n // The tap event shouldn't propagate up\r\n event.stopPropagation();\r\n\r\n var proposal = calcPointToPercentage(event.calcPoint);\r\n var handleNumber = getClosestHandle(proposal);\r\n\r\n // Tackle the case that all handles are 'disabled'.\r\n if (handleNumber === false) {\r\n return false;\r\n }\r\n\r\n // Flag the slider as it is now in a transitional state.\r\n // Transition takes a configurable amount of ms (default 300). Re-enable the slider after that.\r\n if (!events.snap) {\r\n addClassFor(slider, prefix + \"slider-tap\", options.animationDuration);\r\n }\r\n\r\n setHandle(handleNumber, proposal, true, true);\r\n\r\n setZindex();\r\n\r\n fireEvent(\"slide\", handleNumber, true);\r\n fireEvent(\"update\", handleNumber, true);\r\n fireEvent(\"change\", handleNumber, true);\r\n fireEvent(\"set\", handleNumber, true);\r\n\r\n if (events.snap) {\r\n eventStart(event, { handleNumbers: [handleNumber] });\r\n }\r\n },\r\n addTooltip = function (handle, handleNumber) {\r\n if (!options.tooltips[handleNumber]) {\r\n return false;\r\n }\r\n\r\n return addNodeTo(handle.firstChild, prefix + \"slider-tooltip\");\r\n },\r\n isSliderDisabled = function () {\r\n return slider.hasAttribute(\"disabled\");\r\n },\r\n // Disable the slider dragging if any handle is disabled\r\n isHandleDisabled = function (handleNumber) {\r\n var handleOrigin = handles[handleNumber];\r\n return handleOrigin.hasAttribute(\"disabled\");\r\n },\r\n // Append a origin to the base\r\n addOrigin = function (handleNumber) {\r\n var origin = addNodeTo(sliderBase, prefix + \"slider-origin\");\r\n var handle = addNodeTo(origin, prefix + \"slider-handle\");\r\n\r\n addNodeTo(handle, prefix + \"slider-touch-area\");\r\n\r\n handle.setAttribute(\"data-handle\", handleNumber);\r\n\r\n // keyboard support\r\n handle.setAttribute(\"tabindex\", \"0\");\r\n handle.addEventListener(\"keydown\", function (event) {\r\n return eventKeydown(event, handleNumber);\r\n });\r\n\r\n handle.setAttribute(\"role\", \"slider\");\r\n handle.setAttribute(\"aria-orientation\", options.ort ? \"vertical\" : \"horizontal\");\r\n\r\n if (options.handles == 1) {\r\n handle.classList.add(prefix + \"slider-handle-upper\");\r\n } else if (handleNumber === 0) {\r\n handle.classList.add(prefix + \"slider-handle-lower\");\r\n } else {\r\n handle.classList.add(prefix + \"slider-handle-upper\");\r\n }\r\n\r\n return origin;\r\n },\r\n // nsert nodes for connect elements\r\n addConnect = function (base, add) {\r\n if (!add) {\r\n return false;\r\n }\r\n\r\n return addNodeTo(base, prefix + \"slider-connect\");\r\n },\r\n addLabels = function () {\r\n var min, max, minLabel, maxLabel;\r\n var minValue = options.format.to(options.range.min);\r\n var maxValue = options.format.to(options.range.max);\r\n if (handles.length == 1) {\r\n max = createElement(\"div\", {\r\n class: prefix + \"slider-max\",\r\n });\r\n maxLabel = addNodeTo(max);\r\n maxLabel.innerHTML = maxValue;\r\n maxContainers.push(maxLabel);\r\n } else {\r\n min = createElement(\"div\", {\r\n class: prefix + \"slider-min\",\r\n });\r\n minLabel = addNodeTo(min);\r\n minLabel.innerHTML = minValue;\r\n minContainers.push(minLabel);\r\n max = createElement(\"div\", {\r\n class: prefix + \"slider-max\",\r\n });\r\n maxLabel = addNodeTo(max);\r\n maxLabel.innerHTML = maxValue;\r\n maxContainers.push(maxLabel);\r\n }\r\n if (options.ort === 0) {\r\n if (min) {\r\n container.insertBefore(min, container.childNodes[0]);\r\n }\r\n container.appendChild(max);\r\n } else {\r\n if (min) {\r\n container.appendChild(min);\r\n }\r\n container.insertBefore(max, container.childNodes[0]);\r\n }\r\n },\r\n addContent = function () {\r\n var label = createElement(\"div\", {\r\n class:\r\n prefix +\r\n \"text-no-wrap \" +\r\n prefix +\r\n \"mb-3\" +\r\n (options.ort == 1\r\n ? \" \" + prefix + \"d-flex \" + prefix + \"flex-column \" + prefix + \"align-items-center\"\r\n : \"\"),\r\n });\r\n var text = DOC.createTextNode(options.content);\r\n label.appendChild(text);\r\n element.insertBefore(label, element.firstChild);\r\n if (options.showRange) {\r\n var span = createElement(\"span\", {\r\n html:\r\n \" ( \" +\r\n options.format.to(options.range.min) +\r\n \" - \" +\r\n options.format.to(options.range.max) +\r\n \" )\",\r\n });\r\n label.appendChild(span);\r\n }\r\n },\r\n addContainer = function () {\r\n container = element.querySelector(\".\" + prefix + \"slider-container\");\r\n\r\n // if vertical add class to parent\r\n if (options.ort == 1) {\r\n container.classList.add(prefix + \"slider-container-vertical\");\r\n }\r\n\r\n // update wrapper to singe with one handle\r\n if (options.handles == 1) {\r\n var wrapper = container.querySelector(\".\" + prefix + \"slider-wrapper\");\r\n wrapper.classList.remove(prefix + \"slider-wrapper\");\r\n wrapper.classList.add(prefix + \"slider-wrapper-single\");\r\n }\r\n },\r\n addElements = function () {\r\n var connectBase = addNodeTo(sliderBase, prefix + \"slider-connects\");\r\n\r\n handles = [];\r\n connects = [];\r\n handleNumbers = [];\r\n var optConnects;\r\n\r\n if (options.handles === 1) {\r\n optConnects = [true, false];\r\n } else {\r\n optConnects = [false, options.range, false];\r\n }\r\n connects.push(addConnect(connectBase, optConnects[0]));\r\n\r\n for (var i = 0; i < options.handles; i++) {\r\n // Keep a list of all added handles.\r\n handles.push(addOrigin(i));\r\n handleNumbers[i] = i;\r\n connects.push(addConnect(connectBase, optConnects[i + 1]));\r\n }\r\n },\r\n // Initialize a single slider.\r\n addSlider = function () {\r\n if (options.dir === 0) {\r\n slider.classList.add(prefix + \"slider-ltr\");\r\n } else {\r\n slider.classList.add(prefix + \"slider-rtl\");\r\n }\r\n\r\n if (options.ort === 0) {\r\n slider.classList.add(prefix + \"slider-horizontal\");\r\n } else {\r\n slider.classList.add(prefix + \"slider-vertical\");\r\n }\r\n\r\n var base = addNodeTo(slider, prefix + \"slider-base\");\r\n base.setAttribute(\"tabindex\", \"0\");\r\n base.setAttribute(\r\n \"aria-label\",\r\n (options.content ? options.content : \"Slider\") +\r\n \" \" +\r\n options.format.to(options.range.min) +\r\n \" to \" +\r\n options.format.to(options.range.max)\r\n );\r\n\r\n return base;\r\n },\r\n valueSet = function (input, fireSetEvent) {\r\n var values = asArray(input);\r\n var isInit = locations[0] === undefined;\r\n\r\n // Event fires by default\r\n fireSetEvent = fireSetEvent === undefined ? true : !!fireSetEvent;\r\n\r\n // Animation is optional.\r\n // Make sure the initial values were set before using animated placement.\r\n if (options.animate && !isInit) {\r\n addClassFor(slider, prefix + \"slider-tap\", options.animationDuration);\r\n }\r\n\r\n // First pass, without lookAhead but with lookBackward. Values are set from left to right.\r\n handleNumbers.forEach(function (handleNumber) {\r\n setHandle(handleNumber, resolveToValue(values[handleNumber], handleNumber), true, false);\r\n });\r\n\r\n // Second pass. Now that all base values are set, apply constraints\r\n handleNumbers.forEach(function (handleNumber) {\r\n setHandle(handleNumber, locations[handleNumber], true, true);\r\n });\r\n\r\n setZindex();\r\n\r\n handleNumbers.forEach(function (handleNumber) {\r\n fireEvent(\"update\", handleNumber);\r\n\r\n // Fire the event only for handles that received a new value, as per #579\r\n if (values[handleNumber] !== null && fireSetEvent) {\r\n fireEvent(\"set\", handleNumber);\r\n }\r\n });\r\n },\r\n asArray = function (a) {\r\n return Array.isArray(a) ? a : [a];\r\n },\r\n addClassFor = function (element, className, duration) {\r\n if (duration > 0) {\r\n element.classList.add(className);\r\n setTimeout(function () {\r\n element.classList.remove(className);\r\n }, duration);\r\n }\r\n },\r\n // Counts decimals\r\n countDecimals = function (numStr) {\r\n numStr = String(numStr);\r\n var pieces = numStr.split(\".\");\r\n return pieces.length > 1 ? pieces[1].length : 0;\r\n },\r\n // Limits a value to 0 - 100\r\n limit = function (a) {\r\n return Math.max(Math.min(a, 100), 0);\r\n },\r\n // Moves handle(s) by a percentage\r\n // (bool, % to move, [% where handle started, ...], [index in handles, ...])\r\n moveHandles = function (upward, proposal, locations, handleNumbers) {\r\n var proposals = locations.slice();\r\n\r\n var b = [!upward, upward];\r\n var f = [upward, !upward];\r\n\r\n // Copy handleNumbers so we don't change the dataset\r\n handleNumbers = handleNumbers.slice();\r\n\r\n // Check to see which handle is 'leading'.\r\n // If that one can't move the second can't either.\r\n if (upward) {\r\n handleNumbers.reverse();\r\n }\r\n\r\n // Step 1: get the maximum percentage that any of the handles can move\r\n if (handleNumbers.length > 1) {\r\n handleNumbers.forEach(function (handleNumber, o) {\r\n var to = checkHandlePosition(\r\n proposals,\r\n handleNumber,\r\n proposals[handleNumber] + proposal,\r\n b[o],\r\n f[o],\r\n false\r\n );\r\n\r\n // Stop if one of the handles can't move.\r\n if (to === false) {\r\n proposal = 0;\r\n } else {\r\n proposal = to - proposals[handleNumber];\r\n proposals[handleNumber] = to;\r\n }\r\n });\r\n }\r\n\r\n // If using one handle, check backward AND forward\r\n else {\r\n b = f = [true];\r\n }\r\n\r\n var state = false;\r\n\r\n // Step 2: Try to set the handles with the found percentage\r\n handleNumbers.forEach(function (handleNumber, o) {\r\n state = setHandle(handleNumber, locations[handleNumber] + proposal, b[o], f[o]) || state;\r\n });\r\n\r\n // Step 3: If a handle moved, fire events\r\n if (state) {\r\n handleNumbers.forEach(function (handleNumber) {\r\n fireEvent(\"update\", handleNumber);\r\n fireEvent(\"slide\", handleNumber);\r\n });\r\n }\r\n },\r\n // Takes a base value and an offset. This offset is used for the connect bar size.\r\n // In the initial design for this feature, the origin element was 1% wide.\r\n // Unfortunately, a rounding bug in Chrome makes it impossible to implement this feature\r\n // in this manner: https://bugs.chromium.org/p/chromium/issues/detail?id=798223\r\n transformDirection = function (a, b) {\r\n return options.dir ? 100 - a - b : a;\r\n },\r\n // Updates locations and values, updates visual state\r\n updateHandlePosition = function (handleNumber, to) {\r\n // Update locations.\r\n locations[handleNumber] = to;\r\n\r\n // Convert the value to the slider stepping/range.\r\n values[handleNumber] = spectrum.fromStepping(to);\r\n\r\n var rule = \"translate(\" + inRuleOrder(transformDirection(to, 0) - dirOffset + \"%\", \"0\") + \")\";\r\n handles[handleNumber].style[transformRule] = rule;\r\n\r\n updateConnect(handleNumber);\r\n updateConnect(handleNumber + 1);\r\n },\r\n // Test suggested values and apply margin, step.\r\n setHandle = function (handleNumber, to, lookBackward, lookForward) {\r\n to = checkHandlePosition(locations, handleNumber, to, lookBackward, lookForward, false);\r\n\r\n if (to === false) {\r\n return false;\r\n }\r\n\r\n updateHandlePosition(handleNumber, to);\r\n\r\n return true;\r\n },\r\n // Updates style attribute for connect nodes\r\n updateConnect = function (index) {\r\n // Skip connects set to false\r\n if (!connects[index]) {\r\n return;\r\n }\r\n\r\n var l = 0;\r\n var h = 100;\r\n\r\n if (index !== 0) {\r\n l = locations[index - 1];\r\n }\r\n\r\n if (index !== connects.length - 1) {\r\n h = locations[index];\r\n }\r\n\r\n // We use two rules:\r\n // 'translate' to change the left/top offset;\r\n // 'scale' to change the width of the element;\r\n // As the element has a width of 100%, a translation of 100% is equal to 100% of the parent (.noUi-base)\r\n var connectWidth = h - l;\r\n var translateRule = \"translate(\" + inRuleOrder(transformDirection(l, connectWidth) + \"%\", \"0\") + \")\";\r\n var scaleRule = \"scale(\" + inRuleOrder(connectWidth / 100, \"1\") + \")\";\r\n\r\n connects[index].style[transformRule] = translateRule + \" \" + scaleRule;\r\n },\r\n setZindex = function () {\r\n handleNumbers.forEach(function (handleNumber) {\r\n var dir = locations[handleNumber] > 50 ? -1 : 1;\r\n var zIndex = 3 + (handles.length + dir * handleNumber);\r\n handles[handleNumber].style.zIndex = zIndex;\r\n });\r\n },\r\n // Undo attachment of event\r\n removeEvent = function (namespacedEvent) {\r\n var event = namespacedEvent && namespacedEvent.split(\".\")[0];\r\n var namespace = event && namespacedEvent.substring(event.length);\r\n\r\n Object.keys(events).forEach(function (bind) {\r\n var tEvent = bind.split(\".\")[0];\r\n var tNamespace = bind.substring(tEvent.length);\r\n\r\n if ((!event || event === tEvent) && (!namespace || namespace === tNamespace)) {\r\n delete events[bind];\r\n }\r\n });\r\n },\r\n // External event handling\r\n fireEvent = function (eventName, handleNumber, tap) {\r\n Object.keys(events).forEach(function (targetEvent) {\r\n var eventType = targetEvent.split(\".\")[0];\r\n\r\n if (eventName === eventType) {\r\n events[targetEvent].forEach(function (callback) {\r\n callback.call(\r\n // Use the slider public API as the scope ('this')\r\n self,\r\n // Return values as array, so arg_1[arg_2] is always valid.\r\n values.map(options.format.to),\r\n // Handle index, 0 or 1\r\n handleNumber,\r\n // Un-formatted slider values\r\n values.slice(),\r\n // Event is fired by tap, true or false\r\n tap || false,\r\n // Left offset of the handle, in relation to the slider\r\n locations.slice()\r\n );\r\n });\r\n }\r\n });\r\n },\r\n // Split out the handle positioning logic so the Move event can use it, too\r\n checkHandlePosition = function (reference, handleNumber, to, lookBackward, lookForward, getValue) {\r\n // For sliders with multiple handles, limit movement to the other handle.\r\n // Apply the margin option by adding it to the handle positions.\r\n if (handles.length > 1 && !optEvents.unconstrained) {\r\n if (lookBackward && handleNumber > 0) {\r\n to = Math.max(to, reference[handleNumber - 1] + options.margin);\r\n }\r\n\r\n if (lookForward && handleNumber < handles.length - 1) {\r\n to = Math.min(to, reference[handleNumber + 1] - options.margin);\r\n }\r\n }\r\n\r\n // The limit option has the opposite effect, limiting handles to a\r\n // maximum distance from another. Limit must be > 0, as otherwise\r\n // handles would be unmovable.\r\n if (handles.length > 1 && options.limit) {\r\n if (lookBackward && handleNumber > 0) {\r\n to = Math.min(to, reference[handleNumber - 1] + options.limit);\r\n }\r\n\r\n if (lookForward && handleNumber < handles.length - 1) {\r\n to = Math.max(to, reference[handleNumber + 1] - options.limit);\r\n }\r\n }\r\n\r\n // The padding option keeps the handles a certain distance from the\r\n // edges of the slider. Padding must be > 0.\r\n if (options.padding) {\r\n if (handleNumber === 0) {\r\n to = Math.max(to, options.padding[0]);\r\n }\r\n\r\n if (handleNumber === handles.length - 1) {\r\n to = Math.min(to, 100 - options.padding[1]);\r\n }\r\n }\r\n\r\n to = spectrum.getStep(to);\r\n\r\n // Limit percentage to the 0 - 100 range\r\n to = limit(to);\r\n\r\n // Return false if handle can't move\r\n if (to === reference[handleNumber] && !getValue) {\r\n return false;\r\n }\r\n\r\n return to;\r\n },\r\n // Uses slider orientation to create CSS rules. a = base value;\r\n inRuleOrder = function (v, a) {\r\n var o = options.ort;\r\n return (o ? a : v) + \", \" + (o ? v : a);\r\n },\r\n // Parses value passed to .set method. Returns current value if not parse-able.\r\n resolveToValue = function (to, handleNumber) {\r\n // Setting with null indicates an 'ignore'.\r\n // Inputting 'false' is invalid.\r\n if (to === null || to === false || to === undefined) {\r\n return locations[handleNumber];\r\n }\r\n\r\n // If a formatted number was passed, attempt to decode it.\r\n if (typeof to === \"number\") {\r\n to = String(to);\r\n }\r\n\r\n to = options.format.from(to);\r\n to = spectrum.toStepping(to);\r\n\r\n // If parsing the number failed, use the current value.\r\n if (to === false || isNaN(to)) {\r\n return locations[handleNumber];\r\n }\r\n\r\n return to;\r\n },\r\n toStepping = function (xVal, xPct, value) {\r\n if (value >= xVal.slice(-1)[0]) {\r\n return 100;\r\n }\r\n\r\n var j = getJ(value, xVal);\r\n var va = xVal[j - 1];\r\n var vb = xVal[j];\r\n var pa = xPct[j - 1];\r\n var pb = xPct[j];\r\n\r\n return pa + toPercentage([va, vb], value) / subRangeRatio(pa, pb);\r\n },\r\n // (value) Input a percentage, find where it is on the specified range.\r\n fromStepping = function (xVal, xPct, value) {\r\n // There is no range group that fits 100\r\n if (value >= 100) {\r\n return xVal.slice(-1)[0];\r\n }\r\n\r\n var j = getJ(value, xPct);\r\n var va = xVal[j - 1];\r\n var vb = xVal[j];\r\n var pa = xPct[j - 1];\r\n var pb = xPct[j];\r\n\r\n return isPercentage([va, vb], (value - pa) * subRangeRatio(pa, pb));\r\n },\r\n subRangeRatio = function (pa, pb) {\r\n return 100 / (pb - pa);\r\n },\r\n // (percentage) How many percent is this value of this range?\r\n fromPercentage = function (range, value) {\r\n return (value * 100) / (range[1] - range[0]);\r\n },\r\n // (percentage) Where is this value on this range?\r\n toPercentage = function (range, value) {\r\n return fromPercentage(range, range[0] < 0 ? value + Math.abs(range[0]) : value - range[0]);\r\n },\r\n // (percentage) Get the step that applies at a certain value.\r\n getStep = function (xPct, xSteps, snap, value) {\r\n if (value === 100) {\r\n return value;\r\n }\r\n\r\n var j = getJ(value, xPct);\r\n var a = xPct[j - 1];\r\n var b = xPct[j];\r\n\r\n // If 'snap' is set, steps are used as fixed points on the slider.\r\n if (snap) {\r\n // Find the closest position, a or b.\r\n if (value - a > (b - a) / 2) {\r\n return b;\r\n }\r\n\r\n return a;\r\n }\r\n\r\n if (!xSteps[j - 1]) {\r\n return value;\r\n }\r\n\r\n return xPct[j - 1] + closest(value - xPct[j - 1], xSteps[j - 1]);\r\n },\r\n handleEntryPoint = function (index, value, that) {\r\n var percentage;\r\n\r\n // Wrap numerical input in an array.\r\n if (typeof value === \"number\") {\r\n value = [value];\r\n }\r\n\r\n // Reject any invalid input, by testing whether value is an array.\r\n if (!isArray(value)) {\r\n throw new Error(\"Slider 'range' contains invalid value.\");\r\n }\r\n\r\n // Covert min/max syntax to 0 and 100.\r\n if (index === \"min\") {\r\n percentage = 0;\r\n } else if (index === \"max\") {\r\n percentage = 100;\r\n } else {\r\n percentage = parseFloat(index);\r\n }\r\n\r\n // Check for correct input.\r\n if (!isNumeric(percentage) || !isNumeric(value[0])) {\r\n throw new Error(\"Slider 'range' value isn't numeric.\");\r\n }\r\n\r\n // Store values.\r\n that.xPct.push(percentage);\r\n that.xVal.push(value[0]);\r\n\r\n // NaN will evaluate to false too, but to keep\r\n // logging clear, set step explicitly. Make sure\r\n // not to override the 'step' setting with false.\r\n if (!percentage) {\r\n if (!isNaN(value[1])) {\r\n that.xSteps[0] = value[1];\r\n }\r\n } else {\r\n that.xSteps.push(isNaN(value[1]) ? false : value[1]);\r\n }\r\n\r\n that.xHighestCompleteStep.push(0);\r\n },\r\n handleStepPoint = function (i, n, that) {\r\n // Ignore 'false' stepping.\r\n if (!n) {\r\n return;\r\n }\r\n\r\n // Step over zero-length ranges (#948);\r\n if (that.xVal[i] === that.xVal[i + 1]) {\r\n that.xSteps[i] = that.xHighestCompleteStep[i] = that.xVal[i];\r\n\r\n return;\r\n }\r\n\r\n // Factor to range ratio\r\n that.xSteps[i] =\r\n fromPercentage([that.xVal[i], that.xVal[i + 1]], n) / subRangeRatio(that.xPct[i], that.xPct[i + 1]);\r\n\r\n var totalSteps = (that.xVal[i + 1] - that.xVal[i]) / that.xNumSteps[i];\r\n var highestStep = Math.ceil(Number(totalSteps.toFixed(3)) - 1);\r\n var step = that.xVal[i] + that.xNumSteps[i] * highestStep;\r\n\r\n that.xHighestCompleteStep[i] = step;\r\n },\r\n // Checks whether a value is numerical.\r\n isNumeric = function (a) {\r\n return typeof a === \"number\" && !isNaN(a) && isFinite(a);\r\n },\r\n // (value) How much is this percentage on this range?\r\n isPercentage = function (range, value) {\r\n return (value * (range[1] - range[0])) / 100 + range[0];\r\n },\r\n getJ = function (value, arr) {\r\n var j = 1;\r\n\r\n while (value >= arr[j]) {\r\n j += 1;\r\n }\r\n\r\n return j;\r\n },\r\n // Shorthand for base dimensions.\r\n baseSize = function () {\r\n var rect = sliderBase.getBoundingClientRect();\r\n var alt = \"offset\" + [\"Width\", \"Height\"][options.ort];\r\n return options.ort === 0 ? rect.width || sliderBase[alt] : rect.height || sliderBase[alt];\r\n },\r\n // Handler for attaching events trough a proxy.\r\n attachEvent = function (events, element, callback, data) {\r\n // This function can be used to 'filter' events to the slider.\r\n // element is a node, not a nodeList\r\n\r\n var method = function (e) {\r\n e = fixEvent(e, data.pageOffset, data.target || element);\r\n\r\n // fixEvent returns false if this event has a different target\r\n // when handling (multi-) touch events;\r\n if (!e) {\r\n return false;\r\n }\r\n\r\n // doNotReject is passed by all end events to make sure released touches\r\n // are not rejected, leaving the slider \"stuck\" to the cursor;\r\n if (isSliderDisabled() && !data.doNotReject) {\r\n return false;\r\n }\r\n\r\n // Stop if an active 'tap' transition is taking place.\r\n if (slider.classList.contains(prefix + \"slider-tap\") && !data.doNotReject) {\r\n return false;\r\n }\r\n\r\n // Ignore right or middle clicks on start #454\r\n if (events === actions.start && e.buttons !== undefined && e.buttons > 1) {\r\n return false;\r\n }\r\n\r\n // Ignore right or middle clicks on start #454\r\n if (data.hover && e.buttons) {\r\n return false;\r\n }\r\n\r\n // 'supportsPassive' is only true if a browser also supports touch-action: none in CSS.\r\n // iOS safari does not, so it doesn't get to benefit from passive scrolling. iOS does support\r\n // touch-action: manipulation, but that allows panning, which breaks\r\n // sliders after zooming/on non-responsive pages.\r\n // See: https://bugs.webkit.org/show_bug.cgi?id=133112\r\n if (!supportsPassive) {\r\n e.preventDefault();\r\n }\r\n\r\n e.calcPoint = e.points[options.ort];\r\n\r\n // Call the event handler with the event [ and additional data ].\r\n callback(e, data);\r\n };\r\n\r\n var methods = [];\r\n\r\n // Bind a closure on the target for every event type.\r\n events.split(\" \").forEach(function (eventName) {\r\n element.addEventListener(eventName, method, supportsPassive ? { passive: true } : false);\r\n methods.push([eventName, method]);\r\n });\r\n\r\n return methods;\r\n },\r\n // Provide a clean event with standardized offset values.\r\n fixEvent = function (e, pageOffset, eventTarget) {\r\n // Filter the event to register the type, which can be\r\n // touch, mouse or pointer. Offset changes need to be\r\n // made on an event specific basis.\r\n var touch = e.type.indexOf(\"touch\") === 0;\r\n var mouse = e.type.indexOf(\"mouse\") === 0;\r\n var pointer = e.type.indexOf(\"pointer\") === 0;\r\n\r\n var x;\r\n var y;\r\n\r\n // The only thing one handle should be concerned about is the touches that originated on top of it.\r\n if (touch) {\r\n // Returns true if a touch originated on the target.\r\n var isTouchOnTarget = function (checkTouch) {\r\n return checkTouch.target === eventTarget || eventTarget.contains(checkTouch.target);\r\n };\r\n\r\n // In the case of touchstart events, we need to make sure there is still no more than one\r\n // touch on the target so we look amongst all touches.\r\n if (e.type === \"touchstart\") {\r\n var targetTouches = Array.prototype.filter.call(e.touches, isTouchOnTarget);\r\n\r\n // Do not support more than one touch per handle.\r\n if (targetTouches.length > 1) {\r\n return false;\r\n }\r\n\r\n x = targetTouches[0].pageX;\r\n y = targetTouches[0].pageY;\r\n } else {\r\n // In the other cases, find on changedTouches is enough.\r\n var targetTouch = Array.prototype.find.call(e.changedTouches, isTouchOnTarget);\r\n\r\n // Cancel if the target touch has not moved.\r\n if (!targetTouch) {\r\n return false;\r\n }\r\n\r\n x = targetTouch.pageX;\r\n y = targetTouch.pageY;\r\n }\r\n }\r\n\r\n pageOffset = pageOffset || getPageOffset(DOC);\r\n\r\n if (mouse || pointer) {\r\n x = e.clientX + pageOffset.x;\r\n y = e.clientY + pageOffset.y;\r\n }\r\n\r\n e.pageOffset = pageOffset;\r\n e.points = [x, y];\r\n e.cursor = mouse || pointer; // Fix #435\r\n\r\n return e;\r\n },\r\n // Translate a coordinate in the document to a percentage on the slider\r\n calcPointToPercentage = function (calcPoint) {\r\n var location = calcPoint - offset(sliderBase, options.ort);\r\n var proposal = (location * 100) / baseSize();\r\n\r\n // Clamp proposal between 0% and 100%\r\n proposal = limit(proposal);\r\n\r\n return options.dir ? 100 - proposal : proposal;\r\n },\r\n // Find handle closest to a certain percentage on the slider\r\n getClosestHandle = function (proposal) {\r\n var closest = 100;\r\n var handleNumber = false;\r\n\r\n handles.forEach(function (handle, index) {\r\n // Disabled handles are ignored\r\n if (isHandleDisabled(index)) {\r\n return;\r\n }\r\n\r\n var pos = Math.abs(locations[index] - proposal);\r\n\r\n if (pos < closest || (pos === 100 && closest === 100)) {\r\n handleNumber = index;\r\n closest = pos;\r\n }\r\n });\r\n\r\n return handleNumber;\r\n },\r\n removeTooltips = function () {\r\n if (tooltips) {\r\n removeEvent(\"update.tooltips\");\r\n tooltips.forEach(function (tooltip) {\r\n if (tooltip) {\r\n removeElement(tooltip);\r\n }\r\n });\r\n tooltips = null;\r\n }\r\n },\r\n // The tooltips option is a shorthand for using the 'update' event.\r\n setTooltips = function () {\r\n removeTooltips();\r\n\r\n // Tooltips are added with options.tooltips in original order.\r\n tooltips = handles.map(addTooltip);\r\n\r\n bindEvent(\"update.tooltips\", function (values, handleNumber, unencoded) {\r\n if (!tooltips[handleNumber]) {\r\n return;\r\n }\r\n\r\n var formattedValue = values[handleNumber];\r\n\r\n if (options.tooltips[handleNumber] !== true) {\r\n formattedValue = options.tooltips[handleNumber].to(unencoded[handleNumber]);\r\n }\r\n\r\n tooltips[handleNumber].innerHTML = formattedValue;\r\n });\r\n\r\n // Fix for vertical sliders, if tooltip flows off the window move it the right side.\r\n if (\r\n options.ort == 1 &&\r\n offWindowLeft(\r\n handles[0].querySelector(\".\" + prefix + \"slider-tooltip\"),\r\n handles[0].querySelector(\"div.\" + prefix + \"slider-handle\")\r\n )\r\n ) {\r\n each(handles, function (handle) {\r\n handle.querySelector(\".\" + prefix + \"slider-tooltip\").style.right = \"auto\";\r\n handle.querySelector(\".\" + prefix + \"slider-tooltip\").style.left = \"120%\";\r\n });\r\n }\r\n },\r\n aria = function () {\r\n bindEvent(\"update\", function (values, handleNumber, unencoded, tap, positions) {\r\n // Update Aria Values for all handles, as a change in one changes min and max values for the next.\r\n handleNumbers.forEach(function (index) {\r\n var handle = handles[index];\r\n\r\n var min = checkHandlePosition(locations, index, 0, true, true, true);\r\n var max = checkHandlePosition(locations, index, 100, true, true, true);\r\n\r\n var now = positions[index];\r\n\r\n // Formatted value for display\r\n var text = options.ariaFormat.to(unencoded[index]);\r\n\r\n // Map to slider range values\r\n min = spectrum.fromStepping(min).toFixed(options.percision);\r\n max = spectrum.fromStepping(max).toFixed(options.percision);\r\n now = spectrum.fromStepping(now).toFixed(options.percision);\r\n\r\n handle.children[0].setAttribute(\"aria-valuemin\", min);\r\n handle.children[0].setAttribute(\"aria-valuemax\", max);\r\n handle.children[0].setAttribute(\"aria-valuenow\", now);\r\n handle.children[0].setAttribute(\"aria-valuetext\", text);\r\n });\r\n });\r\n },\r\n // Get the slider value.\r\n get = function () {\r\n var v = values.map(options.format.to);\r\n\r\n // If only one handle is used, return a single value.\r\n if (v.length === 1) {\r\n return values[0];\r\n }\r\n\r\n return v;\r\n },\r\n removeElement = function (el) {\r\n el.parentElement.removeChild(el);\r\n },\r\n getPageOffset = function (doc) {\r\n var supportPageOffset = window.pageXOffset !== undefined;\r\n var isCSS1Compat = (doc.compatMode || \"\") === \"CSS1Compat\";\r\n var x = supportPageOffset\r\n ? window.pageXOffset\r\n : isCSS1Compat\r\n ? doc.documentElement.scrollLeft\r\n : doc.body.scrollLeft;\r\n var y = supportPageOffset\r\n ? window.pageYOffset\r\n : isCSS1Compat\r\n ? doc.documentElement.scrollTop\r\n : doc.body.scrollTop;\r\n\r\n return {\r\n x: x,\r\n y: y,\r\n };\r\n },\r\n // we provide a function to compute constants instead\r\n // of accessing window.* as soon as the module needs it\r\n // so that we do not compute anything if not needed\r\n getActions = function () {\r\n // Determine the events to bind. IE11 implements pointerEvents without\r\n // a prefix, which breaks compatibility with the IE10 implementation.\r\n return window.navigator.pointerEnabled\r\n ? {\r\n start: \"pointerdown\",\r\n move: \"pointermove\",\r\n end: \"pointerup\",\r\n }\r\n : window.navigator.msPointerEnabled\r\n ? {\r\n start: \"MSPointerDown\",\r\n move: \"MSPointerMove\",\r\n end: \"MSPointerUp\",\r\n }\r\n : {\r\n start: \"mousedown touchstart\",\r\n move: \"mousemove touchmove\",\r\n end: \"mouseup touchend\",\r\n };\r\n };\r\n\r\n function Spectrum(entry, snap, singleStep) {\r\n this.xPct = [];\r\n this.xVal = [];\r\n this.xSteps = [singleStep || false];\r\n this.xNumSteps = [false];\r\n this.xHighestCompleteStep = [];\r\n\r\n this.snap = snap;\r\n\r\n var index;\r\n var ordered = []; // [0, 'min'], [1, '50%'], [2, 'max']\r\n\r\n // Map the object keys to an array.\r\n for (index in entry) {\r\n if (Object.prototype.hasOwnProperty.call(entry, index)) {\r\n ordered.push([entry[index], index]);\r\n }\r\n }\r\n\r\n // Sort all entries by value (numeric sort).\r\n if (ordered.length && typeof ordered[0][0] === \"object\") {\r\n ordered.sort(function (a, b) {\r\n return a[0][0] - b[0][0];\r\n });\r\n } else {\r\n ordered.sort(function (a, b) {\r\n return a[0] - b[0];\r\n });\r\n }\r\n\r\n // Convert all entries to subranges.\r\n for (index = 0; index < ordered.length; index++) {\r\n handleEntryPoint(ordered[index][1], ordered[index][0], this);\r\n }\r\n\r\n // Store the actual step values.\r\n // xSteps is sorted in the same order as xPct and xVal.\r\n this.xNumSteps = this.xSteps.slice(0);\r\n\r\n // Convert all numeric steps to the percentage of the subrange they represent.\r\n for (index = 0; index < this.xNumSteps.length; index++) {\r\n handleStepPoint(index, this.xNumSteps[index], this);\r\n }\r\n }\r\n\r\n Spectrum.prototype.getMargin = function (value) {\r\n var step = this.xNumSteps[0];\r\n\r\n if (step && (value / step) % 1 !== 0) {\r\n throw new Error(\"Slider 'limit', 'margin' and 'padding' must be divisible by step.\");\r\n }\r\n\r\n return this.xPct.length === 2 ? fromPercentage(this.xVal, value) : false;\r\n };\r\n\r\n Spectrum.prototype.toStepping = function (value) {\r\n value = toStepping(this.xVal, this.xPct, value);\r\n\r\n return value;\r\n };\r\n\r\n Spectrum.prototype.fromStepping = function (value) {\r\n return fromStepping(this.xVal, this.xPct, value);\r\n };\r\n\r\n Spectrum.prototype.getStep = function (value) {\r\n value = getStep(this.xPct, this.xSteps, this.snap, value);\r\n\r\n return value;\r\n };\r\n\r\n Spectrum.prototype.getDefaultStep = function (value, isDown, size) {\r\n var j = getJ(value, this.xPct);\r\n\r\n // When at the top or stepping down, look at the previous sub-range\r\n if (value === 100 || (isDown && value === this.xPct[j - 1])) {\r\n j = Math.max(j - 1, 1);\r\n }\r\n\r\n return (this.xVal[j] - this.xVal[j - 1]) / size;\r\n };\r\n\r\n Spectrum.prototype.getNearbySteps = function (value) {\r\n var j = getJ(value, this.xPct);\r\n\r\n return {\r\n stepBefore: {\r\n startValue: this.xVal[j - 2],\r\n step: this.xNumSteps[j - 2],\r\n highestStep: this.xHighestCompleteStep[j - 2],\r\n },\r\n thisStep: {\r\n startValue: this.xVal[j - 1],\r\n step: this.xNumSteps[j - 1],\r\n highestStep: this.xHighestCompleteStep[j - 1],\r\n },\r\n stepAfter: {\r\n startValue: this.xVal[j],\r\n step: this.xNumSteps[j],\r\n highestStep: this.xHighestCompleteStep[j],\r\n },\r\n };\r\n };\r\n\r\n Spectrum.prototype.countStepDecimals = function () {\r\n var stepDecimals = this.xNumSteps.map(countDecimals);\r\n return Math.max.apply(null, stepDecimals);\r\n };\r\n\r\n // Outside testing\r\n Spectrum.prototype.convert = function (value) {\r\n return this.getStep(this.toStepping(value));\r\n };\r\n\r\n // init\r\n if (!(stringSlider in element)) {\r\n validateOptions(options);\r\n\r\n if (options.ort == 1) {\r\n element.classList.add(prefix + \"align-items-center\");\r\n }\r\n if (options.content) {\r\n addContent();\r\n }\r\n\r\n addContainer();\r\n\r\n actions = getActions();\r\n\r\n slider = element.querySelector(\".\" + prefix + \"slider-target\");\r\n sliderBase = addSlider();\r\n addElements();\r\n\r\n // Attach user events.\r\n bindSliderEvents(optEvents);\r\n\r\n // Use the public value method to set the start values.\r\n valueSet(options.start);\r\n\r\n if (options.tooltips) {\r\n setTooltips();\r\n }\r\n\r\n aria();\r\n\r\n bindEvent(\"end\", endEventHandler);\r\n\r\n addLabels();\r\n\r\n for (var i = 0; i < handles.length; i++) {\r\n handles[i].firstChild.addEventListener(\"focus\", focusEventHandler, false);\r\n handles[i].firstChild.addEventListener(\"blur\", blurEventHandler, false);\r\n handles[i].addEventListener(\"keyup\", endEventHandler, false);\r\n }\r\n element.addEventListener(\"click\", endEventHandler, false);\r\n }\r\n\r\n element[stringSlider] = self;\r\n}\r\n","import {\r\n getClosest,\r\n prefix,\r\n DOC,\r\n isSafari,\r\n isIOS,\r\n uicoreCustomEvent,\r\n createElement,\r\n each,\r\n setFocus,\r\n getFocusableElements,\r\n jsonOptionsInit,\r\n} from \"./utilities.js\";\r\nimport Overflow from \"./overflow.js\";\r\nimport Collapse from \"./collapse.js\";\r\n\r\nexport default function Tab(element, options) {\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n options = options || {};\r\n options = jsonOptionsInit(element, options);\r\n options.lazyload = typeof options.lazyload === \"boolean\" ? options.lazyload : false;\r\n\r\n var self = this,\r\n stringTab = \"Tab\",\r\n tablist,\r\n activeTab = null,\r\n modalElement,\r\n withinModal,\r\n tabs,\r\n backButton,\r\n panels,\r\n delay,\r\n nested = false,\r\n focusableEls,\r\n thresholdMediaSize,\r\n tabContainer,\r\n accordionWrapper,\r\n smallMediaSize = window.matchMedia(\"(max-width: 767.98px)\"),\r\n overflow,\r\n overflowContainer;\r\n\r\n // Key mappings for easy reference\r\n var keys = {\r\n end: 35,\r\n home: 36,\r\n left: 37,\r\n up: 38,\r\n right: 39,\r\n down: 40,\r\n delete: 46,\r\n tab: 9,\r\n esc: 27,\r\n };\r\n\r\n // Add or substract depending on key pressed\r\n var direction = {\r\n 37: -1,\r\n 38: -1,\r\n 39: 1,\r\n 40: 1,\r\n },\r\n handleOverflowEvent = function (e) {\r\n overflow.detail = e.detail;\r\n },\r\n setFocusableElements = function () {\r\n focusableEls = getFocusableElements(modalElement);\r\n modalElement.firstFocusableEl = focusableEls[0];\r\n modalElement.lastFocusableEl = focusableEls[focusableEls.length - 1];\r\n },\r\n handleBackwardTab = function (e) {\r\n if (document.activeElement === modalElement.firstFocusableEl) {\r\n e.preventDefault();\r\n setFocus(modalElement.lastFocusableEl);\r\n }\r\n },\r\n handleForwardTab = function (e) {\r\n if (document.activeElement === modalElement.lastFocusableEl) {\r\n e.preventDefault();\r\n setFocus(modalElement.firstFocusableEl);\r\n }\r\n },\r\n handleModalKeydown = function (e) {\r\n switch (e.keyCode) {\r\n case keys.tab:\r\n if (focusableEls.length === 1) {\r\n e.preventDefault();\r\n break;\r\n }\r\n if (e.shiftKey) {\r\n handleBackwardTab(e);\r\n } else {\r\n handleForwardTab(e);\r\n }\r\n break;\r\n case keys.esc:\r\n self.hide();\r\n setFocus(activeTab);\r\n break;\r\n default:\r\n break;\r\n }\r\n },\r\n // When a tab is clicked, activateTab is fired to activate it\r\n clickEventListener = function (e) {\r\n var target = e.target;\r\n if (target === element && modalElement && !modalElement.classList.contains(prefix + \"show\")) {\r\n e.preventDefault();\r\n }\r\n self.show();\r\n activeTab = getClosest(target, \".\" + prefix + \"tab-link\");\r\n activateTab(activeTab, false);\r\n },\r\n // Handle keydown on tabs\r\n keydownEventListener = function (e) {\r\n var key = e.keyCode;\r\n\r\n switch (key) {\r\n case keys.end:\r\n e.preventDefault();\r\n // Activate last tab\r\n if (overflow) {\r\n overflow.clickEnd();\r\n }\r\n activateTab(tabs[tabs.length - 1]);\r\n break;\r\n case keys.home:\r\n e.preventDefault();\r\n if (overflow) {\r\n overflow.clickHome();\r\n }\r\n // Activate first tab\r\n activateTab(tabs[0]);\r\n break;\r\n\r\n // Up, down, left, and right keys are in keydown\r\n // because we need to prevent page scroll\r\n case keys.up:\r\n case keys.down:\r\n determineOrientation(e);\r\n break;\r\n case keys.left:\r\n case keys.right:\r\n determineOrientation(e);\r\n break;\r\n }\r\n },\r\n // Handle keyup on tabs\r\n keyupEventListener = function (e) {\r\n var key = e.keyCode;\r\n\r\n switch (key) {\r\n case keys.delete:\r\n determineDeletable(e);\r\n break;\r\n }\r\n },\r\n // When a tablist's aria-orientation is set to vertical,\r\n // only up and down arrow should function.\r\n // In all other cases only left and right arrow function.\r\n determineOrientation = function (e) {\r\n var key = e.keyCode;\r\n var vertical = tablist.getAttribute(\"aria-orientation\") == \"vertical\";\r\n var proceed = false;\r\n\r\n if (vertical) {\r\n if (key === keys.up || key === keys.down) {\r\n e.preventDefault();\r\n proceed = true;\r\n }\r\n } else {\r\n if (key === keys.left || key === keys.right) {\r\n e.preventDefault();\r\n proceed = true;\r\n }\r\n }\r\n\r\n if (proceed) {\r\n switchTabOnArrowPress(e);\r\n }\r\n },\r\n // Find first parent of el with role=\"tablist\"\r\n getParentTablist = function (el) {\r\n var role = \"tablist\";\r\n while (el && el.parentNode) {\r\n el = el.parentNode;\r\n if (el.getAttribute(\"role\") && el.getAttribute(\"role\") == role) {\r\n return el;\r\n }\r\n }\r\n return null;\r\n },\r\n // Get all siblings of el with class=\"dds__tab-link\"\r\n getSiblingTabs = function () {\r\n var siblingTabs = tablist.querySelectorAll(\".\" + prefix + \"tab-link\");\r\n for (var i = 0; i < siblingTabs.length; i++) {\r\n siblingTabs[i].index = i;\r\n }\r\n return siblingTabs;\r\n },\r\n getTablistPanels = function (tab) {\r\n var controls = tab.getAttribute(\"aria-controls\");\r\n var panelGroup = document.getElementById(controls).parentElement;\r\n var siblingPanels = panelGroup.children;\r\n\r\n return siblingPanels;\r\n },\r\n // Either focus the next, previous, first, or last tab\r\n // depening on key pressed\r\n switchTabOnArrowPress = function (e) {\r\n var pressed = e.keyCode;\r\n each(tabs, function (tab) {\r\n tab.addEventListener(\"focus\", focusEventHandler);\r\n });\r\n\r\n if (direction[pressed]) {\r\n var target = e.target;\r\n if (target.index !== undefined) {\r\n if (tabs[target.index + direction[pressed]]) {\r\n var targetTab = target.index + direction[pressed];\r\n if (overflow) {\r\n if (targetTab < overflow.detail.left) {\r\n overflow.clickLeft();\r\n } else if (targetTab > overflow.detail.right) {\r\n overflow.clickRight();\r\n }\r\n }\r\n setTimeout(function () {\r\n setFocus(tabs[targetTab]);\r\n }, 125);\r\n } else if (pressed === keys.left || pressed === keys.up) {\r\n if (overflow) overflow.clickEnd();\r\n focusLastTab();\r\n } else if (pressed === keys.right || pressed == keys.down) {\r\n if (overflow) overflow.clickHome();\r\n focusFirstTab();\r\n }\r\n }\r\n }\r\n },\r\n // Activates any given tab panel\r\n activateTab = function (tab, needsFocus) {\r\n needsFocus = needsFocus || true;\r\n\r\n // Deactivate all other tabs\r\n deactivateTabs(tab);\r\n\r\n // Remove tabindex attribute\r\n tab.removeAttribute(\"tabindex\");\r\n\r\n // Set the tab as selected\r\n tab.setAttribute(\"aria-selected\", \"true\");\r\n\r\n // Get the value of aria-controls (which is an ID)\r\n var controls = tab.getAttribute(\"aria-controls\");\r\n\r\n tab.classList.add(prefix + \"active\");\r\n\r\n // Remove hidden attribute from tab panel to make it visible\r\n // document.getElementById(controls).removeAttribute('hidden');\r\n document.getElementById(controls).classList.add(prefix + \"active\");\r\n document.getElementById(controls).classList.add(prefix + \"show\");\r\n\r\n // Set focus when required\r\n if (needsFocus) {\r\n setFocus(tab);\r\n }\r\n },\r\n // Deactivate all tabs and tab panels\r\n deactivateTabs = function (tab) {\r\n panels = getTablistPanels(tab);\r\n each(tabs, function (tab) {\r\n tab.setAttribute(\"tabindex\", \"-1\");\r\n tab.setAttribute(\"aria-selected\", \"false\");\r\n tab.removeEventListener(\"focus\", focusEventHandler);\r\n tab.classList.remove(prefix + \"active\");\r\n tab.classList.remove(prefix + \"show\");\r\n });\r\n\r\n each(panels, function (panel) {\r\n // panel.setAttribute('hidden', 'hidden');\r\n panel.classList.remove(prefix + \"active\");\r\n panel.classList.remove(prefix + \"show\");\r\n });\r\n },\r\n // Make a guess\r\n focusFirstTab = function () {\r\n setFocus(tabs[0]);\r\n },\r\n // Make a guess\r\n focusLastTab = function () {\r\n setFocus(tabs[tabs.length - 1]);\r\n },\r\n // Detect if a tab is deletable\r\n determineDeletable = function (e) {\r\n var target = e.target;\r\n\r\n if (target.getAttribute(\"data-deletable\") !== null) {\r\n // Delete target tab\r\n deleteTab(e);\r\n\r\n // Update arrays related to tabs widget\r\n // generateArrays();\r\n\r\n // Activate the closest tab to the one that was just deleted\r\n if (target.index - 1 < 0) {\r\n activateTab(tabs[0]);\r\n } else {\r\n activateTab(tabs[target.index - 1]);\r\n }\r\n }\r\n },\r\n // Deletes a tab and its panel\r\n deleteTab = function (e) {\r\n var target = e.target;\r\n var panel = document.getElementById(target.getAttribute(\"aria-controls\"));\r\n\r\n target.parentElement.removeChild(target);\r\n panel.parentElement.removeChild(panel);\r\n },\r\n // Determine whether there should be a delay\r\n // when user navigates with the arrow keys\r\n determineDelay = function () {\r\n var hasDelay = tablist.hasAttribute(\"data-delay\");\r\n var delay = 0;\r\n\r\n if (hasDelay) {\r\n var delayValue = tablist.getAttribute(\"data-delay\");\r\n if (delayValue) {\r\n delay = delayValue;\r\n } else {\r\n // If no value is specified, default to 300ms\r\n delay = 300;\r\n }\r\n }\r\n\r\n return delay;\r\n },\r\n //\r\n focusEventHandler = function (e) {\r\n var target = e.target;\r\n\r\n setTimeout(checkTabFocus, delay, target);\r\n },\r\n // Only activate tab on focus if it still has focus after the delay\r\n checkTabFocus = function (target) {\r\n var focused = document.activeElement;\r\n\r\n if (target === focused) {\r\n activateTab(target, false);\r\n }\r\n },\r\n // triggers\r\n // unused eslint\r\n // triggerShow = function () {\r\n // setFocus(modalElement);\r\n // },\r\n triggerHide = function () {\r\n modalElement.style.display = \"\";\r\n },\r\n createModal = function () {\r\n var modalBody = modalElement.querySelector(\".\" + prefix + \"modal-body\");\r\n\r\n tabContainer = getClosest(tablist, \".\" + prefix + \"tabs-container\");\r\n var tabContentContainer;\r\n if (overflowContainer) {\r\n tabContentContainer = getClosest(tabContainer, \".\" + prefix + \"tab-content\", false);\r\n } else {\r\n tabContentContainer = tabContainer.querySelector(\".\" + prefix + \"tab-content\");\r\n }\r\n\r\n if (modalBody.firstElementChild) {\r\n tabContentContainer.appendChild(modalBody.firstElementChild);\r\n }\r\n var tab = getClosest(event.target, \".\" + prefix + \"tab-link\");\r\n var controls = tab.getAttribute(\"aria-controls\");\r\n var tabContent = document.getElementById(controls);\r\n\r\n setTimeout(function () {\r\n modalBody.appendChild(tabContent);\r\n }, 50);\r\n },\r\n dismissHandler = function (e) {\r\n if (modalElement.classList.contains(prefix + \"show\")) {\r\n self.hide();\r\n e.preventDefault();\r\n setFocus(activeTab);\r\n }\r\n },\r\n resizeHandler = function () {\r\n if (!smallMediaSize.matches && modalElement.classList.contains(prefix + \"show\")) {\r\n self.hide();\r\n }\r\n },\r\n createAccordions = function () {\r\n accordionWrapper = createElement(\"div\", {\r\n class: prefix + \"accordion \" + prefix + \"mb-3\",\r\n id: tabs[0].id + \"parent\",\r\n });\r\n tabContainer.parentElement.insertBefore(accordionWrapper, tabContainer);\r\n each(tabs, function (tab) {\r\n var card = createElement(\"div\", {\r\n class: prefix + \"accordion-card\",\r\n });\r\n var cardHeader = createElement(\"div\", {\r\n class: prefix + \"accordion-card-header\",\r\n });\r\n var h5 = createElement(\"h5\", {\r\n class: prefix + \"mb-0\",\r\n });\r\n var accordionBtn = createElement(\"button\", {\r\n class: prefix + \"accordion-btn \" + prefix + \"collapsed \" + prefix + \"d-flex\",\r\n type: \"button\",\r\n role: \"button\",\r\n data_toggle: prefix + \"collapse\",\r\n data_target: \"#\" + tab.id + \"accord\", //Need to create IDs\r\n data_parent: \"#\" + tabs[0].id + \"parent\",\r\n aria_controls: tab.id + \"accord\",\r\n aria_expanded: \"false\",\r\n });\r\n var chevron = createElement(\"i\", {\r\n class: prefix + \"icons \" + prefix + \"chevron-right\",\r\n aria_hidden: \"true\",\r\n });\r\n var accordionSpan = createElement(\"span\", {\r\n class: prefix + \"mx-2\",\r\n html: tab.innerText,\r\n id: tab.id + \"header\",\r\n });\r\n\r\n accordionBtn.appendChild(chevron);\r\n accordionBtn.appendChild(accordionSpan);\r\n h5.appendChild(accordionBtn);\r\n cardHeader.appendChild(h5);\r\n card.appendChild(cardHeader);\r\n accordionWrapper.appendChild(card);\r\n var cardBodyWrapper = createElement(\"div\", {\r\n id: tab.id + \"accord\",\r\n class: prefix + \"collapse\",\r\n aria_labelledby: tab.id + \"header\",\r\n role: \"region\",\r\n aria_expanded: \"false\",\r\n });\r\n var cardBody = createElement(\"div\", {\r\n class: prefix + \"accordion-card-body\",\r\n html: document.getElementById(tab.getAttribute(\"aria-controls\")).innerHTML,\r\n });\r\n card.appendChild(cardBodyWrapper);\r\n cardBodyWrapper.appendChild(cardBody);\r\n });\r\n each(withinModal.querySelectorAll(\"[data-toggle='\" + prefix + \"collapse\" + \"']\"), function (accordion) {\r\n new Collapse(accordion);\r\n });\r\n },\r\n handleResizeSmall = function () {\r\n if (thresholdMediaSize.matches) {\r\n var activeTab = tabContainer.querySelector(\"[aria-selected='true']\");\r\n var sisterCollapseStr = activeTab.getAttribute(\"id\") + \"accord\";\r\n var activateCollapse = accordionWrapper.querySelector(\"[data-target='#\" + sisterCollapseStr + \"']\");\r\n if (activateCollapse && activateCollapse.classList.contains(prefix + \"collapsed\")) {\r\n //Need to Activate the collapse\r\n var prevActivated = accordionWrapper.querySelector(\"button[aria-expanded='true']\");\r\n var showBlock;\r\n if (prevActivated) {\r\n prevActivated.setAttribute(\"aria-expanded\", false);\r\n prevActivated.classList.add(prefix + \"collapsed\");\r\n showBlock = getClosest(prevActivated, \".dds__collapse\", false);\r\n showBlock.classList.remove(prefix + \"show\");\r\n showBlock.setAttribute(\"aria-expanded\", \"false\");\r\n }\r\n activateCollapse.setAttribute(\"aria-expanded\", true);\r\n activateCollapse.classList.remove(prefix + \"collapsed\");\r\n showBlock = getClosest(activateCollapse, \".dds__collapse\", false);\r\n showBlock.classList.add(prefix + \"show\");\r\n showBlock.setAttribute(\"aria-expanded\", \"true\");\r\n }\r\n accordionWrapper.classList.remove(prefix + \"d-none\");\r\n tabContainer.classList.add(prefix + \"d-none\");\r\n } else {\r\n var activeCollapse = accordionWrapper.querySelector(\"button[aria-expanded='true']\");\r\n if (activeCollapse) {\r\n var sisterTabStr = activeCollapse.getAttribute(\"aria-controls\").slice(0, -6);\r\n var tabToActivate = document.getElementById(sisterTabStr);\r\n activateTab(tabToActivate);\r\n }\r\n accordionWrapper.classList.add(prefix + \"d-none\");\r\n tabContainer.classList.remove(prefix + \"d-none\");\r\n }\r\n };\r\n\r\n this.show = function () {\r\n if (window.innerWidth > 767.98) {\r\n return;\r\n }\r\n createModal();\r\n modalElement.style.display = \"block\";\r\n modalElement.setAttribute(\"aria-hidden\", false);\r\n modalElement.classList.add(prefix + \"show\");\r\n\r\n if (isSafari && isIOS) {\r\n modalElement.classList.add(prefix + \"is-safari\");\r\n }\r\n\r\n if (DOC.body.classList.contains(prefix + \"modal-open\")) {\r\n nested = true;\r\n } else {\r\n DOC.body.classList.add(prefix + \"modal-open\");\r\n nested = false;\r\n }\r\n\r\n backButton = modalElement && modalElement.querySelector(\"[data-dismiss='\" + prefix + \"modal']\");\r\n backButton.addEventListener(\"click\", dismissHandler, false);\r\n smallMediaSize.addListener(resizeHandler);\r\n setTimeout(function () {\r\n setFocusableElements();\r\n setFocus(backButton);\r\n }, 50);\r\n modalElement.addEventListener(\"keydown\", handleModalKeydown);\r\n };\r\n\r\n this.hide = function () {\r\n //Need to append tab content back to tabContentContainer\r\n var modalBody = modalElement.querySelector(\".\" + prefix + \"modal-body\");\r\n // var tabContainer = getClosest(tablist, \".\" + prefix + \"tabs-container\", true);\r\n var tabContainer = getClosest(tablist, \".\" + prefix + \"tabs-container\");\r\n var tabContentContainer;\r\n if (overflowContainer) {\r\n tabContentContainer = getClosest(tabContainer, \".\" + prefix + \"tab-content\", false);\r\n } else {\r\n tabContentContainer = tabContainer.querySelector(\".\" + prefix + \"tab-content\");\r\n }\r\n if (modalBody.firstElementChild) {\r\n tabContentContainer.appendChild(modalBody.firstElementChild);\r\n }\r\n modalElement.classList.add(prefix + \"slide-right\");\r\n modalElement.classList.remove(prefix + \"show\");\r\n modalElement.setAttribute(\"aria-hidden\", true);\r\n if (isSafari && isIOS && modalElement.classList.contains(prefix + \"is-safari\")) {\r\n modalElement.classList.remove(prefix + \"is-safari\");\r\n }\r\n smallMediaSize.removeListener(resizeHandler);\r\n setTimeout(function () {\r\n triggerHide();\r\n if (!nested) {\r\n DOC.body.classList.remove(prefix + \"modal-open\");\r\n }\r\n backButton.removeEventListener(\"click\", dismissHandler, false);\r\n }, 200);\r\n modalElement.removeEventListener(\"keydown\", handleModalKeydown);\r\n };\r\n\r\n this.lazyLoad = function () {\r\n if (options.lazyload && overflow && !overflow.detail) {\r\n overflow.lazyLoad();\r\n overflow.detail = overflow.getCurrentDetails();\r\n overflowContainer.addEventListener(\"uicOverflowChangeEvent\", handleOverflowEvent, false);\r\n uicoreCustomEvent(\"Tab\", \"LazyLoadEvent\", element, { success: true });\r\n } else {\r\n uicoreCustomEvent(\"Tab\", \"LazyLoadEvent\", element, {\r\n success: false,\r\n msg: \"Tab cannot be lazy loaded. Check usage or avoid mulitple lazy loads.\",\r\n });\r\n }\r\n };\r\n\r\n // init\r\n if (!(stringTab in element)) {\r\n tablist = getParentTablist(element);\r\n modalElement = element.dataset[\"target\"] && DOC.getElementById(element.dataset[\"target\"].substr(1));\r\n delay = determineDelay();\r\n tabs = getSiblingTabs();\r\n // prevent adding event handlers twice\r\n element.addEventListener(\"keydown\", keydownEventListener);\r\n element.addEventListener(\"keyup\", keyupEventListener);\r\n element.addEventListener(\"click\", clickEventListener);\r\n overflowContainer = getClosest(element, \".\" + prefix + \"container-overflow\");\r\n if (overflowContainer) {\r\n if (!(\"overflow\" in tablist)) {\r\n overflow = new Overflow(overflowContainer, {\r\n lazyload: options.lazyload,\r\n });\r\n if (!options.lazyload) {\r\n overflow.detail = overflow.getCurrentDetails();\r\n overflowContainer.addEventListener(\"uicOverflowChangeEvent\", handleOverflowEvent);\r\n }\r\n tablist[\"overflow\"] = overflow;\r\n } else {\r\n overflow = tablist[\"overflow\"];\r\n }\r\n }\r\n tabContainer = getClosest(tablist, \".\" + prefix + \"tabs-container\");\r\n withinModal = getClosest(element, \".\" + prefix + \"modal-offcanvas\", true);\r\n if (withinModal) {\r\n //check if tabs are within Modal\r\n var accordionExist = withinModal.querySelector(\"#\" + element.id + \"accord\"); //check if accordions already been made\r\n if (!accordionExist) {\r\n createAccordions();\r\n if (withinModal.classList.contains(prefix + \"modal-width-25\")) {\r\n thresholdMediaSize = window.matchMedia(\"(max-width: 3071.92px)\"); //3071.92*0.25 = 767.98\r\n } else if (withinModal.classList.contains(prefix + \"modal-width-50\")) {\r\n thresholdMediaSize = window.matchMedia(\"(max-width: 1535.96px)\"); //1535.96*0.5 = 767.98\r\n } else if (withinModal.classList.contains(prefix + \"modal-width-75\")) {\r\n thresholdMediaSize = window.matchMedia(\"(max-width: 1023.97px)\"); //3071.92*0.25 = 767.98\r\n } else {\r\n thresholdMediaSize = window.matchMedia(\"(max-width: 767.98px)\");\r\n }\r\n thresholdMediaSize.addListener(handleResizeSmall);\r\n handleResizeSmall();\r\n }\r\n }\r\n }\r\n\r\n element[stringTab] = self;\r\n}\r\n","import { each, sortItems, isArray, createElement } from \"../utilities.js\";\r\n/**\r\n * Columns API\r\n * @param {Object} instance DataTable instance\r\n * @param {Mixed} columns Column index or array of column indexes\r\n */\r\nexport default function Columns(dt) {\r\n var hiddenHeader = false;\r\n /**\r\n * Swap two columns\r\n * @return {Void}\r\n */\r\n this.swap = function (columns) {\r\n if (columns.length && columns.length === 2) {\r\n var cols = [];\r\n\r\n // Get the current column indexes\r\n each(dt.headings, function (h, i) {\r\n cols.push(i);\r\n });\r\n\r\n var x = columns[0];\r\n var y = columns[1];\r\n var b = cols[y];\r\n cols[y] = cols[x];\r\n cols[x] = b;\r\n\r\n this.order(cols);\r\n }\r\n };\r\n\r\n /**\r\n * Reorder the columns\r\n * @return {Array} columns Array of ordered column indexes\r\n */\r\n this.order = function (columns) {\r\n var a,\r\n b,\r\n c,\r\n d,\r\n h,\r\n s,\r\n cell,\r\n temp = [[], [], [], []];\r\n\r\n // Order the headings\r\n each(columns, function (column, x) {\r\n h = dt.headings[column];\r\n s = h.getAttribute(\"data-sortable\") !== \"false\";\r\n a = h.cloneNode(true);\r\n a.originalCellIndex = x;\r\n a.sortable = s;\r\n\r\n temp[0].push(a);\r\n\r\n if (dt.hiddenColumns.indexOf(column) < 0) {\r\n b = h.cloneNode(true);\r\n b.originalCellIndex = x;\r\n b.sortable = s;\r\n\r\n temp[1].push(b);\r\n }\r\n });\r\n\r\n // Order the row cells\r\n each(dt.data, function (row, i) {\r\n c = row.cloneNode();\r\n d = row.cloneNode();\r\n\r\n c.dataIndex = d.dataIndex = i;\r\n if (dt.expandable) {\r\n c.details = d.details = row.details;\r\n }\r\n\r\n if (row.searchIndex !== null && row.searchIndex !== undefined) {\r\n c.searchIndex = d.searchIndex = row.searchIndex;\r\n }\r\n\r\n // Append the cell to the fragment in the correct order\r\n each(columns, function (column) {\r\n cell = row.cells[column].cloneNode(true);\r\n cell.data = row.cells[column].data;\r\n c.appendChild(cell);\r\n\r\n if (dt.hiddenColumns.indexOf(column) < 0) {\r\n cell = row.cells[column].cloneNode(true);\r\n cell.data = row.cells[column].data;\r\n d.appendChild(cell);\r\n }\r\n });\r\n\r\n temp[2].push(c);\r\n temp[3].push(d);\r\n });\r\n\r\n dt.headings = temp[0];\r\n dt.activeHeadings = temp[1];\r\n\r\n each(dt.headings, function (header) {\r\n if (header.classList.contains(\"desc\") || header.classList.contains(\"asc\")) {\r\n dt.lastTh = header;\r\n }\r\n });\r\n\r\n dt.data = temp[2];\r\n dt.activeRows = temp[3];\r\n };\r\n\r\n /**\r\n * Hide columns\r\n * @return {Void}\r\n */\r\n this.hide = function (columns) {\r\n if (columns.length) {\r\n each(columns, function (column) {\r\n if (dt.hiddenColumns.indexOf(column) < 0) {\r\n dt.hiddenColumns.push(column);\r\n }\r\n });\r\n\r\n this.rebuild();\r\n }\r\n };\r\n\r\n /**\r\n * Show columns\r\n * @return {Void}\r\n */\r\n this.show = function (columns) {\r\n if (columns.length) {\r\n var index;\r\n\r\n each(columns, function (column) {\r\n index = dt.hiddenColumns.indexOf(column);\r\n if (index > -1) {\r\n dt.hiddenColumns.splice(index, 1);\r\n }\r\n });\r\n\r\n this.rebuild();\r\n }\r\n };\r\n\r\n /**\r\n * Check column(s) visibility\r\n * @return {Boolean}\r\n */\r\n this.visible = function (columns) {\r\n var cols;\r\n\r\n columns =\r\n columns ||\r\n dt.headings.map(function (th) {\r\n return th.originalCellIndex;\r\n });\r\n\r\n if (!isNaN(columns)) {\r\n cols = dt.hiddenColumns.indexOf(columns) < 0;\r\n } else if (isArray(columns)) {\r\n cols = [];\r\n each(columns, function (column) {\r\n cols.push(dt.hiddenColumns.indexOf(column) < 0);\r\n });\r\n }\r\n\r\n return cols;\r\n };\r\n\r\n /**\r\n * Add a new column\r\n * @param {Object} data\r\n */\r\n this.add = function (data) {\r\n var that = this,\r\n td,\r\n th = createElement(\"th\");\r\n\r\n if (!dt.headings.length) {\r\n dt.insert({\r\n headings: [data.heading],\r\n rows: data.rows.map(function (i) {\r\n return [i];\r\n }),\r\n });\r\n this.rebuild();\r\n return;\r\n }\r\n\r\n if (!hiddenHeader) {\r\n if (data.heading.nodeName) {\r\n th.appendChild(data.heading);\r\n } else {\r\n th.innerHTML = data.heading;\r\n }\r\n } else {\r\n th.innerHTML = \"\";\r\n }\r\n\r\n dt.headings.push(th);\r\n\r\n each(dt.data, function (row, i) {\r\n if (data.data[i]) {\r\n td = createElement(\"td\");\r\n\r\n if (data.data[i].nodeName) {\r\n td.appendChild(data.data[i]);\r\n } else {\r\n td.innerHTML = data.data[i];\r\n }\r\n\r\n td.data = td.innerHTML;\r\n\r\n if (data.render) {\r\n td.innerHTML = data.render.call(that, td.data, td, row);\r\n }\r\n\r\n row.appendChild(td);\r\n }\r\n });\r\n\r\n if (data.type) {\r\n th.setAttribute(\"data-type\", data.type);\r\n }\r\n if (data.format) {\r\n th.setAttribute(\"data-format\", data.format);\r\n }\r\n if (Object.prototype.hasOwnProperty.call(data, \"sortable\")) {\r\n th.sortable = data.sortable;\r\n th.setAttribute(\"data-sortable\", data.sortable === true ? \"true\" : \"false\");\r\n }\r\n\r\n this.rebuild();\r\n\r\n dt.renderHeader();\r\n };\r\n\r\n /**\r\n * Remove column(s)\r\n * @param {Array|Number} select\r\n * @return {Void}\r\n */\r\n this.remove = function (select) {\r\n if (isArray(select)) {\r\n // Remove in reverse otherwise the indexes will be incorrect\r\n select.sort(function (a, b) {\r\n return b - a;\r\n });\r\n\r\n each(\r\n select,\r\n function (column) {\r\n this.remove(column);\r\n },\r\n this\r\n );\r\n } else {\r\n dt.headings.splice(select, 1);\r\n\r\n each(dt.data, function (row) {\r\n row.removeChild(row.cells[select]);\r\n });\r\n }\r\n\r\n this.rebuild();\r\n };\r\n\r\n /**\r\n * Sort by column\r\n * @param {int} column - The column no.\r\n * @param {string} direction - asc or desc\r\n * @return {void}\r\n */\r\n this.sort = function (column, direction) {\r\n // Check column is present\r\n if (dt.hasHeadings && (column < 0 || column > dt.activeHeadings.length - 1)) {\r\n return false;\r\n }\r\n\r\n dt.sorting = true;\r\n\r\n var rows = [],\r\n alpha = [],\r\n numeric = [],\r\n a = 0,\r\n n = 0,\r\n th = dt.activeHeadings[column];\r\n\r\n rows = dt.data;\r\n column = th.originalCellIndex;\r\n\r\n each(rows, function (tr) {\r\n var num, content;\r\n\r\n var cell = tr.cells[column];\r\n content = cell.hasAttribute(\"data-content\") ? cell.getAttribute(\"data-content\") : cell.data;\r\n num = content.replace(/(\\$|,|\\s|%)/g, \"\");\r\n\r\n if (th.getAttribute(\"data-type\") === \"date\") {\r\n num = Date.parse(content);\r\n if (num.isNaN) {\r\n num = 0;\r\n }\r\n }\r\n\r\n if (parseFloat(num) == num) {\r\n numeric[n++] = {\r\n value: Number(num),\r\n row: tr,\r\n };\r\n } else {\r\n alpha[a++] = {\r\n value: content.toLowerCase(),\r\n row: tr,\r\n };\r\n }\r\n });\r\n\r\n /* Sort according to direction (ascending or descending) */\r\n var top, btm;\r\n if (th.classList.contains(\"asc\") || direction == \"desc\") {\r\n top = sortItems(alpha, -1);\r\n btm = sortItems(numeric, -1);\r\n } else {\r\n top = sortItems(numeric, 1);\r\n btm = sortItems(alpha, 1);\r\n }\r\n this.updateSortDirection(th, direction);\r\n\r\n dt.lastTh = th;\r\n\r\n /* Reorder the table */\r\n rows = top.concat(btm);\r\n dt.data = [];\r\n dt.selectedRows = [];\r\n var indexes = [];\r\n\r\n each(\r\n rows,\r\n function (v, i) {\r\n dt.data.push(v.row);\r\n\r\n if (v.row.searchIndex !== null && v.row.searchIndex !== undefined) {\r\n indexes.push(i);\r\n }\r\n },\r\n dt\r\n );\r\n\r\n dt.searchData = indexes;\r\n\r\n this.rebuild();\r\n };\r\n\r\n this.updateSortDirection = function (th, direction) {\r\n if (th.classList.contains(\"asc\") || direction == \"desc\") {\r\n // top = sortItems(alpha, -1);\r\n // btm = sortItems(numeric, -1);\r\n th.classList.remove(\"asc\");\r\n th.classList.add(\"desc\");\r\n th.setAttribute(\"aria-sort\", \"descending\");\r\n } else {\r\n // top = sortItems(numeric, 1);\r\n // btm = sortItems(alpha, 1);\r\n th.classList.remove(\"desc\");\r\n th.classList.add(\"asc\");\r\n th.setAttribute(\"aria-sort\", \"ascending\");\r\n }\r\n\r\n if (dt.lastTh && th != dt.lastTh) {\r\n dt.lastTh.classList.remove(\"desc\");\r\n dt.lastTh.classList.remove(\"asc\");\r\n }\r\n };\r\n\r\n /**\r\n * Rebuild the columns\r\n * @return {Void}\r\n */\r\n this.rebuild = function () {\r\n var a,\r\n b,\r\n c,\r\n d,\r\n temp = [];\r\n\r\n dt.activeRows = [];\r\n dt.activeHeadings = [];\r\n\r\n each(dt.headings, function (th, i) {\r\n th.originalCellIndex = i;\r\n th.sortable = th.getAttribute(\"data-sortable\") !== \"false\";\r\n if (dt.hiddenColumns.indexOf(i) < 0) {\r\n dt.activeHeadings.push(th);\r\n }\r\n });\r\n // Loop over the rows and reorder the cells\r\n each(dt.data, function (row, i) {\r\n a = row.cloneNode();\r\n b = row.cloneNode();\r\n\r\n a.dataIndex = b.dataIndex = i;\r\n a.details = b.details = row.details;\r\n\r\n if (row.searchIndex !== null && row.searchIndex !== undefined) {\r\n a.searchIndex = b.searchIndex = row.searchIndex;\r\n }\r\n\r\n // Append the cell to the fragment in the correct order\r\n each(row.cells, function (cell) {\r\n c = cell.cloneNode(true);\r\n c.data = cell.data;\r\n a.appendChild(c);\r\n\r\n if (dt.hiddenColumns.indexOf(cell.cellIndex) < 0) {\r\n d = cell.cloneNode(true);\r\n d.data = cell.data;\r\n b.appendChild(d);\r\n }\r\n });\r\n\r\n // Append the fragment with the ordered cells\r\n temp.push(a);\r\n dt.activeRows.push(b);\r\n });\r\n\r\n dt.data = temp;\r\n };\r\n}\r\n","import { each, isArray, createElement, getText } from \"../utilities.js\";\r\n\r\n/**\r\n * Rows API\r\n * @param {Object} instance DataTable instance\r\n * @param {Array} rows\r\n */\r\nexport default function Rows(dt) {\r\n /**\r\n * Build a new row\r\n * @param {Array} row\r\n * @return {HTMLElement}\r\n */\r\n this.build = function (row) {\r\n var td,\r\n tr = createElement(\"tr\");\r\n\r\n var headings = dt.headings;\r\n\r\n if (!headings.length) {\r\n headings = row.map(function () {\r\n return \"\";\r\n });\r\n }\r\n\r\n each(row, function (tdx) {\r\n if (tdx.indexOf(\"table-cmplx-accordion-btn\") > -1 || tdx.indexOf(\"table-cmplx-row-select\") > -1) {\r\n td = createElement(\"tr\");\r\n td.innerHTML = tdx;\r\n tr.appendChild(td.firstChild);\r\n } else {\r\n td = createElement(\"td\");\r\n td.innerHTML = tdx;\r\n td.data = tdx;\r\n var txt = getText(tdx);\r\n txt = txt ? txt : \"\";\r\n td.setAttribute(\"data-content\", txt);\r\n tr.appendChild(td);\r\n }\r\n });\r\n\r\n if (row.details) {\r\n tr.details = row.details;\r\n }\r\n return tr;\r\n };\r\n\r\n this.render = function (row) {\r\n return row;\r\n };\r\n\r\n /**\r\n * Add new row\r\n * @param {Array} select\r\n */\r\n this.add = function (data, details) {\r\n if (isArray(data)) {\r\n // Check for multiple rows\r\n if (isArray(data[0])) {\r\n each(\r\n data,\r\n function (row, i) {\r\n // append details is supplied\r\n if (details[i]) {\r\n row.details = details[i];\r\n }\r\n dt.data.push(this.build(row));\r\n },\r\n this\r\n );\r\n } else {\r\n // append details is supplied\r\n if (details) {\r\n data.details = details[0];\r\n }\r\n dt.data.push(this.build(data));\r\n }\r\n\r\n // We may have added data to an empty table\r\n if (dt.data.length) {\r\n dt.hasRows = true;\r\n }\r\n\r\n this.update();\r\n\r\n // Needs to be called after the return of add\r\n }\r\n };\r\n\r\n /**\r\n * Remove row(s)\r\n * @param {Array|Number} select\r\n * @return {Void}\r\n */\r\n this.remove = function (select) {\r\n if (isArray(select)) {\r\n // Remove in reverse otherwise the indexes will be incorrect\r\n select.sort(function (a, b) {\r\n return b - a;\r\n });\r\n\r\n each(select, function (row) {\r\n dt.data.splice(row, 1);\r\n });\r\n } else {\r\n dt.data.splice(select, 1);\r\n }\r\n\r\n this.update();\r\n };\r\n\r\n /**\r\n * Update row indexes\r\n * @return {Void}\r\n */\r\n this.update = function () {\r\n var idx = 0;\r\n each(dt.data, function (row) {\r\n if (row.children.length != 1) {\r\n row.dataIndex = idx++;\r\n }\r\n });\r\n };\r\n}\r\n","import {\r\n DOC,\r\n isObject,\r\n isArray,\r\n isJson,\r\n each,\r\n createElement,\r\n getClosest,\r\n prefix,\r\n classRemove,\r\n classAdd,\r\n getSibling,\r\n uicoreCustomEvent,\r\n validateNum,\r\n renderSvg,\r\n flush,\r\n isEdge,\r\n getText,\r\n extend,\r\n singleLineCSVtoArray,\r\n} from \"./utilities.js\";\r\nimport Pagination from \"./pagination.js\";\r\nimport Columns from \"./helpers/columns.js\";\r\nimport Rows from \"./helpers/rows.js\";\r\nimport Dropdown from \"./dropdown.js\";\r\nimport Modal from \"./modal.js\";\r\n\r\nexport default function TableComplex(element, params) {\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return;\r\n })();\r\n\r\n function validateRow(row, name) {\r\n var hasErrors = \"\";\r\n var rowCount = row.match(/\\{((\\w*|\\d*):?)+\\}/g);\r\n if (rowCount.length < 1 || rowCount.length > 3) {\r\n hasErrors += \"Custom layout for row \" + name + \" was delared with an incorrect set of elements!\\n\";\r\n }\r\n var rowLength = 0;\r\n var localFunctions = [\"placeholder\", \"actions\", \"settings\", \"search\"];\r\n each(rowCount, function (temp) {\r\n var subElements = temp.replace(/\\{|\\}/g, \"\").split(\":\");\r\n if (\r\n subElements.indexOf(\"placeholder\") === -1 &&\r\n !temp.match(/\\{[A-Z,a-z]+:[1,2,3](:(start|center|end))*\\}/g)\r\n ) {\r\n hasErrors +=\r\n \"Custom layout for row \" +\r\n name +\r\n \" has an element \" +\r\n temp +\r\n \", which has been declared incorrectly!\\n\";\r\n }\r\n if (\r\n layoutOptions.indexOf(subElements[0]) === -1 &&\r\n !window[subElements[0]] &&\r\n localFunctions.indexOf(subElements[0]) < 0\r\n ) {\r\n // does custom function exist\r\n hasErrors +=\r\n \"Custom layout for row \" +\r\n name +\r\n \" has an element with custom function '\" +\r\n subElements[0] +\r\n \"' that is not accessible or dosen't exist!\\n\";\r\n }\r\n if (!isNaN(subElements[1].substring(0, 1))) {\r\n rowLength += +subElements[1].substring(0, 1);\r\n }\r\n });\r\n if (rowLength != 3) {\r\n hasErrors +=\r\n \"Custom layout for row \" +\r\n name +\r\n \" is configured with grid length '\" +\r\n rowLength +\r\n \"', which needs to add up to '3'!\\n\";\r\n }\r\n return hasErrors;\r\n }\r\n\r\n var jsonParams = element.dataset.tableData;\r\n if (jsonParams) {\r\n params = JSON.parse(jsonParams);\r\n }\r\n\r\n // init options\r\n var options = {};\r\n var layoutOptions = [\"{actions:1:start}\", \"{search:1:center}\", \"{settings:1:end}\"];\r\n\r\n // Check to see what Javascript options are set or are missing from table element classes\r\n options.sort = typeof params.sort === \"boolean\" ? params.sort : false;\r\n options.expand = typeof params.expand === \"boolean\" ? params.expand : false;\r\n if (options.expand) {\r\n options.expandIcon =\r\n params.expandIcon && typeof params.expandIcon === \"string\" ? params.expandIcon : \"arrow-tri-solid-right\";\r\n if (options.expandIcon.indexOf(prefix) > -1) {\r\n options.expandIcon = options.expandIcon.split(prefix)[1];\r\n }\r\n }\r\n options.showTotal = typeof params.showTotal === \"string\" ? params.showTotal : false;\r\n options.condensed = typeof params.condensed === \"boolean\" ? params.condensed : false;\r\n options.fixedColumns = typeof params.fixedColumns === \"boolean\" ? params.fixedColumns : false;\r\n options.rearrangeableColumns =\r\n typeof params.rearrangeableColumns === \"boolean\" ? params.rearrangeableColumns : false;\r\n options.fixedHeight = typeof params.fixedHeight === \"boolean\" ? params.fixedHeight : false;\r\n options.header = typeof params.header === \"boolean\" ? params.header : true;\r\n //Set Default Batch Actions\r\n options.defaultBatchActions = {};\r\n options.defaultBatchActions.exportCsv =\r\n params.defaultBatchActions && typeof params.defaultBatchActions.exportCsv === \"boolean\"\r\n ? params.defaultBatchActions.exportCsv\r\n : true;\r\n options.defaultBatchActions.exportJson =\r\n params.defaultBatchActions && typeof params.defaultBatchActions.exportJson === \"boolean\"\r\n ? params.defaultBatchActions.exportJson\r\n : true;\r\n options.defaultBatchActions.deleteRow =\r\n params.defaultBatchActions && typeof params.defaultBatchActions.delete === \"boolean\"\r\n ? params.defaultBatchActions.delete\r\n : true;\r\n\r\n // Set all table text to variables\r\n options.text = {};\r\n options.text.apply =\r\n params.text && params.text.apply && typeof params.text.apply === \"string\" ? params.text.apply : \"Apply\";\r\n options.text.cancel =\r\n params.text && params.text.cancel && typeof params.text.cancel === \"string\" ? params.text.cancel : \"Cancel\";\r\n options.text.exportCsv =\r\n params.text && params.text.exportCsv && typeof params.text.exportCsv === \"string\"\r\n ? params.text.exportCsv\r\n : \"Export as csv\";\r\n options.text.exportJson =\r\n params.text && params.text.exportJson && typeof params.text.exportJson === \"string\"\r\n ? params.text.exportJson\r\n : \"Export as json\";\r\n options.text.deleteRow =\r\n params.text && params.text.delete && typeof params.text.delete === \"string\" ? params.text.delete : \"Delete\";\r\n options.text.noEntries =\r\n params.text && params.text.noEntries && typeof params.text.noEntries === \"string\"\r\n ? params.text.noEntries\r\n : \"No entries found\";\r\n options.text.import =\r\n params.text && params.text.import && typeof params.text.import === \"string\" ? params.text.import : \"Import\";\r\n options.text.print =\r\n params.text && params.text.print && typeof params.text.print === \"string\" ? params.text.print : \"Print\";\r\n options.text.columns =\r\n params.text && params.text.columns && typeof params.text.columns === \"string\" ? params.text.columns : \"Columns\";\r\n options.text.batchActions =\r\n params.text && params.text.batchActions && typeof params.text.batchActions === \"string\"\r\n ? params.text.batchActions\r\n : \"Batch Actions\";\r\n options.text.chooseActions =\r\n params.text && params.text.chooseAction && typeof params.text.chooseAction === \"string\"\r\n ? params.text.chooseAction\r\n : \"Choose Actions\";\r\n options.text.allColumns =\r\n params.text && params.text.allColumns && typeof params.text.allColumns === \"string\"\r\n ? params.text.allColumns\r\n : \"All Columns\";\r\n\r\n // Remove the data from the Table element\r\n options.showData = jsonParams && typeof params.showData === \"boolean\" ? params.showData : true;\r\n // Search is either on by default or can be truned off\r\n options.search = typeof params.search === \"boolean\" ? params.search : true;\r\n if (options.search) {\r\n options.text.search = {};\r\n options.text.search.label =\r\n params.text && params.text.search && typeof params.text.search.label === \"string\"\r\n ? params.text.search.label\r\n : false;\r\n options.text.search.placeholder =\r\n params.text && params.text.search && typeof params.text.search.placeholder === \"string\"\r\n ? params.text.search.placeholder\r\n : false;\r\n }\r\n // Settings is either on by default or can be turned off\r\n options.settings = typeof params.settings === \"boolean\" ? params.settings : true;\r\n // Import either on by default or can be turned off\r\n options.import = typeof params.import === \"boolean\" ? params.import : true;\r\n // Printing is either on by default or can be turned off\r\n options.print = typeof params.print === \"boolean\" ? params.print : true;\r\n // Column Management is either on by default or can be turned off\r\n options.column = typeof params.column === \"boolean\" ? params.column : true;\r\n // Export details roww is either on by default or can be turned off\r\n options.exportDetails = typeof params.exportDetails === \"boolean\" ? params.exportDetails : true;\r\n // Control whether to show warning on csv export\r\n options.exportShowWarning = typeof params.exportShowWarning === \"boolean\" ? params.exportShowWarning : true;\r\n\r\n var allowedExtensions = [\".csv\", \".json\", \".js\"];\r\n options.allowedImportExtensions = [];\r\n //is it just one or is it an array\r\n each(params.allowedImportExtensions, function (ext) {\r\n if (typeof ext === \"string\" && allowedExtensions.indexOf(ext) >= -1) {\r\n options.allowedImportExtensions.push(ext);\r\n }\r\n });\r\n if (options.allowedImportExtensions.length === 0) options.allowedImportExtensions = allowedExtensions;\r\n // Bulk Actions\r\n options.actionsSelectFilters = [];\r\n each(params.additionalActions, function (additionalAction) {\r\n if (additionalAction.js) {\r\n var testJs = additionalAction.js;\r\n if (additionalAction.js.indexOf(\"(\") > -1) {\r\n testJs = additionalAction.js.substring(0, additionalAction.js.indexOf(\"(\")).trim();\r\n } else {\r\n additionalAction.js += \"()\";\r\n }\r\n if (!window[testJs]) {\r\n throw new Error(\r\n \"The additional action function \" +\r\n additionalAction.js +\r\n \" could not be accessed, please verify and try again!\"\r\n );\r\n } else {\r\n options.actionsSelectFilters.splice(additionalAction.pos, 0, additionalAction);\r\n }\r\n } else {\r\n options.actionsSelectFilters.splice(additionalAction.pos, 0, additionalAction);\r\n }\r\n });\r\n for (var action in options.defaultBatchActions) {\r\n if (options.defaultBatchActions[action]) {\r\n if (action === \"deleteRow\" && options.actionsSelectFilters[0]) {\r\n //place divider above `delete` action only when other actions are present\r\n options.actionsSelectFilters.push(\"hr\");\r\n }\r\n options.actionsSelectFilters.push(options.text[action]);\r\n }\r\n }\r\n options.select = typeof params.select === \"boolean\" ? params.select : true;\r\n if (!options.select) layoutOptions.splice(layoutOptions.indexOf(\"{actions:1:start}\"), 1, \"{placeholder:1:start}\");\r\n if (!options.search) layoutOptions.splice(layoutOptions.indexOf(\"{search:1:center}\"), 1, \"{placeholder:1:center}\");\r\n if (!options.settings) layoutOptions.splice(layoutOptions.indexOf(\"{settings:1:end}\"), 1, \"{placeholder:1:end}\");\r\n // Customise the layout\r\n if (params.layout) {\r\n var rowCount = 0;\r\n var hasErrors = \"\";\r\n if (params.layout.row1) {\r\n hasErrors += validateRow(params.layout.row1, \"one\");\r\n rowCount++;\r\n }\r\n if (params.layout.row2) {\r\n hasErrors += validateRow(params.layout.row2, \"two\");\r\n rowCount++;\r\n }\r\n if (rowCount === 0) {\r\n hasErrors += \"Custom layout was configured to have no Rows, which it needs to have at least 1!\\n\";\r\n }\r\n if (hasErrors.length > 0) {\r\n throw new Error(hasErrors);\r\n }\r\n }\r\n options.layout = params.layout ? params.layout : { row2: layoutOptions.join(\"\") };\r\n\r\n if (isArray(params.perPageSelect)) {\r\n if (typeof params.perPageSelect[0] === \"number\") {\r\n options.perPageSelect = params.perPageSelect.map(function (i) {\r\n i = Math.abs(parseInt(i));\r\n return i;\r\n });\r\n } else if (validateNum(params.perPageSelect[0])) {\r\n options.perPageSelect = params.perPageSelect.map(function (i) {\r\n i = Math.abs(parseInt(i));\r\n return i;\r\n });\r\n } else {\r\n throw new Error(\"Invalid perPageSelect. Should be a non-empty array of integer\");\r\n }\r\n } else {\r\n options.perPageSelect = [12, 24, 48, 96];\r\n }\r\n options.perPage =\r\n options.perPageSelect.indexOf(params.perPage) > -1 ? validateNum(params.perPage) : options.perPageSelect[0];\r\n options.origPerPage = options.perPage;\r\n options.items = validateNum(params.items, 0);\r\n options.buttonLabelLeft =\r\n params.buttonLabelLeft && typeof params.buttonLabelLeft === \"string\" ? params.buttonLabelLeft : \"Previous\";\r\n options.buttonLabelRight =\r\n params.buttonLabelRight && typeof params.buttonLabelRight === \"string\" ? params.buttonLabelRight : \"Next\";\r\n options.disablePaginationInput =\r\n params.disablePaginationInput !== null && typeof params.disablePaginationInput === \"boolean\"\r\n ? params.disablePaginationInput\r\n : false;\r\n\r\n // transfer data\r\n options.data = {};\r\n if (!params.data) {\r\n var msg = \"Missing data parameters for table!\";\r\n console.error(msg);\r\n uicoreCustomEvent(\"Table\", \"Error\", table, { msg: msg });\r\n return false;\r\n }\r\n if (!params.data.headings) {\r\n msg = \"Missing data.headings parameters for table!\";\r\n console.error(msg);\r\n uicoreCustomEvent(\"Table\", \"Error\", table, { msg: msg });\r\n return false;\r\n }\r\n options.data.headings = params.data.headings;\r\n if (!params.data.columns) {\r\n msg = \"Missing data.columns parameters for table!\";\r\n console.error(msg);\r\n uicoreCustomEvent(\"Table\", \"Error\", table, { msg: msg });\r\n return false;\r\n }\r\n options.data.columns = params.data.columns;\r\n if (!params.data.rows) {\r\n msg = \"Missing data.rows parameters for table!\";\r\n console.error(msg);\r\n uicoreCustomEvent(\"Table\", \"Error\", table, { msg: msg });\r\n return false;\r\n }\r\n options.data.rows = params.data.rows;\r\n\r\n options.labels = {\r\n noRows: options.text.noEntries, // Message shown when there are no search results\r\n };\r\n\r\n if (!options.showData) {\r\n delete element.dataset.tableData;\r\n }\r\n\r\n var self = this,\r\n stringTable = \"Table\",\r\n table = element,\r\n body,\r\n head,\r\n header,\r\n wrapper,\r\n container,\r\n bottom,\r\n columnBox,\r\n isIE,\r\n pages,\r\n currentPage,\r\n totalPages,\r\n paginationElement,\r\n pagination,\r\n columnRenderers,\r\n selectedColumns,\r\n labels,\r\n rect,\r\n input,\r\n searching,\r\n dragSrcEl,\r\n sortedColumnIdx,\r\n metHeight = true,\r\n batchId,\r\n allCheckboxId,\r\n searchId,\r\n columnsFixed = false,\r\n initialY,\r\n begOffsetTop,\r\n currentY,\r\n moveableCols = [],\r\n colMoved = false,\r\n // Handlers\r\n handleTouchEvent = function (e) {\r\n if (e.pointerType === \"mouse\") {\r\n return false; //If mouse touch on IE, cancel and use handleDragEvent\r\n } else {\r\n e.preventDefault(); //else prevent default actions, like scrolling\r\n }\r\n var yOffset = 0;\r\n var finOffsetTop;\r\n if (e.type === \"touchstart\" || e.type === \"pointerdown\") {\r\n if (e.type === \"pointerdown\") {\r\n initialY = e.clientY - yOffset;\r\n } else {\r\n initialY = e.touches[0].clientY - yOffset;\r\n }\r\n dragSrcEl = e[\"target\"];\r\n if (dragSrcEl.tagName != \"LI\") {\r\n dragSrcEl = getClosest(dragSrcEl, \".\" + prefix + \"table-cmplx-drag-li\");\r\n }\r\n dragSrcEl.dataTransfer = {};\r\n dragSrcEl.dataTransfer.data = dragSrcEl.outerHTML;\r\n begOffsetTop = dragSrcEl.offsetTop;\r\n if (e.target.type === \"checkbox\" || e.target.parentElement.querySelector(\"input\")) {\r\n var targetEl =\r\n e.target.type === \"checkbox\" ? e.target : e.target.parentElement.querySelector(\"input\");\r\n setTimeout(function () {\r\n handleCheckBoxEvent(targetEl);\r\n }, 250);\r\n }\r\n }\r\n if (e.type === \"touchmove\" || e.type === \"pointermove\") {\r\n e.preventDefault();\r\n var before = false;\r\n if (isIE || isEdge) {\r\n currentY = e.clientY - initialY;\r\n dragSrcEl.addEventListener(\"pointerleave\", handlePointerLeave);\r\n } else {\r\n currentY = e.touches[0].clientY - initialY; //difference btn start and end if you move up it is negative\r\n }\r\n yOffset = currentY;\r\n if (yOffset === 0) {\r\n return false;\r\n }\r\n\r\n if (!dragSrcEl) {\r\n dragSrcEl = e[\"target\"];\r\n if (dragSrcEl.tagName != \"LI\") {\r\n dragSrcEl = getClosest(dragSrcEl, \".\" + prefix + \"table-cmplx-drag-li\");\r\n }\r\n }\r\n\r\n finOffsetTop = begOffsetTop + currentY;\r\n dragSrcEl.style.transform = \"translate3d(0, \" + yOffset + \"px, 0)\";\r\n dragSrcEl.style.opacity = 0.5;\r\n colMoved = true;\r\n each(moveableCols, function (col) {\r\n var startedBelow = col.offsetTop < dragSrcEl.offsetTop;\r\n var startedAbove = col.offsetTop > dragSrcEl.offsetTop;\r\n var endedBelow = col.offsetTop < finOffsetTop;\r\n var endedAbove = col.offsetTop > finOffsetTop;\r\n if (\r\n (endedAbove && startedBelow) || //if started from below and moved above column\r\n (endedBelow && startedAbove)\r\n ) {\r\n //if started from above and moved below column\r\n if (endedAbove) {\r\n //if item is being moved before col\r\n if (col.previousElementSibling) {\r\n //if not the first column\r\n if (finOffsetTop > col.previousElementSibling.offsetTop) {\r\n //if moving up, but not above predecessor\r\n if (col.classList.contains(prefix + \"border-bottom-black\")) {\r\n col.classList.remove(prefix + \"border-bottom-black\");\r\n }\r\n col.classList.add(prefix + \"border-top-black\");\r\n } else if (col.classList.contains(prefix + \"border-top-black\")) {\r\n col.classList.remove(prefix + \"border-top-black\");\r\n } else if (col.classList.contains(prefix + \"border-bottom-black\")) {\r\n col.classList.remove(prefix + \"border-bottom-black\");\r\n }\r\n } else if (finOffsetTop < 0) {\r\n //if being placed before first column\r\n col.classList.add(prefix + \"border-top-black\");\r\n }\r\n } else if (endedBelow) {\r\n //if item is being moved below\r\n if (col.nextElementSibling) {\r\n if (finOffsetTop < col.nextElementSibling.offsetTop) {\r\n if (col.classList.contains(prefix + \"border-top-black\")) {\r\n col.classList.remove(prefix + \"border-top-black\");\r\n }\r\n col.classList.add(prefix + \"border-bottom-black\");\r\n } else if (col.classList.contains(prefix + \"border-bottom-black\")) {\r\n //either should get the styling or should not\r\n col.classList.remove(prefix + \"border-bottom-black\");\r\n } else if (col.classList.contains(prefix + \"border-top-black\")) {\r\n col.classList.remove(prefix + \"border-top-black\");\r\n }\r\n } else if (finOffsetTop > col.offsetTop) {\r\n col.classList.add(prefix + \"border-bottom-black\");\r\n }\r\n }\r\n } else if (\r\n startedBelow &&\r\n col.nextElementSibling &&\r\n col.nextElementSibling.offsetTop > finOffsetTop &&\r\n !col.nextElementSibling.classList.contains(prefix + \"table-cmplx-drag-li\")\r\n ) {\r\n // started from below + moved below a draggable but above a fixed column\r\n col.classList.add(prefix + \"border-bottom-black\");\r\n } else if (\r\n endedAbove &&\r\n startedAbove &&\r\n finOffsetTop > col.previousElementSibling.offsetTop &&\r\n col.previousElementSibling.classList.contains(prefix + \"table-cmplx-li\")\r\n ) {\r\n //if started from above + moved above but below a fixed\r\n col.classList.add(prefix + \"border-top-black\");\r\n } else if (col.classList.contains(prefix + \"border-top-black\")) {\r\n //If it has a border but doesmn't fall into above category, remove it\r\n col.classList.remove(prefix + \"border-top-black\");\r\n } else if (col.classList.contains(prefix + \"border-bottom-black\")) {\r\n //If it has a border but doesmn't fall into above category, remove it\r\n col.classList.remove(prefix + \"border-bottom-black\");\r\n }\r\n });\r\n }\r\n if (e.type === \"touchend\" || e.type === \"pointerup\") {\r\n initialY = currentY;\r\n before = false;\r\n if (!dragSrcEl) {\r\n dragSrcEl = e[\"target\"];\r\n if (dragSrcEl.tagName != \"LI\") {\r\n dragSrcEl = getClosest(dragSrcEl, \".\" + prefix + \"table-cmplx-drag-li\");\r\n }\r\n }\r\n finOffsetTop = begOffsetTop + currentY;\r\n if (colMoved) {\r\n each(moveableCols, function (col) {\r\n if (col != dragSrcEl) {\r\n var startedBelow = col.offsetTop < dragSrcEl.offsetTop;\r\n var startedAbove = col.offsetTop > dragSrcEl.offsetTop;\r\n var endedBelow = col.offsetTop < finOffsetTop;\r\n var endedAbove = col.offsetTop > finOffsetTop;\r\n if (\r\n (endedAbove && startedBelow) ||\r\n (endedBelow && startedAbove) ||\r\n (col.nextElementSibling &&\r\n startedBelow &&\r\n col.nextElementSibling.offsetTop > finOffsetTop &&\r\n !col.nextElementSibling.classList.contains(prefix + \"table-cmplx-drag-li\")) || //if moving from bottom coming up: starting top is lower than above's starting top but ending top is higher\r\n (endedAbove &&\r\n startedAbove &&\r\n finOffsetTop > col.previousElementSibling.offsetTop &&\r\n col.previousElementSibling.classList.contains(prefix + \"table-cmplx-li\"))\r\n ) {\r\n if (\r\n (endedAbove && startedBelow) ||\r\n (endedAbove &&\r\n startedAbove &&\r\n finOffsetTop > col.previousElementSibling.offsetTop &&\r\n col.previousElementSibling.classList.contains(prefix + \"table-cmplx-li\"))\r\n ) {\r\n before = true;\r\n if (col.previousElementSibling) {\r\n //if not the first column\r\n if (finOffsetTop > col.previousElementSibling.offsetTop) {\r\n handleTouchEnd(dragSrcEl, before, col);\r\n }\r\n } else if (!col.previousElementSibling && finOffsetTop < 0) {\r\n //if being placed before the first column\r\n handleTouchEnd(dragSrcEl, before, col);\r\n }\r\n } else if (\r\n (endedBelow && startedAbove) ||\r\n (startedBelow &&\r\n col.nextElementSibling &&\r\n col.nextElementSibling.offsetTop > finOffsetTop &&\r\n !col.nextElementSibling.classList.contains(prefix + \"table-cmplx-drag-li\"))\r\n ) {\r\n //if moving column down\r\n if (col.nextElementSibling && finOffsetTop < col.nextElementSibling.offsetTop) {\r\n handleTouchEnd(dragSrcEl, before, col);\r\n } else if (!col.nextElementSibling && finOffsetTop > col.offsetTop) {\r\n //if being placed below last column\r\n handleTouchEnd(dragSrcEl, before, col);\r\n }\r\n }\r\n\r\n col.classList.remove(prefix + \"border-top-black\");\r\n col.classList.remove(prefix + \"border-bottom-black\");\r\n\r\n columnBox.orderChanged = true;\r\n }\r\n }\r\n });\r\n if (dragSrcEl.hasAttribute(\"style\")) {\r\n //set back to origin if doesn't get moved into available slot\r\n dragSrcEl.removeAttribute(\"style\");\r\n }\r\n colMoved = false; //once touch end is over, set colMoved back to false\r\n } else if (dragSrcEl.querySelector(\"input\")) {\r\n if (dragSrcEl.querySelector(\"input\").checked) {\r\n dragSrcEl.querySelector(\"input\").checked = false;\r\n } else {\r\n dragSrcEl.querySelector(\"input\").checked = true;\r\n }\r\n }\r\n var applyButton = columnBox.querySelector(\".\" + prefix + \"btn-primary\");\r\n if (applyButton.disabled) {\r\n applyButton.removeAttribute(\"disabled\");\r\n }\r\n if (isIE || isEdge) {\r\n dragSrcEl.removeEventListener(\"pointerleave\", handlePointerLeave);\r\n }\r\n }\r\n },\r\n handleTouchEnd = function (dragSrcEl, before, col) {\r\n var input = dragSrcEl.querySelector(\"input\");\r\n var checked = input && input.checked;\r\n setTimeout(function () {\r\n var dropElem;\r\n var dropHTML = dragSrcEl.dataTransfer.data;\r\n\r\n dragSrcEl.parentNode.removeChild(dragSrcEl);\r\n if (before) {\r\n col.insertAdjacentHTML(\"beforebegin\", dropHTML);\r\n dropElem = col.previousSibling;\r\n } else {\r\n col.insertAdjacentHTML(\"afterend\", dropHTML);\r\n dropElem = col.nextSibling;\r\n }\r\n\r\n moveableCols.push(dropElem);\r\n moveableCols = moveableCols.filter(function (value) {\r\n return value != dragSrcEl;\r\n });\r\n if (checked) {\r\n dropElem.querySelector(\"input\").checked = true;\r\n }\r\n setupDragEvents(dropElem);\r\n }, 50);\r\n },\r\n handlePointerLeave = function (e) {\r\n setTimeout(function () {\r\n dragSrcEl = e[\"relatedTarget\"];\r\n if (dragSrcEl.tagName != \"LI\") {\r\n dragSrcEl = getClosest(dragSrcEl, \".\" + prefix + \"table-cmplx-drag-li\");\r\n }\r\n if (dragSrcEl.hasAttribute(\"style\")) {\r\n dragSrcEl.removeAttribute(\"style\");\r\n }\r\n each(moveableCols, function (col) {\r\n if (col.classList.contains(prefix + \"border-top-black\")) {\r\n col.classList.remove(prefix + \"border-top-black\");\r\n } else if (col.classList.contains(prefix + \"border-bottom-black\")) {\r\n col.classList.remove(prefix + \"border-bottom-black\");\r\n }\r\n });\r\n }, 50);\r\n },\r\n handleDragEvent = function (e) {\r\n e.stopPropagation();\r\n if (e.type === \"dragstart\") {\r\n dragSrcEl = e[\"target\"];\r\n\r\n dragSrcEl.dataTransfer = {};\r\n dragSrcEl.dataTransfer.data = dragSrcEl.outerHTML;\r\n }\r\n if (e.type === \"dragover\") {\r\n var overEl = e[\"target\"];\r\n if (overEl.tagName != \"LI\") {\r\n overEl = getClosest(overEl, \".\" + prefix + \"table-cmplx-drag-li\");\r\n }\r\n if (dragSrcEl != overEl) {\r\n if (e.preventDefault) {\r\n e.preventDefault(); // Necessary. Allows us to drop.\r\n }\r\n overEl.classList.add(prefix + \"border-bottom-black\");\r\n if (\r\n overEl.previousElementSibling &&\r\n overEl.previousElementSibling.classList.contains(prefix + \"border-bottom-black\")\r\n ) {\r\n overEl.previousElementSibling.classList.remove(prefix + \"border-bottom-black\");\r\n }\r\n if (\r\n overEl.nextElementSibling &&\r\n overEl.nextElementSibling.classList.contains(prefix + \"border-bottom-black\")\r\n ) {\r\n overEl.nextElementSibling.classList.remove(prefix + \"border-bottom-black\");\r\n }\r\n return false;\r\n }\r\n }\r\n\r\n if (e.type === \"dragleave\") {\r\n var leaveEl = e[\"target\"];\r\n if (leaveEl.tagName != \"LI\") {\r\n leaveEl = getClosest(leaveEl, \".\" + prefix + \"table-cmplx-drag-li\");\r\n }\r\n if (dragSrcEl != leaveEl) {\r\n if (e.preventDefault) {\r\n e.preventDefault(); // Necessary. Allows us to drop.\r\n }\r\n\r\n leaveEl.classList.remove(prefix + \"border-bottom-black\");\r\n return false;\r\n }\r\n }\r\n\r\n if (e.type === \"drop\") {\r\n if (e.stopPropagation) {\r\n e.stopPropagation(); // Stops some browsers from redirecting.\r\n }\r\n\r\n var dropTarget = e[\"target\"];\r\n if (dropTarget.tagName != \"LI\") {\r\n dropTarget = getClosest(dropTarget, \".\" + prefix + \"table-cmplx-drag-li\");\r\n }\r\n // Don't do anything if dropping the same column we're dragging.\r\n if (dragSrcEl != dropTarget) {\r\n var checkbox = dragSrcEl.querySelector(\"input\");\r\n var checked = checkbox ? checkbox.checked : false;\r\n var dropHTML = dragSrcEl.dataTransfer.data;\r\n dragSrcEl.parentNode.removeChild(dragSrcEl);\r\n\r\n dropTarget.insertAdjacentHTML(\"afterend\", dropHTML);\r\n var dropElem = dropTarget.nextSibling;\r\n if (checked) {\r\n dropElem.querySelector(\"input\").checked = true;\r\n }\r\n setupDragEvents(dropElem);\r\n dropTarget.classList.remove(prefix + \"border-bottom-black\");\r\n\r\n columnBox.orderChanged = true;\r\n var applyButton = columnBox.querySelector(\".\" + prefix + \"btn-primary\");\r\n // eanble Apply and Cancel\r\n if (applyButton.disabled) {\r\n applyButton.removeAttribute(\"disabled\");\r\n }\r\n }\r\n return false;\r\n }\r\n },\r\n handleImportActionEvent = function (e) {\r\n var t = e.target;\r\n var reader = new FileReader();\r\n var output = \"\"; //placeholder for text output\r\n var type = \"\"; //placeholder for file type\r\n if (t.files && t.files[0]) {\r\n if (!t.files[0].type || t.files[0].type === \"application/json\") {\r\n type = \"json\";\r\n } else if (\r\n t.files[0].type &&\r\n (t.files[0].type === \"application/vnd.ms-excel\" || t.files[0].type === \"text/csv\")\r\n ) {\r\n type = \"csv\";\r\n } else {\r\n var msg = \"The file type for the file selected was not recognizable!\";\r\n console.error(msg);\r\n uicoreCustomEvent(\"Table\", \"Error\", table, { msg: msg });\r\n }\r\n reader.onload = function (e) {\r\n output = e.target.result;\r\n if (type === \"json\") {\r\n if (!isJson(output)) {\r\n msg = \"The file type for the supplied file was not recognizable!\";\r\n console.error(msg);\r\n uicoreCustomEvent(\"Table\", \"Error\", table, { msg: msg });\r\n }\r\n }\r\n var inputOptions = { type: type, data: output, headings: true };\r\n self.import(inputOptions);\r\n t.value = \"\";\r\n }; //end onload()\r\n reader.readAsText(t.files[0]);\r\n } //end if html5 filelist support\r\n e.preventDefault();\r\n },\r\n handleExportActionEvent = function (t) {\r\n var exportFileOptions = {};\r\n if (options.expand && options.select) {\r\n exportFileOptions.skipColumn = [0, 1];\r\n } else if (options.expand || options.select) {\r\n exportFileOptions.skipColumn = [0];\r\n }\r\n\r\n if (t.innerHTML === options.text.exportCsv) {\r\n exportFileOptions.type = \"csv\";\r\n } else {\r\n exportFileOptions.type = \"json\";\r\n }\r\n self.export(exportFileOptions);\r\n },\r\n handleDeleteActionEvent = function () {\r\n self.delete();\r\n },\r\n handleSelectAllChange = function (state) {\r\n if (options.select) {\r\n var actions = wrapper.querySelector(\"[data-target='#cmplxTablesActions']\");\r\n if (state === \"checked\" || (state === \"indeterminate\" && actions.disabled)) {\r\n actions.removeAttribute(\"disabled\");\r\n } else if (state === \"unchecked\" && !actions.disabled && table.selectedRows.length < 1) {\r\n actions.setAttribute(\"disabled\", \"\");\r\n }\r\n }\r\n },\r\n handleCheckBoxEvent = function (t) {\r\n var nodeIndex,\r\n columnBoxCheckboxes = getClosest(t, \".\" + prefix + \"column-box\", true);\r\n if (columnBoxCheckboxes) {\r\n columnBoxCheckboxes = columnBoxCheckboxes.querySelectorAll(\".\" + prefix + \"column-box input\");\r\n }\r\n if (options.select && t.classList.contains(prefix + \"table-cmplx-select-all\")) {\r\n // Header Select All\r\n if (table.hasRows) {\r\n var cellIdx = getHeaderCellIndex(prefix + \"table-cmplx-select-all\");\r\n var check = t.checked;\r\n if (!check || t.state === \"indeterminate\") {\r\n check = false;\r\n t.checked = false;\r\n t.state = \"unchecked\";\r\n } else {\r\n t.state = \"checked\";\r\n check = true;\r\n }\r\n each(pages[currentPage - 1], function (row) {\r\n if (row.cells.length != 1) {\r\n var cell = row.cells[cellIdx];\r\n var input = cell.querySelector(\"input[type='checkbox']\");\r\n var dataInput = table.data[row.dataIndex].cells[cellIdx].querySelector(\r\n \"input[type='checkbox']\"\r\n );\r\n\r\n if (check) {\r\n dataInput.checked = input.checked = true;\r\n table.selectedRows.push(row.dataIndex);\r\n row.classList.add(\"selected\");\r\n if (options.expand) {\r\n row.nextElementSibling.classList.add(\"selected\");\r\n }\r\n t.state = \"checked\";\r\n } else {\r\n dataInput.checked = input.checked = false;\r\n table.selectedRows.pop(row.dataIndex);\r\n row.classList.remove(\"selected\");\r\n if (options.expand) {\r\n row.nextElementSibling.classList.remove(\"selected\");\r\n }\r\n }\r\n }\r\n });\r\n pages[currentPage - 1].selected = t.checked;\r\n handleSelectAllChange(t.state);\r\n } else {\r\n t.checked = false;\r\n }\r\n } else if (options.select && t.parentNode.classList.contains(prefix + \"table-cmplx-row-select\")) {\r\n // Table Cell Select\r\n cellIdx = getHeaderCellIndex(prefix + \"table-cmplx-select-all\");\r\n var tr = getClosest(t, \"tr\", false);\r\n if (t.checked) {\r\n table.data[tr.dataIndex].cells[cellIdx].querySelector(\"input[type='checkbox']\").checked = true;\r\n tr.classList.add(\"selected\");\r\n if (options.expand) {\r\n tr.nextElementSibling.classList.add(\"selected\");\r\n }\r\n if (table.selectedRows.length === 0) {\r\n table.selectedRows.push(tr.dataIndex);\r\n } else {\r\n var newRows = [];\r\n for (var idx = 0; idx < table.selectedRows.length; idx++) {\r\n var value = table.selectedRows[idx];\r\n var less = table.selectedRows[idx - 1];\r\n var more = table.selectedRows[idx + 1];\r\n if (\r\n tr.dataIndex < value &&\r\n (less === undefined || tr.dataIndex > less) &&\r\n newRows.indexOf(tr.dataIndex) === -1\r\n ) {\r\n newRows.push(tr.dataIndex);\r\n newRows.push(value);\r\n } else if (\r\n tr.dataIndex > value &&\r\n (more === undefined || tr.dataIndex < more) &&\r\n newRows.indexOf(tr.dataIndex) === -1\r\n ) {\r\n newRows.push(value);\r\n newRows.push(tr.dataIndex);\r\n } else {\r\n newRows.push(value);\r\n }\r\n }\r\n if (newRows.length > 0) {\r\n table.selectedRows = newRows;\r\n }\r\n }\r\n } else {\r\n table.data[tr.dataIndex].cells[cellIdx].querySelector(\"input[type='checkbox']\").checked = false;\r\n tr.classList.remove(\"selected\");\r\n if (options.expand) {\r\n tr.nextElementSibling.classList.remove(\"selected\");\r\n }\r\n table.selectedRows = table.selectedRows.filter(function (value) {\r\n if (value != tr.dataIndex) {\r\n return \"\" + value;\r\n }\r\n });\r\n each(table.activeHeadings[cellIdx].children, function (el) {\r\n if (el && el.classList.contains(prefix + \"table-cmplx-select-all\")) {\r\n el.checked = false;\r\n }\r\n });\r\n }\r\n var selectAll = wrapper.querySelector(\".\" + prefix + \"table-cmplx-select-all\");\r\n if (\r\n table.selectedRows.length === options.perPage ||\r\n table.selectedRows.length === pages[currentPage - 1].length\r\n ) {\r\n selectAll.indeterminate = false;\r\n selectAll.state = \"checked\";\r\n selectAll.checked = true;\r\n } else if (table.selectedRows.length > 0) {\r\n selectAll.state = \"indeterminate\";\r\n selectAll.indeterminate = true;\r\n } else {\r\n selectAll.state = \"unchecked\";\r\n selectAll.indeterminate = false;\r\n }\r\n handleSelectAllChange(selectAll.state);\r\n } else if (options.column && t.id === allCheckboxId) {\r\n for (nodeIndex = 0; nodeIndex < columnBoxCheckboxes.length; nodeIndex++) {\r\n var thisBox = columnBoxCheckboxes[nodeIndex];\r\n if (thisBox.id !== allCheckboxId) {\r\n if (\r\n getClosest(t, \".\" + prefix + \"column-box\", true).querySelector(\"#\" + allCheckboxId)[\r\n \"checked\"\r\n ]\r\n ) {\r\n toggleBox(thisBox, \"checked\");\r\n } else {\r\n toggleBox(thisBox, \"unchecked\");\r\n }\r\n }\r\n }\r\n } else if (options.column && t.id !== allCheckboxId) {\r\n var checkCount = 0;\r\n var allChk = getClosest(t, \".\" + prefix + \"column-box\", true).querySelector(\"#\" + allCheckboxId);\r\n for (nodeIndex = 0; nodeIndex < columnBoxCheckboxes.length; nodeIndex++) {\r\n var chkbox = columnBoxCheckboxes[nodeIndex];\r\n if (chkbox.id !== allCheckboxId) {\r\n if (chkbox[\"checked\"]) {\r\n checkCount++;\r\n }\r\n }\r\n }\r\n if (columnBoxCheckboxes && checkCount === columnBoxCheckboxes.length - 1) {\r\n toggleBox(allChk, \"checked\");\r\n } else if (checkCount === 0) {\r\n toggleBox(allChk, \"unchecked\");\r\n } else {\r\n toggleBox(allChk);\r\n }\r\n }\r\n },\r\n handleButtonEvent = function (t) {\r\n if (t.innerHTML === options.text.cancel) {\r\n columnBox.classList.remove(prefix + \"show\");\r\n } else if (t.innerHTML === options.text.apply) {\r\n if (columnBox.orderChanged) {\r\n var order = [];\r\n // Make sure we pick up cells for Expandable, Selectable and Labels\r\n for (var h = 0; h < baseCellIdx(); h++) {\r\n order.push(h);\r\n }\r\n // Add fixed columns to order - which should always be first col(s) in table\r\n each(table.activeHeadings, function (th) {\r\n if (th.getAttribute(\"data-fixed\") === \"true\") {\r\n order.push(th.originalCellIndex);\r\n }\r\n });\r\n each(columnBox.getElementsByTagName(\"ul\"), function (unOrderedList) {\r\n each(unOrderedList.children, function (li, indI) {\r\n if (indI > 1) {\r\n // first two li's are for check-all and HR\r\n each(table.headings, function (header) {\r\n if (li.querySelectorAll(\"label\")[0].textContent === header.textContent) {\r\n order.push(header.originalCellIndex);\r\n }\r\n });\r\n }\r\n });\r\n });\r\n columnBox.orderChanged = false;\r\n columns().order(order);\r\n table.hiddenColumns = [];\r\n self.update();\r\n }\r\n\r\n each(columnBox.getElementsByTagName(\"ul\"), function (unOrderedList) {\r\n each(unOrderedList.children, function (li) {\r\n var liCheckbox = li.querySelector(\"input[type='checkbox']\");\r\n if (liCheckbox && liCheckbox.checked && liCheckbox.id !== allCheckboxId) {\r\n each(table.headings, function (header) {\r\n if (li.querySelectorAll(\"label\")[0].textContent === header.textContent) {\r\n columns().show([header.originalCellIndex]);\r\n self.update();\r\n }\r\n });\r\n } else if (liCheckbox && !liCheckbox.checked && liCheckbox.id !== allCheckboxId) {\r\n each(table.headings, function (header) {\r\n if (li.querySelectorAll(\"label\")[0].textContent === header.textContent) {\r\n columns().hide([header.originalCellIndex]);\r\n self.update();\r\n }\r\n });\r\n }\r\n });\r\n\r\n if (searching) {\r\n self.search(input.value);\r\n }\r\n });\r\n columnsFixed = false;\r\n renderHeader();\r\n columnBox.classList.remove(prefix + \"show\");\r\n }\r\n },\r\n handleTableHeaderEvent = function (e, t) {\r\n if (options.sort && t.hasAttribute(\"data-sortable\")) {\r\n if (options.items > 0 && options.items != table.activeRows.length) {\r\n self.deleteAll();\r\n //change column to asc or desc\r\n columns().updateSortDirection(\r\n table.activeHeadings[table.activeHeadings.indexOf(t)],\r\n t.classList.contains(\"asc\") ? \"asc\" : \"desc\"\r\n );\r\n } else {\r\n columns().sort(table.activeHeadings.indexOf(t));\r\n sortedColumnIdx = t.originalCellIndex;\r\n self.update();\r\n e.preventDefault();\r\n }\r\n uicoreCustomEvent(\"Table\", \"SortEvent\", table, {\r\n column: table.activeHeadings.indexOf(t),\r\n direction: t.classList.contains(\"asc\") ? \"ascending\" : \"descending\",\r\n currentPage: currentPage,\r\n perPage: options.perPage,\r\n });\r\n }\r\n t.focus();\r\n },\r\n handleAccordionEvent = function (t) {\r\n if (t.classList.contains(prefix + \"table-cmplx-accordion-btn\")) {\r\n var htmlRow = t.parentNode.parentNode,\r\n currentRow = table.data[htmlRow.dataIndex];\r\n if (currentRow.details) {\r\n var detailsRow = htmlRow.nextElementSibling.children[0];\r\n if (detailsRow.classList.contains(prefix + \"show\")) {\r\n detailsRow.classList.remove(prefix + \"show\");\r\n t.classList.add(prefix + \"collapsed\");\r\n t.setAttribute(\"aria-expanded\", false);\r\n } else {\r\n detailsRow.classList.add(prefix + \"show\");\r\n t.classList.remove(prefix + \"collapsed\");\r\n t.setAttribute(\"aria-expanded\", true);\r\n }\r\n } else {\r\n each(t.querySelector(\"svg\").childNodes, function (use) {\r\n if (use.getAttribute(\"class\").indexOf(prefix + \"show\") > -1) {\r\n classRemove(use, prefix + \"show\");\r\n if (use.getAttribute(\"xlink:href\").indexOf(prefix + \"loading-sqrs\") != -1) {\r\n var row = getClosest(use, \"tr\", false);\r\n table.activeRows[row.dataIndex].event = \"ExpandCancelEvent\";\r\n uicoreCustomEvent(\"Table\", \"ExpandCancelEvent\", table, { rowId: row.dataIndex });\r\n }\r\n } else {\r\n classAdd(use, prefix + \"show\");\r\n if (use.getAttribute(\"xlink:href\").indexOf(prefix + \"loading-sqrs\") != -1) {\r\n row = getClosest(use, \"tr\", false);\r\n table.activeRows[row.dataIndex].event = \"ExpandStartEvent\";\r\n var content = [];\r\n each(table.data[row.dataIndex].cells, function (cell, idx) {\r\n if (options.expand && options.select) {\r\n if (idx >= 2) {\r\n var dt =\r\n '\"' +\r\n labels[idx] +\r\n '\": \"' +\r\n ((cell.hasAttribute(\"data-content\")\r\n ? cell.getAttribute(\"data-content\")\r\n : cell.textContent) +\r\n '\"');\r\n content.push(dt);\r\n }\r\n } else if (options.expand || options.select) {\r\n if (idx >= 1) {\r\n dt =\r\n '\"' +\r\n labels[idx] +\r\n '\": \"' +\r\n ((cell.hasAttribute(\"data-content\")\r\n ? cell.getAttribute(\"data-content\")\r\n : cell.textContent) +\r\n '\"');\r\n content.push(dt);\r\n }\r\n } else {\r\n dt =\r\n '\"' +\r\n labels[idx] +\r\n '\": \"' +\r\n ((cell.hasAttribute(\"data-content\")\r\n ? cell.getAttribute(\"data-content\")\r\n : cell.textContent) +\r\n '\"');\r\n content.push(dt);\r\n }\r\n });\r\n uicoreCustomEvent(\"Table\", \"ExpandStartEvent\", table, {\r\n rowId: row.dataIndex,\r\n content: content,\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n },\r\n setupDragEvents = function (el) {\r\n el.addEventListener(\"dragstart\", handleDragEvent, false);\r\n el.addEventListener(\"dragover\", handleDragEvent, false);\r\n el.addEventListener(\"dragleave\", handleDragEvent, false);\r\n el.addEventListener(\"drop\", handleDragEvent, false);\r\n if (isIE || isEdge) {\r\n el.addEventListener(\"pointerdown\", handleTouchEvent, false);\r\n el.addEventListener(\"pointerup\", handleTouchEvent, false);\r\n el.addEventListener(\"pointermove\", handleTouchEvent, false);\r\n if (isEdge) {\r\n el.addEventListener(\"click\", function (e) {\r\n if (e.pointerType === \"touch\") {\r\n e.preventDefault();\r\n }\r\n });\r\n }\r\n } else {\r\n el.addEventListener(\"touchstart\", handleTouchEvent, false);\r\n el.addEventListener(\"touchend\", handleTouchEvent, false);\r\n el.addEventListener(\"touchmove\", handleTouchEvent, false);\r\n }\r\n },\r\n baseCellIdx = function () {\r\n var baseIdx = 0;\r\n if (table.expand) {\r\n baseIdx++;\r\n }\r\n if (table.select) {\r\n baseIdx++;\r\n }\r\n return baseIdx;\r\n },\r\n columns = function (columns) {\r\n return new Columns(table, columns);\r\n },\r\n rows = function (rows) {\r\n return new Rows(table, rows);\r\n },\r\n // Function used to convert options data to thead and tbody\r\n dataToTable = function () {\r\n var thead = false,\r\n tbody = false;\r\n\r\n table.data = table.data || options.data;\r\n\r\n if (table.data.headings) {\r\n thead = createElement(\"thead\");\r\n var tr = createElement(\"tr\");\r\n\r\n // Add the expandable header for row details\r\n if (options.expand) {\r\n var th = createElement(\"th\", {\r\n title: \"expand details\",\r\n });\r\n tr.appendChild(th);\r\n table.expand = options.expand;\r\n }\r\n if (options.select) {\r\n th = createElement(\"th\");\r\n th.appendChild(\r\n createElement(\"input\", {\r\n type: \"checkbox\",\r\n class: prefix + \"table-cmplx-select-all\",\r\n title: \"select all rows\",\r\n })\r\n );\r\n tr.appendChild(th);\r\n table.select = options.select;\r\n }\r\n each(table.data.headings, function (col) {\r\n var th = createElement(\"th\", {\r\n scope: \"col\",\r\n html: col,\r\n });\r\n tr.appendChild(th);\r\n });\r\n thead.appendChild(tr);\r\n }\r\n\r\n if (table.data.rows && table.data.rows.length) {\r\n tbody = createElement(\"tbody\");\r\n\r\n each(table.data.rows, function (row, idx) {\r\n row.dataIndex = idx;\r\n if (table.data.headings) {\r\n if (options.data.headings.length !== row.data.length) {\r\n throw new Error(\r\n \"Row found at index, [ \" +\r\n idx +\r\n \" ] that does not match the number of headings supplied.\"\r\n );\r\n }\r\n }\r\n\r\n var tr = createElement(\"tr\");\r\n //Add secondary accordion arrow for details\r\n if (options.expand) {\r\n tr.appendChild(renderExpand());\r\n }\r\n //Add selectable checkboxes\r\n if (options.select) {\r\n tr.appendChild(renderSelect());\r\n }\r\n each(row.data, function (value) {\r\n var td = createElement(\"td\", {\r\n html: value,\r\n });\r\n\r\n var textFromValue = getText(value);\r\n var isValueString = typeof textFromValue === \"string\";\r\n td.setAttribute(\"data-content\", isValueString ? textFromValue : \"\");\r\n tr.appendChild(td);\r\n });\r\n\r\n tbody.appendChild(tr);\r\n\r\n if (row.details) {\r\n tr.details = row.details;\r\n }\r\n\r\n // Secondary accordion html for details\r\n if (options.expand) {\r\n tbody.appendChild(renderDetails(tr, table.headings.length));\r\n }\r\n });\r\n }\r\n\r\n if (thead) {\r\n if (table.tHead !== null) {\r\n table.removeChild(table.tHead);\r\n }\r\n table.appendChild(thead);\r\n }\r\n\r\n if (tbody) {\r\n if (table.tBodies.length) {\r\n table.removeChild(table.tBodies[0]);\r\n }\r\n table.appendChild(tbody);\r\n }\r\n },\r\n setRenderColumns = function () {\r\n if (selectedColumns.length) {\r\n each(table.data, function (row) {\r\n each(row.cells, function (cell, i) {\r\n if (selectedColumns.indexOf(i) > -1) {\r\n each(columnRenderers, function (renderers) {\r\n if (renderers.columns === cell.cellIndex) {\r\n cell.innerHTML = renderers.renderer.call(self, cell.data, cell, row);\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n },\r\n renderDetails = function (row, length, stripeClass, selected) {\r\n var clazz = prefix + \"table-cmplx-row-details\";\r\n\r\n if (stripeClass) clazz = stripeClass + \" \" + clazz;\r\n if (selected) clazz += \" \" + \"selected\";\r\n\r\n var detailsRow = createElement(\"tr\", {\r\n class: clazz,\r\n });\r\n\r\n var detailsCell = createElement(\"td\", {\r\n class: prefix + \"table-complx-details\",\r\n colspan: length,\r\n });\r\n\r\n var accordionBody = createElement(\"div\", {\r\n class: prefix + \"table-complx-details-body\",\r\n });\r\n\r\n var accordionBodyChild = createElement(\"div\", {\r\n class: prefix + \"table-complx-details-body-child\",\r\n });\r\n\r\n accordionBody.appendChild(accordionBodyChild);\r\n\r\n if (row.details) {\r\n accordionBodyChild.innerHTML = row.details;\r\n } else {\r\n row.details = false;\r\n }\r\n\r\n detailsCell.appendChild(accordionBody);\r\n detailsRow.appendChild(detailsCell);\r\n return detailsRow;\r\n },\r\n renderExpand = function () {\r\n var td = createElement(\"td\");\r\n var showButton = createElement(\"button\", {\r\n class: prefix + \"table-cmplx-accordion-btn \" + prefix + \"collapsed\",\r\n \"aria-expanded\": false,\r\n \"aria-label\": \"expand details\",\r\n }),\r\n svgElem = renderSvg([\r\n { name: options.expandIcon, show: true },\r\n { name: \"loading-sqrs\", show: false },\r\n ]);\r\n showButton.appendChild(svgElem);\r\n td.appendChild(showButton);\r\n return td;\r\n },\r\n renderSelect = function () {\r\n var td = createElement(\"td\", {\r\n class: prefix + \"table-cmplx-row-select\",\r\n });\r\n var inputCheckbox = createElement(\"input\", {\r\n type: \"checkbox\",\r\n title: \"row select\",\r\n });\r\n td.appendChild(inputCheckbox);\r\n return td;\r\n },\r\n renderCustomRow = function (row) {\r\n var template = \"
\";\r\n template += row;\r\n template += \"
\";\r\n\r\n each(row.match(/\\{((\\w*|\\d*):?)+\\}/g), function (el) {\r\n var replace = el;\r\n var clean = el.replace(/[{,}]/g, \"\").split(\":\");\r\n switch (clean[0]) {\r\n case \"actions\":\r\n template = template.replace(replace, renderActions(clean[1], clean[2]));\r\n break;\r\n case \"search\":\r\n template = template.replace(replace, renderSearch(clean[1], clean[2]));\r\n break;\r\n case \"settings\":\r\n template = template.replace(replace, renderSettings(clean[1], clean[2]));\r\n break;\r\n case \"placeholder\":\r\n template = template.replace(replace, renderPlaceholder(clean[1]));\r\n break;\r\n default:\r\n var topCtnr =\r\n \"
\";\r\n topCtnr += window[clean[0]]() + \"
\";\r\n template = template.replace(replace, topCtnr);\r\n }\r\n });\r\n return template;\r\n },\r\n createActionButton = function (html, js, dataToggle, dataTarget) {\r\n var button;\r\n if (dataToggle && dataTarget) {\r\n button = createElement(\"button\", {\r\n class: prefix + \"dropdown-item\",\r\n role: \"menuitem\",\r\n onclick: js ? js : \"javascript: void(0);\",\r\n html: html,\r\n tabindex: \"-1\",\r\n data_toggle: dataToggle,\r\n data_target: dataTarget,\r\n });\r\n } else {\r\n button = createElement(\"button\", {\r\n class: prefix + \"dropdown-item\",\r\n role: \"menuitem\",\r\n onclick: js ? js : \"javascript: void(0);\",\r\n html: html,\r\n tabindex: \"-1\",\r\n });\r\n }\r\n return button;\r\n },\r\n createActionLi = function () {\r\n return createElement(\"li\", {\r\n class: prefix + \"dropdown-list-item\",\r\n role: \"none presentation\",\r\n tabindex: \"0\",\r\n });\r\n },\r\n renderActions = function (flexGrow, justifyContent) {\r\n var topCtnr;\r\n if (options.select) {\r\n topCtnr =\r\n \"
\") : +\">\";\r\n var cmplxAction = createElement(\"div\", {\r\n class: prefix + \"table-cmplx-action\",\r\n });\r\n var cmplxActionLabel = createElement(\"label\", {\r\n class: prefix + \"table-cmplx-action-label\",\r\n html: options.text.batchActions,\r\n for: batchId + \"BatchActions\",\r\n });\r\n cmplxAction.appendChild(cmplxActionLabel);\r\n\r\n var cmplxActionDropdown = createElement(\"div\", {\r\n class: prefix + \"mb-0 \" + prefix + \"btn-dropdown\",\r\n });\r\n var anchor = createElement(\"button\", {\r\n id: batchId + \"BatchActions\",\r\n class: prefix + \"btn \" + prefix + \"btn-secondary \" + prefix + \"table-cmplx-action-button\",\r\n tabindex: \"0\",\r\n \"data-toggle\": prefix + \"dropdown\",\r\n \"data-target\": \"#cmplxTablesActions\",\r\n \"aria-expanded\": \"false\",\r\n \"aria-controls\": \"cmplxTablesActions\",\r\n html: options.text.chooseActions,\r\n });\r\n\r\n var svgElem = renderSvg([{ name: \"arrow-tri-solid-right\", show: true }]);\r\n var svgClass = svgElem.getAttribute(\"class\");\r\n svgElem.setAttribute(\"class\", svgClass + \" \" + prefix + \"arrow-tri-solid-right\");\r\n anchor.appendChild(svgElem);\r\n cmplxActionDropdown.appendChild(anchor);\r\n\r\n var unordered = createElement(\"ul\", {\r\n id: \"cmplxTablesActions\",\r\n class: prefix + \"button-dropdown-container \" + prefix + \"collapse\",\r\n role: \"menu\",\r\n });\r\n\r\n each(options.actionsSelectFilters, function (action) {\r\n if (\"hr\" === action) {\r\n unordered.appendChild(createElement(action, { class: prefix + \"dropdown-divider\" }));\r\n } else {\r\n var actionLI = createActionLi();\r\n var actionLabel;\r\n if (typeof action === \"string\") {\r\n if (action === options.text.exportCsv) {\r\n actionLabel = createActionButton(\r\n action,\r\n null,\r\n \"dds__modal\",\r\n \"#\" + prefix + \"csvSpecialChars\"\r\n );\r\n } else {\r\n actionLabel = createActionButton(action);\r\n }\r\n } else {\r\n actionLabel = createActionButton(action.html, action.js);\r\n }\r\n actionLI.appendChild(actionLabel);\r\n unordered.appendChild(actionLI);\r\n }\r\n });\r\n\r\n anchor.setAttribute(\"disabled\", \"\");\r\n\r\n cmplxActionDropdown.appendChild(unordered);\r\n cmplxAction.appendChild(cmplxActionDropdown);\r\n\r\n topCtnr += cmplxAction.outerHTML + \"
\";\r\n } else {\r\n topCtnr = \"
\";\r\n }\r\n\r\n return topCtnr;\r\n },\r\n renderSearch = function (flexGrow, justifyContent) {\r\n var topCtnr;\r\n if (options.search) {\r\n topCtnr =\r\n \"
\") : +\">\";\r\n var inputGroup = createElement(\"div\", {\r\n class: prefix + \"table-cmplx-input-group\",\r\n });\r\n var searchCtnr = createElement(\"div\", {\r\n class: prefix + \"table-cmplx-search\",\r\n });\r\n var searchIcon = renderSvg([{ name: \"filter\", show: true }]);\r\n var searchInput = createElement(\"input\", {\r\n type: \"search\",\r\n class: prefix + \"form-control \",\r\n \"aria-label\": \"search\",\r\n });\r\n if (options.search && options.text.search.placeholder) {\r\n searchInput.setAttribute(\"placeholder\", options.text.search.placeholder);\r\n }\r\n searchCtnr.appendChild(searchInput);\r\n searchCtnr.appendChild(searchIcon);\r\n if (options.search && options.text.search.label) {\r\n var searchLabel = createElement(\"label\", {\r\n for: searchId + \"Search\",\r\n html: options.text.search.label,\r\n });\r\n searchInput.setAttribute(\"id\", searchId + \"Search\");\r\n inputGroup.appendChild(searchLabel);\r\n inputGroup.appendChild(searchCtnr);\r\n topCtnr += inputGroup.outerHTML + \"
\";\r\n } else {\r\n topCtnr += searchCtnr.outerHTML + \"\";\r\n }\r\n } else {\r\n topCtnr = \"
\";\r\n }\r\n\r\n return topCtnr;\r\n },\r\n renderSettings = function (flexGrow, justifyContent) {\r\n var topCtnr;\r\n if (options.settings) {\r\n topCtnr =\r\n \"
\") : +\">\";\r\n var optGear = \"
\";\r\n\r\n if (options.import) {\r\n optGear +=\r\n \"\";\r\n optGear +=\r\n \"\";\r\n }\r\n if (options.print) {\r\n optGear +=\r\n \"\";\r\n }\r\n if (options.column) {\r\n optGear +=\r\n \"\";\r\n }\r\n\r\n optGear += columnBox = '
\";\r\n topCtnr += optGear + \"
\";\r\n } else {\r\n topCtnr = \"
\";\r\n }\r\n\r\n return topCtnr;\r\n },\r\n renderPlaceholder = function (flexGrow) {\r\n return (\r\n \"
\"\r\n );\r\n },\r\n render = function () {\r\n var template = \"\";\r\n\r\n // Convert data to HTML\r\n if (options.data) {\r\n dataToTable(options.data);\r\n }\r\n\r\n body = table.tBodies[0];\r\n head = table.tHead;\r\n\r\n // Should move this to dataToTable method\r\n if (!body) {\r\n body = createElement(\"tbody\");\r\n table.appendChild(body);\r\n }\r\n\r\n table.hasRows = body.rows.length > 0;\r\n\r\n // Make a tHead if there isn't one (fixes #8)\r\n // Should move this to dataToTable method\r\n if (!head) {\r\n var h = createElement(\"thead\");\r\n var t = createElement(\"tr\");\r\n\r\n if (table.hasRows) {\r\n each(body.rows[0].cells, function () {\r\n t.appendChild(createElement(\"th\"));\r\n });\r\n\r\n h.appendChild(t);\r\n }\r\n\r\n head = h;\r\n\r\n table.insertBefore(head, body);\r\n }\r\n\r\n table.hasHeadings = head.rows.length > 0;\r\n\r\n if (table.hasHeadings) {\r\n header = head.rows[0];\r\n table.headings = [].slice.call(header.cells);\r\n }\r\n\r\n // Header\r\n if (!options.header) {\r\n if (head) {\r\n table.removeChild(table.tHead);\r\n }\r\n }\r\n\r\n // Build\r\n wrapper = createElement(\"div\", {\r\n class: prefix + \"table-cmplx-wrapper\",\r\n });\r\n\r\n //////////////////////////////////////////////////////\r\n // Top template - Begin\r\n //////////////////////////////////////////////////////\r\n\r\n if (options.layout.row1) {\r\n template += renderCustomRow(options.layout.row1);\r\n }\r\n\r\n if (options.layout.row2) {\r\n template += renderCustomRow(options.layout.row2);\r\n }\r\n\r\n //////////////////////////////////////////////////////\r\n // Top template - End\r\n //////////////////////////////////////////////////////\r\n\r\n template += \"
\";\r\n\r\n //////////////////////////////////////////////////////\r\n // Bottom template - Begin\r\n //////////////////////////////////////////////////////\r\n\r\n template += \"
\";\r\n template += \"
\";\r\n\r\n //////////////////////////////////////////////////////\r\n // Bottom template - End\r\n //////////////////////////////////////////////////////\r\n\r\n if (table.hasHeadings) {\r\n // Sortable\r\n renderHeader();\r\n }\r\n\r\n // Add table class\r\n table.classList.add(prefix + \"table-cmplx\");\r\n\r\n wrapper.innerHTML = template;\r\n\r\n container = wrapper.querySelector(\".\" + prefix + \"table-cmplx-container\");\r\n\r\n bottom = wrapper.querySelector(\".\" + prefix + \"table-cmplx-bottom\");\r\n\r\n // Pagination\r\n options.pagination = getSibling(element, \".dds__pagination\") ? true : false;\r\n if (options.pagination) {\r\n paginationElement = getSibling(element, \".dds__pagination\");\r\n bottom.appendChild(paginationElement);\r\n }\r\n\r\n columnBox = wrapper.querySelector(\"[data-toggle='data-column-box']\");\r\n\r\n // Insert in to DOM tree\r\n table.parentNode.replaceChild(wrapper, table);\r\n container.appendChild(table);\r\n\r\n // Store the table dimensions\r\n rect = table.getBoundingClientRect();\r\n\r\n // Convert rows to array for processing\r\n table.data = [];\r\n table.activeRows = [];\r\n\r\n var dataIdx = 0;\r\n each(\r\n body.rows,\r\n function (row, idx) {\r\n if (options.expand) {\r\n if (idx % 2 == 0) {\r\n row.dataIndex = dataIdx++;\r\n table.activeRows.push(row);\r\n table.data.push(row);\r\n }\r\n } else {\r\n row.dataIndex = idx;\r\n table.activeRows.push(row);\r\n table.data.push(row);\r\n }\r\n },\r\n true\r\n );\r\n\r\n table.activeHeadings = table.headings.slice();\r\n\r\n // Update\r\n self.update();\r\n\r\n // Set Columns\r\n setColumns();\r\n\r\n // Fix columns, think this is the only valid call for fixColumns\r\n fixColumns();\r\n\r\n // Options condensed\r\n if (options.condensed) {\r\n wrapper.querySelector(\".\" + prefix + \"table-cmplx\").classList.add(prefix + \"condensed\");\r\n }\r\n\r\n // This needs to run after the options.condensed\r\n if (options.fixedHeight) {\r\n if (options.origPerPage > table.activeRows.length) {\r\n metHeight = false;\r\n } else {\r\n // Fix height\r\n fixHeight();\r\n }\r\n }\r\n\r\n bindEvents();\r\n },\r\n renderPage = function () {\r\n if (options.search && searching === true && table.searchData.length === 0) return;\r\n if (table.hasRows && totalPages) {\r\n // Use a fragment to limit touching the DOM\r\n var index = currentPage - 1,\r\n frag = DOC.createDocumentFragment();\r\n\r\n var page = pages[index];\r\n var selectHeader;\r\n var selectCellIdx;\r\n\r\n if (table.hasHeadings) {\r\n flush(header, isIE);\r\n\r\n each(\r\n table.activeHeadings,\r\n function (th) {\r\n if (options.select) {\r\n each(th.children, function (el) {\r\n if (el && el.classList.contains(prefix + \"table-cmplx-select-all\")) {\r\n selectHeader = el;\r\n selectCellIdx = th.originalCellIndex;\r\n if (page.selected) {\r\n selectHeader.checked = true;\r\n selectHeader.state = \"checked\"; // set the state\r\n } else {\r\n selectHeader.checked = false;\r\n selectHeader.state = \"unchecked\"; // set the state\r\n }\r\n }\r\n });\r\n }\r\n // reest sortable columns\r\n if (th.hasAttribute(\"data-sortable\") && th.originalCellIndex != sortedColumnIdx) {\r\n th.setAttribute(\"aria-sort\", \"none\");\r\n }\r\n header.appendChild(th);\r\n },\r\n this\r\n );\r\n }\r\n\r\n var selectedRows = 0;\r\n each(\r\n page,\r\n function (row, idx) {\r\n //row.className = \"\";\r\n row.removeAttribute(\"class\");\r\n var selected = false;\r\n // redo if previously selected\r\n if (options.select) {\r\n if (\r\n table.data[row.dataIndex].cells[selectCellIdx].querySelector(\"input[type='checkbox']\")\r\n .checked\r\n ) {\r\n row.classList.add(\"selected\");\r\n selected = true;\r\n selectedRows++;\r\n if (!selectHeader.checked) {\r\n selectHeader.indeterminate = true;\r\n selectHeader.state = \"indeterminate\"; // set the state\r\n }\r\n }\r\n }\r\n // redo if stripped table\r\n if (table.classList.contains(prefix + \"table-striped\")) {\r\n var stripeColor =\r\n idx % 2 > 0 ? prefix + \"table-cmplx-row-odd\" : prefix + \"table-cmplx-row-even\";\r\n row.classList.add(stripeColor);\r\n }\r\n frag.appendChild(rows().render(row));\r\n if (options.expand) {\r\n row.querySelector(\".\" + prefix + \"table-cmplx-accordion-btn\").classList.add(\r\n prefix + \"collapsed\"\r\n );\r\n var detailsRow = renderDetails(row, table.headings.length, stripeColor, selected);\r\n detailsRow.children[0].classList.remove(prefix + \"show\");\r\n frag.appendChild(detailsRow);\r\n }\r\n },\r\n this\r\n );\r\n\r\n if (options.select) {\r\n if (selectedRows === page.length) {\r\n selectHeader.indeterminate = false;\r\n selectHeader.checked = true;\r\n selectHeader.state = \"checked\";\r\n } else if (selectedRows === 0 && options.select) {\r\n selectHeader.indeterminate = false;\r\n selectHeader.checked = false;\r\n selectHeader.state = \"unchecked\";\r\n }\r\n handleSelectAllChange(selectHeader.state);\r\n }\r\n self.clear(frag);\r\n } else if (searching && totalPages == 0) {\r\n if (table.hasHeadings) {\r\n flush(header, isIE);\r\n\r\n each(\r\n table.activeHeadings,\r\n function (th) {\r\n header.appendChild(th);\r\n },\r\n this\r\n );\r\n }\r\n } else {\r\n self.clear();\r\n }\r\n if (!metHeight) {\r\n fixHeight();\r\n }\r\n },\r\n renderHeader = function () {\r\n labels = [];\r\n\r\n if (table.headings && table.headings.length) {\r\n each(table.headings, function (th, i) {\r\n labels[i] = th.textContent;\r\n\r\n th.sortable = th.hasAttribute(\"data-sortable\");\r\n\r\n th.originalCellIndex = i;\r\n if (options.sort && th.sortable) {\r\n var sortLabel = createElement(\"label\", {\r\n class: prefix + \"table-cmplx-sorter\",\r\n html: th.textContent,\r\n });\r\n th.textContent = \"\";\r\n th.setAttribute(\"tabindex\", \"0\");\r\n th.appendChild(sortLabel);\r\n }\r\n });\r\n }\r\n\r\n fixColumns();\r\n },\r\n toggleBox = function (box, state) {\r\n box[\"getAttribute\"](\"indeterminate\");\r\n box[\"setAttribute\"](\"indeterminate\", false);\r\n box[\"indeterminate\"] = false;\r\n box.state = null;\r\n box[\"checked\"] = false;\r\n if (state && state === \"checked\") {\r\n box[\"getAttribute\"](\"checked\");\r\n box[\"setAttribute\"](\"checked\", \"checked\");\r\n box[\"checked\"] = true;\r\n } else if (state) {\r\n box[\"getAttribute\"](\"checked\");\r\n box.removeAttribute(\"checked\");\r\n } else {\r\n box.state = \"indeterminate\";\r\n box.indeterminate = true;\r\n }\r\n },\r\n getHeaderCellIndex = function (selector) {\r\n var cellIdx = 0;\r\n each(table.activeHeadings, function (header) {\r\n each(header.children, function (el) {\r\n if (el.classList.contains(selector)) {\r\n cellIdx = header.originalCellIndex;\r\n }\r\n });\r\n });\r\n return cellIdx;\r\n },\r\n bindEvents = function () {\r\n // Batch Actions\r\n if (options.select) {\r\n var actionSelect = wrapper.querySelector(\"#cmplxTablesActions\");\r\n actionSelect.addEventListener(\"keydown\", function (e) {\r\n if (e.keyCode == 13) {\r\n e.preventDefault();\r\n var actionButton = e.target.querySelector(\"button\");\r\n if (actionButton.innerHTML === options.text.deleteRow) {\r\n handleDeleteActionEvent();\r\n } else if (actionButton.innerHTML === options.text.exportCsv) {\r\n if (options.exportShowWarning) createSpecialCharModal();\r\n else handleExportActionEvent(e.target);\r\n } else if (actionButton.innerHTML === options.text.exportJson) {\r\n handleExportActionEvent(e.target);\r\n }\r\n }\r\n });\r\n actionSelect.addEventListener(\"mousedown\", function (e) {\r\n e.preventDefault();\r\n var actionButton = e.target;\r\n if (actionButton.innerHTML === options.text.deleteRow) {\r\n handleDeleteActionEvent();\r\n } else if (actionButton.innerHTML === options.text.exportCsv) {\r\n if (options.exportShowWarning) createSpecialCharModal();\r\n else handleExportActionEvent(e.target);\r\n } else if (actionButton.innerHTML === options.text.exportJson) {\r\n handleExportActionEvent(e.target);\r\n }\r\n });\r\n }\r\n\r\n // Search\r\n if (options.search) {\r\n input = wrapper.querySelector(\".\" + prefix + \"table-cmplx-search\").querySelector(\"input[type=search]\");\r\n if (input) {\r\n input.addEventListener(\r\n \"keyup\",\r\n function (e) {\r\n if (e.keyCode === 9 || e.keyCode === 16 || e.keyCode === 13) return;\r\n self.search(input.value);\r\n e.preventDefault();\r\n },\r\n false\r\n );\r\n input.addEventListener(\r\n \"mouseup\",\r\n function (e) {\r\n var origInput = input.value;\r\n setTimeout(function () {\r\n if (input.value == \"\" && origInput != \"\") {\r\n //the 'x' was pressed and removed the orig query string\r\n self.search(input.value);\r\n }\r\n }, 100);\r\n e.preventDefault();\r\n },\r\n false\r\n );\r\n }\r\n }\r\n\r\n // Settings\r\n if (options.settings) {\r\n var settingsCtnr = wrapper.querySelector(\".\" + prefix + \"table-cmplx-settings\");\r\n if (options.column) {\r\n var button = settingsCtnr.querySelector(\"button[aria-label='table settings columns']\");\r\n button.addEventListener(\r\n \"click\",\r\n function (e) {\r\n if (columnBox.classList.contains(prefix + \"show\")) {\r\n columnBox.classList.remove(prefix + \"show\");\r\n } else {\r\n renderSettingsDropDown();\r\n columnBox.classList.add(prefix + \"show\");\r\n columnBox.addEventListener(\"click\", function (e) {\r\n var t = e.target;\r\n if (t.nodeName.toLowerCase() === \"button\") {\r\n handleButtonEvent(t);\r\n settingsCtnr\r\n .querySelector(\"button[aria-label='table settings columns']\")\r\n .focus();\r\n } else if (t.nodeName.toLowerCase() === \"input\") {\r\n var applyButton = columnBox.querySelector(\".\" + prefix + \"btn-primary\");\r\n if (applyButton.disabled) {\r\n applyButton.removeAttribute(\"disabled\");\r\n }\r\n }\r\n });\r\n }\r\n e.preventDefault();\r\n },\r\n false\r\n );\r\n }\r\n\r\n if (options.print) {\r\n button = settingsCtnr.querySelector(\"button[aria-label='table settings print']\");\r\n button.addEventListener(\r\n \"click\",\r\n function (e) {\r\n self.print();\r\n e.preventDefault();\r\n },\r\n false\r\n );\r\n }\r\n\r\n if (options.import) {\r\n var fileImport = settingsCtnr.querySelector(\".\" + prefix + \"table-cmplx-file-import\");\r\n fileImport.addEventListener(\"change\", handleImportActionEvent, false);\r\n\r\n button = settingsCtnr.querySelector(\"button[aria-label='table settings import']\");\r\n button.addEventListener(\r\n \"click\",\r\n function (e) {\r\n fileImport.click();\r\n e.preventDefault();\r\n },\r\n false\r\n );\r\n }\r\n }\r\n\r\n // All listeners with in the table are should use wrapper.\r\n // Pager(s) / sorting\r\n wrapper.addEventListener(\r\n \"keydown\",\r\n function (e) {\r\n var t = e.target;\r\n // Checks for headers\r\n if (t.nodeName.toLowerCase() === \"th\" && e.keyCode === 13) {\r\n handleTableHeaderEvent(e, t);\r\n }\r\n // Checks for buttons\r\n if (\r\n t.nodeName.toLowerCase() === \"button\" &&\r\n e.keyCode === 13 &&\r\n t.classList.contains(prefix + \"table-cmplx-accordion-btn\")\r\n ) {\r\n handleAccordionEvent(t);\r\n e.preventDefault();\r\n }\r\n },\r\n false\r\n );\r\n\r\n wrapper.addEventListener(\r\n \"click\",\r\n function (e) {\r\n var t = e.target;\r\n // Checks for headers\r\n if (t.classList.contains(prefix + \"table-cmplx-sorter\")) {\r\n handleTableHeaderEvent(e, t.parentNode);\r\n }\r\n // Checks for buttons\r\n if (t.nodeName.toLowerCase() === \"button\") {\r\n handleAccordionEvent(t);\r\n e.preventDefault();\r\n }\r\n // Checks for inputs\r\n if (t.nodeName.toLowerCase() === \"input\") {\r\n if (t.type === \"checkbox\") {\r\n handleCheckBoxEvent(t);\r\n }\r\n }\r\n },\r\n false\r\n );\r\n },\r\n setColumns = function () {\r\n each(table.data, function (row) {\r\n each(row.cells, function (cell) {\r\n cell.data = cell.innerHTML;\r\n });\r\n });\r\n\r\n // Check for the columns option\r\n if (options.data.columns && table.headings.length) {\r\n each(options.data.columns, function (data) {\r\n // convert single column selection to array\r\n if (!isArray(data.select)) {\r\n data.select = [data.select];\r\n }\r\n\r\n if (\r\n Object.prototype.hasOwnProperty.call(data, \"render\") &&\r\n (typeof data.render === \"function\" || (typeof data.render === \"string\" && window[data.render]))\r\n ) {\r\n var nCIdx = parseInt(data.select) + baseCellIdx();\r\n selectedColumns = selectedColumns.concat(nCIdx);\r\n\r\n columnRenderers.push({\r\n columns: nCIdx,\r\n renderer: window[data.render],\r\n });\r\n }\r\n\r\n // Add the data attributes to the th elements\r\n each(data.select, function (column) {\r\n var th = table.headings[baseCellIdx() + column];\r\n if (data.type) {\r\n th.setAttribute(\"data-type\", data.type);\r\n }\r\n if (data.format) {\r\n th.setAttribute(\"data-format\", data.format);\r\n }\r\n if (options.sort) {\r\n if (Object.prototype.hasOwnProperty.call(data, \"sortable\") && data.sortable) {\r\n th.setAttribute(\"data-sortable\", \"\");\r\n th.setAttribute(\"aria-sort\", \"none\");\r\n }\r\n if (Object.prototype.hasOwnProperty.call(data, \"sort\")) {\r\n th.setAttribute(\"data-sortable\", \"\");\r\n th.setAttribute(\"aria-sort\", \"none\");\r\n }\r\n }\r\n if (Object.prototype.hasOwnProperty.call(data, \"fixed\")) {\r\n th.setAttribute(\"data-fixed\", data.fixed);\r\n }\r\n if (Object.prototype.hasOwnProperty.call(data, \"control\")) {\r\n th.setAttribute(\"data-control\", data.control);\r\n }\r\n if (Object.prototype.hasOwnProperty.call(data, \"hidden\")) {\r\n if (data.hidden) {\r\n columns().hide([baseCellIdx() + column]);\r\n self.update();\r\n }\r\n }\r\n if (Object.prototype.hasOwnProperty.call(data, \"sort\") && data.select.length == 1) {\r\n sortedColumnIdx = baseCellIdx() + data.select[0];\r\n columns().sort(sortedColumnIdx, data.sort);\r\n self.update();\r\n uicoreCustomEvent(\"Table\", \"SortEvent\", table, {\r\n column: sortedColumnIdx,\r\n direction: data.sort === \"asc\" ? \"ascending\" : \"descending\",\r\n currentPage: currentPage,\r\n perPage: options.perPage,\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n if (table.hasRows) {\r\n each(table.data, function (row, idx) {\r\n row.dataIndex = idx;\r\n each(row.cells, function (cell) {\r\n cell.data = cell.innerHTML;\r\n });\r\n });\r\n\r\n setRenderColumns();\r\n columns().rebuild();\r\n self.update();\r\n }\r\n\r\n renderHeader();\r\n },\r\n renderSettingsDropDown = function () {\r\n flush(columnBox, isIE);\r\n var columnContainer = createElement(\"div\", {\r\n class: prefix + \"table-cmplx-column-cntr\",\r\n });\r\n\r\n // set up list variables and add first check/uncheck-all row\r\n var checkableCount = 0,\r\n checkCount = 0;\r\n var unOrderedList = createElement(\"ul\");\r\n var listItem;\r\n var columnLabel;\r\n var columnInput;\r\n var boxLabel;\r\n\r\n // Add column headings to list\r\n each(table.headings, function (header, idx) {\r\n if (\r\n idx >= baseCellIdx() &&\r\n header.dataset[\"fixed\"] !== \"true\" &&\r\n (options.rearrangeableColumns || header.dataset[\"control\"] !== \"false\")\r\n ) {\r\n var listItem;\r\n var dragSvg;\r\n if (options.rearrangeableColumns) {\r\n listItem = createElement(\"li\", {\r\n class: prefix + \"table-cmplx-drag-li\",\r\n draggable: true,\r\n });\r\n dragSvg = renderSvg([{ name: \"handle\", show: true }]);\r\n setupDragEvents(listItem);\r\n moveableCols.push(listItem);\r\n } else {\r\n listItem = createElement(\"li\", {\r\n class: prefix + \"table-cmplx-li\",\r\n });\r\n }\r\n columnLabel = createElement(\"label\", {\r\n for: idx + \"_\" + batchId, // prevent duplicate IDs when using multiple tables per page\r\n class: prefix + \"text-truncate\",\r\n });\r\n boxLabel = createElement(\"span\");\r\n if (header.dataset[\"control\"] !== \"false\") {\r\n checkableCount++;\r\n columnInput = createElement(\"input\", {\r\n id: idx + \"_\" + batchId,\r\n type: \"checkbox\",\r\n });\r\n columnInput.checked = columns().visible(idx);\r\n columnLabel.appendChild(columnInput);\r\n if (columnInput.checked) {\r\n checkCount++;\r\n }\r\n } else {\r\n boxLabel.style.marginLeft = \"1.75rem\";\r\n }\r\n boxLabel.innerHTML = header.textContent;\r\n columnLabel.appendChild(boxLabel);\r\n if (dragSvg) {\r\n listItem.appendChild(dragSvg);\r\n }\r\n listItem.appendChild(columnLabel);\r\n unOrderedList.appendChild(listItem);\r\n columnContainer.appendChild(unOrderedList);\r\n }\r\n });\r\n var defaultAllChecked =\r\n checkCount === checkableCount || checkCount === 0 ? checkCount === checkableCount : null; // all-checked will be true | false | null (indeterminate)\r\n if (checkableCount > 1) {\r\n // Add lightweight hr to list\r\n listItem = createElement(\"li\", {\r\n class: prefix + \"table-cmplx-li\",\r\n });\r\n boxLabel = createElement(\"hr\");\r\n boxLabel.classList.add(prefix + \"tertiary_divider\");\r\n boxLabel.classList.add(prefix + \"mt-1\");\r\n listItem.appendChild(boxLabel);\r\n unOrderedList.insertBefore(listItem, unOrderedList.firstChild);\r\n\r\n // add check-all box to list\r\n listItem = createElement(\"li\", {\r\n class: prefix + \"table-cmplx-li\",\r\n });\r\n columnLabel = createElement(\"label\", {\r\n for: allCheckboxId,\r\n class: prefix + \"text-truncate\",\r\n });\r\n columnInput = createElement(\"input\", {\r\n id: allCheckboxId,\r\n type: \"checkbox\",\r\n });\r\n boxLabel = createElement(\"span\");\r\n boxLabel.innerHTML = options.text.allColumns;\r\n columnLabel.appendChild(columnInput);\r\n columnLabel.appendChild(boxLabel);\r\n listItem.appendChild(columnLabel);\r\n unOrderedList.insertBefore(listItem, unOrderedList.firstChild);\r\n\r\n var allChk = unOrderedList.querySelector(\"#\" + allCheckboxId);\r\n if (defaultAllChecked === true) {\r\n toggleBox(allChk, \"checked\");\r\n } else if (defaultAllChecked === false) {\r\n toggleBox(allChk, \"unchecked\");\r\n } else {\r\n toggleBox(allChk);\r\n }\r\n }\r\n if (columnContainer.querySelectorAll(\"ul\").length === 0) {\r\n var emptySpan = createElement(\"span\", {\r\n class: prefix + \"text-wrap\",\r\n html: \"Cannot rearrange or turn columns on/off.\",\r\n });\r\n columnContainer.appendChild(emptySpan);\r\n }\r\n var buttonContainer = createElement(\"div\", {\r\n class: prefix + \"row \" + prefix + \"no-gutters\",\r\n });\r\n var cancelButton = createElement(\"button\", {\r\n class: prefix + \"btn \" + prefix + \"btn-secondary\",\r\n html: options.text.cancel,\r\n });\r\n var applyButton = createElement(\"button\", {\r\n class: prefix + \"btn \" + prefix + \"btn-primary\",\r\n html: options.text.apply,\r\n disabled: \"\",\r\n });\r\n buttonContainer.appendChild(cancelButton);\r\n buttonContainer.appendChild(applyButton);\r\n columnContainer.appendChild(buttonContainer);\r\n columnBox.appendChild(columnContainer);\r\n },\r\n paginate = function () {\r\n var perPage = options.perPage,\r\n rows = table.activeRows;\r\n\r\n if (searching) {\r\n rows = [];\r\n\r\n each(\r\n table.searchData,\r\n function (index) {\r\n rows.push(table.activeRows[index]);\r\n },\r\n this\r\n );\r\n }\r\n\r\n // Check for hidden columns\r\n pages = rows\r\n .map(function (tr, i) {\r\n return i % perPage === 0 ? rows.slice(i, i + perPage) : null;\r\n })\r\n .filter(function (page) {\r\n return page;\r\n });\r\n\r\n totalPages = pages.length;\r\n self.page(1);\r\n },\r\n fixColumns = function () {\r\n rect = table.getBoundingClientRect();\r\n if (options.fixedColumns && table.activeHeadings && table.activeHeadings.length && !columnsFixed) {\r\n var cells,\r\n hd = false,\r\n reducePx = 0;\r\n\r\n // If we have headings we need only set the widths on them\r\n // otherwise we need a temp header and the widths need applying to all cells\r\n if (table.tHead) {\r\n each(table.activeHeadings, function (cell) {\r\n cell.style.maxWidth = \"\";\r\n cell.style.width = \"\";\r\n });\r\n var expandDone,\r\n selectDone = false;\r\n each(table.activeHeadings, function (cell, i) {\r\n if (i == 0 && options.expand && !expandDone) {\r\n expandDone = true;\r\n cell.style.maxWidth = \"20px\";\r\n cell.style.width = \"20px\";\r\n reducePx += 20;\r\n } else if ((i == 0 || i == 1) && options.select && !selectDone) {\r\n selectDone = true;\r\n cell.style.maxWidth = \"20px\";\r\n cell.style.width = \"20px\";\r\n reducePx += 20;\r\n } else {\r\n var ow = cell.offsetWidth;\r\n var w = (ow / (rect.width - reducePx)) * 100;\r\n cell.style.width = w + \"%\";\r\n }\r\n });\r\n } else {\r\n cells = [];\r\n\r\n // Make temperary headings\r\n hd = createElement(\"thead\");\r\n var r = createElement(\"tr\");\r\n each(table.tBodies[0].rows[0].cells, function () {\r\n var th = createElement(\"th\");\r\n r.appendChild(th);\r\n cells.push(th);\r\n });\r\n\r\n hd.appendChild(r);\r\n table.insertBefore(hd, body);\r\n\r\n var widths = [];\r\n each(\r\n cells,\r\n function (cell, i) {\r\n if (i == 0 && options.expand) {\r\n reducePx += 20;\r\n } else if ((i == 0 || i == 1) && options.select) {\r\n reducePx += 20;\r\n } else {\r\n var ow = cell.offsetWidth;\r\n var w = (ow / (rect.width - reducePx)) * 100;\r\n widths.push(w);\r\n }\r\n },\r\n this\r\n );\r\n\r\n each(\r\n table.data,\r\n function (row) {\r\n each(\r\n row.cells,\r\n function (cell, i) {\r\n if (i == 0 && options.expand) {\r\n cell.style.width = \"20px\";\r\n } else if ((i == 0 || i == 1) && options.select) {\r\n cell.style.width = \"20px\";\r\n } else if (columns().visible(baseCellIdx() + cell.cellIndex))\r\n cell.style.width = widths[i] + \"%\";\r\n },\r\n this\r\n );\r\n },\r\n this\r\n );\r\n\r\n // Discard the temp header\r\n table.removeChild(hd);\r\n }\r\n columnsFixed = true;\r\n }\r\n },\r\n fixHeight = function () {\r\n if (options.fixedHeight) {\r\n container.style.height = null;\r\n rect = container.getBoundingClientRect();\r\n container.style.height = rect.height + \"px\";\r\n }\r\n metHeight = options.origPerPage <= table.activeRows.length && options.perPage == options.origPerPage;\r\n },\r\n resetCollapse = function () {\r\n each(table.activeRows, function (row) {\r\n var button = row.querySelector(\".\" + prefix + \"table-cmplx-accordion-btn\");\r\n if (button && !button.classList.contains(prefix + \"collapsed\")) {\r\n button.classList.add(prefix + \"collapsed\");\r\n }\r\n });\r\n },\r\n insert = function (data) {\r\n var newrows = [];\r\n if (isObject(data)) {\r\n if (data.headings) {\r\n if (!table.hasHeadings && !table.hasRows) {\r\n var tr = createElement(\"tr\"),\r\n th;\r\n each(data.headings, function (heading) {\r\n th = createElement(\"th\", {\r\n html: heading,\r\n });\r\n\r\n tr.appendChild(th);\r\n });\r\n head.appendChild(tr);\r\n\r\n header = tr;\r\n table.headings = [].slice.call(header.cells);\r\n table.hasHeadings = true;\r\n\r\n // Re-enable sorting if it was disabled due\r\n // to missing header\r\n // options.sort = initialSortable;\r\n }\r\n }\r\n\r\n if (data.rows && isArray(data.rows)) {\r\n each(data.rows, function (row, rowIdx) {\r\n var headerCount = [];\r\n for (var l = 0; l < labels.length; l++) {\r\n headerCount.push(l);\r\n }\r\n var padR = 0,\r\n r = [];\r\n if (options.expand) {\r\n r[0] = renderExpand().outerHTML;\r\n padR++;\r\n delete headerCount[0];\r\n }\r\n if (options.select) {\r\n var selectData = renderSelect().outerHTML;\r\n if (options.expand) {\r\n r[1] = selectData;\r\n padR++;\r\n delete headerCount[1];\r\n } else {\r\n r[0] = selectData;\r\n padR++;\r\n }\r\n }\r\n each(row, function (cell, idx) {\r\n var index;\r\n if (data.headings) {\r\n index = labels.indexOf(data.headings[idx]);\r\n delete headerCount[index];\r\n } else {\r\n index = idx;\r\n }\r\n\r\n if (index > -1) {\r\n r[index] = cell;\r\n }\r\n });\r\n for (var z = 0; z < headerCount.length; z++) {\r\n if (headerCount[z]) {\r\n r[headerCount[z]] = \"\";\r\n }\r\n }\r\n if (r.length == (data.headings ? labels.length : padR + labels.length)) {\r\n newrows.push(r);\r\n } else {\r\n var msg = \"Row found at index, [ \" + rowIdx + \" ] that did not match the current headers.\";\r\n console.error(msg);\r\n uicoreCustomEvent(\"Table\", \"Error\", table, { msg: msg });\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (newrows.length) {\r\n if (data.details) {\r\n rows().add(newrows, data.details);\r\n } else {\r\n rows().add(newrows);\r\n }\r\n columns().rebuild();\r\n if (!searching) {\r\n pagination.addItems(newrows.length);\r\n } else {\r\n var query = wrapper.querySelector(\"input[type='search']\").value;\r\n self.search(query);\r\n }\r\n table.hasRows = true;\r\n }\r\n\r\n fixColumns();\r\n setRenderColumns();\r\n columns().rebuild();\r\n self.update();\r\n // fixing pagination\r\n pagination.setItems(table.activeRows.length);\r\n\r\n if (!metHeight) {\r\n fixHeight();\r\n }\r\n },\r\n createSpecialCharModal = function () {\r\n var modal = document.getElementById(prefix + \"csvSpecialChars\");\r\n if (!modal) {\r\n var modalEl = createElement(\"div\", {\r\n class: prefix + \"modal \" + prefix + \"fade\",\r\n role: \"dialog\",\r\n aria_labelledby: prefix + \"modal-title\",\r\n id: prefix + \"csvSpecialChars\",\r\n tabindex: \"-1\",\r\n html:\r\n '
' +\r\n '

CSV with Special Characters

' +\r\n '

If you are exporting table data that includes special characters, then you may need to use the following process to see these within Excel:

    ' +\r\n '
  1. Open Excel.
  2. ' +\r\n '
  3. Open the Data menu.
  4. ' +\r\n '
  5. Select the option From Text/CSV.
  6. ' +\r\n '
  7. Select the CSV file. This should open an import dialog.
  8. ' +\r\n '
  9. Go to File Origin menu and choose the Unicode (UTF-8) options.
  10. ' +\r\n '
  11. Load the file to complete the process.
  12. ' +\r\n \"
\" +\r\n \"
\" +\r\n '
' +\r\n '' +\r\n '' +\r\n \"
\" +\r\n \"
\" +\r\n \"
\",\r\n });\r\n wrapper.appendChild(modalEl);\r\n var batchActions = wrapper.querySelector(\r\n \".\" + prefix + \"table-cmplx-action .\" + prefix + \"btn-dropdown\"\r\n );\r\n var csvBtn = batchActions.querySelector(\"[data-target='#\" + prefix + \"csvSpecialChars']\");\r\n setTimeout(function () {\r\n var csvModal = new Modal(csvBtn, {\r\n static: false,\r\n });\r\n csvModal.show();\r\n modal = document.getElementById(prefix + \"csvSpecialChars\");\r\n var continueBtn = modal.querySelector(\".\" + prefix + \"btn-primary\");\r\n continueBtn.addEventListener(\"click\", function () {\r\n handleExportActionEvent(csvBtn);\r\n });\r\n }, 200);\r\n }\r\n },\r\n isUrl = function (value) {\r\n return value.match(\r\n /(?:(?:https?|ftp):\\/\\/|\\b(?:[a-z\\d]+\\.))(?:(?:[^\\s()<>]+|\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))?\\))+(?:\\((?:[^\\s()<>]+|(?:\\(?:[^\\s()<>]+\\)))?\\)|[^\\s`!()[\\]{};:'\".,<>?«»“”‘’]))?/g\r\n );\r\n },\r\n isEmail = function (value) {\r\n /* eslint-disable */\r\n return value.match(\r\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\r\n );\r\n /* eslint-enable */\r\n },\r\n modifyText = function (text) {\r\n text = text.trim();\r\n text = text.replace(/\\s{2,}/g, \" \");\r\n text = text.replace(/\\n/g, \" \");\r\n text = text.replace(/\"/g, '\"\"');\r\n if (text.indexOf(\",\") > -1) text = '\"' + text + '\"';\r\n return text;\r\n };\r\n\r\n if (!options.header) {\r\n options.sort = false;\r\n }\r\n\r\n if (table.tHead === null) {\r\n if (!options.data || (options.data && !options.data.headings)) {\r\n options.sort = false;\r\n }\r\n }\r\n\r\n if (table.tBodies.length && !table.tBodies[0].rows.length) {\r\n if (options.data) {\r\n if (!options.data.rows) {\r\n throw new Error(\"You seem to be using the data option, but you've not defined any rows.\");\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Expand a row\r\n * @param {number} rowIdx\r\n * @return {Void}\r\n */\r\n this.expandRow = function (rowIdx) {\r\n var theRowIdx = validateNum(rowIdx, 0);\r\n\r\n if (typeof theRowIdx === \"number\") {\r\n var expandCell = table.activeRows[theRowIdx].querySelector(\".\" + prefix + \"table-cmplx-accordion-btn\");\r\n handleAccordionEvent(expandCell);\r\n }\r\n return false;\r\n };\r\n\r\n /**\r\n * Update the instance\r\n * @return {Void}\r\n */\r\n this.update = function () {\r\n // Remove class that was set from setMessage if applicable\r\n if (!(options.search && searching && table.searchData.length == 0)) {\r\n wrapper.classList.remove(prefix + \"table-cmplx-empty\");\r\n }\r\n\r\n paginate();\r\n\r\n renderPage();\r\n\r\n table.sorting = false;\r\n\r\n rows().update();\r\n\r\n if (table.hasRows) {\r\n table.setAttribute(\"aria-rowcount\", table.activeRows.length);\r\n } else {\r\n table.setAttribute(\"aria-rowcount\", 0);\r\n }\r\n\r\n table.setAttribute(\"aria-colcount\", table.activeHeadings.length);\r\n\r\n uicoreCustomEvent(\"Table\", \"UpdateEvent\", table);\r\n };\r\n\r\n /**\r\n * Perform a search of the data set\r\n * @param {string} query\r\n * @return {void}\r\n */\r\n this.search = function (query) {\r\n if (!table.hasRows) return false;\r\n\r\n resetCollapse();\r\n\r\n query = query.toLowerCase();\r\n\r\n searching = true;\r\n table.searchData = [];\r\n\r\n if (!query.length) {\r\n searching = false;\r\n if (currentPage != 1) {\r\n //if not already on the first page\r\n pagination.page(1);\r\n currentPage = 1;\r\n }\r\n this.update();\r\n pagination.setItems(table.activeRows.length);\r\n uicoreCustomEvent(\"Table\", \"SearchEvent\", table, { query: query, searchData: table.searchData });\r\n wrapper.classList.remove(\"search-results\");\r\n\r\n return false;\r\n }\r\n\r\n this.clear();\r\n\r\n each(\r\n table.data,\r\n function (row, idx) {\r\n var inArray = table.searchData.indexOf(row) > -1;\r\n\r\n var doesQueryMatch = query.split(\" \").reduce(function (bool, word) {\r\n var includes = false,\r\n cell = null,\r\n content = null;\r\n\r\n for (var x = baseCellIdx(); x < row.cells.length; x++) {\r\n cell = row.cells[x];\r\n content = cell.hasAttribute(\"data-content\")\r\n ? cell.getAttribute(\"data-content\")\r\n : cell.textContent;\r\n if (content.toLowerCase().indexOf(word) > -1 && columns().visible(cell.cellIndex)) {\r\n includes = true;\r\n break;\r\n }\r\n }\r\n\r\n return bool && includes;\r\n }, true);\r\n\r\n if (doesQueryMatch && !inArray) {\r\n row.searchIndex = idx;\r\n table.searchData.push(idx);\r\n } else {\r\n row.searchIndex = null;\r\n }\r\n },\r\n this\r\n );\r\n\r\n wrapper.classList.add(\"search-results\");\r\n if (!table.searchData.length) {\r\n wrapper.classList.remove(\"search-results\");\r\n this.setMessage(options.labels.noRows);\r\n } else {\r\n if (table.searchData.length > options.perPage && currentPage != 1) {\r\n //if not already on the first page\r\n pagination.page(1);\r\n }\r\n currentPage = 1;\r\n this.update();\r\n }\r\n pagination.setItems(table.searchData.length);\r\n uicoreCustomEvent(\"Table\", \"SearchEvent\", table, { query: query, searchData: table.searchData });\r\n };\r\n\r\n /**\r\n * Change page\r\n * @param {int} page\r\n * @return {void}\r\n */\r\n this.page = function (page) {\r\n var newPage;\r\n\r\n if (!isNaN(page)) {\r\n newPage = parseInt(page, 10);\r\n } else {\r\n newPage = page;\r\n }\r\n\r\n if (newPage == currentPage || newPage > pages.length || newPage < 0) {\r\n return false;\r\n }\r\n\r\n currentPage = newPage;\r\n\r\n renderPage();\r\n\r\n if (options.items > 0) {\r\n pagination.page(newPage);\r\n }\r\n\r\n uicoreCustomEvent(\"Table\", \"PageChangedEvent\", table, { currentPage: currentPage });\r\n };\r\n\r\n this.perPage = function (detail) {\r\n var newPerPage, newPage, newPages;\r\n if (!isNaN(detail.perPage)) {\r\n newPerPage = parseInt(detail.perPage, 10);\r\n } else {\r\n newPerPage = detail.perPage;\r\n }\r\n if (!isNaN(detail.page)) {\r\n newPage = parseInt(detail.page, 10);\r\n } else {\r\n newPage = detail.page;\r\n }\r\n if (!isNaN(detail.pages)) {\r\n newPages = parseInt(detail.pages, 10);\r\n } else {\r\n newPages = detail.perPage;\r\n }\r\n\r\n if (options.perPage != newPerPage) {\r\n options.perPage = newPerPage;\r\n totalPages = newPages;\r\n currentPage = newPage;\r\n\r\n this.update();\r\n\r\n if (options.items > 0) {\r\n pagination.perPage(newPerPage);\r\n }\r\n\r\n if (!metHeight) {\r\n fixHeight();\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Refresh the instance\r\n * @return {void}\r\n */\r\n this.refresh = function () {\r\n var that = this;\r\n if (options.search) {\r\n input.value = \"\";\r\n searching = false;\r\n }\r\n currentPage = 1;\r\n that.update();\r\n\r\n uicoreCustomEvent(\"Table\", \"RefreshEvent\", table);\r\n };\r\n\r\n /**\r\n * Truncate the table\r\n * @param {mixes} html - HTML string or HTMLElement\r\n * @return {void}\r\n */\r\n this.clear = function (html) {\r\n if (body) {\r\n flush(body, isIE);\r\n }\r\n\r\n var parent = body;\r\n if (!body) {\r\n parent = table;\r\n }\r\n\r\n if (html) {\r\n if (typeof html === \"string\") {\r\n var frag = DOC.createDocumentFragment();\r\n frag.innerHTML = html;\r\n parent.appendChild(frag);\r\n } else {\r\n parent.appendChild(html);\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Export table to various formats (csv, txt or sql)\r\n * @param {Object} exportOptions User options\r\n * @return {Boolean}\r\n */\r\n this.export = function (exportOptions) {\r\n if (!table.hasHeadings && !table.hasRows) return false;\r\n\r\n var headers = table.activeHeadings,\r\n rows = [],\r\n arr = [],\r\n i,\r\n x,\r\n str,\r\n link;\r\n\r\n var defaults = {\r\n download: true,\r\n skipColumn: [],\r\n\r\n filename: params.exportFileName,\r\n\r\n // csv\r\n lineDelimiter: \"\\n\",\r\n columnDelimiter: \",\",\r\n\r\n // sql\r\n tableName: \"myTable\",\r\n\r\n // json\r\n replacer: null,\r\n space: 4,\r\n };\r\n\r\n // Check for the options object\r\n if (!isObject(exportOptions)) {\r\n return false;\r\n }\r\n\r\n var o = extend(defaults, exportOptions);\r\n\r\n if (o.type) {\r\n if (options.select) {\r\n each(table.selectedRows, function (rowIdx) {\r\n rows = rows.concat(table.activeRows[rowIdx]);\r\n });\r\n } else {\r\n if (o.currentPage) {\r\n rows = rows.concat(pages[currentPage - 1]);\r\n } else {\r\n rows = rows.concat(table.activeRows);\r\n }\r\n }\r\n // Only proceed if we have data\r\n if (rows.length) {\r\n var blob;\r\n if (o.type === \"txt\" || o.type === \"csv\") {\r\n rows.unshift(header);\r\n str = \"\";\r\n\r\n each(rows, function (row) {\r\n for (x = 0; x < (options.exportDetails ? row.cells.length + 1 : row.cells.length); x++) {\r\n var text;\r\n if (x === row.cells.length) {\r\n //add details column if exportDetails = true\r\n if (rows.indexOf(row) > 0) {\r\n text = table.data[rows.indexOf(row) - 1].details\r\n ? table.data[rows.indexOf(row) - 1].details\r\n : null;\r\n } else {\r\n text = \"Details\";\r\n }\r\n if (text) {\r\n str += modifyText(text) + o.columnDelimiter;\r\n }\r\n } else if (\r\n x < row.cells.length &&\r\n o.skipColumn.indexOf(headers[x].originalCellIndex) < 0 &&\r\n columns(headers[x].originalCellIndex).visible()\r\n // Check for column skip and visibility\r\n ) {\r\n text = row.cells[x].getAttribute(\"data-content\")\r\n ? row.cells[x].getAttribute(\"data-content\")\r\n : row.cells[x].textContent;\r\n text = modifyText(text);\r\n\r\n var isLink = row.cells[x].querySelector(\"a\");\r\n if (isLink) {\r\n text = isLink.getAttribute(\"href\");\r\n if (text.substring(0, 2) === \"//\") {\r\n //Excel won't interpret `//www.example.com` as a hyperlink, but will for links in format `www.example.com` or `http://www.example.com`)\r\n text = text.substring(2, text.length);\r\n } else if (text.substring(0, 7) === \"mailto:\") {\r\n text = text.substring(7, text.length);\r\n }\r\n }\r\n str += text + o.columnDelimiter;\r\n }\r\n }\r\n // Remove trailing column delimiter\r\n str = str.trim().substring(0, str.length - 1);\r\n\r\n // Apply line delimiter\r\n str += o.lineDelimiter;\r\n });\r\n\r\n // Remove trailing line delimiter\r\n str = str.trim().substring(0, str.length - 1);\r\n\r\n if (isIE || isEdge) {\r\n str = encodeURI(str);\r\n blob = new Blob([decodeURIComponent(str)], { type: \"text/csv;charset=UTF-8\" });\r\n }\r\n } else if (o.type === \"json\") {\r\n // Iterate rows\r\n each(rows, function (row, idx) {\r\n arr[idx] = arr[idx] || {};\r\n // Iterate columns\r\n for (i = 0; i < (options.exportDetails ? headers.length + 1 : headers.length); i++) {\r\n if (i === headers.length) {\r\n if (table.data[rows.indexOf(row)].details) {\r\n arr[idx][\"Details\"] = table.data[rows.indexOf(row)].details;\r\n }\r\n } else if (\r\n // Check for column skip and column visibility\r\n i < row.cells.length &&\r\n o.skipColumn.indexOf(headers[i].originalCellIndex) < 0 &&\r\n columns(headers[i].originalCellIndex).visible()\r\n ) {\r\n if (row.cells[i].getAttribute(\"data-content\")) {\r\n var isLink = row.cells[i].querySelector(\"a\");\r\n\r\n if (isLink) {\r\n // Aligning with format for exporting to excel\r\n var url = isLink.getAttribute(\"href\");\r\n if (url.substring(0, 2) === \"//\") {\r\n arr[idx][headers[i].textContent] = url.substring(2, url.length);\r\n } else if (url.substring(0, 7) === \"mailto:\") {\r\n arr[idx][headers[i].textContent] = url.substring(7, url.length);\r\n } else {\r\n arr[idx][headers[i].textContent] = url;\r\n }\r\n } else {\r\n arr[idx][headers[i].textContent] = row.cells[i].getAttribute(\"data-content\");\r\n }\r\n } else {\r\n arr[idx][headers[i].textContent] = row.cells[i].textContent;\r\n }\r\n }\r\n }\r\n });\r\n\r\n // Convert the array of objects to JSON string\r\n str = JSON.stringify(arr, o.replacer, o.space);\r\n if (isIE || isEdge) {\r\n blob = new Blob([decodeURIComponent(str)], { type: \"text/json;charset=UTF-8\" });\r\n }\r\n }\r\n\r\n // Download\r\n if (o.download) {\r\n // Filename\r\n o.filename = o.filename || \"datatable_export\";\r\n o.filename += \".\" + o.type;\r\n\r\n if (isIE || isEdge) {\r\n //Internet Explorer\r\n window.navigator.msSaveBlob(blob, o.filename);\r\n } else {\r\n // Create a link to trigger the download\r\n if (o.type === \"json\") {\r\n str = encodeURIComponent(str);\r\n str = \"data:application/json;charset=utf-8,\" + str;\r\n } else if (o.type === \"csv\") {\r\n str = encodeURIComponent(str);\r\n str = \"data:application/csv;charset=utf-8,\" + str;\r\n }\r\n link = createElement(\"a\", {\r\n href: str,\r\n download: o.filename,\r\n });\r\n\r\n // Append the link\r\n body.appendChild(link);\r\n\r\n // Trigger the download\r\n link.click();\r\n\r\n // Remove the link\r\n body.removeChild(link);\r\n }\r\n }\r\n\r\n return str;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n /**\r\n * Import data to the table\r\n * @param {Object} newData User newData\r\n * @return {Boolean}\r\n */\r\n this.import = function (newData) {\r\n var obj = false;\r\n var defaults = {\r\n // csv\r\n lineDelimiter: \"\\n\",\r\n columnDelimiter: \",\",\r\n };\r\n\r\n // Check for the newData object\r\n if (!isObject(newData)) {\r\n return false;\r\n }\r\n\r\n newData = extend(defaults, newData);\r\n\r\n if (newData.data.length || isObject(newData.data)) {\r\n // Import CSV\r\n if (newData.type === \"csv\") {\r\n obj = {\r\n rows: [],\r\n details: [],\r\n headings: [],\r\n };\r\n\r\n var rows = newData.data.split(newData.lineDelimiter);\r\n\r\n if (rows.length) {\r\n newData.skipColumn = [];\r\n newData.details = -1;\r\n each(singleLineCSVtoArray(rows[0]), function (importHeader, idx) {\r\n if (labels.indexOf(importHeader) < 0) {\r\n if (importHeader != \"Details\") {\r\n newData.skipColumn.push(idx);\r\n } else {\r\n newData.details = idx;\r\n }\r\n } else {\r\n obj.headings.push(importHeader);\r\n }\r\n });\r\n\r\n if (obj.headings) {\r\n rows.shift();\r\n each(rows, function (row, i) {\r\n if (row === \"\") return false;\r\n row = row.replace(/\\r?\\n|\\r/g, \"\");\r\n row = singleLineCSVtoArray(row);\r\n obj.rows[i] = [];\r\n\r\n each(row, function (value, v) {\r\n if (newData.skipColumn.indexOf(v) == -1 && newData.details != v) {\r\n if (isEmail(value)) {\r\n value = \"\" + value + \"\";\r\n } else if (isUrl(value)) {\r\n value =\r\n value.substring(0, 3) === \"www\"\r\n ? \"\" + value + \"\"\r\n : \"\" + value + \"\";\r\n }\r\n obj.rows[i].push(value);\r\n } else if (newData.details == v) {\r\n obj.details[i] = value;\r\n }\r\n });\r\n });\r\n } else {\r\n var msg = \"Supplied text/csv file does not contain the correct Header row!\";\r\n console.error(msg);\r\n uicoreCustomEvent(\"Table\", \"Error\", table, { msg: msg });\r\n }\r\n }\r\n } else if (newData.type === \"json\") {\r\n var json = isJson(newData.data);\r\n\r\n // Valid JSON string\r\n if (json) {\r\n obj = {\r\n rows: [],\r\n details: [],\r\n headings: [],\r\n };\r\n\r\n if (isArray(json)) {\r\n var idx = 0;\r\n each(json, function (data) {\r\n obj.rows[idx] = [];\r\n obj.details[idx] = \"\";\r\n each(data, function (value, importHeader) {\r\n if (labels.indexOf(importHeader) < 0) {\r\n if (importHeader === \"Details\") {\r\n obj.details[idx] = value;\r\n }\r\n } else {\r\n if (obj.headings.indexOf(importHeader) < 0) {\r\n obj.headings.push(importHeader);\r\n }\r\n if (isEmail(value)) {\r\n value = \"\" + value + \"\";\r\n } else if (isUrl(value)) {\r\n value =\r\n value.substring(0, 3) === \"www\"\r\n ? \"\" + value + \"\"\r\n : \"\" + value + \"\";\r\n }\r\n obj.rows[idx].push(value);\r\n }\r\n });\r\n idx++;\r\n });\r\n } else {\r\n msg = \"That's not valid JSON array data!\";\r\n console.error(msg);\r\n uicoreCustomEvent(\"Table\", \"Error\", table, { msg: msg });\r\n }\r\n } else {\r\n msg = \"That's not valid JSON!\";\r\n console.error(msg);\r\n uicoreCustomEvent(\"Table\", \"Error\", table, { msg: msg });\r\n }\r\n } else if (isObject(newData.data)) {\r\n obj = newData.data;\r\n obj.details = [];\r\n each(obj.rows, function (row, idx) {\r\n obj.rows[idx] = row.data;\r\n obj.details.push(row.details);\r\n });\r\n } else {\r\n return new Error(\"\");\r\n }\r\n if (obj) {\r\n // Add the rows\r\n insert(obj);\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n /**\r\n * Print the table\r\n * @return {void}\r\n */\r\n this.print = function () {\r\n var headings = table.activeHeadings;\r\n var rows = table.activeRows;\r\n\r\n // Open new window\r\n var w = window.open();\r\n var d = w.document;\r\n\r\n var pTable = d.createElement(\"table\");\r\n var thead = d.createElement(\"thead\");\r\n var tbody = d.createElement(\"tbody\");\r\n\r\n var tr = d.createElement(\"tr\");\r\n each(headings, function (th) {\r\n var newTh = d.createElement(\"th\");\r\n newTh.appendChild(d.createTextNode(th.textContent));\r\n tr.appendChild(newTh);\r\n });\r\n\r\n thead.appendChild(tr);\r\n\r\n each(rows, function (row) {\r\n var tr = d.createElement(\"tr\");\r\n each(row.cells, function (cell) {\r\n var newCell = d.createElement(\"td\");\r\n newCell.appendChild(d.createTextNode(cell.textContent));\r\n tr.appendChild(newCell);\r\n });\r\n tbody.appendChild(tr);\r\n });\r\n\r\n pTable.appendChild(thead);\r\n pTable.appendChild(tbody);\r\n\r\n d.body.appendChild(pTable);\r\n\r\n // Print\r\n w.print();\r\n };\r\n\r\n /**\r\n * Show a message in the table\r\n * @param {string} message\r\n */\r\n this.setMessage = function (message) {\r\n var colspan = labels.length;\r\n wrapper.classList.add(prefix + \"table-cmplx-empty\");\r\n\r\n this.clear(\r\n createElement(\"tr\", {\r\n html: '' + message + \"\",\r\n })\r\n );\r\n\r\n if (!metHeight) {\r\n fixHeight();\r\n }\r\n };\r\n\r\n this.insertDetails = function (rowId, details) {\r\n var row = table.activeRows[rowId];\r\n if (row.event != \"ExpandCancelEvent\") {\r\n var stripeColor = false;\r\n if (table.classList.contains(prefix + \"table-striped\")) {\r\n stripeColor = rowId % 2 > 0 ? prefix + \"table-cmplx-row-odd\" : prefix + \"table-cmplx-row-even\";\r\n }\r\n table.data[rowId].details = row.details = details;\r\n renderDetails(row, table.headings.length, stripeColor);\r\n\r\n var button = row.cells[0].querySelector(\".\" + prefix + \"table-cmplx-accordion-btn\");\r\n each(row.cells[0].querySelectorAll(\"use\"), function (use) {\r\n if (use.getAttribute(\"xlink:href\").indexOf(prefix + \"loading-sqrs\") != -1) {\r\n classRemove(use, prefix + \"show\");\r\n } else {\r\n classAdd(use, prefix + \"show\");\r\n button.classList.remove(prefix + \"collapsed\");\r\n button.setAttribute(\"aria-expanded\", true);\r\n }\r\n });\r\n this.update();\r\n uicoreCustomEvent(\"Table\", \"ExpandEndEvent\", table, { rowId: rowId });\r\n } else {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n this.delete = function () {\r\n var that = this;\r\n\r\n var evt = uicoreCustomEvent(\"Table\", \"BeforeDeleteEvent\", table, { rowIds: table.selectedRows });\r\n\r\n if (table.selectedRows.length == 0 || !evt.proceed) {\r\n return false;\r\n } else {\r\n rows().remove(table.selectedRows);\r\n columns().rebuild();\r\n pagination.removeItems(table.selectedRows.length);\r\n if (options.items > 0) {\r\n options.items -= table.selectedRows.length;\r\n }\r\n }\r\n\r\n if (table.activeRows.length == 0) {\r\n table.hasRows = false;\r\n var cell = header.cells[getHeaderCellIndex(prefix + \"table-cmplx-select-all\")];\r\n var input = cell.querySelector(\"input[type='checkbox']\");\r\n if (input.checked) {\r\n input.checked = false;\r\n input.state = \"unchecked\";\r\n }\r\n handleSelectAllChange(input.state);\r\n }\r\n\r\n if (searching) {\r\n var query = wrapper.querySelector(\"input[type='search']\").value;\r\n var searchResults = table.searchData.length;\r\n table.searchData = [];\r\n searching = false;\r\n if (searchResults == table.selectedRows.length) {\r\n wrapper.querySelector(\"input[type='search']\").value = \"\";\r\n that.update();\r\n } else {\r\n that.search(query);\r\n }\r\n } else {\r\n that.update();\r\n }\r\n\r\n table.selectedRows = [];\r\n if (!table.hasRows) {\r\n this.setMessage(options.labels.noRows);\r\n }\r\n uicoreCustomEvent(\"Table\", \"DeleteEvent\", table, { rowIds: table.selectedRows });\r\n };\r\n\r\n this.deleteAll = function () {\r\n var that = this;\r\n if (table.data.length == 0) {\r\n return false;\r\n } else {\r\n table.data = [];\r\n pages = [];\r\n currentPage = 1;\r\n rows().update();\r\n columns().rebuild();\r\n options.items = 0;\r\n options.perPage = options.origPerPage;\r\n pagination.setItems(0);\r\n }\r\n\r\n table.hasRows = false;\r\n\r\n if (options.select) {\r\n var cell = header.cells[getHeaderCellIndex(prefix + \"table-cmplx-select-all\")];\r\n var input = cell.querySelector(\"input[type='checkbox']\");\r\n if (input && (input.checked || input.state === \"indeterminate\")) {\r\n input.click();\r\n input.checked = false;\r\n input.state = \"unchecked\";\r\n }\r\n handleSelectAllChange(input.state);\r\n }\r\n\r\n if (searching) {\r\n searching = false;\r\n wrapper.querySelector(\"input[type='search']\").value = \"\";\r\n }\r\n that.update();\r\n\r\n this.setMessage(options.labels.noRows);\r\n\r\n uicoreCustomEvent(\"Table\", \"DeleteAllEvent\", table);\r\n };\r\n\r\n this.setItems = function (items) {\r\n var newNum = validateNum(items);\r\n if (!newNum || options.items != 0) {\r\n return false;\r\n } else {\r\n options.items = newNum;\r\n pagination.setItems(options.items);\r\n }\r\n };\r\n\r\n //init\r\n if (!(stringTable in element)) {\r\n // Set the tables Id\r\n var crypto = window.crypto || window.msCrypto;\r\n batchId = crypto.getRandomValues(new Uint32Array(10))[0];\r\n allCheckboxId = \"checkAll_\" + batchId;\r\n if (options.search && options.text.search.label) {\r\n searchId = crypto.getRandomValues(new Uint32Array(10))[0];\r\n }\r\n\r\n table.data = null; // populated in dataToTable\r\n table.hasRows = false; // set in render\r\n table.headings = []; // duplicate commented out of code in render\r\n table.hasHeadings = false;\r\n\r\n // IE detection\r\n isIE = !!/(msie|trident)/i.test(navigator.userAgent);\r\n\r\n currentPage = 1;\r\n\r\n columnRenderers = [];\r\n selectedColumns = [];\r\n\r\n table.activeHeadings = [];\r\n\r\n table.sorting = false;\r\n\r\n table.searchData = [];\r\n table.hiddenColumns = [];\r\n if (options.select) table.selectedRows = [];\r\n\r\n render();\r\n\r\n // Options pagination\r\n if (options.pagination) {\r\n var itemCount = options.items > 0 ? options.items : table.activeRows.length;\r\n pagination = new Pagination(paginationElement, {\r\n perPageSelect: options.perPageSelect,\r\n perPage: options.perPage,\r\n items: itemCount,\r\n pageText: params.text && params.text.pageText,\r\n itemsPerPageText: params.text && params.text.itemsPerPageText,\r\n hidePages: params.hidePages,\r\n external: options.items == 0 ? false : true,\r\n buttonLabelLeft: options.buttonLabelLeft,\r\n buttonLabelRight: options.buttonLabelRight,\r\n disablePaginationInput: options.disablePaginationInput,\r\n showTotal: options.showTotal,\r\n });\r\n // Option to override the item count was padded in\r\n if (options.items == 0) {\r\n paginationElement.parentNode.addEventListener(\r\n \"uicPaginationPageUpdateEvent\",\r\n function (e) {\r\n self.page(e.detail.page);\r\n },\r\n false\r\n );\r\n paginationElement.parentNode.addEventListener(\r\n \"uicPaginationPerPageUpdateEvent\",\r\n function (e) {\r\n self.perPage(e.detail);\r\n },\r\n false\r\n );\r\n } else {\r\n paginationElement.parentNode.addEventListener(\r\n \"uicPaginationPageChangeEvent\",\r\n function (e) {\r\n if (table.activeRows.length < e.detail.page * e.detail.perPage) {\r\n var rowsNeeded = e.detail.page * e.detail.perPage - table.activeRows.length;\r\n if (e.detail.page * e.detail.perPage > options.items) {\r\n rowsNeeded = options.items - table.activeRows.length;\r\n }\r\n if (rowsNeeded > 0) {\r\n uicoreCustomEvent(\"Table\", \"NewPageEvent\", table, {\r\n page: e.detail.page,\r\n rows: rowsNeeded,\r\n });\r\n } else {\r\n self.page(e.detail.page);\r\n }\r\n } else {\r\n self.page(e.detail.page);\r\n }\r\n },\r\n false\r\n );\r\n paginationElement.parentNode.addEventListener(\r\n \"uicPaginationPerPageChangeEvent\",\r\n function (e) {\r\n if (e.detail.page * e.detail.perPage > table.activeRows.length) {\r\n var rowsNeeded = e.detail.page * e.detail.perPage - table.activeRows.length;\r\n if (e.detail.page * e.detail.perPage <= options.items) {\r\n uicoreCustomEvent(\"Table\", \"MoreRowsEvent\", table, {\r\n page: e.detail.page,\r\n perPage: e.detail.perPage,\r\n rows: rowsNeeded,\r\n });\r\n } else {\r\n self.perPage(e.detail);\r\n }\r\n } else {\r\n self.perPage(e.detail);\r\n }\r\n },\r\n false\r\n );\r\n }\r\n }\r\n\r\n // Options condensed\r\n if (options.condensed) {\r\n wrapper.querySelector(\".\" + prefix + \"table-cmplx\").classList.add(prefix + \"condensed\");\r\n }\r\n\r\n each(wrapper.querySelectorAll('[data-toggle=\"dds__dropdown\"]'), function (drop) {\r\n if (drop.classList.contains(prefix + \"table-cmplx-action-button\")) {\r\n new Dropdown(drop);\r\n }\r\n });\r\n }\r\n\r\n element[stringTable] = self;\r\n}\r\n","import {\r\n getClosest,\r\n globalObject,\r\n DOC,\r\n prefix,\r\n styleTip,\r\n emulateTransitionEnd,\r\n uicoreCustomEvent,\r\n createElement,\r\n validateNum,\r\n jsonOptionsInit,\r\n isIOS,\r\n} from \"./utilities.js\";\r\n\r\nexport default function Tooltip(element, options) {\r\n // initialization element\r\n element =\r\n element instanceof HTMLElement\r\n ? element\r\n : (function () {\r\n return false;\r\n })();\r\n\r\n // set options\r\n options = options || {};\r\n options = jsonOptionsInit(element, options);\r\n var textAlignments = [\"left\", \"center\", \"right\"];\r\n // init options\r\n (options.title = element.dataset.title ? element.dataset.title : options.data_title ? options.data_title : null),\r\n (options.animation =\r\n options.animation && options.animation === \"boolean\"\r\n ? options.animation\r\n : options.animation && options.animation === prefix + \"fade\"\r\n ? prefix + \"fade\"\r\n : false);\r\n options.placement = element.dataset.placement\r\n ? element.dataset.placement\r\n : options.data_placement\r\n ? options.data_placement\r\n : null;\r\n options.textAlign =\r\n element.dataset.text_align && textAlignments.indexOf(element.dataset.text_align.toLowerCase()) > -1\r\n ? element.dataset.text_align.toLowerCase()\r\n : options.text_align && textAlignments.indexOf(options.text_align.toLowerCase()) > -1\r\n ? options.text_align.toLowerCase()\r\n : \"center\";\r\n options.delay = element.dataset.delay ? validateNum(element.dataset.delay, 60) : validateNum(options.delay, 60);\r\n options.container = element.dataset.container\r\n ? element.dataset.container\r\n : options.container\r\n ? options.container\r\n : DOC.body;\r\n\r\n // validate options\r\n (function () {\r\n if (options.title == null) {\r\n throw new Error(\"There was a problem found with title value, please correct and try again\");\r\n }\r\n if (options.placement == null) {\r\n throw new Error(\"There was a problem found with placement value, please correct and try again\");\r\n }\r\n\r\n var inFixedTop = getClosest(element, \".fixed-top\");\r\n if (inFixedTop) {\r\n options.container = inFixedTop;\r\n } else {\r\n var inFixedBottom = getClosest(element, \".fixed-bottom\");\r\n if (inFixedBottom) {\r\n options.container = inFixedBottom;\r\n }\r\n }\r\n })();\r\n\r\n // bind, event targets, title and constants\r\n var self = this,\r\n stringTooltip = \"Tooltip\",\r\n mouseHover = \"onmouseleave\" in DOC ? [\"mouseenter\", \"mouseleave\"] : [\"mouseover\", \"mouseout\"],\r\n tooltip,\r\n tooltipArrow,\r\n tooltipId,\r\n createToolTip = function () {\r\n tooltip = createElement(\"div\", {\r\n role: \"tooltip\",\r\n aria_describedby: tooltipId,\r\n });\r\n tooltip.style[\"top\"] = \"0px\"; //move tooltip to top to prevent scrollbar during calculation\r\n\r\n // tooltip arrow\r\n tooltipArrow = createElement(\"div\", {\r\n class: prefix + \"arrow \" + prefix + \"position-absolute \" + prefix + \"d-block\",\r\n });\r\n\r\n tooltip.appendChild(tooltipArrow);\r\n // tooltip inner\r\n\r\n var tooltipInner = createElement(\"div\", {\r\n class: prefix + \"tooltip-inner \" + prefix + \"text-\" + options.textAlign,\r\n html: options.title,\r\n id: tooltipId,\r\n });\r\n tooltip.appendChild(tooltipInner);\r\n\r\n options.container.appendChild(tooltip);\r\n tooltip.setAttribute(\r\n \"class\",\r\n prefix +\r\n \"tooltip \" +\r\n prefix +\r\n \"bs-tooltip\" +\r\n \"-\" +\r\n options.placement +\r\n \" \" +\r\n options.animation +\r\n \" \" +\r\n prefix +\r\n \"position-absolute \" +\r\n prefix +\r\n \"d-block \" +\r\n prefix +\r\n \"break-word\"\r\n );\r\n },\r\n updateTooltip = function () {\r\n tooltip.setAttribute(\"style\", \"\");\r\n tooltipArrow.setAttribute(\"style\", \"\");\r\n styleTip(element, tooltip, options.placement, options.container, true);\r\n },\r\n showTooltip = function () {\r\n !tooltip.classList.contains(prefix + \"show\") && tooltip.classList.add(prefix + \"show\");\r\n },\r\n // triggers\r\n showTrigger = function () {\r\n globalObject.addEventListener(\"resize\", self.hide, false);\r\n uicoreCustomEvent(\"Tooltip\", \"Shown\", element);\r\n },\r\n hideTrigger = function () {\r\n globalObject.removeEventListener(\"resize\", self.hide);\r\n uicoreCustomEvent(\"Tooltip\", \"Hidden\", element);\r\n },\r\n keyHandler = function (e) {\r\n var key = e.which || e.keyCode;\r\n if (key === 27) {\r\n self.hide(e);\r\n }\r\n },\r\n clickHandler = function (e) {\r\n if (!tooltip.classList.contains(prefix + \"show\")) {\r\n self.show();\r\n } else {\r\n self.hide(e);\r\n }\r\n },\r\n touchHandler = function (e) {\r\n if (tooltip.classList.contains(prefix + \"show\")) {\r\n if ((!e.target === tooltip || !tooltip.contains(e.target)) && element !== e.target) {\r\n self.hide();\r\n }\r\n }\r\n },\r\n setTooltipId = function () {\r\n var tooltipIdText = options.title\r\n .replace(/[\\s\\W]/g, \"\")\r\n .toLowerCase()\r\n .substring(0, 15);\r\n tooltipId = tooltipIdText;\r\n var counter = 1;\r\n while (DOC.getElementById(tooltipId)) {\r\n tooltipId = tooltipIdText + counter;\r\n counter++;\r\n }\r\n };\r\n\r\n // public methods\r\n this.show = function () {\r\n element.setAttribute(\"aria-expanded\", true);\r\n\r\n setTimeout(function () {\r\n updateTooltip();\r\n showTooltip();\r\n uicoreCustomEvent(\"Tooltip\", \"ShowEvent\", element);\r\n options.animation ? emulateTransitionEnd(tooltip, showTrigger) : showTrigger();\r\n }, options.delay);\r\n };\r\n\r\n this.hide = function (e) {\r\n element.setAttribute(\"aria-expanded\", false);\r\n\r\n var target = DOC.activeElement;\r\n if (e && e.relatedTarget) {\r\n target = e.relatedTarget;\r\n }\r\n\r\n if (!target === tooltip || !tooltip.contains(target)) {\r\n setTimeout(function () {\r\n if (tooltip && tooltip.classList.contains(prefix + \"show\")) {\r\n uicoreCustomEvent(\"Tooltip\", \"HideEvent\", element);\r\n tooltip.classList.remove(prefix + \"show\");\r\n options.animation ? emulateTransitionEnd(tooltip, hideTrigger) : hideTrigger();\r\n }\r\n }, options.delay);\r\n }\r\n };\r\n\r\n this.toggle = function () {\r\n if (!tooltip) {\r\n self.show();\r\n } else {\r\n self.hide();\r\n }\r\n };\r\n\r\n // init\r\n if (!(stringTooltip in element)) {\r\n setTooltipId();\r\n\r\n element.setAttribute(\"aria-describedby\", tooltipId);\r\n element.setAttribute(\"aria-expanded\", false);\r\n element.setAttribute(\"data-original-title\", options.title);\r\n element.setAttribute(\"data-tooltip-id\", tooltipId);\r\n element.removeAttribute(\"title\");\r\n\r\n element.addEventListener(mouseHover[0], self.show, false);\r\n element.addEventListener(mouseHover[1], self.hide, false);\r\n\r\n element.addEventListener(\"focus\", self.show);\r\n element.addEventListener(\"blur\", self.hide);\r\n\r\n element.addEventListener(\"keydown\", keyHandler);\r\n\r\n // Click event is being used because screen readers intercept keydown\r\n // Enter key is not fired in normal mode, only in focus mode\r\n element.addEventListener(\"click\", clickHandler, false);\r\n\r\n if (isIOS) {\r\n element.addEventListener(\"click\", self.show, false);\r\n window.addEventListener(\"touchstart\", touchHandler, false);\r\n }\r\n\r\n if (!tooltip) {\r\n createToolTip();\r\n tooltip.addEventListener(\"mouseleave\", self.hide, false);\r\n }\r\n }\r\n\r\n element[stringTooltip] = self;\r\n}\r\n","import Alert from \"./alert.js\";\r\nimport { BarSelect } from \"./select.js\";\r\nimport { Button } from \"./button.js\";\r\nimport { ButtonFilter } from \"./button.js\";\r\nimport { Carousel } from \"./carousel.js\";\r\nimport { FilmstripCarousel } from \"./carousel.js\";\r\nimport Collapse from \"./collapse.js\";\r\nimport ContactDrawer from \"./contact-drawer.js\";\r\nimport { DatePicker } from \"./select.js\";\r\nimport Dropdown from \"./dropdown.js\";\r\nimport FileUpload from \"./fileupload.js\";\r\nimport { FilterCollection } from \"./filter.js\";\r\nimport { FilterKeyword } from \"./filter.js\";\r\nimport Form from \"./form.js\";\r\nimport LinkPicker from \"./linkpicker.js\";\r\nimport Masthead from \"./masthead.js\";\r\nimport Modal from \"./modal.js\";\r\nimport { NavAnchored } from \"./nav.js\";\r\nimport { NavAnchoredVertical } from \"./nav.js\";\r\nimport { NavSkip } from \"./nav.js\";\r\nimport { NavLeft } from \"./nav.js\";\r\nimport Pagination from \"./pagination.js\";\r\nimport Popover from \"./popover.js\";\r\nimport ProductStack from \"./product-stack.js\";\r\nimport Progress from \"./progress.js\";\r\nimport { NavSkip as SkipNav } from \"./nav.js\";\r\nimport Slider from \"./slider.js\";\r\nimport { Spinbox } from \"./select.js\";\r\nimport Tab from \"./tab.js\";\r\nimport Table from \"./table.js\";\r\nimport Tooltip from \"./tooltip.js\";\r\nimport { DOC, prefix, handleFirstTab, loadURLSVGs, each } from \"./utilities.js\";\r\n\r\n// globals\r\nvar body = \"body\", // allow the library to be used in \r\n supports = [];\r\n\r\nvar initializeDataAPI = function (constructor, collection) {\r\n each(collection, function (i) {\r\n new constructor(i);\r\n });\r\n },\r\n initCallback = function (lookUp) {\r\n lookUp = lookUp || DOC;\r\n each(supports, function (support) {\r\n initializeDataAPI(support[0], lookUp[\"querySelectorAll\"](support[1]));\r\n });\r\n };\r\n\r\n// ALERT DATA API\r\nsupports[\"push\"]([Alert, '[data-dismiss=\"' + prefix + 'alert\"]']);\r\n\r\n// BUTTON DATA API\r\nsupports[\"push\"]([Button, '[data-toggle=\"' + prefix + 'button\"]']);\r\n\r\n// BUTTON DATA API\r\nsupports[\"push\"]([BarSelect, '[data-toggle=\"' + prefix + 'bar-select\"]']);\r\n\r\n// BUTTON FILTER DATA API\r\nsupports[\"push\"]([ButtonFilter, '[data-toggle=\"' + prefix + 'button-filter\"]']);\r\n\r\n// CAROUSEL DATA API\r\nsupports[\"push\"]([Carousel, '[data-ride=\"' + prefix + 'carousel\"]']);\r\n\r\n// CAROUSEL FILMSTRIP DATA API\r\nsupports[\"push\"]([FilmstripCarousel, '[data-toggle=\"' + prefix + 'filmstrip-carousel\"]']);\r\n\r\n// COLLAPSE DATA API\r\nsupports[\"push\"]([Collapse, '[data-toggle=\"' + prefix + 'collapse\"]']);\r\n\r\n// CONTACT DRAWER DATA API\r\nsupports[\"push\"]([ContactDrawer, '[data-toggle=\"' + prefix + 'contact-drawer\"]']);\r\n\r\n// DROPDOWN DATA API\r\nsupports[\"push\"]([Dropdown, '[data-toggle=\"' + prefix + 'dropdown\"]']);\r\n\r\n// DATEPICKER DATA API\r\nsupports[\"push\"]([DatePicker, '[data-toggle=\"' + prefix + 'datepicker\"]']);\r\n\r\n// FILE UPLOAD\r\nsupports[\"push\"]([FileUpload, '[data-toggle=\"' + prefix + 'form-upload\"]']);\r\n\r\n// FILTER COLLECTION DATA API\r\nsupports[\"push\"]([FilterCollection, '[data-toggle=\"' + prefix + 'filter-collection\"]']);\r\n\r\n// KEYWORD FILTER DATA API\r\nsupports[\"push\"]([FilterKeyword, '[data-toggle=\"' + prefix + 'filter-keyword\"]']);\r\n\r\n// FORM CAROUSEL DATA API\r\nsupports[\"push\"]([Form, '[data-toggle=\"' + prefix + 'form-validation\"]']);\r\n\r\n// LINKPICKER DATA API\r\nsupports[\"push\"]([LinkPicker, '[data-toggle=\"' + prefix + 'linkpicker\"]']);\r\n\r\n// MASTHEAD DATA API\r\nsupports[\"push\"]([Masthead, '[data-toggle=\"' + prefix + 'msthd\"]']);\r\n\r\n// MODAL DATA API\r\nsupports[\"push\"]([Modal, '[data-toggle=\"' + prefix + 'modal\"]']);\r\n\r\n// NAVIGATION ANCHORED DATA API\r\nsupports[\"push\"]([NavAnchored, '[data-toggle=\"' + prefix + 'nav-anchored\"]']);\r\n\r\n// NAVIGATION ANCHORED VERTICAL DATA API\r\nsupports[\"push\"]([NavAnchoredVertical, '[data-toggle=\"' + prefix + 'nav-anchored-vertical\"]']);\r\n\r\n// NAV LEFT DATA API\r\nsupports[\"push\"]([NavLeft, '[data-toggle=\"' + prefix + 'nav-left\"]']);\r\n\r\n// SKIPNAV DATA API\r\nsupports[\"push\"]([NavSkip, '[data-toggle=\"' + prefix + 'nav-skip\"]']);\r\n\r\n// PAGINATION DATA API\r\nsupports[\"push\"]([Pagination, '[data-toggle=\"' + prefix + 'pagination\"]']);\r\n\r\n// POPOVER DATA API\r\nsupports[\"push\"]([Popover, '[data-toggle=\"' + prefix + 'popover\"]']);\r\n\r\n// PRODUCTSTACK DATA API\r\nsupports[\"push\"]([ProductStack, '[data-toggle=\"' + prefix + 'product-stack\"]']);\r\n\r\n// PROGRESS DATA API\r\nsupports[\"push\"]([Progress, '[data-toggle=\"' + prefix + 'progress\"]']);\r\n\r\n// SKIPNAV DATA API\r\nsupports[\"push\"]([SkipNav, '[data-toggle=\"' + prefix + 'nav-skip\"]']);\r\n\r\n// Slider DATA API\r\nsupports[\"push\"]([Slider, '[data-toggle=\"' + prefix + 'slider\"]']);\r\n\r\n// Spinbox DATA API\r\nsupports[\"push\"]([Spinbox, '[data-toggle=\"' + prefix + 'spinbox\"]']);\r\n\r\n// TABLE DATA API\r\nsupports[\"push\"]([Table, '[data-table=\"' + prefix + 'table\"]']);\r\n\r\n// TAB DATA API\r\nsupports[\"push\"]([Tab, '[data-toggle=\"' + prefix + 'tab\"]']);\r\n\r\n// TOOLTIP DATA API\r\nsupports[\"push\"]([Tooltip, '[data-toggle=\"' + prefix + 'tooltip\"]']);\r\n\r\n// bulk initialize all components\r\nDOC[body]\r\n ? initCallback()\r\n : DOC.addEventListener(\"DOMContentLoaded\", function () {\r\n initCallback();\r\n });\r\n\r\nwindow.addEventListener(\"keydown\", handleFirstTab);\r\n\r\nexport {\r\n Alert,\r\n BarSelect,\r\n Button,\r\n ButtonFilter,\r\n Carousel,\r\n Collapse,\r\n ContactDrawer,\r\n DatePicker,\r\n Dropdown,\r\n FilmstripCarousel,\r\n FileUpload,\r\n FilterCollection,\r\n FilterKeyword,\r\n Form,\r\n LinkPicker,\r\n Masthead,\r\n Modal,\r\n NavAnchored,\r\n NavAnchoredVertical,\r\n NavLeft,\r\n NavSkip,\r\n Pagination,\r\n Popover,\r\n ProductStack,\r\n Progress,\r\n SkipNav,\r\n Slider,\r\n Spinbox,\r\n Tab,\r\n Table,\r\n Tooltip,\r\n handleFirstTab,\r\n loadURLSVGs,\r\n};\r\n"],"names":["Form","SkipNav","Table"],"mappings":"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"}