@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
3 lines • 23 kB
JavaScript
/* @license */
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`kendo.dropdownlist.min.js`),require(`kendo.toolbar.min.js`),require(`kendo.core.min.js`),require(`kendo.form.min.js`),require(`kendo.html.button.min.js`),require(`kendo.buttongroup.min.js`),require(`kendo.draganddrop.min.js`),require(`kendo.upload.min.js`)):typeof define==`function`&&define.amd?define([`exports`,`kendo.dropdownlist.min`,`kendo.toolbar.min`,`kendo.core.min`,`kendo.form.min`,`kendo.html.button.min`,`kendo.buttongroup.min`,`kendo.draganddrop.min`,`kendo.upload.min`],t):(e=typeof globalThis<`u`?globalThis:e||self,t((e.kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Imageeditor={}),e.kendo._globals.Dropdownlist,e.kendo._globals.Toolbar,e.kendo._globals.Core,e.kendo._globals.Form,e.kendo._globals.HtmlButton,e.kendo._globals.Buttongroup,e.kendo._globals.Draganddrop,e.kendo._globals.Upload))})(this,function(e,t,n,r,i,a,o,s,c){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),(function(e,t){var n=window.kendo,r=e.extend,i=n.Class,a=`.k-imageeditor-pane`,o=`click`,s={form:`k-imageeditor-pane-form`,cropOverlay:`k-imageeditor-crop-overlay`,crop:`k-imageeditor-crop`,resizeHandle:`k-resize-handle`,resizeHandlePrefix:`k-resize-`};let c=`[ref-pane-button]`;var l=function(e){return Math.round(e*1e3)/1e3},u=i.extend({init:function(t){var n=this;n.imageeditor=t,n.imageeditor.currentPaneTool&&n.imageeditor.currentPaneTool.destroy(),n.element=e(`<div role='form' aria-label='Image edit pane.'></div>`).addClass(s.form)},open:function(){var e=this,t=e.imageeditor,i=t.options.messages.common;t.paneWrapper.append(e.element),e.formWidget=new n.ui.Form(e.element,r(e.formSettings(),{buttonsTemplate:()=>n.html.renderButton(`<button ref-pane-button data-action='confirm'>${i.confirm}</button>`,{icon:`check`,themeColor:`primary`})+n.html.renderButton(`<button ref-pane-button data-action='cancel'>${i.cancel}</button>`,{icon:`cancel-outline`})})),e.bindButtonEvents(),t.paneWrapper.show(),t.currentPaneTool=e},bindButtonEvents:function(){var e=this,t=e.formWidget.element.find(c);e._clickHandler=e._click.bind(e),t.on(o+a,e._clickHandler)},_click:function(t){var n=this,r=e(t.target).closest(c).data(`action`);n[r]&&n[r]()},cancel:function(){this.imageeditor.toolbar.element.find(`[tabindex=0]`).trigger(`focus`),this.destroy()},confirm:function(){window.console.error(`Pane's confirm method is not implemented!`),this.destroy()},refresh:function(){},destroy:function(){var e=this,t=e.imageeditor;e.formWidget.element.find(c).off(a),e.formWidget.destroy(),t.paneWrapper.html(``),t.paneWrapper.hide(),delete t.currentPaneTool}}),d=u.extend({init:function(e){var t=this;u.fn.init.call(t,e),t.buildCropModel(),t.canvasUI()},confirm:function(){var e=this,t=e.formWidget._model.toJSON();e.destroy(),e.imageeditor.executeCommand({command:`CropImageEditorCommand`,options:t})},formSettings:function(){var e=this,t=e.imageeditor.options.messages.panes.crop,n=e.imageeditor.options.messages.common,r=t.aspectRatioItems,i=[];if(r)for(var a in r)i.push({value:a,text:r[a]});else i=[{value:`originalRatio`,text:`Original ratio`},{value:`1:1`,text:`1:1 (Square)`},{value:`4:5`,text:`4:5 (8:10)`},{value:`5:7`,text:`5:7`},{value:`2:3`,text:`2:3 (4:6)`},{value:`16:9`,text:`16:9`}];return{formData:e._model,change:e.onChange.bind(e),items:[{type:`group`,label:t.title||`Crop Image`,layout:`grid`,grid:{cols:2,gutter:`0 8px`},items:[{label:t.aspectRatio||`Aspect ratio:`,field:`aspectRatio`,editor:`DropDownList`,editorOptions:{dataValueField:`value`,dataTextField:`text`,dataSource:i},colSpan:2},{label:t.orientation,field:`orientation`,editor:e._orientationEditor.bind(e),colSpan:2},{label:n.width||`Width:`,field:`width`,attributes:{style:`max-width: 100px;`},editor:`NumericTextBox`,editorOptions:{format:`n0`,max:e._model.width,min:0},colSpan:1},{label:n.height||`Height:`,field:`height`,attributes:{style:`max-width: 100px;`},editor:`NumericTextBox`,editorOptions:{format:`n0`,max:e._model.height,min:0},colSpan:1},{label:n.lockAspectRatio||`Lock aspect ratio`,field:`lockAspectRatio`,colSpan:2}]}]}},_orientationEditor:function(t,n){var r=this,i=r.imageeditor.options.messages.panes.crop,a=n.model[n.field];r._orientationWidget=e(`<div name='`+n.field+`'></div>`).appendTo(t).kendoButtonGroup({items:[{text:i.portrait||`Portrait`,attributes:{"data-value":`portrait`},selected:a===`portrait`},{text:i.landscape||`Landscape`,attributes:{"data-value":`landscape`},selected:a===`landscape`}],select:function(e){var t=e.sender.wrapper.find(`.k-selected`).data(`value`);n.model.set(n.field,t)}}).data(`kendoButtonGroup`)},buildCropModel:function(){var e=this,t=e.imageeditor.getCanvasElement(),n=t.width,r=t.height;e._model={top:0,left:0,aspectRatio:`originalRatio`,width:n,height:r,orientation:n-r<0?`portrait`:`landscape`,lockAspectRatio:!0}},canvasUI:function(){for(var t=this,r=t.imageeditor,i=t.imageeditor.canvasContainer,a=e(`<div></div>`).addClass(s.cropOverlay),o=e(`<div></div>`).addClass(s.crop),c=`<span class='`+s.resizeHandle+`'></span>`,l=[`nw`,`n`,`ne`,`w`,`e`,`sw`,`s`,`se`],u=r.getZoomLevel(),d=0;d<l.length;d++){var f=e(c).addClass(s.resizeHandlePrefix+l[d]).attr(`data-orientation`,l[d]);t._initResizeHandle(f),o.append(f)}t.cropElement=o,t._canvasUI=a.append(o).appendTo(i);var p=Math.round(t._model.width*u),m=Math.round(t._model.height*u),h=parseInt(t.cropElement.css(`border-top-width`),10);t.cropElement.css({width:p,height:m,backgroundImage:`url('`+r._image.src+`')`,backgroundSize:n.format(`{0}px {1}px`,p,m),backgroundClip:`content-box`,backgroundPosition:n.format(`-{0}px -{0}px`,h)}),t.cropElement.kendoDraggable({ignore:`.`+s.resizeHandle,drag:function(e){t._adjustTopLeft(e.target.offsetTop+e.y.delta,e.target.offsetLeft+e.x.delta)}})},refresh:function(){var e=this,t=e.formWidget._model,r=e.imageeditor.getZoomLevel(),i=Math.round(t.width*r),a=Math.round(t.height*r),o=Math.round(t.top*r),s=Math.round(t.left*r),c=parseInt(e.cropElement.css(`border-top-width`),10);e.cropElement.css({top:o,left:s,width:i,height:a,backgroundSize:n.format(`{0}px {1}px`,e._model.width*r,e._model.height*r),backgroundPosition:n.format(`-{0}px -{1}px`,s+c,o+c)})},_initResizeHandle:function(t){var n=this;t.kendoDraggable({drag:function(t){var r=e(t.sender.element),i=n.formWidget._model,a=n._model,o=r.data(`orientation`),s={},c=n.imageeditor.getZoomLevel(),l=i.left*c,u=i.top*c;o.indexOf(`w`)>=0?(s.left=n.cropElement[0].offsetLeft+t.x.delta,s.width=n.cropElement[0].offsetWidth-t.x.delta):o.indexOf(`e`)>=0&&(s.width=n.cropElement[0].offsetWidth+t.x.delta),o.indexOf(`n`)>=0?(s.top=n.cropElement[0].offsetTop+t.y.delta,s.height=n.cropElement[0].offsetHeight-t.y.delta):o.indexOf(`s`)>=0&&(s.height=n.cropElement[0].offsetHeight+t.y.delta),s.width&&(s.left||l)+s.width<=a.width*c&&i.set(`width`,Math.round(s.width/c)),s.height&&(s.top||u)+s.height<=a.height*c&&i.set(`height`,Math.round(s.height/c)),(s.top||s.left)&&n._adjustTopLeft(s.top,s.left)}})},_adjustTopLeft:function(e,t,n){var r=this,i=n||r.formWidget._model,a=r.formWidget._model,o=r._model,s=r.imageeditor.getZoomLevel();e>=0&&e/s+i.height<=o.height&&a.set(`top`,Math.round(e/s)),t>=0&&t/s+i.width<=o.width&&a.set(`left`,Math.round(t/s))},onChange:function(e){var t=this,i=t.imageeditor.getZoomLevel(),a=e.sender._model,o=t._model,s=o.width,c=o.height,l=o.width+`:`+o.height,u=t._gcd(o.width,o.height);if(l=o.width/u+`:`+o.height/u,e.field===`aspectRatio`&&e.value===`originalRatio`)a.set(`top`,0),a.set(`left`,0),a.set(`orientation`,o.orientation),a.set(`width`,o.width),a.set(`height`,o.height);else if(e.field===`orientation`){var d=r({},a,{width:a.height,height:a.width}),f=t._calcSize(d,l,s,c);a.set(`width`,f.width),a.set(`height`,f.height),t._orientationWidget.select(e.value===`portrait`?0:1)}else if(a.lockAspectRatio){var p=e.field,m=t._calcSize(a,l,s,c,p);a.set(`width`,m.width),a.set(`height`,m.height)}var h=Math.round(a.width*i),g=Math.round(a.height*i),_=Math.round(a.top*i),v=Math.round(a.left*i),y=parseInt(t.cropElement.css(`border-top-width`),10);t.cropElement.css({top:_,left:v,width:h,height:g,backgroundPosition:n.format(`-{0}px -{1}px`,v+y,_+y)})},_calcSize:function(e,t,n,r,i){var a=Math.min(e.width,n),o=Math.min(e.height,r),s=e.orientation===`portrait`,c=e.aspectRatio;c.indexOf(`:`)<0&&(c=t),c=c.split(`:`).map(function(e){return parseInt(e,10)});var u=l((s?Math.min(c[0],c[1]):Math.max(c[0],c[1]))/(s?Math.max(c[0],c[1]):Math.min(c[0],c[1]))),d=l(a/o),f={width:Math.round(o*u),height:Math.round(a/u)};return i===`width`?{width:a,height:f.height}:i===`height`?{width:f.width,height:o}:(d>u?a=f.width:d<u&&(o=f.height),{width:a,height:o})},_gcd:function(e,t){return t===0?e:this._gcd(t,e%t)},destroy:function(){n.destroy(this._canvasUI),this._canvasUI.remove(),u.fn.destroy.call(this)}}),f=u.extend({init:function(e){u.fn.init.call(this,e),this.buildResizeModel()},confirm:function(){var e=this,t=e._model.width,n=e._model.height,r=e.formWidget._model.toJSON();r.measure===`percents`&&(r.width=t*(r.width/100),r.height=n*(r.height/100)),e.imageeditor.executeCommand({command:`ResizeImageEditorCommand`,options:r}),e.destroy()},formSettings:function(){var e=this,t=e.imageeditor.options.messages.panes.resize,n=e.imageeditor.options.messages.common;return{formData:e._model,change:e.onChange.bind(e),items:[{type:`group`,label:t.title||`Resize image`,layout:`grid`,grid:{cols:2,gutter:`0 8px`},items:[{label:n.width||`Width:`,field:`width`,attributes:{style:`max-width: 100px;`},editor:`NumericTextBox`,editorOptions:{format:`n0`,min:0},colSpan:1},{field:`measureW`,editor:`DropDownList`,attributes:{style:`max-width: 100px;`},label:{text:` `,encoded:!1},editorOptions:{dataTextField:`text`,dataValueField:`value`,dataSource:[{text:t.pixels||`Pixels`,value:`pixels`},{text:t.percents||`Percents`,value:`percents`}]},colSpan:1},{label:n.height||`Height:`,field:`height`,attributes:{style:`max-width: 100px;`},editor:`NumericTextBox`,editorOptions:{format:`n0`,min:0},colSpan:1},{field:`measureH`,label:{text:` `,encoded:!1},attributes:{style:`max-width: 100px;`},editor:`DropDownList`,editorOptions:{dataTextField:`text`,dataValueField:`value`,dataSource:[{text:t.pixels||`Pixels`,value:`pixels`},{text:t.percents||`Percents`,value:`percents`}]},colSpan:1},{label:n.lockAspectRatio||`Lock aspect ratio`,field:`lockAspectRatio`,colSpan:2}]}]}},buildResizeModel:function(){var e=this,t=e.imageeditor.getCanvasElement(),n=t.width,r=t.height;e._model={width:n,height:r,measure:`pixels`,measureW:`pixels`,measureH:`pixels`,lockAspectRatio:!0,ratio:l(n/r)}},onChange:function(e){var t=this,n=e.sender._model,r=n.lockAspectRatio;e.field===`measureW`||e.field===`measureH`?(n.set(`measureW`,e.value),n.set(`measureH`,e.value),n.set(`measure`,e.value)):e.field===`measure`?t.resetNumericsTo(e.value):e.field===`width`&&r&&!t._preventChange?n.set(`height`,n.width/n.ratio):e.field===`height`&&r&&!t._preventChange&&n.set(`width`,n.height*n.ratio),n.set(`ratio`,l(n.width/n.height))},resetNumericsTo:function(e){var t=this,n=t._model.width,r=t._model.height,i=t.formWidget,a=i._model,o=i.element.find(`[name=width]`).data(`kendoNumericTextBox`),s=i.element.find(`[name=height]`).data(`kendoNumericTextBox`),c=e===`percents`,l={percents:{format:`#\\%`},pixels:{format:`n0`}};o.setOptions(l[e]),s.setOptions(l[e]),t._preventChange=!0,a.set(`width`,c?n/o.value()*100:n*(o.value()/100)),a.set(`height`,c?r/s.value()*100:r*(s.value()/100)),t._preventChange=!1}});r(n.ui,{imageeditor:{ImageEditorPane:u,panes:{crop:d,resize:f}}})})(window.kendo.jQuery),(function(e,t){var n=window.kendo,r=n.ui.imageeditor,i=e.extend,a=n.Class.extend({init:function(e){this.options=i({},e,this.options),this.imageeditor=e.imageeditor}}),o=a.extend({init:function(e){a.fn.init.call(this,e)},exec:function(){var e=this,t=e.imageeditor,n=new r.panes[e.options.value](t);n.open(),n.element.find(`:kendoFocusable`).first().trigger(`focus`)}}),s=a.extend({options:{zoomStep:.05,spacing:20},init:function(e){a.fn.init.call(this,e)},exec:function(){var t=this,n=t.options.value,r=t.imageeditor,i=r._image.height,a=r.getZoomLevel(),o=i,s=n===`zoomIn`||n===`zoomOut`;isNaN(n)?typeof n==`string`&&(n=t._processStringValue(n,a)):n=parseFloat(n),o=Math.round(i*n),o>0&&(e(r._canvas).css(`height`,o),r._zoomLevel=n),r.currentPaneTool&&r.currentPaneTool.refresh(),s&&r.toolbar.element.find(`[tabindex=0]`).trigger(`focus`)},_processStringValue:function(e,t){var n=this,r=n.options,i=n.imageeditor,a=i._image.height,o=i.canvasWrapper.height()-r.spacing,s=r.zoomStep;switch(e){case`zoomIn`:return t+s;case`zoomOut`:return t-s;case`fitToScreen`:return Math.round(o/a*100)/100;default:return 1}}}),c=a.extend({init:function(e){a.fn.init.call(this,e)},exec:function(){var e=this,t=e.options,n=e.imageeditor,r=n.getCanvasElement(),i=n.getCurrent2dContext(),a=i.getImageData(t.left,t.top,t.width,t.height);i.clearRect(0,0,r.width,r.height),r.width=t.width,r.height=t.height,i.putImageData(a,0,0),n.drawImage(r.toDataURL()).done(function(e){n.drawCanvas(e),n.toolbar.element.find(`[tabindex=0]`).trigger(`focus`)}).fail(function(e){n.trigger(`error`,e)})}}),l=a.extend({init:function(e){a.fn.init.call(this,e)},exec:function(){var e=this,t=e.options,n=e.imageeditor,r=n.getCanvasElement(),i=n.getCurrent2dContext(),a=n.getCurrentImage();i.clearRect(0,0,r.width,r.height),r.width=t.width,r.height=t.height,i.drawImage(a,0,0,t.width,t.height),n.drawImage(r.toDataURL()).done(function(e){n.drawCanvas(e),n.toolbar.element.find(`[tabindex=0]`).trigger(`focus`)}).fail(function(e){n.trigger(`error`,e)})}}),u=a.extend({exec:function(){var e=this.imageeditor,t=e.getCanvasElement(),n=e.getCurrent2dContext(),r=e.undoStack.pop();r&&(e.redoStack.push(e.getCurrentImage()),delete e._image,n.clearRect(0,0,t.width,t.height),t.width=r.width,t.height=r.height,n.drawImage(r,0,0,r.width,r.height),e.drawImage(t.toDataURL()).done(function(t){e.drawCanvas(t),e.toolbar.element.find(`[tabindex=0]`).trigger(`focus`)}).fail(function(t){e.trigger(`error`,t)}))}}),d=a.extend({exec:function(){var e=this.imageeditor,t=e.getCanvasElement(),n=e.getCurrent2dContext(),r=e.redoStack.pop();r&&(e.undoStack.push(e.getCurrentImage()),delete e._image,n.clearRect(0,0,t.width,t.height),t.width=r.width,t.height=r.height,n.drawImage(r,0,0,r.width,r.height),e.drawImage(t.toDataURL()).done(function(t){e.drawCanvas(t),e.toolbar.element.find(`[tabindex=0]`).trigger(`focus`)}).fail(function(t){e.trigger(`error`,t)}))}}),f=a.extend({exec:function(){var e=this.imageeditor,t=e.getCanvasElement();n.saveAs(i({},e.options.saveAs,{dataURI:t.toDataURL()})),e.toolbar.element.find(`[data-command=SaveImageEditorCommand]`).trigger(`focus`)}}),p=a.extend({exec:function(){var t=this,n=t.imageeditor,r=n._upload;if(!r){var i=e(`<input type='file' />`);i.kendoUpload({select:t.onSelect.bind(t),error:t.onError.bind(t),multiple:!1,validation:{allowedExtensions:[`.jpg`,`.jpeg`,`.gif`,`.png`,`.bmp`,`.tiff`,`.webp`]}}),n._upload=r=i.getKendoUpload()}r.element.click()},onSelect:function(e){var t=this.imageeditor,n=e.files[0].rawFile,r=new FileReader;r.addEventListener(`load`,function(){t.drawImage(r.result).done(function(e){t.trigger(`imageLoaded`,{image:e})||(t.drawCanvas(e),t._initUndoRedoStack(),t._toggleTools())}).fail(function(e){t.trigger(`error`,e)})},!1),n&&r.readAsDataURL(n)},onError:function(e){this.imageeditor.trigger(`error`,e)}});i(n.ui.imageeditor,{ImageEditorCommand:a,commands:{OpenPaneImageEditorCommand:o,ZoomImageEditorCommand:s,CropImageEditorCommand:c,ResizeImageEditorCommand:l,UndoImageEditorCommand:u,RedoImageEditorCommand:d,SaveImageEditorCommand:f,OpenImageEditorCommand:p}})})(window.kendo.jQuery);let l={id:`imageeditor`,name:`ImageEditor`,category:`web`,depends:[`core`,`toolbar`,`dropdownlist`]};(function(e,t){var n=window.kendo,r=e.extend,i=e.isPlainObject,a=n.ui.Widget,o=n.ui,s=`.kendoImageEditor`,c=n._outerHeight,l=`error`,u=`imageLoaded`,d=`imageRendered`,f=`execute`,p=`click`,m=`toggle`,h=`change`,g=e=>`<canvas role='img' aria-label='${e}'>Canvas element</canvas>`,_={wrapper:`k-imageeditor`,header:`k-imageeditor-header`,toolbar:`k-imageeditor-toolbar`,paneWrapper:`k-imageeditor-action-pane`,contentWrapper:`k-imageeditor-content`,canvasWrapper:`k-imageeditor-canvas-container`,canvasContainer:`k-imageeditor-canvas`},v=a.extend({init:function(t,r){var i=this;a.fn.init.call(i,t,r),r=e.extend(!0,{},r),i._wrapper(),i._renderHeader(),i._contentWrapper(),i._keyHandler(),r.imageUrl&&i._drawCanvas(),i._initUndoRedoStack(),i._toggleTools(),n.notify(i)},options:{name:`ImageEditor`,width:`100%`,height:570,imageUrl:``,imageLabel:``,toolbar:{},saveAs:{fileName:`image.png`},messages:{toolbar:{open:`Open Image`,save:`Save Image`,undo:`Undo`,redo:`Redo`,crop:`Crop`,resize:`Resize`,zoomIn:`Zoom In`,zoomOut:`Zoom Out`,zoomDropdown:`Zoom options`,zoomActualSize:`Show actual size`,zoomFitToScreen:`Fit to screen`},panes:{crop:{title:`Crop Image`,aspectRatio:`Aspect Ratio:`,aspectRatioItems:{originalRatio:`Original ratio`,"1:1":`1:1 (Square)`,"4:5":`4:5 (8:10)`,"5:7":`5:7`,"2:3":`2:3 (4:6)`,"16:9":`16:9`},orientation:`Orientation:`,portrait:`Portrait`,landscape:`Landscape`},resize:{title:`Resize image`,pixels:`Pixels`,percents:`Percents`}},common:{width:`Width:`,height:`Height:`,cancel:`Cancel`,confirm:`Confirm`,lockAspectRatio:`Lock aspect ratio`}}},events:[l,u,d,f],defaultTools:{open:{type:`button`,icon:`upload`,name:`open`,command:`OpenImageEditorCommand`,showText:`overflow`},save:{type:`button`,icon:`download`,name:`save`,command:`SaveImageEditorCommand`,showText:`overflow`,toggleCondition:`canExport`},separator:{type:`separator`},undo:{type:`button`,icon:`undo`,name:`undo`,command:`UndoImageEditorCommand`,showText:`overflow`,toggleCondition:`undo`},redo:{type:`button`,icon:`redo`,name:`redo`,command:`RedoImageEditorCommand`,showText:`overflow`,toggleCondition:`redo`},separator1:{type:`separator`},crop:{type:`button`,icon:`crop`,name:`crop`,command:`OpenPaneImageEditorCommand`,options:`crop`,showText:`overflow`,toggleCondition:`canExport`},resize:{type:`button`,icon:`image-resize`,name:`resize`,command:`OpenPaneImageEditorCommand`,options:`resize`,showText:`overflow`,toggleCondition:`canExport`},zoomIn:{type:`button`,icon:`zoom-in`,name:`zoomIn`,command:`ZoomImageEditorCommand`,showText:`overflow`,options:`zoomIn`,toggleCondition:`enable`},zoomOut:{type:`button`,icon:`zoom-out`,name:`zoomOut`,command:`ZoomImageEditorCommand`,showText:`overflow`,options:`zoomOut`,toggleCondition:`enable`},zoomDropdown:{type:`component`,name:`zoomDropdown`,command:`ZoomImageEditorCommand`,toggleCondition:`enable`,overflow:`never`,component:`DropDownList`,componentOptions:{placeholder:`Search`,icon:`search`,dataSource:[{name:`zoomActualSize`,icon:`zoom-actual-size`,value:`actualSize`},{name:`zoomFitToScreen`,icon:`zoom-best-fit`,value:`fitToScreen`}],dataTextField:`text`,dataValueField:`value`,valuePrimitive:!0,template:({icon:e,text:t})=>`${n.ui.icon(n.htmlEncode(e))} ${n.htmlEncode(t)}`,commandOn:`change`,optionLabel:`Zoom options`,dataBound:e=>{e.sender.list.find(`.k-list-optionlabel`).hide()}}}},_wrapper:function(){var e=this,t=e.options,r=t.width,i=t.height;e.wrapper=e.element.addClass(_.wrapper),r&&e.wrapper.width(r),i&&e.wrapper.height(i),e._resizeHandler=n.onResize(function(){e.resize(!0)})},_renderHeader:function(){var t=this,n=t.options;t.header=e(`<div />`).addClass(_.header),t.wrapper.append(t.header),n.toolbar&&(t._initToolbar(),t.toolbar._tabIndex())},_initToolbar:function(){var t=this,i=t.options,a=e(`<div></div>`).addClass(_.toolbar),o=r({},i.toolbar);return o.tools=o.items?o.items:Object.keys(t.defaultTools),o.defaultTools=t.defaultTools,o.parentMessages=t.options.messages.toolbar,t.header.append(a),t.toolbar=new n.ui.ToolBar(a,o),t.options.toolbar=t.toolbar.options,t.toolbar.toggleTools(),t.toolbar.bind(p,t._toolbarClick.bind(t)),t.toolbar.bind(m,t._toolbarClick.bind(t)),t.toolbar.bind(h,t._toolbarClick.bind(t)),t.toolbar},_toolbarClick:function(t){var n=e(t.target).data(`command`),r=e(t.target).data(`options`);r=e(t.target).val()||r,n&&this.executeCommand({command:n,options:r})},_contentWrapper:function(){var t=this,n=e(`<div></div>`).addClass(_.contentWrapper),r=e(`<div></div>`).addClass(_.canvasWrapper),i=e(`<div></div>`).addClass(_.canvasContainer),a=e(`<div></div>`).addClass(_.paneWrapper).hide(),o=c(t.header);t.canvasWrapper=r,t.canvasContainer=i,t.paneWrapper=a,r.append(i),n.height(c(t.wrapper)-o),n.append(r).append(a),t.wrapper.append(n)},_keyHandler:function(){var e=this,t=!1;e.wrapper.on(`keydown`+s,function(n){if(n.ctrlKey){switch(n.keyCode){case 48:e.executeCommand({command:`ZoomImageEditorCommand`,options:`fitToScreen`}),t=!0;break;case 189:e.executeCommand({command:`ZoomImageEditorCommand`,options:`zoomOut`}),t=!0;break;case 187:e.executeCommand({command:`ZoomImageEditorCommand`,options:`zoomIn`}),t=!0;break;case 90:e.executeCommand({command:`UndoImageEditorCommand`}),t=!0;break;case 89:e.executeCommand({command:`RedoImageEditorCommand`}),t=!0;break}t&&n.preventDefault()}})},_drawCanvas:function(){var e=this,t=e.options.imageUrl;e.drawImage(t).done(function(t){e.trigger(u,{image:t})||e.drawCanvas(t)}).fail(function(t){e.trigger(l,t)})},_initUndoRedoStack:function(){var e=this;e.undoStack=[],e.redoStack=[]},_toggleTools:function(){var e=this,t=e.redoStack.length>0,n=e.undoStack.length>0,r=!!e._image,i=!0;try{e._canvas.toDataURL()}catch{i=!1}e.toolbar&&e.toolbar.toggleTools({redo:t,undo:n,enable:r,canExport:i})},drawImage:function(t){var r=this,i=new e.Deferred,a=new Image;return a.onload=function(){n.ui.progress(r.canvasContainer,!1),i.resolve(a)},a.onerror=function(){n.ui.progress(r.canvasContainer,!1),i.reject(arguments)},n.ui.progress(r.canvasContainer,!0),a.src=t,i.promise()},drawCanvas:function(t){var r=this,i=e(n.template(g)(r.options.imageLabel))[0],a=i.getContext(`2d`);r._canvas&&e(r._canvas).remove(),r._image&&r.undoStack.push(r._image),r._canvas=i,r._ctx=a,r._image=t,i.width=t.width,i.height=t.height,a.drawImage(t,0,0),r.canvasContainer.append(i),t.height>r.canvasWrapper.height()?r.executeCommand({command:`ZoomImageEditorCommand`,options:`fitToScreen`}):r.executeCommand({command:`ZoomImageEditorCommand`,options:r.getZoomLevel()}),r.trigger(d,{canvas:i,ctx:a,image:t}),r._toggleTools()},getCanvasElement:function(){return this._canvas},getCurrent2dContext:function(){return this._ctx},getCurrentImage:function(){return this._image},executeCommand:function(e){var t=e.command,n=r({imageeditor:this},i(e.options)?e.options:{value:e.options}),a=new o.imageeditor.commands[t](n);if(!this.trigger(f,e))return this._toggleTools(),a.exec()},getZoomLevel:function(){return this._zoomLevel||1},destroy:function(){var e=this;e.element.off(s),e.currentPaneTool&&e.currentPaneTool.destroy(),e.toolbar&&e.toolbar.destroy(),e._upload&&e._upload.destroy(),a.fn.destroy.call(e)}});o.plugin(v)})(window.kendo.jQuery);var u=kendo;e.__meta__=l,e.default=u});
//# sourceMappingURL=kendo.imageeditor.min.js.map