Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
{"version":3,"file":"bulk_action.min.js","sources":["../../src/bulkactions/bulk_action.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 * Base class for defining a bulk action.\n *\n * @module     core/bulkactions/bulk_action\n * @copyright  2023 Mihail Geshoski <mihail@moodle.com>\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\nexport default class BulkAction {\n\n    /** @property {array} selectedItems The array of selected item elements. */\n    selectedItems = [];\n\n    /**\n     * Registers the listener events for the bulk actions.\n     *\n     * @method registerListenerEvents\n     * @param {HTMLElement} containerElement The container element for the bulk actions.\n     * @returns {void}\n     */\n    registerListenerEvents(containerElement) {\n        // Listen for the click event on the bulk action trigger element.\n        containerElement.addEventListener('click', (e) => {\n            if (e.target.closest(this.getBulkActionTriggerSelector())) {\n                e.preventDefault();\n                this.triggerBulkAction();\n            }\n        });\n    }\n\n    /**\n     * Setter method for the selectedItems property.\n     *\n     * @method setSelectedItems\n     * @param {Array} selectedItems The array of selected item elements..\n     * @returns {void}\n     */\n    setSelectedItems(selectedItems) {\n        this.selectedItems = selectedItems;\n    }\n\n    /**\n     * Defines the selector of the element that triggers the bulk action.\n     *\n     * @method getBulkActionTriggerSelector\n     * @returns {string}\n     */\n    getBulkActionTriggerSelector() {\n        throw new Error(`getBulkActionTriggerSelector() must be implemented in ${this.constructor.name}`);\n    }\n\n    /**\n     * Defines the behavior once the bulk action is triggered.\n     *\n     * @method triggerBulkAction\n     */\n    triggerBulkAction() {\n        throw new Error(`triggerBulkAction() must be implemented in ${this.constructor.name}`);\n    }\n\n    /**\n     * Renders the bulk action trigger element.\n     *\n     * @method renderBulkActionTrigger\n     * @returns {Promise}\n     */\n    renderBulkActionTrigger() {\n        throw new Error(`renderBulkActionTrigger() must be implemented in ${this.constructor.name}`);\n    }\n}\n"],"names":["registerListenerEvents","containerElement","addEventListener","e","target","closest","this","getBulkActionTriggerSelector","preventDefault","triggerBulkAction","setSelectedItems","selectedItems","Error","constructor","name","renderBulkActionTrigger"],"mappings":";;;;;;;;4CA0BoB,2IAShBA,uBAAuBC,kBAEnBA,iBAAiBC,iBAAiB,SAAUC,IACpCA,EAAEC,OAAOC,QAAQC,KAAKC,kCACtBJ,EAAEK,sBACGC,wBAYjBC,iBAAiBC,oBACRA,cAAgBA,cASzBJ,qCACU,IAAIK,sEAA+DN,KAAKO,YAAYC,OAQ9FL,0BACU,IAAIG,2DAAoDN,KAAKO,YAAYC,OASnFC,gCACU,IAAIH,iEAA0DN,KAAKO,YAAYC"}