Your IP : 216.73.216.95


Current Path : /var/www/ljmtc/cbt/theme/boost/amd/build/
Upload File :
Current File : /var/www/ljmtc/cbt/theme/boost/amd/build/aria.min.js.map

{"version":3,"sources":["../src/aria.js"],"names":["dropdownFix","focusEnd","setFocusEnd","getFocusEnd","result","document","addEventListener","e","target","matches","trigger","key","preventDefault","click","shiftFocus","element","setTimeout","delayedFocus","pendingPromise","focus","resolve","Pending","on","menu","querySelector","menuItems","foundMenuItem","querySelectorAll","length","closest","toLowerCase","i","item","itemText","text","trim","indexOf","next","autoFocus","window","alerts","Array","prototype","forEach","call","autofocusElement","innerHTML","removeAttribute","updateTabFocus","tabList","vertical","getAttribute","rtl","right_to_left","arrowNext","arrowPrevious","tabs","filter","tab","getComputedStyle","display","index","tabIndex","tabElementFix","includes","init"],"mappings":"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","sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * Enhancements to Bootstrap components for accessibility.\n *\n * @module     theme_boost/aria\n * @copyright  2018 Damyon Wiese <damyon@moodle.com>\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\nimport $ from 'jquery';\nimport Pending from 'core/pending';\n\n/**\n * Drop downs from bootstrap don't support keyboard accessibility by default.\n */\nconst dropdownFix = () => {\n    let focusEnd = false;\n    const setFocusEnd = () => {\n        focusEnd = true;\n    };\n    const getFocusEnd = () => {\n        const result = focusEnd;\n        focusEnd = false;\n        return result;\n    };\n\n    // Special handling for \"up\" keyboard control.\n    document.addEventListener('keydown', e => {\n        if (e.target.matches('[data-toggle=\"dropdown\"]')) {\n            const trigger = e.key;\n\n            // Up key opens the menu at the end.\n            if (trigger == 'ArrowUp') {\n                // Focus the end of the menu, not the beginning.\n                setFocusEnd();\n            }\n\n            // Space key or Enter key opens the menu.\n            if (trigger == ' ' || trigger == 'Enter') {\n                // Cancel random scroll.\n                e.preventDefault();\n                // Open the menu instead.\n                e.target.click();\n            }\n        }\n    });\n\n    // Special handling for navigation keys when menu is open.\n    const shiftFocus = element => {\n        const delayedFocus = pendingPromise => {\n            element.focus();\n            pendingPromise.resolve();\n        };\n        setTimeout(delayedFocus, 50, new Pending('core/aria:delayed-focus'));\n    };\n\n    $('.dropdown').on('shown.bs.dropdown', e => {\n        // We need to focus on the first menuitem.\n        const menu = e.target.querySelector('[role=\"menu\"]');\n        let menuItems = false;\n        let foundMenuItem = false;\n\n        if (menu) {\n            menuItems = menu.querySelectorAll('[role=\"menuitem\"]');\n        }\n        if (menuItems && menuItems.length > 0) {\n            if (getFocusEnd()) {\n                foundMenuItem = menuItems[menuItems.length - 1];\n            } else {\n                // The first menu entry, pretty reasonable.\n                foundMenuItem = menuItems[0];\n            }\n        }\n        if (foundMenuItem) {\n            shiftFocus(foundMenuItem);\n        }\n    });\n    // Search for menu items by finding the first item that has\n    // text starting with the typed character (case insensitive).\n    document.addEventListener('keypress', e => {\n        if (e.target.matches('.dropdown [role=\"menu\"] [role=\"menuitem\"]')) {\n            const menu = e.target.closest('[role=\"menu\"]');\n            if (!menu) {\n                return;\n            }\n            const menuItems = menu.querySelectorAll('[role=\"menuitem\"]');\n            if (!menuItems) {\n                return;\n            }\n\n            const trigger = e.key.toLowerCase();\n\n            for (let i = 0; i < menuItems.length; i++) {\n                const item = menuItems[i];\n                const itemText = item.text.trim().toLowerCase();\n                if (itemText.indexOf(trigger) == 0) {\n                    shiftFocus(item);\n                    break;\n                }\n            }\n        }\n    });\n\n    // Keyboard navigation for arrow keys, home and end keys.\n    document.addEventListener('keydown', e => {\n        if (e.target.matches('.dropdown [role=\"menu\"] [role=\"menuitem\"]')) {\n            const trigger = e.key;\n            let next = false;\n            const menu = e.target.closest('[role=\"menu\"]');\n\n            if (!menu) {\n                return;\n            }\n            const menuItems = menu.querySelectorAll('[role=\"menuitem\"]');\n            if (!menuItems) {\n                return;\n            }\n            // Down key.\n            if (trigger == 'ArrowDown') {\n                for (let i = 0; i < menuItems.length - 1; i++) {\n                    if (menuItems[i] == e.target) {\n                        next = menuItems[i + 1];\n                        break;\n                    }\n                }\n                if (!next) {\n                    // Wrap to first item.\n                    next = menuItems[0];\n                }\n\n            } else if (trigger == 'ArrowUp') {\n                // Up key.\n                for (let i = 1; i < menuItems.length; i++) {\n                    if (menuItems[i] == e.target) {\n                        next = menuItems[i - 1];\n                        break;\n                    }\n                }\n                if (!next) {\n                    // Wrap to last item.\n                    next = menuItems[menuItems.length - 1];\n                }\n\n            } else if (trigger == 'Home') {\n                // Home key.\n                next = menuItems[0];\n\n            } else if (trigger == 'End') {\n                // End key.\n                next = menuItems[menuItems.length - 1];\n            }\n            // Variable next is set if we do want to act on the keypress.\n            if (next) {\n                e.preventDefault();\n                shiftFocus(next);\n            }\n            return;\n        }\n    });\n\n    $('.dropdown').on('hidden.bs.dropdown', e => {\n        // We need to focus on the menu trigger.\n        const trigger = e.target.querySelector('[data-toggle=\"dropdown\"]');\n        if (trigger) {\n            shiftFocus(trigger);\n        }\n    });\n};\n\n/**\n * After page load, focus on any element with special autofocus attribute.\n */\nconst autoFocus = () => {\n    window.addEventListener(\"load\", () => {\n        const alerts = document.querySelectorAll('[data-aria-autofocus=\"true\"][role=\"alert\"]');\n        Array.prototype.forEach.call(alerts, autofocusElement => {\n            // According to the specification an role=\"alert\" region is only read out on change to the content\n            // of that region.\n            autofocusElement.innerHTML += ' ';\n            autofocusElement.removeAttribute('data-aria-autofocus');\n        });\n    });\n};\n\n/**\n * Changes the focus to the correct tab based on the key that is pressed.\n * @param {KeyboardEvent} e\n */\nconst updateTabFocus = e => {\n    const tabList = e.target.closest('[role=\"tablist\"]');\n    const vertical = tabList.getAttribute('aria-orientation') == 'vertical';\n    const rtl = window.right_to_left();\n    const arrowNext = vertical ? 'ArrowDown' : (rtl ? 'ArrowLeft' : 'ArrowRight');\n    const arrowPrevious = vertical ? 'ArrowUp' : (rtl ? 'ArrowRight' : 'ArrowLeft');\n    const tabs = Array.prototype.filter.call(\n        tabList.querySelectorAll('[role=\"tab\"]'),\n        tab => getComputedStyle(tab).display !== 'none'); // We only work with the visible tabs.\n\n    for (let i = 0; i < tabs.length; i++) {\n        tabs[i].index = i;\n    }\n\n    switch (e.key) {\n        case arrowNext:\n            e.preventDefault();\n            if (e.target.index !== undefined && tabs[e.target.index + 1]) {\n                tabs[e.target.index + 1].focus();\n            } else {\n                tabs[0].focus();\n            }\n            break;\n        case arrowPrevious:\n            e.preventDefault();\n            if (e.target.index !== undefined && tabs[e.target.index - 1]) {\n                tabs[e.target.index - 1].focus();\n            } else {\n                tabs[tabs.length - 1].focus();\n            }\n            break;\n        case 'Home':\n            e.preventDefault();\n            tabs[0].focus();\n            break;\n        case 'End':\n            e.preventDefault();\n            tabs[tabs.length - 1].focus();\n            break;\n        case 'Enter':\n        case ' ':\n            e.preventDefault();\n            $(e.target).tab('show');\n            tabs.forEach(tab => {\n                tab.tabIndex = -1;\n            });\n            e.target.tabIndex = 0;\n    }\n};\n\n/**\n * Fix accessibility issues regarding tab elements focus and their tab order in Bootstrap navs.\n */\nconst tabElementFix = () => {\n    document.addEventListener('keydown', e => {\n        if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Home', 'End', 'Enter', ' '].includes(e.key)) {\n            if (e.target.matches('[role=\"tablist\"] [role=\"tab\"]')) {\n                updateTabFocus(e);\n            }\n        }\n    });\n\n    document.addEventListener('click', e => {\n        if (e.target.matches('[role=\"tablist\"] [role=\"tab\"]')) {\n            const tabs = e.target.closest('[role=\"tablist\"]').querySelectorAll('[role=\"tab\"]');\n            e.preventDefault();\n            $(e.target).tab('show');\n            tabs.forEach(tab => {\n                tab.tabIndex = -1;\n            });\n            e.target.tabIndex = 0;\n        }\n    });\n};\n\nexport const init = () => {\n    dropdownFix();\n    autoFocus();\n    tabElementFix();\n};\n"],"file":"aria.min.js"}