diff --git a/public/lib/editor/tiny/plugins/media/amd/build/commands.min.js b/public/lib/editor/tiny/plugins/media/amd/build/commands.min.js index aab4a9bf4ba..4a7a3b01a47 100644 --- a/public/lib/editor/tiny/plugins/media/amd/build/commands.min.js +++ b/public/lib/editor/tiny/plugins/media/amd/build/commands.min.js @@ -1,10 +1,10 @@ -define("tiny_media/commands",["exports","core/str","./common","./image","./embed","./manager","editor_tiny/utils"],(function(_exports,_str,_common,_image,_embed,_manager,_utils){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}} +define("tiny_media/commands",["exports","core/str","./common","./image","./embed","./manager","editor_tiny/utils","./selectors"],(function(_exports,_str,_common,_image,_embed,_manager,_utils,_selectors){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}} /** * Tiny Media commands. * * @module tiny_media/commands * @copyright 2022 Huong Nguyen * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.getSetup=void 0,_image=_interopRequireDefault(_image),_embed=_interopRequireDefault(_embed),_manager=_interopRequireDefault(_manager);const isImage=node=>"img"===node.nodeName.toLowerCase(),isVideo=node=>"video"===node.nodeName.toLowerCase()||"audio"===node.nodeName.toLowerCase();_exports.getSetup=async()=>{const[imageButtonText,mediaButtonText,mediaManagerButtonText]=await(0,_str.getStrings)(["imagebuttontitle","mediabuttontitle","mediamanagerbuttontitle"].map((key=>({key:key,component:_common.component})))),[mediaManagerButtonImage]=await Promise.all([(0,_utils.getButtonImage)("filemanager",_common.component)]);return editor=>{((editor,imageButtonText)=>{const handleImageAction=()=>{new _image.default(editor).displayDialogue()};editor.ui.registry.addToggleButton(_common.imageButtonName,{icon:"image",tooltip:imageButtonText,onAction:handleImageAction,onSetup:api=>editor.selection.selectorChangedWithUnbind("img:not([data-mce-object]):not([data-mce-placeholder]),figure.image",api.setActive).unbind}),editor.ui.registry.addMenuItem(_common.imageButtonName,{icon:"image",text:imageButtonText,onAction:handleImageAction}),editor.ui.registry.addContextToolbar(_common.imageButtonName,{predicate:isImage,items:_common.imageButtonName,position:"node",scope:"node"}),editor.ui.registry.addContextMenu(_common.imageButtonName,{update:isImage})})(editor,imageButtonText),((editor,videoButtonText)=>{const handleEmbedAction=()=>{new _embed.default(editor).displayDialogue()};editor.ui.registry.addToggleButton(_common.videoButtonName,{icon:"embed",tooltip:videoButtonText,onAction:handleEmbedAction,onSetup:api=>editor.selection.selectorChangedWithUnbind("video:not([data-mce-object]):not([data-mce-placeholder]),audio:not([data-mce-object]):not([data-mce-placeholder]),a:not([data-mce-object]):not([data-mce-placeholder])[class=external-media-provider]",api.setActive).unbind}),editor.ui.registry.addMenuItem(_common.videoButtonName,{icon:"embed",text:videoButtonText,onAction:handleEmbedAction}),editor.ui.registry.addContextMenu(_common.videoButtonName,{update:isVideo}),editor.ui.registry.addContextToolbar(_common.videoButtonName,{predicate:isVideo,items:_common.videoButtonName,position:"node",scope:"node"})})(editor,mediaButtonText),((editor,mediaManagerButtonText,mediaManagerButtonImage)=>{const handleMediaManager=()=>{new _manager.default(editor).displayDialogue()};editor.ui.registry.addIcon("filemanager",mediaManagerButtonImage.html),editor.ui.registry.addButton(_common.mediaManagerButtonName,{icon:"filemanager",tooltip:mediaManagerButtonText,onAction:()=>{handleMediaManager()}}),editor.ui.registry.addMenuItem(_common.mediaManagerButtonName,{icon:"filemanager",text:mediaManagerButtonText,onAction:()=>{handleMediaManager()}})})(editor,mediaManagerButtonText,mediaManagerButtonImage)}}})); + */Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.getSetup=void 0,_image=_interopRequireDefault(_image),_embed=_interopRequireDefault(_embed),_manager=_interopRequireDefault(_manager),_selectors=_interopRequireDefault(_selectors);const isImage=node=>"img"===node.nodeName.toLowerCase(),isVideo=node=>"video"===node.nodeName.toLowerCase()||"audio"===node.nodeName.toLowerCase();_exports.getSetup=async()=>{const[imageButtonText,mediaButtonText,mediaManagerButtonText]=await(0,_str.getStrings)(["imagebuttontitle","mediabuttontitle","mediamanagerbuttontitle"].map((key=>({key:key,component:_common.component})))),[mediaManagerButtonImage]=await Promise.all([(0,_utils.getButtonImage)("filemanager",_common.component)]);return editor=>{((editor,imageButtonText)=>{const handleImageAction=()=>{new _image.default(editor).displayDialogue()};editor.ui.registry.addToggleButton(_common.imageButtonName,{icon:"image",tooltip:imageButtonText,onAction:handleImageAction,onSetup:api=>editor.selection.selectorChangedWithUnbind("img:not([data-mce-object]):not([data-mce-placeholder]),figure.image",api.setActive).unbind}),editor.ui.registry.addMenuItem(_common.imageButtonName,{icon:"image",text:imageButtonText,onAction:handleImageAction}),editor.ui.registry.addContextToolbar(_common.imageButtonName,{predicate:isImage,items:_common.imageButtonName,position:"node",scope:"node"}),editor.ui.registry.addContextMenu(_common.imageButtonName,{update:isImage}),editor.on("SetContent",(function(){editor.getBody().querySelectorAll("img:not(.".concat(_selectors.default.IMAGE.styles.responsive,")")).forEach((img=>img.classList.add("".concat(_selectors.default.IMAGE.styles.responsive))))}))})(editor,imageButtonText),((editor,videoButtonText)=>{const handleEmbedAction=()=>{new _embed.default(editor).displayDialogue()};editor.ui.registry.addToggleButton(_common.videoButtonName,{icon:"embed",tooltip:videoButtonText,onAction:handleEmbedAction,onSetup:api=>editor.selection.selectorChangedWithUnbind("video:not([data-mce-object]):not([data-mce-placeholder]),audio:not([data-mce-object]):not([data-mce-placeholder]),a:not([data-mce-object]):not([data-mce-placeholder])[class=external-media-provider]",api.setActive).unbind}),editor.ui.registry.addMenuItem(_common.videoButtonName,{icon:"embed",text:videoButtonText,onAction:handleEmbedAction}),editor.ui.registry.addContextMenu(_common.videoButtonName,{update:isVideo}),editor.ui.registry.addContextToolbar(_common.videoButtonName,{predicate:isVideo,items:_common.videoButtonName,position:"node",scope:"node"})})(editor,mediaButtonText),((editor,mediaManagerButtonText,mediaManagerButtonImage)=>{const handleMediaManager=()=>{new _manager.default(editor).displayDialogue()};editor.ui.registry.addIcon("filemanager",mediaManagerButtonImage.html),editor.ui.registry.addButton(_common.mediaManagerButtonName,{icon:"filemanager",tooltip:mediaManagerButtonText,onAction:()=>{handleMediaManager()}}),editor.ui.registry.addMenuItem(_common.mediaManagerButtonName,{icon:"filemanager",text:mediaManagerButtonText,onAction:()=>{handleMediaManager()}})})(editor,mediaManagerButtonText,mediaManagerButtonImage)}}})); //# sourceMappingURL=commands.min.js.map \ No newline at end of file diff --git a/public/lib/editor/tiny/plugins/media/amd/build/commands.min.js.map b/public/lib/editor/tiny/plugins/media/amd/build/commands.min.js.map index ca11b641321..88d1c6faa4d 100644 --- a/public/lib/editor/tiny/plugins/media/amd/build/commands.min.js.map +++ b/public/lib/editor/tiny/plugins/media/amd/build/commands.min.js.map @@ -1 +1 @@ -{"version":3,"file":"commands.min.js","sources":["../src/commands.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 .\n\n/**\n * Tiny Media commands.\n *\n * @module tiny_media/commands\n * @copyright 2022 Huong Nguyen \n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\nimport {getStrings} from 'core/str';\nimport {\n component,\n imageButtonName,\n videoButtonName,\n mediaManagerButtonName\n} from './common';\nimport MediaImage from './image';\nimport MediaEmbed from './embed';\nimport MediaManager from './manager';\nimport {getButtonImage} from 'editor_tiny/utils';\n\nconst isImage = (node) => node.nodeName.toLowerCase() === 'img';\nconst isVideo = (node) => node.nodeName.toLowerCase() === 'video' || node.nodeName.toLowerCase() === 'audio';\n\nconst registerImageCommand = (editor, imageButtonText) => {\n const imageIcon = 'image';\n const handleImageAction = () => {\n const mediaImage = new MediaImage(editor);\n mediaImage.displayDialogue();\n };\n\n // Register the Menu Button as a toggle.\n // This means that when highlighted over an existing Media Image element it will show as toggled on.\n editor.ui.registry.addToggleButton(imageButtonName, {\n icon: imageIcon,\n tooltip: imageButtonText,\n onAction: handleImageAction,\n onSetup: api => {\n return editor.selection.selectorChangedWithUnbind(\n 'img:not([data-mce-object]):not([data-mce-placeholder]),figure.image',\n api.setActive\n ).unbind;\n }\n });\n\n editor.ui.registry.addMenuItem(imageButtonName, {\n icon: imageIcon,\n text: imageButtonText,\n onAction: handleImageAction,\n });\n\n editor.ui.registry.addContextToolbar(imageButtonName, {\n predicate: isImage,\n items: imageButtonName,\n position: 'node',\n scope: 'node'\n });\n\n editor.ui.registry.addContextMenu(imageButtonName, {\n update: isImage,\n });\n};\n\nconst registerEmbedCommand = (editor, videoButtonText) => {\n const videoIcon = 'embed';\n const handleEmbedAction = () => {\n const mediaImage = new MediaEmbed(editor);\n mediaImage.displayDialogue();\n };\n\n // Register the Menu Button as a toggle.\n // This means that when highlighted over an existing Media Video element it will show as toggled on.\n editor.ui.registry.addToggleButton(videoButtonName, {\n icon: videoIcon,\n tooltip: videoButtonText,\n onAction: handleEmbedAction,\n onSetup: api => {\n return editor.selection.selectorChangedWithUnbind(\n 'video:not([data-mce-object]):not([data-mce-placeholder]),' +\n 'audio:not([data-mce-object]):not([data-mce-placeholder]),' +\n 'a:not([data-mce-object]):not([data-mce-placeholder])[class=external-media-provider]',\n api.setActive\n ).unbind;\n }\n });\n\n editor.ui.registry.addMenuItem(videoButtonName, {\n icon: videoIcon,\n text: videoButtonText,\n onAction: handleEmbedAction,\n });\n\n editor.ui.registry.addContextMenu(videoButtonName, {\n update: isVideo,\n });\n\n editor.ui.registry.addContextToolbar(videoButtonName, {\n predicate: isVideo,\n items: videoButtonName,\n position: 'node',\n scope: 'node'\n });\n\n};\n\nconst registerManagerCommand = (editor, mediaManagerButtonText, mediaManagerButtonImage) => {\n const mediaManagerIcon = 'filemanager';\n const handleMediaManager = () => {\n const mediaManager = new MediaManager(editor);\n mediaManager.displayDialogue();\n };\n\n // Register the Menu Button as a toggle.\n editor.ui.registry.addIcon(mediaManagerIcon, mediaManagerButtonImage.html);\n editor.ui.registry.addButton(mediaManagerButtonName, {\n icon: mediaManagerIcon,\n tooltip: mediaManagerButtonText,\n onAction: () => {\n handleMediaManager();\n }\n });\n\n editor.ui.registry.addMenuItem(mediaManagerButtonName, {\n icon: mediaManagerIcon,\n text: mediaManagerButtonText,\n onAction: () => {\n handleMediaManager();\n }\n });\n};\n\nexport const getSetup = async() => {\n const [\n imageButtonText,\n mediaButtonText,\n mediaManagerButtonText\n ] = await getStrings(['imagebuttontitle', 'mediabuttontitle', 'mediamanagerbuttontitle'].map((key) => ({key, component})));\n\n const [\n mediaManagerButtonImage,\n ] = await Promise.all([\n getButtonImage('filemanager', component)\n ]);\n\n // Note: The function returned here must be synchronous and cannot use promises.\n // All promises must be resolved prior to returning the function.\n return (editor) => {\n registerImageCommand(editor, imageButtonText);\n registerEmbedCommand(editor, mediaButtonText);\n registerManagerCommand(editor, mediaManagerButtonText, mediaManagerButtonImage);\n };\n};\n"],"names":["isImage","node","nodeName","toLowerCase","isVideo","async","imageButtonText","mediaButtonText","mediaManagerButtonText","map","key","component","mediaManagerButtonImage","Promise","all","editor","handleImageAction","MediaImage","displayDialogue","ui","registry","addToggleButton","imageButtonName","icon","tooltip","onAction","onSetup","api","selection","selectorChangedWithUnbind","setActive","unbind","addMenuItem","text","addContextToolbar","predicate","items","position","scope","addContextMenu","update","registerImageCommand","videoButtonText","handleEmbedAction","MediaEmbed","videoButtonName","registerEmbedCommand","handleMediaManager","MediaManager","addIcon","html","addButton","mediaManagerButtonName","registerManagerCommand"],"mappings":";;;;;;;kNAmCMA,QAAWC,MAAyC,QAAhCA,KAAKC,SAASC,cAClCC,QAAWH,MAAyC,UAAhCA,KAAKC,SAASC,eAA6D,UAAhCF,KAAKC,SAASC,gCA6G3DE,gBAEhBC,gBACAC,gBACAC,8BACM,mBAAW,CAAC,mBAAoB,mBAAoB,2BAA2BC,KAAKC,OAAUA,IAAAA,IAAKC,UAAAA,wBAGzGC,+BACMC,QAAQC,IAAI,EAClB,yBAAe,cAAeH,4BAK1BI,SA1HiB,EAACA,OAAQT,yBAE5BU,kBAAoB,KACH,IAAIC,eAAWF,QACvBG,mBAKfH,OAAOI,GAAGC,SAASC,gBAAgBC,wBAAiB,CAChDC,KATc,QAUdC,QAASlB,gBACTmB,SAAUT,kBACVU,QAASC,KACEZ,OAAOa,UAAUC,0BACpB,sEACAF,IAAIG,WACNC,SAIVhB,OAAOI,GAAGC,SAASY,YAAYV,wBAAiB,CAC5CC,KArBc,QAsBdU,KAAM3B,gBACNmB,SAAUT,oBAGdD,OAAOI,GAAGC,SAASc,kBAAkBZ,wBAAiB,CAClDa,UAAWnC,QACXoC,MAAOd,wBACPe,SAAU,OACVC,MAAO,SAGXvB,OAAOI,GAAGC,SAASmB,eAAejB,wBAAiB,CAC/CkB,OAAQxC,WAwFRyC,CAAqB1B,OAAQT,iBApFR,EAACS,OAAQ2B,yBAE5BC,kBAAoB,KACH,IAAIC,eAAW7B,QACvBG,mBAKfH,OAAOI,GAAGC,SAASC,gBAAgBwB,wBAAiB,CAChDtB,KATc,QAUdC,QAASkB,gBACTjB,SAAUkB,kBACVjB,QAASC,KACEZ,OAAOa,UAAUC,0BACpB,wMAGAF,IAAIG,WACNC,SAIVhB,OAAOI,GAAGC,SAASY,YAAYa,wBAAiB,CAC5CtB,KAvBc,QAwBdU,KAAMS,gBACNjB,SAAUkB,oBAGd5B,OAAOI,GAAGC,SAASmB,eAAeM,wBAAiB,CAC/CL,OAAQpC,UAGZW,OAAOI,GAAGC,SAASc,kBAAkBW,wBAAiB,CAClDV,UAAW/B,QACXgC,MAAOS,wBACPR,SAAU,OACVC,MAAO,UAgDPQ,CAAqB/B,OAAQR,iBA3CN,EAACQ,OAAQP,uBAAwBI,iCAEtDmC,mBAAqB,KACF,IAAIC,iBAAajC,QACzBG,mBAIjBH,OAAOI,GAAGC,SAAS6B,QAPM,cAOoBrC,wBAAwBsC,MACrEnC,OAAOI,GAAGC,SAAS+B,UAAUC,+BAAwB,CACjD7B,KATqB,cAUrBC,QAAShB,uBACTiB,SAAU,KACNsB,wBAIRhC,OAAOI,GAAGC,SAASY,YAAYoB,+BAAwB,CACnD7B,KAjBqB,cAkBrBU,KAAMzB,uBACNiB,SAAU,KACNsB,yBAuBJM,CAAuBtC,OAAQP,uBAAwBI"} \ No newline at end of file +{"version":3,"file":"commands.min.js","sources":["../src/commands.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 .\n\n/**\n * Tiny Media commands.\n *\n * @module tiny_media/commands\n * @copyright 2022 Huong Nguyen \n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\nimport {getStrings} from 'core/str';\nimport {\n component,\n imageButtonName,\n videoButtonName,\n mediaManagerButtonName\n} from './common';\nimport MediaImage from './image';\nimport MediaEmbed from './embed';\nimport MediaManager from './manager';\nimport {getButtonImage} from 'editor_tiny/utils';\nimport Selectors from './selectors';\n\nconst isImage = (node) => node.nodeName.toLowerCase() === 'img';\nconst isVideo = (node) => node.nodeName.toLowerCase() === 'video' || node.nodeName.toLowerCase() === 'audio';\n\nconst registerImageCommand = (editor, imageButtonText) => {\n const imageIcon = 'image';\n const handleImageAction = () => {\n const mediaImage = new MediaImage(editor);\n mediaImage.displayDialogue();\n };\n\n // Register the Menu Button as a toggle.\n // This means that when highlighted over an existing Media Image element it will show as toggled on.\n editor.ui.registry.addToggleButton(imageButtonName, {\n icon: imageIcon,\n tooltip: imageButtonText,\n onAction: handleImageAction,\n onSetup: api => {\n return editor.selection.selectorChangedWithUnbind(\n 'img:not([data-mce-object]):not([data-mce-placeholder]),figure.image',\n api.setActive\n ).unbind;\n }\n });\n\n editor.ui.registry.addMenuItem(imageButtonName, {\n icon: imageIcon,\n text: imageButtonText,\n onAction: handleImageAction,\n });\n\n editor.ui.registry.addContextToolbar(imageButtonName, {\n predicate: isImage,\n items: imageButtonName,\n position: 'node',\n scope: 'node'\n });\n\n editor.ui.registry.addContextMenu(imageButtonName, {\n update: isImage,\n });\n\n // Let's check for image file at dragged and dropped and add img-fluid class if it does't have it yet.\n editor.on('SetContent', function() {\n const imgs = editor.getBody().querySelectorAll(`img:not(.${Selectors.IMAGE.styles.responsive})`);\n imgs.forEach(img => img.classList.add(`${Selectors.IMAGE.styles.responsive}`));\n });\n};\n\nconst registerEmbedCommand = (editor, videoButtonText) => {\n const videoIcon = 'embed';\n const handleEmbedAction = () => {\n const mediaImage = new MediaEmbed(editor);\n mediaImage.displayDialogue();\n };\n\n // Register the Menu Button as a toggle.\n // This means that when highlighted over an existing Media Video element it will show as toggled on.\n editor.ui.registry.addToggleButton(videoButtonName, {\n icon: videoIcon,\n tooltip: videoButtonText,\n onAction: handleEmbedAction,\n onSetup: api => {\n return editor.selection.selectorChangedWithUnbind(\n 'video:not([data-mce-object]):not([data-mce-placeholder]),' +\n 'audio:not([data-mce-object]):not([data-mce-placeholder]),' +\n 'a:not([data-mce-object]):not([data-mce-placeholder])[class=external-media-provider]',\n api.setActive\n ).unbind;\n }\n });\n\n editor.ui.registry.addMenuItem(videoButtonName, {\n icon: videoIcon,\n text: videoButtonText,\n onAction: handleEmbedAction,\n });\n\n editor.ui.registry.addContextMenu(videoButtonName, {\n update: isVideo,\n });\n\n editor.ui.registry.addContextToolbar(videoButtonName, {\n predicate: isVideo,\n items: videoButtonName,\n position: 'node',\n scope: 'node'\n });\n\n};\n\nconst registerManagerCommand = (editor, mediaManagerButtonText, mediaManagerButtonImage) => {\n const mediaManagerIcon = 'filemanager';\n const handleMediaManager = () => {\n const mediaManager = new MediaManager(editor);\n mediaManager.displayDialogue();\n };\n\n // Register the Menu Button as a toggle.\n editor.ui.registry.addIcon(mediaManagerIcon, mediaManagerButtonImage.html);\n editor.ui.registry.addButton(mediaManagerButtonName, {\n icon: mediaManagerIcon,\n tooltip: mediaManagerButtonText,\n onAction: () => {\n handleMediaManager();\n }\n });\n\n editor.ui.registry.addMenuItem(mediaManagerButtonName, {\n icon: mediaManagerIcon,\n text: mediaManagerButtonText,\n onAction: () => {\n handleMediaManager();\n }\n });\n};\n\nexport const getSetup = async() => {\n const [\n imageButtonText,\n mediaButtonText,\n mediaManagerButtonText\n ] = await getStrings(['imagebuttontitle', 'mediabuttontitle', 'mediamanagerbuttontitle'].map((key) => ({key, component})));\n\n const [\n mediaManagerButtonImage,\n ] = await Promise.all([\n getButtonImage('filemanager', component)\n ]);\n\n // Note: The function returned here must be synchronous and cannot use promises.\n // All promises must be resolved prior to returning the function.\n return (editor) => {\n registerImageCommand(editor, imageButtonText);\n registerEmbedCommand(editor, mediaButtonText);\n registerManagerCommand(editor, mediaManagerButtonText, mediaManagerButtonImage);\n };\n};\n"],"names":["isImage","node","nodeName","toLowerCase","isVideo","async","imageButtonText","mediaButtonText","mediaManagerButtonText","map","key","component","mediaManagerButtonImage","Promise","all","editor","handleImageAction","MediaImage","displayDialogue","ui","registry","addToggleButton","imageButtonName","icon","tooltip","onAction","onSetup","api","selection","selectorChangedWithUnbind","setActive","unbind","addMenuItem","text","addContextToolbar","predicate","items","position","scope","addContextMenu","update","on","getBody","querySelectorAll","Selectors","IMAGE","styles","responsive","forEach","img","classList","add","registerImageCommand","videoButtonText","handleEmbedAction","MediaEmbed","videoButtonName","registerEmbedCommand","handleMediaManager","MediaManager","addIcon","html","addButton","mediaManagerButtonName","registerManagerCommand"],"mappings":";;;;;;;gQAoCMA,QAAWC,MAAyC,QAAhCA,KAAKC,SAASC,cAClCC,QAAWH,MAAyC,UAAhCA,KAAKC,SAASC,eAA6D,UAAhCF,KAAKC,SAASC,gCAmH3DE,gBAEhBC,gBACAC,gBACAC,8BACM,mBAAW,CAAC,mBAAoB,mBAAoB,2BAA2BC,KAAKC,OAAUA,IAAAA,IAAKC,UAAAA,wBAGzGC,+BACMC,QAAQC,IAAI,EAClB,yBAAe,cAAeH,4BAK1BI,SAhIiB,EAACA,OAAQT,yBAE5BU,kBAAoB,KACH,IAAIC,eAAWF,QACvBG,mBAKfH,OAAOI,GAAGC,SAASC,gBAAgBC,wBAAiB,CAChDC,KATc,QAUdC,QAASlB,gBACTmB,SAAUT,kBACVU,QAASC,KACEZ,OAAOa,UAAUC,0BACpB,sEACAF,IAAIG,WACNC,SAIVhB,OAAOI,GAAGC,SAASY,YAAYV,wBAAiB,CAC5CC,KArBc,QAsBdU,KAAM3B,gBACNmB,SAAUT,oBAGdD,OAAOI,GAAGC,SAASc,kBAAkBZ,wBAAiB,CAClDa,UAAWnC,QACXoC,MAAOd,wBACPe,SAAU,OACVC,MAAO,SAGXvB,OAAOI,GAAGC,SAASmB,eAAejB,wBAAiB,CAC/CkB,OAAQxC,UAIZe,OAAO0B,GAAG,cAAc,WACP1B,OAAO2B,UAAUC,oCAA6BC,mBAAUC,MAAMC,OAAOC,iBAC7EC,SAAQC,KAAOA,IAAIC,UAAUC,cAAOP,mBAAUC,MAAMC,OAAOC,mBAwFhEK,CAAqBrC,OAAQT,iBApFR,EAACS,OAAQsC,yBAE5BC,kBAAoB,KACH,IAAIC,eAAWxC,QACvBG,mBAKfH,OAAOI,GAAGC,SAASC,gBAAgBmC,wBAAiB,CAChDjC,KATc,QAUdC,QAAS6B,gBACT5B,SAAU6B,kBACV5B,QAASC,KACEZ,OAAOa,UAAUC,0BACpB,wMAGAF,IAAIG,WACNC,SAIVhB,OAAOI,GAAGC,SAASY,YAAYwB,wBAAiB,CAC5CjC,KAvBc,QAwBdU,KAAMoB,gBACN5B,SAAU6B,oBAGdvC,OAAOI,GAAGC,SAASmB,eAAeiB,wBAAiB,CAC/ChB,OAAQpC,UAGZW,OAAOI,GAAGC,SAASc,kBAAkBsB,wBAAiB,CAClDrB,UAAW/B,QACXgC,MAAOoB,wBACPnB,SAAU,OACVC,MAAO,UAgDPmB,CAAqB1C,OAAQR,iBA3CN,EAACQ,OAAQP,uBAAwBI,iCAEtD8C,mBAAqB,KACF,IAAIC,iBAAa5C,QACzBG,mBAIjBH,OAAOI,GAAGC,SAASwC,QAPM,cAOoBhD,wBAAwBiD,MACrE9C,OAAOI,GAAGC,SAAS0C,UAAUC,+BAAwB,CACjDxC,KATqB,cAUrBC,QAAShB,uBACTiB,SAAU,KACNiC,wBAIR3C,OAAOI,GAAGC,SAASY,YAAY+B,+BAAwB,CACnDxC,KAjBqB,cAkBrBU,KAAMzB,uBACNiB,SAAU,KACNiC,yBAuBJM,CAAuBjD,OAAQP,uBAAwBI"} \ No newline at end of file diff --git a/public/lib/editor/tiny/plugins/media/amd/src/commands.js b/public/lib/editor/tiny/plugins/media/amd/src/commands.js index eedfdfaec37..3afb1e38f60 100644 --- a/public/lib/editor/tiny/plugins/media/amd/src/commands.js +++ b/public/lib/editor/tiny/plugins/media/amd/src/commands.js @@ -32,6 +32,7 @@ import MediaImage from './image'; import MediaEmbed from './embed'; import MediaManager from './manager'; import {getButtonImage} from 'editor_tiny/utils'; +import Selectors from './selectors'; const isImage = (node) => node.nodeName.toLowerCase() === 'img'; const isVideo = (node) => node.nodeName.toLowerCase() === 'video' || node.nodeName.toLowerCase() === 'audio'; @@ -73,6 +74,12 @@ const registerImageCommand = (editor, imageButtonText) => { editor.ui.registry.addContextMenu(imageButtonName, { update: isImage, }); + + // Let's check for image file at dragged and dropped and add img-fluid class if it does't have it yet. + editor.on('SetContent', function() { + const imgs = editor.getBody().querySelectorAll(`img:not(.${Selectors.IMAGE.styles.responsive})`); + imgs.forEach(img => img.classList.add(`${Selectors.IMAGE.styles.responsive}`)); + }); }; const registerEmbedCommand = (editor, videoButtonText) => {