@ckeditor/ckeditor5-image 0.0.0-internal-20241017.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/LICENSE.md +21 -0
- package/README.md +26 -0
- package/build/image.js +5 -0
- package/build/translations/ar.js +1 -0
- package/build/translations/ast.js +1 -0
- package/build/translations/az.js +1 -0
- package/build/translations/bg.js +1 -0
- package/build/translations/bn.js +1 -0
- package/build/translations/bs.js +1 -0
- package/build/translations/ca.js +1 -0
- package/build/translations/cs.js +1 -0
- package/build/translations/da.js +1 -0
- package/build/translations/de-ch.js +1 -0
- package/build/translations/de.js +1 -0
- package/build/translations/el.js +1 -0
- package/build/translations/en-au.js +1 -0
- package/build/translations/en-gb.js +1 -0
- package/build/translations/eo.js +1 -0
- package/build/translations/es.js +1 -0
- package/build/translations/et.js +1 -0
- package/build/translations/eu.js +1 -0
- package/build/translations/fa.js +1 -0
- package/build/translations/fi.js +1 -0
- package/build/translations/fr.js +1 -0
- package/build/translations/gl.js +1 -0
- package/build/translations/he.js +1 -0
- package/build/translations/hi.js +1 -0
- package/build/translations/hr.js +1 -0
- package/build/translations/hu.js +1 -0
- package/build/translations/id.js +1 -0
- package/build/translations/it.js +1 -0
- package/build/translations/ja.js +1 -0
- package/build/translations/jv.js +1 -0
- package/build/translations/km.js +1 -0
- package/build/translations/kn.js +1 -0
- package/build/translations/ko.js +1 -0
- package/build/translations/ku.js +1 -0
- package/build/translations/lt.js +1 -0
- package/build/translations/lv.js +1 -0
- package/build/translations/ms.js +1 -0
- package/build/translations/nb.js +1 -0
- package/build/translations/ne.js +1 -0
- package/build/translations/nl.js +1 -0
- package/build/translations/no.js +1 -0
- package/build/translations/pl.js +1 -0
- package/build/translations/pt-br.js +1 -0
- package/build/translations/pt.js +1 -0
- package/build/translations/ro.js +1 -0
- package/build/translations/ru.js +1 -0
- package/build/translations/si.js +1 -0
- package/build/translations/sk.js +1 -0
- package/build/translations/sq.js +1 -0
- package/build/translations/sr-latn.js +1 -0
- package/build/translations/sr.js +1 -0
- package/build/translations/sv.js +1 -0
- package/build/translations/th.js +1 -0
- package/build/translations/ti.js +1 -0
- package/build/translations/tk.js +1 -0
- package/build/translations/tr.js +1 -0
- package/build/translations/ug.js +1 -0
- package/build/translations/uk.js +1 -0
- package/build/translations/ur.js +1 -0
- package/build/translations/uz.js +1 -0
- package/build/translations/vi.js +1 -0
- package/build/translations/zh-cn.js +1 -0
- package/build/translations/zh.js +1 -0
- package/ckeditor5-metadata.json +270 -0
- package/dist/augmentation.d.ts +61 -0
- package/dist/autoimage.d.ts +60 -0
- package/dist/image/converters.d.ts +70 -0
- package/dist/image/imageblockediting.d.ts +67 -0
- package/dist/image/imageediting.d.ts +38 -0
- package/dist/image/imageinlineediting.d.ts +68 -0
- package/dist/image/imageloadobserver.d.ts +52 -0
- package/dist/image/imageplaceholder.d.ts +47 -0
- package/dist/image/imagetypecommand.d.ts +48 -0
- package/dist/image/insertimagecommand.d.ts +72 -0
- package/dist/image/replaceimagesourcecommand.d.ts +55 -0
- package/dist/image/ui/utils.d.ts +29 -0
- package/dist/image/utils.d.ts +68 -0
- package/dist/image.d.ts +42 -0
- package/dist/imageblock.d.ts +42 -0
- package/dist/imagecaption/imagecaptionediting.d.ts +97 -0
- package/dist/imagecaption/imagecaptionui.d.ts +34 -0
- package/dist/imagecaption/imagecaptionutils.d.ts +46 -0
- package/dist/imagecaption/toggleimagecaptioncommand.d.ts +70 -0
- package/dist/imagecaption.d.ts +34 -0
- package/dist/imageconfig.d.ts +716 -0
- package/dist/imageinline.d.ts +42 -0
- package/dist/imageinsert/imageinsertui.d.ts +90 -0
- package/dist/imageinsert/imageinsertviaurlui.d.ts +74 -0
- package/dist/imageinsert/ui/imageinsertformview.d.ts +60 -0
- package/dist/imageinsert/ui/imageinserturlview.d.ts +68 -0
- package/dist/imageinsert.d.ts +41 -0
- package/dist/imageinsertviaurl.d.ts +39 -0
- package/dist/imageresize/imagecustomresizeui.d.ts +69 -0
- package/dist/imageresize/imageresizebuttons.d.ts +72 -0
- package/dist/imageresize/imageresizeediting.d.ts +49 -0
- package/dist/imageresize/imageresizehandles.d.ts +39 -0
- package/dist/imageresize/resizeimagecommand.d.ts +46 -0
- package/dist/imageresize/ui/imagecustomresizeformview.d.ts +133 -0
- package/dist/imageresize/utils/getselectedimageeditornodes.d.ts +28 -0
- package/dist/imageresize/utils/getselectedimagepossibleresizerange.d.ts +28 -0
- package/dist/imageresize/utils/getselectedimagewidthinunits.d.ts +22 -0
- package/dist/imageresize/utils/tryparsedimensionwithunit.d.ts +41 -0
- package/dist/imageresize.d.ts +36 -0
- package/dist/imagesizeattributes.d.ts +42 -0
- package/dist/imagestyle/converters.d.ts +28 -0
- package/dist/imagestyle/imagestylecommand.d.ts +72 -0
- package/dist/imagestyle/imagestyleediting.d.ts +58 -0
- package/dist/imagestyle/imagestyleui.d.ts +64 -0
- package/dist/imagestyle/utils.d.ts +105 -0
- package/dist/imagestyle.d.ts +40 -0
- package/dist/imagetextalternative/imagetextalternativecommand.d.ts +38 -0
- package/dist/imagetextalternative/imagetextalternativeediting.d.ts +36 -0
- package/dist/imagetextalternative/imagetextalternativeui.d.ts +76 -0
- package/dist/imagetextalternative/ui/textalternativeformview.d.ts +94 -0
- package/dist/imagetextalternative.d.ts +37 -0
- package/dist/imagetoolbar.d.ts +43 -0
- package/dist/imageupload/imageuploadediting.d.ts +119 -0
- package/dist/imageupload/imageuploadprogress.d.ts +50 -0
- package/dist/imageupload/imageuploadui.d.ts +55 -0
- package/dist/imageupload/uploadimagecommand.d.ts +78 -0
- package/dist/imageupload/utils.d.ts +37 -0
- package/dist/imageupload.d.ts +40 -0
- package/dist/imageutils.d.ts +133 -0
- package/dist/index-content.css +150 -0
- package/dist/index-editor.css +248 -0
- package/dist/index.css +579 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.js +6383 -0
- package/dist/index.js.map +1 -0
- package/dist/pictureediting.d.ts +96 -0
- package/dist/translations/ar.d.ts +8 -0
- package/dist/translations/ar.js +5 -0
- package/dist/translations/ar.umd.js +11 -0
- package/dist/translations/ast.d.ts +8 -0
- package/dist/translations/ast.js +5 -0
- package/dist/translations/ast.umd.js +11 -0
- package/dist/translations/az.d.ts +8 -0
- package/dist/translations/az.js +5 -0
- package/dist/translations/az.umd.js +11 -0
- package/dist/translations/bg.d.ts +8 -0
- package/dist/translations/bg.js +5 -0
- package/dist/translations/bg.umd.js +11 -0
- package/dist/translations/bn.d.ts +8 -0
- package/dist/translations/bn.js +5 -0
- package/dist/translations/bn.umd.js +11 -0
- package/dist/translations/bs.d.ts +8 -0
- package/dist/translations/bs.js +5 -0
- package/dist/translations/bs.umd.js +11 -0
- package/dist/translations/ca.d.ts +8 -0
- package/dist/translations/ca.js +5 -0
- package/dist/translations/ca.umd.js +11 -0
- package/dist/translations/cs.d.ts +8 -0
- package/dist/translations/cs.js +5 -0
- package/dist/translations/cs.umd.js +11 -0
- package/dist/translations/da.d.ts +8 -0
- package/dist/translations/da.js +5 -0
- package/dist/translations/da.umd.js +11 -0
- package/dist/translations/de-ch.d.ts +8 -0
- package/dist/translations/de-ch.js +5 -0
- package/dist/translations/de-ch.umd.js +11 -0
- package/dist/translations/de.d.ts +8 -0
- package/dist/translations/de.js +5 -0
- package/dist/translations/de.umd.js +11 -0
- package/dist/translations/el.d.ts +8 -0
- package/dist/translations/el.js +5 -0
- package/dist/translations/el.umd.js +11 -0
- package/dist/translations/en-au.d.ts +8 -0
- package/dist/translations/en-au.js +5 -0
- package/dist/translations/en-au.umd.js +11 -0
- package/dist/translations/en-gb.d.ts +8 -0
- package/dist/translations/en-gb.js +5 -0
- package/dist/translations/en-gb.umd.js +11 -0
- package/dist/translations/en.d.ts +8 -0
- package/dist/translations/en.js +5 -0
- package/dist/translations/en.umd.js +11 -0
- package/dist/translations/eo.d.ts +8 -0
- package/dist/translations/eo.js +5 -0
- package/dist/translations/eo.umd.js +11 -0
- package/dist/translations/es.d.ts +8 -0
- package/dist/translations/es.js +5 -0
- package/dist/translations/es.umd.js +11 -0
- package/dist/translations/et.d.ts +8 -0
- package/dist/translations/et.js +5 -0
- package/dist/translations/et.umd.js +11 -0
- package/dist/translations/eu.d.ts +8 -0
- package/dist/translations/eu.js +5 -0
- package/dist/translations/eu.umd.js +11 -0
- package/dist/translations/fa.d.ts +8 -0
- package/dist/translations/fa.js +5 -0
- package/dist/translations/fa.umd.js +11 -0
- package/dist/translations/fi.d.ts +8 -0
- package/dist/translations/fi.js +5 -0
- package/dist/translations/fi.umd.js +11 -0
- package/dist/translations/fr.d.ts +8 -0
- package/dist/translations/fr.js +5 -0
- package/dist/translations/fr.umd.js +11 -0
- package/dist/translations/gl.d.ts +8 -0
- package/dist/translations/gl.js +5 -0
- package/dist/translations/gl.umd.js +11 -0
- package/dist/translations/he.d.ts +8 -0
- package/dist/translations/he.js +5 -0
- package/dist/translations/he.umd.js +11 -0
- package/dist/translations/hi.d.ts +8 -0
- package/dist/translations/hi.js +5 -0
- package/dist/translations/hi.umd.js +11 -0
- package/dist/translations/hr.d.ts +8 -0
- package/dist/translations/hr.js +5 -0
- package/dist/translations/hr.umd.js +11 -0
- package/dist/translations/hu.d.ts +8 -0
- package/dist/translations/hu.js +5 -0
- package/dist/translations/hu.umd.js +11 -0
- package/dist/translations/id.d.ts +8 -0
- package/dist/translations/id.js +5 -0
- package/dist/translations/id.umd.js +11 -0
- package/dist/translations/it.d.ts +8 -0
- package/dist/translations/it.js +5 -0
- package/dist/translations/it.umd.js +11 -0
- package/dist/translations/ja.d.ts +8 -0
- package/dist/translations/ja.js +5 -0
- package/dist/translations/ja.umd.js +11 -0
- package/dist/translations/jv.d.ts +8 -0
- package/dist/translations/jv.js +5 -0
- package/dist/translations/jv.umd.js +11 -0
- package/dist/translations/km.d.ts +8 -0
- package/dist/translations/km.js +5 -0
- package/dist/translations/km.umd.js +11 -0
- package/dist/translations/kn.d.ts +8 -0
- package/dist/translations/kn.js +5 -0
- package/dist/translations/kn.umd.js +11 -0
- package/dist/translations/ko.d.ts +8 -0
- package/dist/translations/ko.js +5 -0
- package/dist/translations/ko.umd.js +11 -0
- package/dist/translations/ku.d.ts +8 -0
- package/dist/translations/ku.js +5 -0
- package/dist/translations/ku.umd.js +11 -0
- package/dist/translations/lt.d.ts +8 -0
- package/dist/translations/lt.js +5 -0
- package/dist/translations/lt.umd.js +11 -0
- package/dist/translations/lv.d.ts +8 -0
- package/dist/translations/lv.js +5 -0
- package/dist/translations/lv.umd.js +11 -0
- package/dist/translations/ms.d.ts +8 -0
- package/dist/translations/ms.js +5 -0
- package/dist/translations/ms.umd.js +11 -0
- package/dist/translations/nb.d.ts +8 -0
- package/dist/translations/nb.js +5 -0
- package/dist/translations/nb.umd.js +11 -0
- package/dist/translations/ne.d.ts +8 -0
- package/dist/translations/ne.js +5 -0
- package/dist/translations/ne.umd.js +11 -0
- package/dist/translations/nl.d.ts +8 -0
- package/dist/translations/nl.js +5 -0
- package/dist/translations/nl.umd.js +11 -0
- package/dist/translations/no.d.ts +8 -0
- package/dist/translations/no.js +5 -0
- package/dist/translations/no.umd.js +11 -0
- package/dist/translations/pl.d.ts +8 -0
- package/dist/translations/pl.js +5 -0
- package/dist/translations/pl.umd.js +11 -0
- package/dist/translations/pt-br.d.ts +8 -0
- package/dist/translations/pt-br.js +5 -0
- package/dist/translations/pt-br.umd.js +11 -0
- package/dist/translations/pt.d.ts +8 -0
- package/dist/translations/pt.js +5 -0
- package/dist/translations/pt.umd.js +11 -0
- package/dist/translations/ro.d.ts +8 -0
- package/dist/translations/ro.js +5 -0
- package/dist/translations/ro.umd.js +11 -0
- package/dist/translations/ru.d.ts +8 -0
- package/dist/translations/ru.js +5 -0
- package/dist/translations/ru.umd.js +11 -0
- package/dist/translations/si.d.ts +8 -0
- package/dist/translations/si.js +5 -0
- package/dist/translations/si.umd.js +11 -0
- package/dist/translations/sk.d.ts +8 -0
- package/dist/translations/sk.js +5 -0
- package/dist/translations/sk.umd.js +11 -0
- package/dist/translations/sq.d.ts +8 -0
- package/dist/translations/sq.js +5 -0
- package/dist/translations/sq.umd.js +11 -0
- package/dist/translations/sr-latn.d.ts +8 -0
- package/dist/translations/sr-latn.js +5 -0
- package/dist/translations/sr-latn.umd.js +11 -0
- package/dist/translations/sr.d.ts +8 -0
- package/dist/translations/sr.js +5 -0
- package/dist/translations/sr.umd.js +11 -0
- package/dist/translations/sv.d.ts +8 -0
- package/dist/translations/sv.js +5 -0
- package/dist/translations/sv.umd.js +11 -0
- package/dist/translations/th.d.ts +8 -0
- package/dist/translations/th.js +5 -0
- package/dist/translations/th.umd.js +11 -0
- package/dist/translations/ti.d.ts +8 -0
- package/dist/translations/ti.js +5 -0
- package/dist/translations/ti.umd.js +11 -0
- package/dist/translations/tk.d.ts +8 -0
- package/dist/translations/tk.js +5 -0
- package/dist/translations/tk.umd.js +11 -0
- package/dist/translations/tr.d.ts +8 -0
- package/dist/translations/tr.js +5 -0
- package/dist/translations/tr.umd.js +11 -0
- package/dist/translations/ug.d.ts +8 -0
- package/dist/translations/ug.js +5 -0
- package/dist/translations/ug.umd.js +11 -0
- package/dist/translations/uk.d.ts +8 -0
- package/dist/translations/uk.js +5 -0
- package/dist/translations/uk.umd.js +11 -0
- package/dist/translations/ur.d.ts +8 -0
- package/dist/translations/ur.js +5 -0
- package/dist/translations/ur.umd.js +11 -0
- package/dist/translations/uz.d.ts +8 -0
- package/dist/translations/uz.js +5 -0
- package/dist/translations/uz.umd.js +11 -0
- package/dist/translations/vi.d.ts +8 -0
- package/dist/translations/vi.js +5 -0
- package/dist/translations/vi.umd.js +11 -0
- package/dist/translations/zh-cn.d.ts +8 -0
- package/dist/translations/zh-cn.js +5 -0
- package/dist/translations/zh-cn.umd.js +11 -0
- package/dist/translations/zh.d.ts +8 -0
- package/dist/translations/zh.js +5 -0
- package/dist/translations/zh.umd.js +11 -0
- package/lang/contexts.json +46 -0
- package/lang/translations/ar.po +194 -0
- package/lang/translations/ast.po +194 -0
- package/lang/translations/az.po +194 -0
- package/lang/translations/bg.po +194 -0
- package/lang/translations/bn.po +194 -0
- package/lang/translations/bs.po +194 -0
- package/lang/translations/ca.po +194 -0
- package/lang/translations/cs.po +194 -0
- package/lang/translations/da.po +194 -0
- package/lang/translations/de-ch.po +194 -0
- package/lang/translations/de.po +194 -0
- package/lang/translations/el.po +194 -0
- package/lang/translations/en-au.po +194 -0
- package/lang/translations/en-gb.po +194 -0
- package/lang/translations/en.po +194 -0
- package/lang/translations/eo.po +194 -0
- package/lang/translations/es.po +194 -0
- package/lang/translations/et.po +194 -0
- package/lang/translations/eu.po +194 -0
- package/lang/translations/fa.po +194 -0
- package/lang/translations/fi.po +194 -0
- package/lang/translations/fr.po +194 -0
- package/lang/translations/gl.po +194 -0
- package/lang/translations/he.po +194 -0
- package/lang/translations/hi.po +194 -0
- package/lang/translations/hr.po +194 -0
- package/lang/translations/hu.po +194 -0
- package/lang/translations/id.po +194 -0
- package/lang/translations/it.po +194 -0
- package/lang/translations/ja.po +194 -0
- package/lang/translations/jv.po +194 -0
- package/lang/translations/km.po +194 -0
- package/lang/translations/kn.po +194 -0
- package/lang/translations/ko.po +194 -0
- package/lang/translations/ku.po +194 -0
- package/lang/translations/lt.po +194 -0
- package/lang/translations/lv.po +194 -0
- package/lang/translations/ms.po +194 -0
- package/lang/translations/nb.po +194 -0
- package/lang/translations/ne.po +194 -0
- package/lang/translations/nl.po +194 -0
- package/lang/translations/no.po +194 -0
- package/lang/translations/pl.po +194 -0
- package/lang/translations/pt-br.po +194 -0
- package/lang/translations/pt.po +194 -0
- package/lang/translations/ro.po +194 -0
- package/lang/translations/ru.po +194 -0
- package/lang/translations/si.po +194 -0
- package/lang/translations/sk.po +194 -0
- package/lang/translations/sq.po +194 -0
- package/lang/translations/sr-latn.po +194 -0
- package/lang/translations/sr.po +194 -0
- package/lang/translations/sv.po +194 -0
- package/lang/translations/th.po +194 -0
- package/lang/translations/ti.po +194 -0
- package/lang/translations/tk.po +194 -0
- package/lang/translations/tr.po +194 -0
- package/lang/translations/ug.po +194 -0
- package/lang/translations/uk.po +194 -0
- package/lang/translations/ur.po +194 -0
- package/lang/translations/uz.po +194 -0
- package/lang/translations/vi.po +194 -0
- package/lang/translations/zh-cn.po +194 -0
- package/lang/translations/zh.po +194 -0
- package/package.json +48 -0
- package/src/augmentation.d.ts +57 -0
- package/src/augmentation.js +5 -0
- package/src/autoimage.d.ts +56 -0
- package/src/autoimage.js +138 -0
- package/src/image/converters.d.ts +66 -0
- package/src/image/converters.js +232 -0
- package/src/image/imageblockediting.d.ts +63 -0
- package/src/image/imageblockediting.js +159 -0
- package/src/image/imageediting.d.ts +34 -0
- package/src/image/imageediting.js +69 -0
- package/src/image/imageinlineediting.d.ts +64 -0
- package/src/image/imageinlineediting.js +178 -0
- package/src/image/imageloadobserver.d.ts +48 -0
- package/src/image/imageloadobserver.js +52 -0
- package/src/image/imageplaceholder.d.ts +43 -0
- package/src/image/imageplaceholder.js +119 -0
- package/src/image/imagetypecommand.d.ts +44 -0
- package/src/image/imagetypecommand.js +80 -0
- package/src/image/insertimagecommand.d.ts +68 -0
- package/src/image/insertimagecommand.js +121 -0
- package/src/image/replaceimagesourcecommand.d.ts +51 -0
- package/src/image/replaceimagesourcecommand.js +75 -0
- package/src/image/ui/utils.d.ts +25 -0
- package/src/image/ui/utils.js +44 -0
- package/src/image/utils.d.ts +64 -0
- package/src/image/utils.js +121 -0
- package/src/image.d.ts +38 -0
- package/src/image.js +44 -0
- package/src/imageblock.d.ts +38 -0
- package/src/imageblock.js +44 -0
- package/src/imagecaption/imagecaptionediting.d.ts +93 -0
- package/src/imagecaption/imagecaptionediting.js +231 -0
- package/src/imagecaption/imagecaptionui.d.ts +30 -0
- package/src/imagecaption/imagecaptionui.js +67 -0
- package/src/imagecaption/imagecaptionutils.d.ts +42 -0
- package/src/imagecaption/imagecaptionutils.js +68 -0
- package/src/imagecaption/toggleimagecaptioncommand.d.ts +66 -0
- package/src/imagecaption/toggleimagecaptioncommand.js +138 -0
- package/src/imagecaption.d.ts +30 -0
- package/src/imagecaption.js +36 -0
- package/src/imageconfig.d.ts +712 -0
- package/src/imageconfig.js +5 -0
- package/src/imageinline.d.ts +38 -0
- package/src/imageinline.js +44 -0
- package/src/imageinsert/imageinsertui.d.ts +86 -0
- package/src/imageinsert/imageinsertui.js +217 -0
- package/src/imageinsert/imageinsertviaurlui.d.ts +70 -0
- package/src/imageinsert/imageinsertviaurlui.js +174 -0
- package/src/imageinsert/ui/imageinsertformview.d.ts +56 -0
- package/src/imageinsert/ui/imageinsertformview.js +95 -0
- package/src/imageinsert/ui/imageinserturlview.d.ts +64 -0
- package/src/imageinsert/ui/imageinserturlview.js +88 -0
- package/src/imageinsert.d.ts +37 -0
- package/src/imageinsert.js +43 -0
- package/src/imageinsertviaurl.d.ts +35 -0
- package/src/imageinsertviaurl.js +41 -0
- package/src/imageresize/imagecustomresizeui.d.ts +65 -0
- package/src/imageresize/imagecustomresizeui.js +174 -0
- package/src/imageresize/imageresizebuttons.d.ts +68 -0
- package/src/imageresize/imageresizebuttons.js +295 -0
- package/src/imageresize/imageresizeediting.d.ts +45 -0
- package/src/imageresize/imageresizeediting.js +183 -0
- package/src/imageresize/imageresizehandles.d.ts +35 -0
- package/src/imageresize/imageresizehandles.js +118 -0
- package/src/imageresize/resizeimagecommand.d.ts +42 -0
- package/src/imageresize/resizeimagecommand.js +63 -0
- package/src/imageresize/ui/imagecustomresizeformview.d.ts +129 -0
- package/src/imageresize/ui/imagecustomresizeformview.js +186 -0
- package/src/imageresize/utils/getselectedimageeditornodes.d.ts +24 -0
- package/src/imageresize/utils/getselectedimageeditornodes.js +24 -0
- package/src/imageresize/utils/getselectedimagepossibleresizerange.d.ts +24 -0
- package/src/imageresize/utils/getselectedimagepossibleresizerange.js +32 -0
- package/src/imageresize/utils/getselectedimagewidthinunits.d.ts +18 -0
- package/src/imageresize/utils/getselectedimagewidthinunits.js +41 -0
- package/src/imageresize/utils/tryparsedimensionwithunit.d.ts +37 -0
- package/src/imageresize/utils/tryparsedimensionwithunit.js +56 -0
- package/src/imageresize.d.ts +32 -0
- package/src/imageresize.js +38 -0
- package/src/imagesizeattributes.d.ts +38 -0
- package/src/imagesizeattributes.js +148 -0
- package/src/imagestyle/converters.d.ts +24 -0
- package/src/imagestyle/converters.js +79 -0
- package/src/imagestyle/imagestylecommand.d.ts +68 -0
- package/src/imagestyle/imagestylecommand.js +107 -0
- package/src/imagestyle/imagestyleediting.d.ts +54 -0
- package/src/imagestyle/imagestyleediting.js +114 -0
- package/src/imagestyle/imagestyleui.d.ts +60 -0
- package/src/imagestyle/imagestyleui.js +198 -0
- package/src/imagestyle/utils.d.ts +101 -0
- package/src/imagestyle/utils.js +328 -0
- package/src/imagestyle.d.ts +36 -0
- package/src/imagestyle.js +42 -0
- package/src/imagetextalternative/imagetextalternativecommand.d.ts +34 -0
- package/src/imagetextalternative/imagetextalternativecommand.js +44 -0
- package/src/imagetextalternative/imagetextalternativeediting.d.ts +32 -0
- package/src/imagetextalternative/imagetextalternativeediting.js +41 -0
- package/src/imagetextalternative/imagetextalternativeui.d.ts +72 -0
- package/src/imagetextalternative/imagetextalternativeui.js +179 -0
- package/src/imagetextalternative/ui/textalternativeformview.d.ts +90 -0
- package/src/imagetextalternative/ui/textalternativeformview.js +121 -0
- package/src/imagetextalternative.d.ts +33 -0
- package/src/imagetextalternative.js +39 -0
- package/src/imagetoolbar.d.ts +39 -0
- package/src/imagetoolbar.js +63 -0
- package/src/imageupload/imageuploadediting.d.ts +115 -0
- package/src/imageupload/imageuploadediting.js +361 -0
- package/src/imageupload/imageuploadprogress.d.ts +46 -0
- package/src/imageupload/imageuploadprogress.js +217 -0
- package/src/imageupload/imageuploadui.d.ts +51 -0
- package/src/imageupload/imageuploadui.js +134 -0
- package/src/imageupload/uploadimagecommand.d.ts +74 -0
- package/src/imageupload/uploadimagecommand.js +110 -0
- package/src/imageupload/utils.d.ts +33 -0
- package/src/imageupload/utils.js +112 -0
- package/src/imageupload.d.ts +36 -0
- package/src/imageupload.js +42 -0
- package/src/imageutils.d.ts +129 -0
- package/src/imageutils.js +312 -0
- package/src/index.d.ts +50 -0
- package/src/index.js +41 -0
- package/src/pictureediting.d.ts +92 -0
- package/src/pictureediting.js +136 -0
- package/theme/image.css +143 -0
- package/theme/imagecaption.css +51 -0
- package/theme/imagecustomresizeform.css +33 -0
- package/theme/imageinsert.css +14 -0
- package/theme/imageplaceholder.css +10 -0
- package/theme/imageresize.css +53 -0
- package/theme/imagestyle.css +120 -0
- package/theme/imageuploadicon.css +23 -0
- package/theme/imageuploadloader.css +18 -0
- package/theme/imageuploadprogress.css +19 -0
- package/theme/textalternativeform.css +32 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
+
*/
|
|
5
|
+
import { Plugin } from 'ckeditor5/src/core.js';
|
|
6
|
+
import ImageUtils from '../imageutils.js';
|
|
7
|
+
import ResizeImageCommand from './resizeimagecommand.js';
|
|
8
|
+
import { widthAndHeightStylesAreBothSet } from '../image/utils.js';
|
|
9
|
+
/**
|
|
10
|
+
* The image resize editing feature.
|
|
11
|
+
*
|
|
12
|
+
* It adds the ability to resize each image using handles or manually by
|
|
13
|
+
* {@link module:image/imageresize/imageresizebuttons~ImageResizeButtons} buttons.
|
|
14
|
+
*/
|
|
15
|
+
export default class ImageResizeEditing extends Plugin {
|
|
16
|
+
/**
|
|
17
|
+
* @inheritDoc
|
|
18
|
+
*/
|
|
19
|
+
static get requires() {
|
|
20
|
+
return [ImageUtils];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @inheritDoc
|
|
24
|
+
*/
|
|
25
|
+
static get pluginName() {
|
|
26
|
+
return 'ImageResizeEditing';
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @inheritDoc
|
|
30
|
+
*/
|
|
31
|
+
static get isOfficialPlugin() {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @inheritDoc
|
|
36
|
+
*/
|
|
37
|
+
constructor(editor) {
|
|
38
|
+
super(editor);
|
|
39
|
+
editor.config.define('image', {
|
|
40
|
+
resizeUnit: '%',
|
|
41
|
+
resizeOptions: [
|
|
42
|
+
{
|
|
43
|
+
name: 'resizeImage:original',
|
|
44
|
+
value: null,
|
|
45
|
+
icon: 'original'
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'resizeImage:custom',
|
|
49
|
+
value: 'custom',
|
|
50
|
+
icon: 'custom'
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: 'resizeImage:25',
|
|
54
|
+
value: '25',
|
|
55
|
+
icon: 'small'
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: 'resizeImage:50',
|
|
59
|
+
value: '50',
|
|
60
|
+
icon: 'medium'
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
name: 'resizeImage:75',
|
|
64
|
+
value: '75',
|
|
65
|
+
icon: 'large'
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* @inheritDoc
|
|
72
|
+
*/
|
|
73
|
+
init() {
|
|
74
|
+
const editor = this.editor;
|
|
75
|
+
const resizeImageCommand = new ResizeImageCommand(editor);
|
|
76
|
+
this._registerConverters('imageBlock');
|
|
77
|
+
this._registerConverters('imageInline');
|
|
78
|
+
// Register `resizeImage` command and add `imageResize` command as an alias for backward compatibility.
|
|
79
|
+
editor.commands.add('resizeImage', resizeImageCommand);
|
|
80
|
+
editor.commands.add('imageResize', resizeImageCommand);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* @inheritDoc
|
|
84
|
+
*/
|
|
85
|
+
afterInit() {
|
|
86
|
+
this._registerSchema();
|
|
87
|
+
}
|
|
88
|
+
_registerSchema() {
|
|
89
|
+
if (this.editor.plugins.has('ImageBlockEditing')) {
|
|
90
|
+
this.editor.model.schema.extend('imageBlock', { allowAttributes: ['resizedWidth', 'resizedHeight'] });
|
|
91
|
+
}
|
|
92
|
+
if (this.editor.plugins.has('ImageInlineEditing')) {
|
|
93
|
+
this.editor.model.schema.extend('imageInline', { allowAttributes: ['resizedWidth', 'resizedHeight'] });
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Registers image resize converters.
|
|
98
|
+
*
|
|
99
|
+
* @param imageType The type of the image.
|
|
100
|
+
*/
|
|
101
|
+
_registerConverters(imageType) {
|
|
102
|
+
const editor = this.editor;
|
|
103
|
+
const imageUtils = editor.plugins.get('ImageUtils');
|
|
104
|
+
// Dedicated converter to propagate image's attribute to the img tag.
|
|
105
|
+
editor.conversion.for('downcast').add(dispatcher => dispatcher.on(`attribute:resizedWidth:${imageType}`, (evt, data, conversionApi) => {
|
|
106
|
+
if (!conversionApi.consumable.consume(data.item, evt.name)) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const viewWriter = conversionApi.writer;
|
|
110
|
+
const viewImg = conversionApi.mapper.toViewElement(data.item);
|
|
111
|
+
if (data.attributeNewValue !== null) {
|
|
112
|
+
viewWriter.setStyle('width', data.attributeNewValue, viewImg);
|
|
113
|
+
viewWriter.addClass('image_resized', viewImg);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
viewWriter.removeStyle('width', viewImg);
|
|
117
|
+
viewWriter.removeClass('image_resized', viewImg);
|
|
118
|
+
}
|
|
119
|
+
}));
|
|
120
|
+
editor.conversion.for('dataDowncast').attributeToAttribute({
|
|
121
|
+
model: {
|
|
122
|
+
name: imageType,
|
|
123
|
+
key: 'resizedHeight'
|
|
124
|
+
},
|
|
125
|
+
view: modelAttributeValue => ({
|
|
126
|
+
key: 'style',
|
|
127
|
+
value: {
|
|
128
|
+
'height': modelAttributeValue
|
|
129
|
+
}
|
|
130
|
+
})
|
|
131
|
+
});
|
|
132
|
+
editor.conversion.for('editingDowncast').add(dispatcher => dispatcher.on(`attribute:resizedHeight:${imageType}`, (evt, data, conversionApi) => {
|
|
133
|
+
if (!conversionApi.consumable.consume(data.item, evt.name)) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const viewWriter = conversionApi.writer;
|
|
137
|
+
const viewImg = conversionApi.mapper.toViewElement(data.item);
|
|
138
|
+
const target = imageType === 'imageInline' ? imageUtils.findViewImgElement(viewImg) : viewImg;
|
|
139
|
+
if (data.attributeNewValue !== null) {
|
|
140
|
+
viewWriter.setStyle('height', data.attributeNewValue, target);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
viewWriter.removeStyle('height', target);
|
|
144
|
+
}
|
|
145
|
+
}));
|
|
146
|
+
editor.conversion.for('upcast')
|
|
147
|
+
.attributeToAttribute({
|
|
148
|
+
view: {
|
|
149
|
+
name: imageType === 'imageBlock' ? 'figure' : 'img',
|
|
150
|
+
styles: {
|
|
151
|
+
width: /.+/
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
model: {
|
|
155
|
+
key: 'resizedWidth',
|
|
156
|
+
value: (viewElement) => {
|
|
157
|
+
if (widthAndHeightStylesAreBothSet(viewElement)) {
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
return viewElement.getStyle('width');
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
editor.conversion.for('upcast')
|
|
165
|
+
.attributeToAttribute({
|
|
166
|
+
view: {
|
|
167
|
+
name: imageType === 'imageBlock' ? 'figure' : 'img',
|
|
168
|
+
styles: {
|
|
169
|
+
height: /.+/
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
model: {
|
|
173
|
+
key: 'resizedHeight',
|
|
174
|
+
value: (viewElement) => {
|
|
175
|
+
if (widthAndHeightStylesAreBothSet(viewElement)) {
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
return viewElement.getStyle('height');
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
+
*/
|
|
5
|
+
import { Plugin } from 'ckeditor5/src/core.js';
|
|
6
|
+
import { WidgetResize } from 'ckeditor5/src/widget.js';
|
|
7
|
+
import ImageUtils from '../imageutils.js';
|
|
8
|
+
/**
|
|
9
|
+
* The image resize by handles feature.
|
|
10
|
+
*
|
|
11
|
+
* It adds the ability to resize each image using handles or manually by
|
|
12
|
+
* {@link module:image/imageresize/imageresizebuttons~ImageResizeButtons} buttons.
|
|
13
|
+
*/
|
|
14
|
+
export default class ImageResizeHandles extends Plugin {
|
|
15
|
+
/**
|
|
16
|
+
* @inheritDoc
|
|
17
|
+
*/
|
|
18
|
+
static get requires(): readonly [typeof WidgetResize, typeof ImageUtils];
|
|
19
|
+
/**
|
|
20
|
+
* @inheritDoc
|
|
21
|
+
*/
|
|
22
|
+
static get pluginName(): "ImageResizeHandles";
|
|
23
|
+
/**
|
|
24
|
+
* @inheritDoc
|
|
25
|
+
*/
|
|
26
|
+
static get isOfficialPlugin(): true;
|
|
27
|
+
/**
|
|
28
|
+
* @inheritDoc
|
|
29
|
+
*/
|
|
30
|
+
init(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Attaches the listeners responsible for creating a resizer for each image, except for images inside the HTML embed preview.
|
|
33
|
+
*/
|
|
34
|
+
private _setupResizerCreator;
|
|
35
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
+
*/
|
|
5
|
+
import { Plugin } from 'ckeditor5/src/core.js';
|
|
6
|
+
import { WidgetResize } from 'ckeditor5/src/widget.js';
|
|
7
|
+
import ImageUtils from '../imageutils.js';
|
|
8
|
+
import ImageLoadObserver from '../image/imageloadobserver.js';
|
|
9
|
+
const RESIZABLE_IMAGES_CSS_SELECTOR = 'figure.image.ck-widget > img,' +
|
|
10
|
+
'figure.image.ck-widget > picture > img,' +
|
|
11
|
+
'figure.image.ck-widget > a > img,' +
|
|
12
|
+
'figure.image.ck-widget > a > picture > img,' +
|
|
13
|
+
'span.image-inline.ck-widget > img,' +
|
|
14
|
+
'span.image-inline.ck-widget > picture > img';
|
|
15
|
+
const RESIZED_IMAGE_CLASS = 'image_resized';
|
|
16
|
+
/**
|
|
17
|
+
* The image resize by handles feature.
|
|
18
|
+
*
|
|
19
|
+
* It adds the ability to resize each image using handles or manually by
|
|
20
|
+
* {@link module:image/imageresize/imageresizebuttons~ImageResizeButtons} buttons.
|
|
21
|
+
*/
|
|
22
|
+
export default class ImageResizeHandles extends Plugin {
|
|
23
|
+
/**
|
|
24
|
+
* @inheritDoc
|
|
25
|
+
*/
|
|
26
|
+
static get requires() {
|
|
27
|
+
return [WidgetResize, ImageUtils];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @inheritDoc
|
|
31
|
+
*/
|
|
32
|
+
static get pluginName() {
|
|
33
|
+
return 'ImageResizeHandles';
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @inheritDoc
|
|
37
|
+
*/
|
|
38
|
+
static get isOfficialPlugin() {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @inheritDoc
|
|
43
|
+
*/
|
|
44
|
+
init() {
|
|
45
|
+
const command = this.editor.commands.get('resizeImage');
|
|
46
|
+
this.bind('isEnabled').to(command);
|
|
47
|
+
this._setupResizerCreator();
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Attaches the listeners responsible for creating a resizer for each image, except for images inside the HTML embed preview.
|
|
51
|
+
*/
|
|
52
|
+
_setupResizerCreator() {
|
|
53
|
+
const editor = this.editor;
|
|
54
|
+
const editingView = editor.editing.view;
|
|
55
|
+
const imageUtils = editor.plugins.get('ImageUtils');
|
|
56
|
+
editingView.addObserver(ImageLoadObserver);
|
|
57
|
+
this.listenTo(editingView.document, 'imageLoaded', (evt, domEvent) => {
|
|
58
|
+
// The resizer must be attached only to images loaded by the `ImageInsert`, `ImageUpload` or `LinkImage` plugins.
|
|
59
|
+
if (!domEvent.target.matches(RESIZABLE_IMAGES_CSS_SELECTOR)) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const domConverter = editor.editing.view.domConverter;
|
|
63
|
+
const imageView = domConverter.domToView(domEvent.target);
|
|
64
|
+
const widgetView = imageUtils.getImageWidgetFromImageView(imageView);
|
|
65
|
+
let resizer = this.editor.plugins.get(WidgetResize).getResizerByViewElement(widgetView);
|
|
66
|
+
if (resizer) {
|
|
67
|
+
// There are rare cases when the image will be triggered multiple times for the same widget, e.g. when
|
|
68
|
+
// the image's source was changed after upload (https://github.com/ckeditor/ckeditor5/pull/8108#issuecomment-708302992).
|
|
69
|
+
resizer.redraw();
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const mapper = editor.editing.mapper;
|
|
73
|
+
const imageModel = mapper.toModelElement(widgetView);
|
|
74
|
+
resizer = editor.plugins
|
|
75
|
+
.get(WidgetResize)
|
|
76
|
+
.attachTo({
|
|
77
|
+
unit: editor.config.get('image.resizeUnit'),
|
|
78
|
+
modelElement: imageModel,
|
|
79
|
+
viewElement: widgetView,
|
|
80
|
+
editor,
|
|
81
|
+
getHandleHost(domWidgetElement) {
|
|
82
|
+
return domWidgetElement.querySelector('img');
|
|
83
|
+
},
|
|
84
|
+
getResizeHost() {
|
|
85
|
+
return domConverter.mapViewToDom(mapper.toViewElement(imageModel));
|
|
86
|
+
},
|
|
87
|
+
isCentered() {
|
|
88
|
+
const imageStyle = imageModel.getAttribute('imageStyle');
|
|
89
|
+
return imageStyle == 'alignCenter';
|
|
90
|
+
},
|
|
91
|
+
onCommit(newValue) {
|
|
92
|
+
// Get rid of the CSS class in case the command execution that follows is unsuccessful
|
|
93
|
+
// (e.g. Track Changes can override it and the new dimensions will not apply). Otherwise,
|
|
94
|
+
// the presence of the class and the absence of the width style will cause it to take 100%
|
|
95
|
+
// of the horizontal space.
|
|
96
|
+
editingView.change(writer => {
|
|
97
|
+
writer.removeClass(RESIZED_IMAGE_CLASS, widgetView);
|
|
98
|
+
});
|
|
99
|
+
editor.execute('resizeImage', { width: newValue });
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
resizer.on('updateSize', () => {
|
|
103
|
+
if (!widgetView.hasClass(RESIZED_IMAGE_CLASS)) {
|
|
104
|
+
editingView.change(writer => {
|
|
105
|
+
writer.addClass(RESIZED_IMAGE_CLASS, widgetView);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
const target = imageModel.name === 'imageInline' ? imageView : widgetView;
|
|
109
|
+
if (target.getStyle('height')) {
|
|
110
|
+
editingView.change(writer => {
|
|
111
|
+
writer.removeStyle('height', target);
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
resizer.bind('isEnabled').to(this);
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @module image/imageresize/resizeimagecommand
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from 'ckeditor5/src/core.js';
|
|
9
|
+
/**
|
|
10
|
+
* The resize image command. Currently, it only supports the width attribute.
|
|
11
|
+
*/
|
|
12
|
+
export default class ResizeImageCommand extends Command {
|
|
13
|
+
/**
|
|
14
|
+
* Desired image width and height.
|
|
15
|
+
*/
|
|
16
|
+
value: null | {
|
|
17
|
+
width: string | null;
|
|
18
|
+
height: string | null;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* @inheritDoc
|
|
22
|
+
*/
|
|
23
|
+
refresh(): void;
|
|
24
|
+
/**
|
|
25
|
+
* Executes the command.
|
|
26
|
+
*
|
|
27
|
+
* ```ts
|
|
28
|
+
* // Sets the width to 50%:
|
|
29
|
+
* editor.execute( 'resizeImage', { width: '50%' } );
|
|
30
|
+
*
|
|
31
|
+
* // Removes the width attribute:
|
|
32
|
+
* editor.execute( 'resizeImage', { width: null } );
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @param options
|
|
36
|
+
* @param options.width The new width of the image.
|
|
37
|
+
* @fires execute
|
|
38
|
+
*/
|
|
39
|
+
execute(options: {
|
|
40
|
+
width: string | null;
|
|
41
|
+
}): void;
|
|
42
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @module image/imageresize/resizeimagecommand
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from 'ckeditor5/src/core.js';
|
|
9
|
+
/**
|
|
10
|
+
* The resize image command. Currently, it only supports the width attribute.
|
|
11
|
+
*/
|
|
12
|
+
export default class ResizeImageCommand extends Command {
|
|
13
|
+
/**
|
|
14
|
+
* @inheritDoc
|
|
15
|
+
*/
|
|
16
|
+
refresh() {
|
|
17
|
+
const editor = this.editor;
|
|
18
|
+
const imageUtils = editor.plugins.get('ImageUtils');
|
|
19
|
+
const element = imageUtils.getClosestSelectedImageElement(editor.model.document.selection);
|
|
20
|
+
this.isEnabled = !!element;
|
|
21
|
+
if (!element || !element.hasAttribute('resizedWidth')) {
|
|
22
|
+
this.value = null;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
this.value = {
|
|
26
|
+
width: element.getAttribute('resizedWidth'),
|
|
27
|
+
height: null
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Executes the command.
|
|
33
|
+
*
|
|
34
|
+
* ```ts
|
|
35
|
+
* // Sets the width to 50%:
|
|
36
|
+
* editor.execute( 'resizeImage', { width: '50%' } );
|
|
37
|
+
*
|
|
38
|
+
* // Removes the width attribute:
|
|
39
|
+
* editor.execute( 'resizeImage', { width: null } );
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* @param options
|
|
43
|
+
* @param options.width The new width of the image.
|
|
44
|
+
* @fires execute
|
|
45
|
+
*/
|
|
46
|
+
execute(options) {
|
|
47
|
+
const editor = this.editor;
|
|
48
|
+
const model = editor.model;
|
|
49
|
+
const imageUtils = editor.plugins.get('ImageUtils');
|
|
50
|
+
const imageElement = imageUtils.getClosestSelectedImageElement(model.document.selection);
|
|
51
|
+
this.value = {
|
|
52
|
+
width: options.width,
|
|
53
|
+
height: null
|
|
54
|
+
};
|
|
55
|
+
if (imageElement) {
|
|
56
|
+
model.change(writer => {
|
|
57
|
+
writer.setAttribute('resizedWidth', options.width, imageElement);
|
|
58
|
+
writer.removeAttribute('resizedHeight', imageElement);
|
|
59
|
+
imageUtils.setImageNaturalSizeAttributes(imageElement);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @module image/imageresize/ui/imagecustomresizeformview
|
|
7
|
+
*/
|
|
8
|
+
import { ButtonView, FocusCycler, LabeledFieldView, View, ViewCollection, type FocusableView, type InputNumberView } from 'ckeditor5/src/ui.js';
|
|
9
|
+
import { FocusTracker, KeystrokeHandler, type Locale } from 'ckeditor5/src/utils.js';
|
|
10
|
+
import '../../../theme/imagecustomresizeform.css';
|
|
11
|
+
import '@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css';
|
|
12
|
+
/**
|
|
13
|
+
* The ImageCustomResizeFormView class.
|
|
14
|
+
*/
|
|
15
|
+
export default class ImageCustomResizeFormView extends View {
|
|
16
|
+
/**
|
|
17
|
+
* Tracks information about the DOM focus in the form.
|
|
18
|
+
*/
|
|
19
|
+
readonly focusTracker: FocusTracker;
|
|
20
|
+
/**
|
|
21
|
+
* An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.
|
|
22
|
+
*/
|
|
23
|
+
readonly keystrokes: KeystrokeHandler;
|
|
24
|
+
/**
|
|
25
|
+
* Resize unit shortcut.
|
|
26
|
+
*/
|
|
27
|
+
readonly unit: string;
|
|
28
|
+
/**
|
|
29
|
+
* An input with a label.
|
|
30
|
+
*/
|
|
31
|
+
labeledInput: LabeledFieldView<InputNumberView>;
|
|
32
|
+
/**
|
|
33
|
+
* A button used to submit the form.
|
|
34
|
+
*/
|
|
35
|
+
saveButtonView: ButtonView;
|
|
36
|
+
/**
|
|
37
|
+
* A button used to cancel the form.
|
|
38
|
+
*/
|
|
39
|
+
cancelButtonView: ButtonView;
|
|
40
|
+
/**
|
|
41
|
+
* A collection of views which can be focused in the form.
|
|
42
|
+
*/
|
|
43
|
+
protected readonly _focusables: ViewCollection<FocusableView>;
|
|
44
|
+
/**
|
|
45
|
+
* Helps cycling over {@link #_focusables} in the form.
|
|
46
|
+
*/
|
|
47
|
+
protected readonly _focusCycler: FocusCycler;
|
|
48
|
+
/**
|
|
49
|
+
* An array of form validators used by {@link #isValid}.
|
|
50
|
+
*/
|
|
51
|
+
private readonly _validators;
|
|
52
|
+
/**
|
|
53
|
+
* @inheritDoc
|
|
54
|
+
*/
|
|
55
|
+
constructor(locale: Locale, unit: string, validators: Array<ImageCustomResizeFormValidatorCallback>);
|
|
56
|
+
/**
|
|
57
|
+
* @inheritDoc
|
|
58
|
+
*/
|
|
59
|
+
render(): void;
|
|
60
|
+
/**
|
|
61
|
+
* @inheritDoc
|
|
62
|
+
*/
|
|
63
|
+
destroy(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Creates the button view.
|
|
66
|
+
*
|
|
67
|
+
* @param label The button label
|
|
68
|
+
* @param icon The button's icon.
|
|
69
|
+
* @param className The additional button CSS class name.
|
|
70
|
+
* @param eventName The event name that the ButtonView#execute event will be delegated to.
|
|
71
|
+
* @returns The button view instance.
|
|
72
|
+
*/
|
|
73
|
+
private _createButton;
|
|
74
|
+
/**
|
|
75
|
+
* Creates an input with a label.
|
|
76
|
+
*
|
|
77
|
+
* @returns Labeled field view instance.
|
|
78
|
+
*/
|
|
79
|
+
private _createLabeledInputView;
|
|
80
|
+
/**
|
|
81
|
+
* Validates the form and returns `false` when some fields are invalid.
|
|
82
|
+
*/
|
|
83
|
+
isValid(): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Cleans up the supplementary error and information text of the {@link #labeledInput}
|
|
86
|
+
* bringing them back to the state when the form has been displayed for the first time.
|
|
87
|
+
*
|
|
88
|
+
* See {@link #isValid}.
|
|
89
|
+
*/
|
|
90
|
+
resetFormStatus(): void;
|
|
91
|
+
/**
|
|
92
|
+
* The native DOM `value` of the input element of {@link #labeledInput}.
|
|
93
|
+
*/
|
|
94
|
+
get rawSize(): string | null;
|
|
95
|
+
/**
|
|
96
|
+
* Get numeric value of size. Returns `null` if value of size input element in {@link #labeledInput}.is not a number.
|
|
97
|
+
*/
|
|
98
|
+
get parsedSize(): number | null;
|
|
99
|
+
/**
|
|
100
|
+
* Returns serialized image input size with unit.
|
|
101
|
+
* Returns `null` if value of size input element in {@link #labeledInput}.is not a number.
|
|
102
|
+
*/
|
|
103
|
+
get sizeWithUnits(): string | null;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Callback used by {@link ~ImageCustomResizeFormView} to check if passed form value is valid.
|
|
107
|
+
*
|
|
108
|
+
* * If `undefined` is returned, it is assumed that the form value is correct and there is no error.
|
|
109
|
+
* * If string is returned, it is assumed that the form value is incorrect and the returned string is displayed in the error label
|
|
110
|
+
*/
|
|
111
|
+
export type ImageCustomResizeFormValidatorCallback = (form: ImageCustomResizeFormView) => string | undefined;
|
|
112
|
+
/**
|
|
113
|
+
* Fired when the form view is submitted.
|
|
114
|
+
*
|
|
115
|
+
* @eventName ~ImageCustomResizeFormView#submit
|
|
116
|
+
*/
|
|
117
|
+
export type ImageCustomResizeFormViewSubmitEvent = {
|
|
118
|
+
name: 'submit';
|
|
119
|
+
args: [];
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* Fired when the form view is canceled.
|
|
123
|
+
*
|
|
124
|
+
* @eventName ~ImageCustomResizeFormView#cancel
|
|
125
|
+
*/
|
|
126
|
+
export type ImageCustomResizeFormViewCancelEvent = {
|
|
127
|
+
name: 'cancel';
|
|
128
|
+
args: [];
|
|
129
|
+
};
|