UNPKG

@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) 2.59 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 S=require("react"),v=require("@progress/kendo-react-buttons"),h=require("../utils.js"),f=require("@progress/kendo-react-intl"),P=require("../../messages/index.js"),N=require("./popup.js"),d=require("@progress/kendo-editor-common"),k=require("@progress/kendo-react-common");function y(t){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const b=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(o,s,b.get?b:{enumerable:!0,get:()=>t[s]})}}return o.default=t,Object.freeze(o)}const T=y(S);exports.InsertTableToolNS=void 0;(t=>{t.createInsertTableTool=o=>{const s=class extends T.Component{constructor(){super(...arguments),this.state={openedPopup:!1},this.button=null,this.togglePopup=()=>{this.setState({openedPopup:!this.state.openedPopup})},this.closePopup=()=>{this.state.openedPopup&&this.togglePopup()},this.onTableInsert=(n,l)=>{const{view:e}=this.props;if(!e)return;const{table:a,table_row:c,table_cell:i}=e.state.schema.nodes,r=d.createTable({table:a,table_row:c,table_cell:i},n,l);r&&d.insertNode(r,!0)(e.state,e.dispatch),e.focus(),this.closePopup()}}render(){const{view:n,render:l,...e}=this.props,a=n&&n.state,c=f.provideLocalizationService(this),{createTable:i,createTableHint:r}=o.messages,g=c.toLanguageString(i,P.messages[i]),I=c.toLanguageString(r,P.messages[r]),p=!!(!a||!d.canInsert(a,a.schema.nodes.table)||h.parentNode(a.selection.$from,u=>u.type.name==="table_caption_external")),m=[T.createElement(v.Button,{onClick:p?void 0:this.togglePopup,"aria-disabled":p?!0:void 0,ref:u=>{this.button=u&&u.element},key:"InsertTable",...h.onDownPreventDefault,title:g,...o.props,...e,className:k.classNames(e.className,o.props.className,{"k-disabled":p})}),n&&!p&&T.createElement(N.InsertTablePopupNS.InsertTablePopup,{key:"insertTablePopup",createTableMessage:g,createTableHintMessage:I,dir:e.dir,anchor:this.button,show:this.state.openedPopup,onClose:this.closePopup,onTableInsert:this.onTableInsert})||null];return l?l.call(void 0,m,{view:n}):m}};return f.registerForLocalization(s),s}})(exports.InsertTableToolNS||(exports.InsertTableToolNS={}));