Sindbad~EG File Manager

Current Path : /var/www/html/doroyalseguros.sumar.com.py/grade/amd/build/searchwidget/
Upload File :
Current File : /var/www/html/doroyalseguros.sumar.com.py/grade/amd/build/searchwidget/group.min.js.map

{"version":3,"file":"group.min.js","sources":["../../src/searchwidget/group.js"],"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 * A widget to search groups within the gradebook.\n *\n * @module    core_grades/searchwidget/group\n * @copyright 2022 Mathew May <mathew.solutions>\n * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\nimport * as FocusLockManager from 'core/local/aria/focuslock';\nimport Pending from 'core/pending';\nimport * as Templates from 'core/templates';\nimport * as Repository from 'core_grades/searchwidget/repository';\nimport * as WidgetBase from 'core_grades/searchwidget/basewidget';\nimport $ from 'jquery';\nimport * as Selectors from 'core_grades/searchwidget/selectors';\n\n/**\n * Whether this module is already initialised.\n *\n * @type {boolean}\n */\nlet initialised = false;\n\n/**\n * Our entry point into starting to build the group search widget.\n *\n * It'll eventually, based upon the listeners, open the search widget and allow filtering.\n *\n * @method init\n */\nexport const init = () => {\n    if (!initialised && document.querySelector(Selectors.elements.getSearchWidgetSelector('group'))) {\n        const pendingPromise = new Pending();\n        registerListenerEvents();\n        pendingPromise.resolve();\n    }\n    initialised = true;\n};\n\n/**\n * Register event listeners.\n *\n * @method registerListenerEvents\n */\nconst registerListenerEvents = () => {\n    let {bodyPromiseResolver, bodyPromise} = WidgetBase.promisesAndResolvers();\n    const dropdownMenuContainer = document.querySelector(Selectors.elements.getSearchWidgetDropdownSelector('group'));\n    const menuContainer = document.querySelector(Selectors.elements.getSearchWidgetSelector('group'));\n    const inputElement = menuContainer.querySelector('input[name=\"group\"]');\n\n    // Handle the 'shown.bs.dropdown' event (Fired when the dropdown menu is fully displayed).\n    $(menuContainer).on('show.bs.dropdown', async(e) => {\n        const courseID = e.relatedTarget.dataset.courseid;\n        // Display a loading icon in the dropdown menu container until the body promise is resolved.\n        await WidgetBase.showLoader(dropdownMenuContainer);\n\n        // If an error occurs while fetching the data, display the error within the dropdown menu.\n        const data = await Repository.groupFetch(courseID).catch(async(e) => {\n            const errorTemplateData = {\n                'errormessage': e.message\n            };\n            bodyPromiseResolver(\n                await Templates.render('core_grades/searchwidget/error', errorTemplateData)\n            );\n        });\n        // Early return if there is no module data.\n        if (data === []) {\n            return;\n        }\n        await WidgetBase.init(\n            dropdownMenuContainer,\n            bodyPromise,\n            data.groups,\n            searchGroups(),\n            null,\n            afterSelect\n        );\n\n        // Lock tab control. It has to be locked because the dropdown's role is dialog.\n        FocusLockManager.trapFocus(dropdownMenuContainer);\n    });\n\n    // Resolvers for passed functions in the dropdown creation.\n    bodyPromiseResolver(Templates.render(\n        'core_grades/searchwidget/group/groupsearch_body',\n        []\n    ));\n\n    // Handle the 'hide.bs.dropdown' event (Fired when the dropdown menu is being closed).\n    $(menuContainer).on('hide.bs.dropdown', () => {\n        FocusLockManager.untrapFocus();\n    });\n\n    inputElement.addEventListener('change', e => {\n        const toggle = menuContainer.querySelector('.dropdown-toggle');\n        const courseId = toggle.dataset.courseid;\n        const actionUrl = toggle.dataset.actionBaseUrl ?\n            new URL(toggle.dataset.actionBaseUrl.replace(/&amp;/g, \"&\")) :\n            new URL(location.href);\n        actionUrl.searchParams.set('id', courseId);\n        actionUrl.searchParams.set('group', e.target.value);\n        actionUrl.searchParams.delete('page');\n\n        location.href = actionUrl.href;\n\n        e.stopPropagation();\n    });\n};\n\n/**\n * Define how we want to search and filter groups when the user decides to input a search value.\n *\n * @method searchGroups\n * @returns {function(): function(*, *): (*)}\n */\nconst searchGroups = () => {\n    return () => {\n        return (groups, searchTerm) => {\n            if (searchTerm === '') {\n                return groups;\n            }\n            searchTerm = searchTerm.toLowerCase();\n            const searchResults = [];\n            groups.forEach((group) => {\n                const groupName = group.name.toLowerCase();\n                if (groupName.includes(searchTerm)) {\n                    searchResults.push(group);\n                }\n            });\n            return searchResults;\n        };\n    };\n};\n\n/**\n * Define the action to be performed when an item is selected by the search widget.\n *\n * @param {String} selected The selected item's value.\n */\nconst afterSelect = (selected) => {\n    const menuContainer = document.querySelector(Selectors.elements.getSearchWidgetSelector('group'));\n    const inputElement = menuContainer.querySelector('input[name=\"group\"]');\n\n    $(menuContainer).dropdown('hide'); // Otherwise the dropdown stays open when user choose an option using keyboard.\n\n    if (inputElement.value != selected) {\n        inputElement.value = selected;\n        inputElement.dispatchEvent(new Event('change', {bubbles: true}));\n    }\n};\n"],"names":["initialised","document","querySelector","Selectors","elements","getSearchWidgetSelector","pendingPromise","Pending","registerListenerEvents","resolve","bodyPromiseResolver","bodyPromise","WidgetBase","promisesAndResolvers","dropdownMenuContainer","getSearchWidgetDropdownSelector","menuContainer","inputElement","on","async","courseID","e","relatedTarget","dataset","courseid","showLoader","data","Repository","groupFetch","catch","errorTemplateData","message","Templates","render","init","groups","searchGroups","afterSelect","FocusLockManager","trapFocus","untrapFocus","addEventListener","toggle","courseId","actionUrl","actionBaseUrl","URL","replace","location","href","searchParams","set","target","value","delete","stopPropagation","searchTerm","toLowerCase","searchResults","forEach","group","name","includes","push","selected","dropdown","dispatchEvent","Event","bubbles"],"mappings":";;;;;;;2ZAoCIA,aAAc,gBASE,SACXA,aAAeC,SAASC,cAAcC,UAAUC,SAASC,wBAAwB,UAAW,OACvFC,eAAiB,IAAIC,iBAC3BC,yBACAF,eAAeG,UAEnBT,aAAc,SAQZQ,uBAAyB,SACvBE,oBAACA,oBAADC,YAAsBA,aAAeC,WAAWC,6BAC9CC,sBAAwBb,SAASC,cAAcC,UAAUC,SAASW,gCAAgC,UAClGC,cAAgBf,SAASC,cAAcC,UAAUC,SAASC,wBAAwB,UAClFY,aAAeD,cAAcd,cAAc,2CAG/Cc,eAAeE,GAAG,oBAAoBC,MAAAA,UAC9BC,SAAWC,EAAEC,cAAcC,QAAQC,eAEnCZ,WAAWa,WAAWX,6BAGtBY,WAAaC,WAAWC,WAAWR,UAAUS,OAAMV,MAAAA,UAC/CW,kBAAoB,cACNT,EAAEU,SAEtBrB,0BACUsB,UAAUC,OAAO,iCAAkCH,uBAI7DJ,OAAS,WAGPd,WAAWsB,KACbpB,sBACAH,YACAe,KAAKS,OACLC,eACA,KACAC,aAIJC,iBAAiBC,UAAUzB,2BAI/BJ,oBAAoBsB,UAAUC,OAC1B,kDACA,yBAIFjB,eAAeE,GAAG,oBAAoB,KACpCoB,iBAAiBE,iBAGrBvB,aAAawB,iBAAiB,UAAUpB,UAC9BqB,OAAS1B,cAAcd,cAAc,oBACrCyC,SAAWD,OAAOnB,QAAQC,SAC1BoB,UAAYF,OAAOnB,QAAQsB,cAC7B,IAAIC,IAAIJ,OAAOnB,QAAQsB,cAAcE,QAAQ,SAAU,MACvD,IAAID,IAAIE,SAASC,MACrBL,UAAUM,aAAaC,IAAI,KAAMR,UACjCC,UAAUM,aAAaC,IAAI,QAAS9B,EAAE+B,OAAOC,OAC7CT,UAAUM,aAAaI,OAAO,QAE9BN,SAASC,KAAOL,UAAUK,KAE1B5B,EAAEkC,sBAUJnB,aAAe,IACV,IACI,CAACD,OAAQqB,iBACO,KAAfA,kBACOrB,OAEXqB,WAAaA,WAAWC,oBAClBC,cAAgB,UACtBvB,OAAOwB,SAASC,QACMA,MAAMC,KAAKJ,cACfK,SAASN,aACnBE,cAAcK,KAAKH,UAGpBF,eAUbrB,YAAe2B,iBACXhD,cAAgBf,SAASC,cAAcC,UAAUC,SAASC,wBAAwB,UAClFY,aAAeD,cAAcd,cAAc,2CAE/Cc,eAAeiD,SAAS,QAEtBhD,aAAaoC,OAASW,WACtB/C,aAAaoC,MAAQW,SACrB/C,aAAaiD,cAAc,IAAIC,MAAM,SAAU,CAACC,SAAS"}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists