AutorÃa | Ultima modificación | Ver Log |
// This file is part of Moodle - http://moodle.org///// Moodle is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.//// Moodle is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with Moodle. If not, see <http://www.gnu.org/licenses/>./*** @module core_group/groupPicker* @copyright 2022 Matthew Hilton <matthewhilton@catalyst-au.net>* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*//*** Class used for interfacing with the group select picker.** @class core_group/GroupPicker*/export default class GroupPicker {/*** Creates the group picker class and finds the corresponding DOM element.** @param {String} elementId The DOM element id of the <select> input* @throws Error if the element was not found.*/constructor(elementId = "groups") {const pickerDomElement = document.getElementById(elementId);if (!pickerDomElement) {throw new Error("Groups picker was not found.");}this.element = pickerDomElement;}/*** Returns the DOM element this class is linked to.** @returns {HTMLElement} The DOM element*/getDomElement() {return this.element;}/*** Returns the selected group values.** @returns {Number[]} The group IDs that are currently selected.*/getSelectedValues() {const selectedOptionElements = Array.from(this.element.querySelectorAll("option:checked"));const selectedGroups = selectedOptionElements.map(el => parseInt(el.value));return selectedGroups;}}