AutorÃa | Ultima modificación | Ver Log |
{"version":3,"file":"normalise.min.js","sources":["../src/normalise.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 * Normalisation helpers.\n *\n * @module core/normalise\n * @copyright 2020 Andrew Nicols <andrew@nicols.co.uk>\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\nimport jQuery from 'jquery';
\n\n/**\n * Normalise a list of Nodes into an Array of Nodes.\n *\n * @method getList\n * @param {(Array|jQuery|NodeList|HTMLElement)} nodes\n * @returns {HTMLElement[]}\n */\nexport const getList = nodes => {\n if (nodes instanceof HTMLElement) {\n // A single record to conver to a NodeList.\n return [nodes];\n }\n\n if (nodes instanceof Array) {\n // A single record to conver to a NodeList.\n return nodes;\n }\n\n if (nodes instanceof NodeList) {\n // Already a NodeList.\n return Array.from(nodes);\n }\n\n if (nodes instanceof jQuery) {\n // A jQuery object to a NodeList.\n return nodes.get();\n }\n\n // Fallback to just having a go.\n return Array.from(nodes);\n};\n\n/**\n * Return the first element in a list of normalised Nodes.\n *\n * @param {Array|jQuery|NodeList|HTMLElement} nodes the unmormalised list of nodes\n * @returns {HTMLElement|undefined} the first list element\n */\nexport const getFirst = nodes => {\n
const list = getList(nodes);\n return list[0];\n};\n\n/**\n * Normalise a single node into an HTMLElement.\n *\n * @param {jQuery|Y.Node|HTMLElement} node The node to normalise\n * @returns {HTMLElement}\n */\nexport const getElement = (node) => {\n if (node instanceof HTMLElement) {\n return node;\n }\n\n if (node?._node) {\n // This is likely a YUI Node.\n // We can use (node instanceof Y.Node) but we would have to load YUI to do some.\n return node._node;\n }\n\n if (node instanceof jQuery && node.length > 0) {\n return node.get(0);\n }\n\n return null;\n};\n"],"names":["getList","nodes","HTMLElement","Array","NodeList","from","jQuery","get","node","_node","length"],"mappings":";;;;;;;yLAgCaA,QAAUC,OACfA,iBAAiBC,YAEV,CAACD,OAGRA,iBAAiBE,MAEVF,MAGPA,iBAAiBG,SAEVD,MAAME,KAAKJ,OAGlBA,iBAAiBK,gBAEVL,MAAMM,MAIVJ,MAAME,KAAKJ,kDASEA,OACPD,QAAQC,OACT,uBASWO,MACnBA,gBAAgBN,YACTM,KAGPA,MAAAA,MAAAA,KAAMC,MAGCD,KAAKC,MAGZD,gBAAgBF,iBAAUE,KAAKE,OAAS,EACjCF,KAA
KD,IAAI,GAGb"}