UNPKG

@progress/kendo-vue-editor

Version:
9 lines (8 loc) 5.34 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),b=require("@progress/kendo-vue-dialogs"),S=require("@progress/kendo-vue-buttons"),I=require("@progress/kendo-editor-common"),y=require("@progress/kendo-vue-intl"),d=require("../messages/main.js"),s=require("@progress/kendo-vue-common"),u=require("@progress/kendo-vue-form"),m=require("@progress/kendo-vue-inputs");function k(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const T=e.defineComponent({name:"KendoInsertImageDialog",emits:{close:null},props:{view:Object,settings:Object,dir:String},inject:{kendoLocalizationService:{default:null}},data(){const{view:t,settings:o}=this.$props,a=t&&t.state;let i={};return a&&a.selection instanceof I.NodeSelection&&a.selection.node.type===a.schema.nodes[o.node]&&(i=a.selection.node.attrs),{srcValue:i.src,altValue:i.alt,titleValue:i.title,widthValue:i.width,heightValue:i.height}},mounted(){this.src=s.getRef(this,"src"),this.altText=s.getRef(this,"altText"),this.title=s.getRef(this,"title"),this.width=s.getRef(this,"width"),this.height=s.getRef(this,"height"),this.src&&this.src.focus()},render(){let t,o;const{view:a,settings:i,dir:l}=this.$props,{insertImageDialogTitle:c,insertImageAddress:f,insertImageTitle:p,insertImageAltText:n,insertImageWidth:h,insertImageHeight:N,insertImageCancel:w,insertImageInsert:v}=i.messages,r=y.provideLocalizationService(this),g=a&&a.state;g&&g.selection instanceof I.NodeSelection&&g.selection.node.type===g.schema.nodes[i.node]&&g.selection.node.attrs;const C=e.createVNode(u.Form,null,{default:()=>[e.createVNode(u.FormElement,{horizontal:!0},{default:()=>[e.createVNode(u.FieldWrapper,null,{default:()=>[e.createVNode("label",{for:"k-editor-image-url",class:"k-form-label"},[r.toLanguageString(f,d.messages[f])]),e.createVNode("div",{class:"k-form-field-wrap"},[e.createVNode(m.Input,{id:"k-editor-image-url",value:this.srcValue,onInput:this.handleSrcInput,ref:s.setRef(this,"src")},null)])]}),e.createVNode(u.FieldWrapper,null,{default:()=>[e.createVNode("label",{for:"k-editor-image-url",class:"k-form-label"},[r.toLanguageString(n,d.messages[n])]),e.createVNode("div",{class:"k-form-field-wrap"},[e.createVNode(m.Input,{id:"k-editor-image-alt",value:this.altValue,onInput:this.handleAltInput,ref:s.setRef(this,"altText")},null)])]}),e.createVNode(u.FieldWrapper,null,{default:()=>[e.createVNode("label",{for:"k-editor-image-title",class:"k-form-label"},[r.toLanguageString(p,d.messages[p])]),e.createVNode("div",{class:"k-form-field-wrap"},[e.createVNode(m.Input,{id:"k-editor-image-title",value:this.titleValue,onInput:this.handleTitleInput,ref:s.setRef(this,"title")},null)])]}),e.createVNode(u.FieldWrapper,null,{default:()=>[e.createVNode("label",{for:"k-editor-image-width",class:"k-form-label"},[r.toLanguageString(h,d.messages[h])]),e.createVNode("div",{class:"k-form-field-wrap"},[e.createVNode(m.Input,{id:"k-editor-image-width",value:this.widthValue,onInput:this.handleWidthInput,ref:s.setRef(this,"width")},null)])]}),e.createVNode(u.FieldWrapper,null,{default:()=>[e.createVNode("label",{for:"k-editor-image-height",class:"k-form-label"},[r.toLanguageString(N,d.messages[N])]),e.createVNode("div",{class:"k-form-field-wrap"},[e.createVNode(m.Input,{id:"k-editor-image-height",value:this.heightValue,onInput:this.handleHeightInput,ref:s.setRef(this,"height")},null)])]})]})]}),V=[e.createVNode(S.Button,{type:"button",onClick:this.onClose,dir:l,key:"cancel"},k(t=r.toLanguageString(w,d.messages[w]))?t:{default:()=>[t]}),e.createVNode(S.Button,{type:"button",disabled:!this.srcValue,onClick:this.onInsert,themeColor:"primary",dir:l,key:"insert"},k(o=r.toLanguageString(v,d.messages[v]))?o:{default:()=>[o]})];return e.createVNode(b.Window,{initialWidth:500,initialHeight:360,windowClass:"k-editor-window",title:r.toLanguageString(c,d.messages[c]),onClose:this.onClose,key:"dialog",dir:l,style:l==="rtl"?{textAlign:"right"}:void 0,modal:!0,minimizeButton:()=>null,maximizeButton:()=>null,resizable:!1},{default:()=>[C,e.createVNode(b.DialogActionsBar,null,k(V)?V:{default:()=>[V]})]})},methods:{handleSrcInput(t){this.srcValue=t.value},handleAltInput(t){this.altValue=t.value},handleTitleInput(t){this.titleValue=t.value},handleWidthInput(t){this.widthValue=t.value},handleHeightInput(t){this.heightValue=t.value},onClose(){this.$props.view.focus(),this.$emit("close")},onInsert(){const{view:t,settings:o}=this.$props,i=t.state.schema.nodes[o.node],l={src:this.src?this.srcValue:null,title:this.title?this.titleValue:null,alt:this.altText?this.altValue:null,width:this.width?this.widthValue:null,height:this.height?this.heightValue:null},c=Object.keys(l).filter(n=>l[n]!==null&&l[n]!=="").reduce((n,h)=>Object.assign(n,{[h]:l[h]}),{}),f=i.createAndFill(c);I.insertNode(f,!0)(t.state,n=>t.dispatch(n.setMeta("commandName",o.commandName).setMeta("args",c))),this.onClose()}}});exports.InsertImageDialog=T;