@progress/kendo-react-editor
Version:
React Editor enables users to create rich text content through a WYSIWYG interface. KendoReact Editor package
9 lines (8 loc) • 3.61 kB
JavaScript
/**
* @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 S=require("react"),y=require("@progress/kendo-react-dialogs"),C=require("@progress/kendo-react-buttons"),m=require("@progress/kendo-react-inputs"),c=require("@progress/kendo-react-form"),w=require("@progress/kendo-editor-common"),L=require("@progress/kendo-react-intl"),o=require("../messages/index.js");function x(s){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const n in s)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(s,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>s[n]})}}return t.default=s,Object.freeze(t)}const e=x(S);let F=class extends e.Component{constructor(){super(...arguments),this.href=null,this.title=null,this.target=null,this.onClose=()=>{this.props.view.focus(),this.props.onClose()},this.onInsert=()=>{const t=this.props.view,n=this.props.settings.mark,r={href:this.href?this.href.value:void 0,title:this.title?this.title.value:void 0,target:this.target&&this.target.element&&this.target.element.checked?"_blank":void 0};w.applyLink({mark:n,attrs:r},this.props.settings.commandName)(t.state,t.dispatch),this.onClose()}}render(){const{view:t,settings:n,dir:r,render:u}=this.props,l=L.provideLocalizationService(this),{insertHyperlinkDialogTitle:d,insertHyperlinkAddress:g,insertHyperlinkTitle:k,insertHyperlinkNewWindow:h,insertHyperlinkCancel:p,insertHyperlinkInsert:f}=n.messages,a=t?w.getMark(t.state,t.state.schema.marks[n.mark]):!1,v=e.createElement(c.Form,{render:()=>e.createElement(c.FormElement,{horizontal:!0},e.createElement(c.FieldWrapper,null,e.createElement("label",{htmlFor:"k-editor-link-url",className:"k-form-label"},l.toLanguageString(g,o.messages[g])),e.createElement("div",{className:"k-form-field-wrap"},e.createElement(m.Input,{type:"text",id:"k-editor-link-url",ref:i=>{this.href=i&&i.element},defaultValue:a&&a.attrs.href||void 0,autoFocus:!0}))),e.createElement(c.FieldWrapper,null,e.createElement("label",{htmlFor:"k-editor-link-text",className:"k-form-label"},l.toLanguageString(k,o.messages[k])),e.createElement("div",{className:"k-form-field-wrap"},e.createElement(m.Input,{type:"text",id:"k-editor-link-text",ref:i=>{this.title=i&&i.element},defaultValue:a&&a.attrs.title||void 0}))),n.linkTarget!==!1&&e.createElement(c.FieldWrapper,null,e.createElement("label",{htmlFor:"k-editor-link-target",className:"k-checkbox-label"},e.createElement(m.Checkbox,{id:"k-editor-link-target",ref:i=>{this.target=i},defaultChecked:a&&!!a.attrs.target||void 0}),l.toLanguageString(h,o.messages[h]))))}),E=[e.createElement(C.Button,{onClick:this.onClose,dir:r,key:"cancel"},l.toLanguageString(p,o.messages[p])),e.createElement(C.Button,{onClick:this.onInsert,themeColor:"primary",dir:r,key:"insert"},l.toLanguageString(f,o.messages[f]))],b=e.createElement(y.Window,{initialWidth:450,initialHeight:250,className:"k-editor-window",title:l.toLanguageString(d,o.messages[d]),onClose:this.onClose,style:r==="rtl"?{textAlign:"right"}:void 0,modal:!0,minimizeButton:()=>null,maximizeButton:()=>null,resizable:!1},v,e.createElement(y.WindowActionsBar,null,...E));return u?u(b,{content:v,actionButtons:E}):b}};L.registerForLocalization(F);exports.InsertLinkDialog=F;