Switch toolchain from yarn to npm
@@ -0,0 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
CKEDITOR.dialog.add("easyimageAlt",function(b){return{title:b.lang.easyimage.commands.altText,minWidth:200,minHeight:30,getModel:function(){var a=b.widgets.focused;return a&&"easyimage"==a.name?a:null},onOk:function(){var a=CKEDITOR.tools.trim(this.getValueOf("info","txtAlt")),c=this.getModel(b);c&&c.parts.image.setAttribute("alt",a)},onShow:function(){var a=this.getContentElement("info","txtAlt"),c=this.getModel(b);c&&a.setValue(c.parts.image.getAttribute("alt"));a.focus()},contents:[{id:"info",
|
||||
label:b.lang.easyimage.commands.altText,accessKey:"I",elements:[{type:"text",id:"txtAlt",label:b.lang.easyimage.commands.altText}]}]}});
|
||||
|
After Width: | Height: | Size: 155 B |
|
After Width: | Height: | Size: 152 B |
|
After Width: | Height: | Size: 149 B |
|
After Width: | Height: | Size: 545 B |
|
After Width: | Height: | Size: 147 B |
|
After Width: | Height: | Size: 149 B |
|
After Width: | Height: | Size: 498 B |
|
After Width: | Height: | Size: 350 B |
|
After Width: | Height: | Size: 339 B |
|
After Width: | Height: | Size: 299 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 253 B |
|
After Width: | Height: | Size: 299 B |
|
After Width: | Height: | Size: 905 B |
@@ -0,0 +1,5 @@
|
||||
/*
|
||||
Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
CKEDITOR.plugins.setLang("easyimage","en",{commands:{fullImage:"Full Size Image",sideImage:"Side Image",altText:"Change image alternative text",upload:"Upload Image"},uploadFailed:"Your image could not be uploaded due to a network error."});
|
||||
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
(function(){function f(a){return CKEDITOR.tools.capitalize(a,!0)}function p(a,c){function b(a){return function(b,d){var c=b.widgets.focused,e=CKEDITOR.TRISTATE_DISABLED;c&&"easyimage"===c.name&&(e=a&&a.call(this,c,b,d)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF);this.setState(e)}}function e(a,c,d,g){d.type="widget";d.widget="easyimage";d.group=d.group||"easyimage";d.element="figure";c=new CKEDITOR.style(d);a.filter.allow(c);c=new CKEDITOR.styleCommand(c);c.contextSensitive=!0;c.refresh=b(function(a,
|
||||
b,c){return this.style.checkActive(c,b)});a.addCommand(g,c);c=a.getCommand(g);c.enable=function(){};c.refresh(a,a.elementPath());return c}a.addCommand("easyimageAlt",new CKEDITOR.dialogCommand("easyimageAlt",{startDisabled:!0,contextSensitive:!0,refresh:b()}));(function(b){function c(a,b){var d=a.match(/^easyimage(.+)$/);if(d){var e=(d[1][0]||"").toLowerCase()+d[1].substr(1);if(d[1]in b)return d[1];if(e in b)return e}return null}a.on("afterCommandExec",function(d){c(d.data.name,b)&&(a.forceNextSelectionCheck(),
|
||||
a.selectionChange(!0))});a.on("beforeCommandExec",function(d){c(d.data.name,b)&&d.data.command.style.checkActive(d.editor.elementPath(),a)&&(d.cancel(),a.focus())});for(var d in b)e(a,d,b[d],"easyimage"+f(d))})(c)}function q(a){var c=a.config.easyimage_toolbar;a.plugins.contextmenu&&(c.split&&(c=c.split(",")),a.addMenuGroup("easyimage"),CKEDITOR.tools.array.forEach(c,function(b){b=a.ui.items[b];a.addMenuItem(b.name,{label:b.label,command:b.command,group:"easyimage"})}))}function r(a){var c=a.sender.editor,
|
||||
b=c.config.easyimage_toolbar;b.split&&(b=b.split(","));CKEDITOR.tools.array.forEach(b,function(b){b=c.ui.items[b];a.data[b.name]=c.getCommand(b.command).state})}function t(a,c){var b=a.config,e=b.easyimage_class,b={name:"easyimage",allowedContent:{figure:{classes:b.easyimage_sideClass},img:{attributes:"!src,srcset,alt,width,sizes"}},requiredContent:"figure; img[!src]",styleableElements:"figure",supportedTypes:new RegExp("image/("+l.join("|")+")","i"),loaderType:CKEDITOR.plugins.cloudservices.cloudServicesLoader,
|
||||
progressReporterType:CKEDITOR.plugins.imagebase.progressBar,upcasts:{figure:function(a){if((!e||a.hasClass(e))&&1===a.find("img",!0).length)return a}},init:function(){function b(a,c){var e=a.$;if(e.complete&&e.naturalWidth)return c(e.naturalWidth);a.once("load",function(){c(e.naturalWidth)})}var c=this.parts.image;c&&!c.$.complete&&b(c,function(){a._.easyImageToolbarContext.toolbar.reposition()});c=this.element.data("cke-upload-id");"undefined"!==typeof c&&(this.setData("uploadId",c),this.element.data("cke-upload-id",
|
||||
!1));this.on("contextMenu",r);a.config.easyimage_class&&this.addClass(a.config.easyimage_class);this.on("uploadStarted",function(){var a=this;b(a.parts.image,function(b){a.parts.image.hasAttribute("width")||(a.editor.fire("lockSnapshot"),a.parts.image.setAttribute("width",b),a.editor.fire("unlockSnapshot"))})});this.on("uploadDone",function(a){a=a.data.loader.responseData.response;var b=CKEDITOR.plugins.easyimage._parseSrcSet(a);this.parts.image.setAttributes({"data-cke-saved-src":a["default"],src:a["default"],
|
||||
srcset:b,sizes:"100vw"})});this.on("uploadFailed",function(){alert(this.editor.lang.easyimage.uploadFailed)});this._loadDefaultStyle()},_loadDefaultStyle:function(){var b=!1,e=a.config.easyimage_defaultStyle,d;for(d in c){var g=a.getCommand("easyimage"+f(d));!b&&g&&g.style&&-1!==CKEDITOR.tools.array.indexOf(g.style.group,"easyimage")&&this.checkStyleActive(g.style)&&(b=!0)}!b&&e&&a.getCommand("easyimage"+f(e))&&this.applyStyle(a.getCommand("easyimage"+f(e)).style)}};e&&(b.requiredContent+="(!"+e+
|
||||
")",b.allowedContent.figure.classes="!"+e+","+b.allowedContent.figure.classes);a.plugins.link&&(b=CKEDITOR.plugins.imagebase.addFeature(a,"link",b));b=CKEDITOR.plugins.imagebase.addFeature(a,"upload",b);b=CKEDITOR.plugins.imagebase.addFeature(a,"caption",b);CKEDITOR.plugins.imagebase.addImageWidget(a,"easyimage",b)}function u(a){var c=new RegExp("\x3cimg[^\x3e]*\\ssrc\x3d[\\'\\\"]?data:image/("+l.join("|")+");base64,","i");a.on("paste",function(b){if(!a.isReadOnly&&c.test(b.data.dataValue)){b=b.data;
|
||||
var e=document.implementation.createHTMLDocument(""),e=new CKEDITOR.dom.element(e.body),f=a.widgets.registered.easyimage,l=0,d,g,k,m;e.data("cke-editable",1);e.appendHtml(b.dataValue);g=e.find("img");for(m=0;m<g.count();m++){k=g.getItem(m);var h=(d=k.getAttribute("src"))&&"data:"==d.substring(0,5),n=null===k.data("cke-realelement");h&&n&&!k.isReadOnly(1)&&(l++,1<l&&(h=a.getSelection().getRanges(),h[0].enlarge(CKEDITOR.ENLARGE_ELEMENT),h[0].collapse(!1)),d.match(/image\/([a-z]+?);/i),h=f._spawnLoader(a,
|
||||
d,f),d=f._insertWidget(a,f,d,!1,{uploadId:h.id}),d.data("cke-upload-id",h.id),d.replace(k))}b.dataValue=e.getHtml()}})}function v(a){a.ui.addButton("EasyImageUpload",{label:a.lang.easyimage.commands.upload,command:"easyimageUpload",toolbar:"insert,1"});a.addCommand("easyimageUpload",{exec:function(){var c=CKEDITOR.dom.element.createFromHtml('\x3cinput type\x3d"file" accept\x3d"image/*" multiple\x3d"multiple"\x3e');c.once("change",function(b){b=b.data.getTarget();b.$.files.length&&a.fire("paste",{method:"paste",
|
||||
dataValue:"",dataTransfer:new CKEDITOR.plugins.clipboard.dataTransfer({files:b.$.files})})});c.$.click()}})}var n=!1,l=["jpeg","png","gif","bmp"];CKEDITOR.plugins.easyimage={_parseSrcSet:function(a){var c=[],b;for(b in a)"default"!==b&&c.push(a[b]+" "+b+"w");return c.join(", ")}};CKEDITOR.plugins.add("easyimage",{requires:"imagebase,balloontoolbar,button,dialog,cloudservices",lang:"en",icons:"easyimagefull,easyimageside,easyimagealt,easyimagealignleft,easyimagealigncenter,easyimagealignright,easyimageupload",
|
||||
hidpi:!0,onLoad:function(){CKEDITOR.dialog.add("easyimageAlt",this.path+"dialogs/easyimagealt.js")},isSupportedEnvironment:function(){return!CKEDITOR.env.ie||11<=CKEDITOR.env.version},init:function(a){this.isSupportedEnvironment()&&(n||(CKEDITOR.document.appendStyleSheet(this.path+"styles/easyimage.css"),n=!0),a.addContentsCss&&a.addContentsCss(this.path+"styles/easyimage.css"))},afterInit:function(a){if(this.isSupportedEnvironment()){var c;c=CKEDITOR.tools.object.merge({full:{attributes:{"class":"easyimage-full"},
|
||||
label:a.lang.easyimage.commands.fullImage},side:{attributes:{"class":"easyimage-side"},label:a.lang.easyimage.commands.sideImage},alignLeft:{attributes:{"class":"easyimage-align-left"},label:a.lang.common.alignLeft},alignCenter:{attributes:{"class":"easyimage-align-center"},label:a.lang.common.alignCenter},alignRight:{attributes:{"class":"easyimage-align-right"},label:a.lang.common.alignRight}},a.config.easyimage_styles);t(a,c);u(a);p(a,c);a.ui.addButton("EasyImageAlt",{label:a.lang.easyimage.commands.altText,
|
||||
command:"easyimageAlt",toolbar:"easyimage,3"});for(var b in c)a.ui.addButton("EasyImage"+f(b),{label:c[b].label,command:"easyimage"+f(b),toolbar:"easyimage,99",icon:c[b].icon,iconHiDpi:c[b].iconHiDpi});q(a);c=a.config.easyimage_toolbar;a._.easyImageToolbarContext=a.balloonToolbars.create({buttons:c.join?c.join(","):c,widgets:["easyimage"]});v(a)}}});CKEDITOR.config.easyimage_class="easyimage";CKEDITOR.config.easyimage_styles={};CKEDITOR.config.easyimage_defaultStyle="full";CKEDITOR.config.easyimage_toolbar=
|
||||
["EasyImageFull","EasyImageSide","EasyImageAlt"]})();
|
||||
@@ -0,0 +1,118 @@
|
||||
/*
|
||||
Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
|
||||
.easyimage, .cke_widget_wrapper_easyimage {
|
||||
background: transparent;
|
||||
border: none;
|
||||
outline: 0px;
|
||||
display: block;
|
||||
padding: 0;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/*
|
||||
The outline is not a part of the element's dimensions. A border needs to be used as an outline to align the linked image with a caption.
|
||||
*/
|
||||
.easyimage a > img {
|
||||
outline: none;
|
||||
border: 1px solid #0782C1;
|
||||
box-sizing: border-box;
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
.cke_widget_wrapper_easyimage figure {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.easyimage img, .cke_widget_uploadeasyimage img {
|
||||
display: block;
|
||||
height: auto;
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.cke_widget_wrapper_easyimage-side, :not(.cke_widget_wrapper_easyimage):not(.cke_widget_wrapper_easyimage-side) > .easyimage-side,
|
||||
.cke_widget_wrapper_easyimage-align-right, :not(.cke_widget_wrapper_easyimage):not(.cke_widget_wrapper_easyimage-align-right) > .easyimage-align-right {
|
||||
/*
|
||||
The :not() selector will be used for Easy Image content ouside of the editor, for example: when the editor was destroyed.
|
||||
See https://github.com/ckeditor/ckeditor4/pull/1150#discussion_r150415261 for more details.
|
||||
*/
|
||||
float: right;
|
||||
max-width: 50%;
|
||||
/*
|
||||
In case of placement inside the parent container like a table cell, 'min-width' is needed to prevent the widget from having
|
||||
tiny sizes. The `em` unit is used so it works well and has proper proportions to the textual content around (#1553).
|
||||
*/
|
||||
min-width: 10em;
|
||||
margin-left: 1.5em;
|
||||
}
|
||||
|
||||
/*
|
||||
Overwrite 'max-width: 50%' with 'max-width: 50vw' to prevent the native Chrome bug:
|
||||
https://bugs.chromium.org/p/chromium/issues/detail?id=803045 (#1550).
|
||||
*/
|
||||
body.cke_editable > .cke_widget_wrapper_easyimage-side {
|
||||
max-width: 50vw;
|
||||
}
|
||||
|
||||
.cke_widget_wrapper_easyimage-align-left, :not(.cke_widget_wrapper_easyimage):not(.cke_widget_wrapper_easyimage-align-left) > .easyimage-align-left {
|
||||
float: left;
|
||||
max-width: 50%;
|
||||
min-width: 10em;
|
||||
margin-right: 1.5em;
|
||||
}
|
||||
|
||||
.cke_widget_wrapper_easyimage-align-center, :not(.cke_widget_wrapper_easyimage):not(.cke_widget_wrapper_easyimage-align-center) > .easyimage-align-center {
|
||||
margin: 0 auto;
|
||||
max-width: 90%;
|
||||
}
|
||||
|
||||
.easyimage .cke_widget_editable {
|
||||
background-color: #f7f7f7;
|
||||
/* Add border so when caption is focused, blue border does not cause flickering. */
|
||||
border: 1px solid #f7f7f7;
|
||||
color: #333;
|
||||
padding: .8em;
|
||||
}
|
||||
|
||||
.cke_widget_wrapper:hover .easyimage .cke_widget_editable {
|
||||
outline: 3px solid transparent;
|
||||
}
|
||||
|
||||
.cke_widget_wrapper .easyimage .cke_widget_editable.cke_widget_editable_focused {
|
||||
background-color: #fff;
|
||||
border-color: #48a3f5;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
/* Loaders */
|
||||
|
||||
.cke_widget_element.easyimage {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.cke_loader {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
right: 0px;
|
||||
}
|
||||
|
||||
.cke_loader .cke_bar {
|
||||
height: 10px;
|
||||
background: #6a9ed1;
|
||||
width: 0;
|
||||
}
|
||||
|
||||
/* Fancy opacity effect discussed in #1533. Transition is assigned in this awkward way so that it **does not** happen for
|
||||
the initial render, otherwise it would start transitioning from opacity 1 to 0.x upon the first render. */
|
||||
|
||||
.cke_widget_wrapper_easyimage:not(.cke_widget_wrapper_uploading) figure img {
|
||||
transition: opacity 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
.cke_widget_wrapper_easyimage.cke_widget_wrapper_uploading figure img {
|
||||
opacity: 0.75;
|
||||
}
|
||||