Proyectos de Subversion Moodle

Rev

Autoría | Ultima modificación | Ver Log |

{"version":3,"file":"commands.min.js","sources":["../src/commands.js"],"sourcesContent":["// This file is part of Moodle - https://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 <https://www.gnu.org/licenses/>.\n\n/**\n * Commands helper for the Moodle tiny_aiplacement plugin.\n *\n * @module      tiny_aiplacement/commands\n * @copyright   2024 Matt Porritt <matt.porritt@moodle.com>\n * @license     http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\nimport {getButtonImage, addDynamicToolbarMenu} from 'editor_tiny/utils';\nimport {get_string as getString} from 'core/str';\nimport {\n    component,\n    placement,\n    contextMenuName,\n    generateImageName,\n    generateTextName,\n    contextMenuIcon,\n    generateImageIcon,\n    generateTextIcon\n} from './common';\nimport GenerateImage from './generateimage';\nimport GenerateText from './generatetext';\nimport {isTextAllowed, isImageAllowed} from './options';\n\n/**\n * Get the setup function for the buttons.\n *\n * This is performed in an async function which ultimately returns the registration function as the\n * Tiny.AddOnManager.Add() function does not support async functions.\n *\n * @returns {function} The registration function to call within the Plugin.add function.\n */\nexport const getSetup = async() => {\n    const [\n        contextMenuIconText,\n        generateImageIconText,\n        generateTextIconText,\n        contextMenuIconImage,\n        generateImageIconImage,\n        generateTextIconImage,\n    ] = await Promise.all([\n        getString('generatecontent', placement),\n        getString('generateimage', placement),\n        getString('generatetext', placement),\n        getButtonImage(contextMenuIcon, component),\n        getButtonImage(generateImageIcon, component),\n        getButtonImage(generateTextIcon, component),\n    ]);\n\n    const getToolbarParts = (editor) => {\n        // Add the context menu button.\n        const menuItems = [];\n\n        if (isTextAllowed(editor)) {\n            const textGenerator = new GenerateText(editor);\n\n            editor.ui.registry.addMenuItem(generateTextName, {\n                icon: generateTextIcon,\n                text: generateTextIconText,\n                onAction: () => {\n                    textGenerator.displayContentModal(editor);\n                },\n            });\n\n            menuItems.push(generateTextName);\n\n            if (!isImageAllowed(editor)) {\n                // Only text generation is allowed.\n                return {\n                    menuItems,\n                    singleButton: generateTextIcon,\n                    singleButtonTitle: generateTextIconText,\n                    generator: textGenerator,\n                };\n            }\n        }\n\n        if (isImageAllowed(editor)) {\n            const imageGenerator = new GenerateImage(editor);\n\n            editor.ui.registry.addMenuItem(generateImageName, {\n                icon: generateImageIcon,\n                text: generateImageIconText,\n                onAction: () => {\n                    imageGenerator.displayContentModal(editor);\n                },\n            });\n\n            menuItems.push(generateImageName);\n\n            if (!isTextAllowed(editor)) {\n                // Only image generation is allowed.\n                return {\n                    menuItems,\n                    singleButton: generateImageIcon,\n                    singleButtonTitle: generateImageIconText,\n                    generator: imageGenerator,\n                };\n            }\n        }\n\n        return {\n            menuItems,\n            singleButton: null,\n            singleButtonTitle: null,\n            generator: null,\n        };\n    };\n\n\n    return (editor) => {\n        if (!isTextAllowed(editor) && !isImageAllowed(editor)) {\n            return;\n        }\n\n        // Register the icon SVG files as an icon suitable for use in TinyMCE toolbars and buttons.\n        editor.ui.registry.addIcon(contextMenuIcon, contextMenuIconImage.html);\n        editor.ui.registry.addIcon(generateImageIcon, generateImageIconImage.html);\n        editor.ui.registry.addIcon(generateTextIcon, generateTextIconImage.html);\n\n        const {menuItems, singleButton, singleButtonTitle, generator} = getToolbarParts(editor);\n\n        addDynamicToolbarMenu(\n            editor,\n            menuItems,\n            contextMenuName,\n            contextMenuIcon,\n            contextMenuIconText,\n            singleButton,\n            singleButtonTitle,\n            () => {\n                generator.displayContentModal(editor);\n            },\n        );\n    };\n};\n"],"names":["async","contextMenuIconText","generateImageIconText","generateTextIconText","contextMenuIconImage","generateImageIconImage","generateTextIconImage","Promise","all","placement","contextMenuIcon","component","generateImageIcon","generateTextIcon","editor","ui","registry","addIcon","html","menuItems","singleButton","singleButtonTitle","generator","textGenerator","GenerateText","addMenuItem","generateTextName","icon","text","onAction","displayContentModal","push","imageGenerator","GenerateImage","generateImageName","getToolbarParts","contextMenuName"],"mappings":";;;;;;;kNA+CwBA,gBAEhBC,oBACAC,sBACAC,qBACAC,qBACAC,uBACAC,6BACMC,QAAQC,IAAI,EAClB,mBAAU,kBAAmBC,oBAC7B,mBAAU,gBAAiBA,oBAC3B,mBAAU,eAAgBA,oBAC1B,yBAAeC,wBAAiBC,oBAChC,yBAAeC,0BAAmBD,oBAClC,yBAAeE,yBAAkBF,4BAgE7BG,cACC,0BAAcA,WAAY,2BAAeA,eAK9CA,OAAOC,GAAGC,SAASC,QAAQP,wBAAiBN,qBAAqBc,MACjEJ,OAAOC,GAAGC,SAASC,QAAQL,0BAAmBP,uBAAuBa,MACrEJ,OAAOC,GAAGC,SAASC,QAAQJ,yBAAkBP,sBAAsBY,YAE7DC,UAACA,UAADC,aAAYA,aAAZC,kBAA0BA,kBAA1BC,UAA6CA,WAvE9BR,CAAAA,eAEfK,UAAY,OAEd,0BAAcL,QAAS,OACjBS,cAAgB,IAAIC,sBAAaV,WAEvCA,OAAOC,GAAGC,SAASS,YAAYC,yBAAkB,CAC7CC,KAAMd,yBACNe,KAAMzB,qBACN0B,SAAU,KACNN,cAAcO,oBAAoBhB,WAI1CK,UAAUY,KAAKL,4BAEV,2BAAeZ,cAET,CACHK,UAAAA,UACAC,aAAcP,yBACdQ,kBAAmBlB,qBACnBmB,UAAWC,mBAKnB,2BAAeT,QAAS,OAClBkB,eAAiB,IAAIC,uBAAcnB,WAEzCA,OAAOC,GAAGC,SAASS,YAAYS,0BAAmB,CAC9CP,KAAMf,0BACNgB,KAAM1B,sBACN2B,SAAU,KACNG,eAAeF,oBAAoBhB,WAI3CK,UAAUY,KAAKG,6BAEV,0BAAcpB,cAER,CACHK,UAAAA,UACAC,aAAcR,0BACdS,kBAAmBnB,sBACnBoB,UAAWU,sBAKhB,CACHb,UAAAA,UACAC,aAAc,KACdC,kBAAmB,KACnBC,UAAW,OAeiDa,CAAgBrB,yCAG5EA,OACAK,UACAiB,wBACA1B,wBACAT,oBACAmB,aACAC,mBACA,KACIC,UAAUQ,oBAAoBhB"}